任务处理系统、方法、装置、电子设备、存储介质与流程

文档序号:25543260发布日期:2021-06-18 20:40阅读:96来源:国知局
任务处理系统、方法、装置、电子设备、存储介质与流程

本申请涉及图像处理技术领域,特别涉及一种任务处理系统、方法、装置、电子设备、计算机可读存储介质。



背景技术:

工厂车间对安全生产、操作合规和质量管控等方面有严格要求,违规行为可能具有很大的危害性,因此对工厂车间进行违规行为检测、分析和报警具有重要作用。在相关技术中,通过传统的视频监控系统几种显示和记录工厂车间的监控画面,由安保人员查看监控画面来识别违规行为。由于监控画面众多,安保人员精力有限,无法长时间查看每一路摄像机的画面,且人工分析违规行为的效率十分低下。

随着计算机视觉技术和智能化分析技术的发展,通过监控设备采集视频帧并利用算法处理视频帧以实现违规行为检测变得越来越普遍。对于工厂车间场景,违规行为种类多样,且经常存在增加或减少监控点位、调整监控内容等需求,相应的,违规行为分析的算法服务系统必须具备高处理效率、多任务并行能力、灵活可扩展性、可配置性和快速定制能力。

目前,工厂车间的算法服务系统主要通过本地化服务器部署的方式,针对具体的项目开发定制化的算法服务,不同的算法服务采用不同的架构和服务实现,可复制性、可扩展性和可维护性较差。在新增违规分析或新增检测点位时都需要对算法服务系统进行重构或大幅度的重新开发,开发成本高,也不利于系统扩展和高效运行。



技术实现要素:

本申请实施例的目的在于提供一种任务处理系统、方法、装置、电子设备、计算机可读存储介质,用于在多任务集成的服务系统架构下实现任务处理。

一方面,本申请提供了一种任务处理系统,包括:

数据采集设备,用于采集待处理数据;

服务端,与所述数据采集设备连接,用于依据预设任务配置信息中各数据采集设备对应的任务,生成与每一任务对应的任务对象分组;其中,所述任务对象分组包括多个数据采集设备;针对每一任务对象分组,分配与所述任务对象分组中数据采集设备适配的数据采集算法实例;针对已分配数据采集算法实例的每一任务对象分组,依据预设算法配置信息分配与所述任务对象分组的任务对应的任务处理算法实例。

另一方面,本申请还提供了一种任务处理方法,包括:

依据预设任务配置信息中各数据采集设备对应的任务,生成与每一任务对应的任务对象分组;其中,所述任务对象分组包括多个数据采集设备;

针对每一任务对象分组,分配与所述任务对象分组中数据采集设备适配的数据采集算法实例;

针对已分配数据采集算法实例的每一任务对象分组,依据预设算法配置信息分配与所述任务对象分组的任务对应的任务处理算法实例。

在一实施例中,所述方法还包括:

通过所述数据采集算法实例,对所述任务对象分组中每一数据采集设备上传的待处理数据进行处理,获得指定数据;

通过所述任务处理算法实例,对所述指定数据进行处理,获得任务处理结果。

在一实施例中,所述数据采集设备包括摄像设备,所述待处理数据包括视频帧,所述指定数据包括视频帧组合;

所述通过所述数据采集算法实例,对所述任务对象分组中每一数据采集设备上传的待处理数据进行处理,获得指定数据,包括:

从所述任务对象分组中每一摄像设备读取视频流,解码获得视频帧;

基于多个摄像设备的视频帧构建视频帧组合,作为所述指定数据。

在一实施例中,所述基于多个摄像设备的视频帧构建视频帧组合,作为所述指定数据,包括:

基于多个摄像设备的视频帧构建视频帧组合;

从已构建的多个视频帧组合进行抽取,并将抽取出的视频帧组合作为所述指定数据。

在一实施例中,所述任务处理算法包括数据预处理脚本、模型脚本和数据后处理脚本;

所述通过所述任务处理算法实例,对所述指定数据进行处理,获得任务处理结果,包括:

通过所述数据预处理脚本对所述指定数据进行处理,获得预处理结果;

通过所述模型脚本对所述预处理结果进行处理,获得模型输出结果;

通过所述数据后处理脚本对所述模型输出结果进行处理,获得所述任务处理结果。

在一实施例中,在所述依据预设算法配置信息分配与所述任务对象分组的任务对应的任务处理算法实例之前,所述方法还包括:

响应于第一配置指令,从预设脚本库中选择数据预处理脚本;

响应于第二配置指令,从所述脚本库中选择模型脚本;

响应于第三配置指令,从所述脚本库中选择数据后处理脚本,并基于所述数据预处理脚本、所述模型脚本和所述数据后处理脚本构造任务处理算法。

另一方面,本申请还提供了一种任务处理装置,包括:

生成模块,用于依据预设任务配置信息中各数据采集设备对应的任务,生成与每一任务对应的任务对象分组;其中,所述任务对象分组包括多个数据采集设备;

第一分配模块,用于针对每一任务对象分组,分配与所述任务对象分组中数据采集设备适配的数据采集算法实例;

第二分配模块,用于针对已分配数据采集算法实例的每一任务对象分组,依据预设算法配置信息分配与所述任务对象分组的任务对应的任务处理算法实例。

进一步的,本申请还提供了一种电子设备,所述电子设备包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为执行上述任务处理方法。

另外,本申请还提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所述计算机程序可由处理器执行以完成上述任务处理方法。

本申请方案,依据任务配置新中各数据采集设备对应的任务,生成每一任务对应的任务对象分组后,可以实现任务拆分,进而为每一任务对象分组分配对应的数据采集算法实例和任务处理算法实例;由于服务架构下针对同一类型的数据采集算法被抽离处理,通用的数据采集算法可以复用,被配置成多个数据采集算法实例,从而可以降低针对具体任务的算法开发成本。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍。

图1为本申请一实施例提供的任务处理系统的网络架构示意图;

图2为本申请一实施例提供的电子设备的结构示意图;

图3为本申请一实施例提供的任务处理方法的流程示意图;

图4为本申请一实施例提供的确定任务处理结果的流程示意图;

图5为本申请一实施例提供的任务处理装置的框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。

图1为本申请实施例提供的任务处理系统的网络架构示意图。如图1所示,该任务处理系统包括数据采集设备20和服务端30;数据采集设备20可以包括摄像机、各类传感器等采集数据的电子设备,并可将采集到的数据传输至服务端30进行处理;服务端30可以是服务器集群或云计算中心,可以对数据采集设备20上传的数据进行处理,从而实现任务处理。

如图2所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图2中以一个处理器11为例。处理器11和存储器12通过总线10连接,存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程。在一实施例中,电子设备1可以是上述服务端30,用于执行任务处理方法。

存储器12可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammablereadonlymemory,简称eprom),可编程只读存储器(programmablered-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。

本申请还提供了一种计算机可读存储介质,存储介质存储有计算机程序,计算机程序可由处理器11执行以完成本申请提供的任务处理方法。

参见图3,为本申请一实施例提供的任务处理方法的流程示意图,如图3所示,该方法可以包括以下步骤310-步骤330。

步骤310:依据预设任务配置信息中各数据采集设备对应的任务,生成与每一任务对应的任务对象分组;其中,任务对象分组包括多个数据采集设备。

其中,任务配置信息可以位于服务端的系统配置库中,用于记录每一数据采集设备对应的任务、每一任务对应的数据采集算法标识和任务处理算法标识。数据采集设备可以是摄像机、温度传感器、光学传感器、振动传感器、位移传感器、力传感器等电子设备。数据采集算法标识用于指示唯一的数据采集算法,示例性的,数据采集算法标识可以是数据采集算法的算法名。任务处理算法标识用于指示唯一的任务处理算法,示例性的,任务处理算法标识可以是任务处理算法的算法名。

服务端可以依据任务配置信息,确定与每一任务对应的所有数据采集设备,进而生成与每一任务对应的任务对象分组。任务对象分组中的数据采集设备可以以数据采集设备的设备标识来标识。

示例性的,任务配置信息中记录的数据采集设备包括:数据采集设备a、数据采集设备b、数据采集设备c、数据采集设备d;与数据采集设备a对应的任务包括任务1、任务2和任务3,与数据采集设备b对应的任务包括任务1和任务3,与数据采集设备c对应的任务包括任务4、任务5和任务6,与数据采集设备d对应的任务包括任务1、任务2和任务5。服务端依据任务配置信息,可以生成各个任务的任务对象分组,任务1的任务对象分组中有数据采集设备a、数据采集设备b和数据采集设备d;任务2的任务对象分组中有数据采集设备a、数据采集设备d;任务3的任务对象分组中有数据采集设备a、数据采集设备b;任务4的任务对象分组中有数据采集设备c;任务5的任务对象分组中有数据采集设备c和数据采集设备d;任务6的任务对象分组中有数据采集设备c。

步骤320:针对每一任务对象分组,分配与任务对象分组中数据采集设备适配的数据采集算法实例。

步骤330:针对已分配数据采集算法实例的每一任务对象分组,依据预设算法配置信息分配与任务对象分组的任务对应的任务处理算法实例。

数据采集算法实例和任务处理算法实例是为具体任务服务的算法对象。数据采集算法实例可以包括数据采集算法、运行数据采集算法的硬件资源等。数据采集算法实例用于获取数据采集设备上传的待处理数据,并对待处理数据进行处理,使得经过处理的待处理数据满足任务处理算法实例的数据需求。示例性的,任务处理算法实例可批量处理图像,数据采集算法可以基于各数据采集设备上传的待处理数据(比如:视频流)构建包含多个图像的图像组合,并交由任务处理算法实例。

任务处理算法实例可以包括任务处理算法、运行任务处理算法的硬件资源等。任务处理算法实例用于从数据采集算法实例获取数据进行处理,从而得到任务处理结果。示例性的,针对工厂车间内戴口罩行为的检测任务,任务处理算法实例可以从数据采集算法实例获取工厂车间的视频帧,并依据视频帧进行判断,确定是否存在未戴口罩的人员。

服务端上可以预配置多种数据采集算法,每一数据采集算法所能处理的数据类型可以不同。示例性的,存在处理图像(视频帧)数据的数据采集算法、处理结构化数据的数据采集算法等。

针对每一任务对象分组,服务端可以依据该任务对象分组中数据采集设备上传数据的数据类型,为任务对象分组分配数据采集算法实例。该数据采集算法实例与数据采集设备适配。

服务端可以依据任务对象分组中数据采集设备上传数据的数据类型,确定与数据类型适配的数据采集算法,并为任务对象分组分配硬件资源(包括:计算资源、内存资源和缓存资源)。服务端可以将本地设备作为硬件资源分配至任务对象分组,用于运行已确定的数据采集算法。示例性的,数据采集设备是摄像机,服务端可以确定数据采集算法是处理视频帧的算法,并分配若干硬件设备用于运行该数据采集算法,以处理摄像机上传的视频流。

在为任务对象分组分配数据采集算法时候之后,服务端可以依据算法配置信息分配与任务对象分组的任务对应的任务处理算法实例。其中,算法配置信息可以位于服务端的系统配置库中,用于记录每一任务所需的任务处理算法的存储路径、任务处理算法中模型脚本(比如:机器学习模型)的超参数、单个任务处理算法所能服务的数据采集设备的最大数等信息。

服务端依据任务对象分组的任务确定对应的任务处理算法,并为任务对象分组分配硬件资源。服务端可以将本地设备作为硬件资源分配至任务对象分组,用于运行已确定的任务处理算法。示例性的,针对工厂车间内戴口罩行为的检测任务,服务端可为该任务的任务对象分组分配处理该检测任务的任务处理算法,并分配若干硬件设备用于运行该任务处理算法,以实现戴口罩行为的检测。

通过本申请上述方案,可在同一服务架构下集成不同任务特定的任务处理算法,从而可为不同任务对应的任务对象分组分配任务处理算法实例;且该服务架构将针对同一类型的数据采集算法抽离出来,使得通用的数据采集算法可以复用,被配置成多个数据采集算法实例,从而极大地降低针对任一具体任务的算法的开发成本。

服务端在分配任务处理算法实例时,可以依据算法配置信息记录的单个任务处理算法所能服务端的数据采集设备的最大数、以及任务对象分组中的数据采集设备数量,确定任务处理算法实例的数量,并分配若干任务处理算法实例。示例性的,任务处理算法所能服务的数据采集设备的最大数是100,任务对象分组中存在240个数据采集设备,则服务端可以分配3个任务处理算法实例,从而保证同一任务的任务处理算法实例能够处理任务对象分组中的所有数据采集设备。

在一实施例中,服务端为任务对象分组分配数据采集算法实例和任务处理算法实例之后,可以通过数据采集算法实例,对任务对象分组中每一数据采集设备上传的待处理数据进行处理,获得指定数据。这里,指定数据是经过数据采集算法实例处理后的待处理数据。

在获得任务对象分组对应的指定数据之后,服务端可以通过该任务对象分组对应的任务处理算法实例,对指定数据进行处理,从而获得任务处理结果。

在一实施例中,数据采集设备包括摄像设备,待处理数据包括视频帧,指定数据包括视频帧组合。

服务端通过数据采集算法实例获得指定数据的过程,可以从任务对象分组中每一摄像设备读取视频流,解码获得视频帧。其中,数据采集算法实例可以包括单路视频流读取模块;服务端可以通过单路视频流读取模块读取每一摄像设备上传的视频流,并将视频流解码出的视频帧放入一个消息队列。

服务端可以基于多个摄像设备的视频帧构建视频帧组合,作为指定数据。其中,数据采集算法实例可以包括多路视频流整合模块;服务端可以通过多路视频流整合模块从多个消息队列中获取视频帧,对获取的视频帧进行预处理后,构造视频帧组合(batch),作为指定数据。通过整合多个消息队列的视频帧,可以实现批处理,降低处理资源的需求,提升后续任务处理效率。

在一实施例中,为降低任务处理的计算量,服务端无需对数据采集设备上传的所有待处理数据进行处理。在这种情况下,如果数据采集设备为摄像设备,服务端在确定指定数据时,可以基于多个摄像设备的视频帧构建视频帧组合,并从已构建的多个视频帧组合进行抽取,并将抽取出的视频帧组合作为指定数据。这里,抽取视频帧组合的策略可以依据需求预配置。示例性的,服务端将多个摄像设备的视频帧逐帧构建视频帧组合后,可以每隔10个视频帧组合抽取1个视频帧组合,进而将抽到视频帧组合作为指定数据。

在一实施例中,任务处理算法可以被预先划分为数据预处理脚本、模型脚本和数据后处理脚本。其中,数据预处理脚本用于对数据进行预处理,预处理手段可以包括图像尺寸缩放、颜色通道转换、归一化处理等;模型脚本可以支持tensorflow、pytorch等多种深度学习框架的模型加载和运行,并且支持多个模型串行运行;数据后处理脚本用于处理模型脚本中模型的输出结果。

参见图4,为本申请一实施例提供的确定任务处理结果的流程示意图,如图4所示,服务端在通过任务处理算法实例执行具体任务时,可以包括如下步骤410-步骤430。

步骤410:通过数据预处理脚本对指定数据进行处理,获得预处理结果。

服务端可以通过数据预处理脚本对指定数据进行处理,获得预处理结果。示例性的,模型脚本中的模型所处理的图像尺寸以宽度*高度的形式可表示为268*268,服务端可以通过数据预处理脚本对作为指定数据的视频帧组合中每一视频帧进行预处理,使得视频帧组合中每一视频帧的尺寸统一为268*268。

步骤420:通过模型脚本对预处理结果进行处理,获得模型输出结果。

服务端可以将预处理结果输入模型脚本中的模型,获得模型输出结果。这里,模型输出结果视具体模型而定,实例性的,如果模型脚本包含分类模型,则模型输出结果为类别信息;如果模型脚本包含目标检测模型,则模型输出结果为目标检测结果。

步骤430:通过数据后处理脚本对模型输出结果进行处理,获得任务处理结果。

数据后处理脚本可以包含一系列针对模型输出结果的判断逻辑、数理统计策略或者其它处理逻辑。

从模型脚本获得模型输出结果后,服务端可以通过数据后处理脚本对模型输出结果进行处理,从而获得任务处理结果。

服务端获得任务处理结果之后,可以存储该任务处理结果,以便后续查看。服务端还可以通过输出信息的外接设备(比如:计算机)输出任务处理结果,服务端可以将任务处理结果通过预设接口传输至其它系统,以便其它系统集成任务处理结果。

在一实施例中,服务端在依据算法配置信息分配与任务对象分组的任务对应的任务处理算法实例之前,可以获得任务对应的任务处理算法。服务端可以响应于第一配置指令,从预设脚本库中选择数据预处理脚本。

其中,脚本库中可以包括多种数据预处理脚本(比如:进行图像尺寸缩放的数据预处理脚本、进行颜色通道转换的数据预处理脚本、进行归一化处理的数据预处理脚本等)、多种模型脚本(比如:分类模型、目标检测模型等)、多种数据后处理脚本。第一配置指令用于选择数据预处理脚本。

服务端可以响应于第二配置指令,从脚本库中选择模型脚本。第二配置指令用于选择模型脚本。

服务端可以响应于第三配置指令,从脚本库中选择数据后处理脚本。第三配置指令用于选择数据后处理脚本。

服务端可以基于数据预处理脚本、模型脚本和数据后处理脚本构造任务处理算法。示例性的,对于人员越界行为的检测任务,服务端依据第一配置指令从脚本库选中颜色通道转换的数据预处理脚本,依据第二配置指令从脚本库选中包含目标检测模型的模型脚本,依据第三配置指令从脚本库中选择包含针对目标区域的判断逻辑的数据后处理脚本,并依据选中的数据预处理脚本、模型脚本和数据后处理脚本构造任务处理算法。

服务端构造任务处理算法后,后续可以为相应的任务对象分组分配任务处理算法实例。

由于将任务处理算法拆分为多个环节的脚本,各环节的脚本可以分别进行定制化开发,同一环节的相同脚本可以复用,从而降低了研发成本,提高了研发效率。此外,脚本库中可以预先集成多个通用脚本,可在后续部署服务时实现脚本直接一致,快速实现算法开发工作。示例性的,对于工厂应用场景,脚本库中可以预先集成针对戴口罩、戴手套、戴护目镜、人员越界报警、睡觉、烟火、玩手机等检测任务的各个环节的脚本。

参见图5,为本申请一实施例提供的任务处理装置的框图,如图5所示,该装置可以包括:

生成模块510,用于依据预设任务配置信息中各数据采集设备对应的任务,生成与每一任务对应的任务对象分组;其中,所述任务对象分组包括多个数据采集设备;

第一分配模块520,用于针对每一任务对象分组,分配与所述任务对象分组中数据采集设备适配的数据采集算法实例;

第二分配模块530,用于针对已分配数据采集算法实例的每一任务对象分组,依据预设算法配置信息分配与所述任务对象分组的任务对应的任务处理算法实例。

上述装置中各个模块的功能和作用的实现过程具体详见上述任务处理方法中对应步骤的实现过程,在此不再赘述。

在本申请所提供的几个实施例中,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1