智能应用部署的方法、装置和系统
文献发布时间:2023-06-19 13:26:15
技术领域
本发明涉及视频监控领域,特别涉及一种智能应用部署的方法、装置和系统。
背景技术
随着视频监控技术的发展,监控由单纯的记录视频向智能化发展。而这样的智能化趋势同样深深影响了前端设备(例如,摄像机)的发展,当前前端设备呈越来越智能化的趋势。同时,得益于计算机视觉、深度学习等技术的快速发展,智能前端设备的自动识别准确度已经超过了人类。而随着智能前端设备的应用,提高了监控效率,大大节省了人力成本,对平安城市、智慧城市等现代化、以及工业生产自动化等起到重要促进作用。
当前的智能摄像机虽然能够实现部分的分析功能,但是不同摄像机的分析能力有差异,而且智能摄像机通常还需要和普通的没有分析能力的摄像机在同一监控系统中使用。此外,监控系统管理还需要综合考虑现有监控系统中已有的分析能力。这些差异给布署智能应用带来了一定的挑战。现有技术中通常采用的做法是,在使用监控系统前,根据系统中包含的智能摄像机自身的能力来一一固定配置,复杂度高。此外,在监控系统的任务发生变化时,需要一一重新配置,缺乏灵活性。
发明内容
鉴于此,本发明实施例提供了一种智能应用的部署方法、装置和系统,以降低智能应用部署的复杂度,并提高其灵活性。
第一方面,本申请实施例提供了一种智能应用的部署方法。该部署方法用于监控系统中,所述监控系统包括分析器和智能摄像机。该所述部署方法包括如下步骤:
接收智能应用的部署请求,所述部署请求包括智能应用的标识和所需资源量;
获取所述分析器和所述智能摄像机的分析能力信息,所述分析能力信息为与智能应用部署相关的资源信息;
根据所述部署请求和获取的所述分析能力信息,确定所述分析器和所述智能摄像机中至少一个为用于部署所述智能应用的对象;
发送部署命令至所述对象,所述部署命令用于指示所述对象部署所述部署请求中的一个或多个智能应用,所述部署命令包括所述一个或多个智能应用的标识。
需要说明的是,上述部署方法的执行主体为编排器、智能编排中心、部署设备、部署装置或监控平台。
在一种可能的实现中,所需资源量包括所需最少计算资源量、所需最少内存量和所需最少存储量中的一个或多个。
在一种可能的实现中,所述获取所述分析器和所述智能摄像机的分析能力信息,包括:发送分析能力信息的请求消息给所述分析器和所述智能摄像机;从所述分析器和所述智能摄像机接收包括所述分析能力信息的回复消息。通过主动查询的方式来获取分析能力信息,讷能够提供较好的灵活性。
在一种可能的实现中,所述分析能力信息包括:硬件架构信息和可用资源量。可选地,所述分析能力信息还包括:当前部署的智能应用信息,其中,所述智能应用信息包括:智能应用的标识和占用的资源量。
在一种可能的实现中,所述部署请求还包括:允许的最大资源占用量。
在一种可能的实现中,所述根据所述部署请求和获取的所述分析能力信息,确定所述分析器和所述智能摄像机中至少一个为用于部署所述智能应用的对象,包括:根据所述部署请求、所述智能应用的软件包信息和获取的所述分析能力信息,确定所述分析器和所述智能摄像机中至少一个为用于部署所述智能应用的对象,其中,所述智能应用的软件包信息为所述智能应用软件版本支持的硬件架构信息。
在一种可能的实现中,所述根据所述部署请求和获取的所述分析能力信息,确定所述分析器和所述智能摄像机中至少一个为用于部署所述智能应用的对象,包括:使用所述智能摄像机来部署所述智能应用;或者,使用所述分析器来部署所述智能应用;或者,使用所述分析器和所述智能摄像机共同部署所述智能应用。
在一种可能的实现中,所述方法还包括:
接收所述智能应用的更新信息;
根据所述部署请求、所述更新信息和获取的所述分析能力信息,确定是否刷新所述智能应用的部署;
当确定要刷新所述智能应用的部署时,发送另一部署命令给所述对象,所述另一部署命令用于指示所述对象刷新智能应用的部署。
可选地,所述另一部署命令为指示所述对象删除所有当前部署的智能应用;或者,所述另一部署命令包括所述对象刷新后部署的智能应用的标识。
第二方面,本申请实施例还提供了一种智能应用的部署装置。该部署装置用于监控系统中,所述监控系统包括分析器和智能摄像机。所述部署装置包括处理器和收发器。其中,所述收发器用于执行第一方面或者第一方面任意一个可能的实现中所述的接收和发送步骤;所述处理器用于执行其他步骤。
第三方面,本申请实施例还提供了一种监控系统,所述监控系统包括如第二方面所述述的部署装置,以及智能摄像机和分析器。
第四方面,本发明实施例提供一种计算机存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述第一方面或者第一方面的任一实现提供的方法。
第六方面,本申请实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或者第一方面的任一实现提供的方法。
相比于现有技术提供的固定配置,本申请提供的技术方案通过将监控系统里的分析资源进行统一管理,并结合具体的部署请求来进行合理的部署分配,可以降低智能应用部署的复杂性,提高其灵活性。
附图说明
图1为本申请的技术方案适用一种应用场景示意图;
图2为本申请实施例提供的一种监控系统示意图;
图3为本申请实施例提供的一种智能应用部署的方法流程图;
图4为本申请实施例提供的另一种智能应用部署的方法流程图;
图5为图4方法流程的一个具体举例;
图6为本申请实施例提供的又一种智能应用部署的方法流程图;
图7为本申请实施例提供的一种可能的设备结构图;
图8为本申请实施例提供的另一种可能的设备结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。本申请实施例涉及到的多个,是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。方法实施例中的具体操作方法也可以应用于装置实施例中。
当前视频监控广泛应用于工业、安保以及日常等领域,视频监控摄像机也一直在追求智能化。但是,当前智能摄像机的分析能力各异,目前根据每一个智能摄像机的能力来进行固定配置其部署的智能应用的方法存在一定的复杂性,可扩展性不高。此外,智能应用的要求会随着具体业务需求的改变而改变,这也会导致针对摄像机的固定配置不再适用,需要一一更新配置,从而存在灵活性差的问题。因此,为了解决现有监控系统中存在的这些问题,本申请实施例提供了一种新的智能应用的部署方案,以提高智能摄像机配置的灵活性以及简化配置操作。
图1为本申请提供的技术方案适用的一种应用场景示意图。如图1所示,该场景包含多种智能应用(10,11和12)和一个监控系统100。其中,监控系统100进一步包括监控平台101和前端设备(102-105)。具体地,前端设备可以包括不同能力的智能前端设备。例如,支持不同的硬件平台(也可以称为硬件架构)的智能前端设备,例如:图形处理器(GraphicProcess Unit,GPU)或者网络处理器(Network Process Unit,NPU)。又如,前端设备包括不同资源的智能前端设备。其中,资源可以包括但不限于:计算资源,内存资源和存储资源。前端设备还可以包括普通前端设备。需要说明的是,普通前端设备和智能前端设备的区别在于:智能前端设备可以用于部署智能应用,以对其获取的多媒体数据进行分析。而普通前端设备则需要借助监控平台的分析能力来实现对其获取的多媒体数据进行处理。也就是说普通前端设备需要将其获取的多媒体数据发送给其他设备,以使得其他设备对这些数据可以进行分析。在本申请中,多媒体数据指的是视频数据,或者是包括视频和音频的数据。在具体的应用场景中,监控系统可以不包括普通前端设备。后续,本申请将能够获取多媒体数据的前端设备简称为摄像机。需要说明的是,本申请提到的摄像机可以是专业的摄像设备(例如,用于安防的摄像机),也可以是具备有摄像功能的非专业设备(例如,车载记录仪,或者其他具备摄像功能的设备),或者是其他任何具备获取至少视频/图像功能的前端设备。可选地,摄像机还可以具备其他能力,例如,获取音频、声光告警等。本申请对此不作限定。
图1给出了多种智能应用的举例。其中,10指的是人脸识别应用,11指的是车牌识别应用,12指的是入侵检测和人脸识别的综合应用。从这些举例可以看出,智能应用可能包括一个或者多个具体的应用。本申请对一个智能应用包含的具体应用的个数和应用类型不做限制。需要说明的是,智能应用的实施需要借助监控系统。在一种可能的实现方式中,智能应用可以通过智能摄像机来部署。这种方式通常要求智能摄像机的分析资源能够满足智能应用的需求。在另一种可能的实现方式中,智能应用需要通过监控平台和智能摄像机来共同实现。具体地,可以根据智能应用的具体需求来部署不同的具体应用。在又一种可能的实现方式中,智能应用仅通过监控平台来进行部署。
上述场景中,监控平台和前端设备连接的接口可以为有线或无线通信方式。有线方式可以包括以太网技术中的传输控制协议/因特网互联协议(Transmission ControlProtocol/Internet Protocol,TCP/IP)通信技术、用户数据报协议(User DatagramProtocol,UDP)技术或标准通用串行总线(Universal Serial Bus,USB)端口、COM接口及其他类似的标准端口等方式。无线通信方式可以包括WiFi、蓝牙、ZigBee或超宽带(UltraWideband,UWB)等技术。可以根据实际应用场景及前端设备的硬件形态选择对应的连接方式。
图2给出了本申请实施例提供的一种监控系统示意图。该监控系统200包括监控平台201和摄像机(202a,202b,203a和203b)。具体地,监控平台201包括编排器201a,多个分析器201b(分析器1、分析器2、…和分析器n),以及软件仓库201c。可选地,监控平台还可以包括视频/图像存储器(图2中未示出)和分析结果处理中心(图2中未示出)等。其中,编排器201a用于实现智能应用的部署功能。例如,它用于执行图3-图6关于编排器的方法步骤。编排器还可以称为编排中心、部署编排中心、部署设备或部署装置。对于编排器的名称,本申请不做限定。分析器201b是为监控平台提供的具备分析能力的设备,可以用于部署智能应用。需要说明的是,分析器201b也可能独立于监控平台201之外。软件仓库201c用于存储能够适用于不同硬件平台的智能软件的软件包。也就是说,一种应用可以在软件仓库中存放多个适用于不同硬件平台的软件。软件仓库201c也可以独立于监控平台201之外的。需要说明的是,除了软件仓库,监控平台还可以收集智能应用的软件包信息,该软件包信息包括了该智能应用软件版本支持的硬件架构信息。需要说明的是,该软件包信息不是必需的。例如,如果默认应用软件可以支持监控系统中使用的所有硬件平台,那么则无需该信息。图2中的摄像机202a和202b为智能摄像机,203a和203b为普通摄像机,相关的介绍参看图1中关于前端设备102-105的说明,此处不再赘述。
需要说明的是,监控平台可以通过定制软件结合通用的服务器硬件实现。例如,每一个组件都由一台服务器和专有的软件来实现;或者所有组件都在一个服务器上实现。或者,可选地,监控平台可以通过定制软件部署到云服务器上的方式实现。也就是说,可以通过租用公有的云服务器硬件资源,并配置专有软件来部署监控平台功能。本申请对监控平台实际如何部署不做任何限定。
下面结合图3的示例,来说明实现本申请提出的智能应用的部署过程。需要说明的是,图3所示的步骤执行主体是编排器201a。
如图3所示,一个智能应用的部署流程包括如下步骤:
步骤301,收到智能应用的部署请求,所述部署请求包括智能应用的标识和智能应用所需资源量;
具体地,编排器收到智能应用的部署请求。这个部署请求可能包括一个或者多个具体应用。例如,可以包括前述提到的人脸识别和车牌识别的综合应用,或者是更多数量的应用。又如,还可以是一个单一的车牌识别应用。该部署请求包括能够唯一标识这个应用的信息。具体地,可以用字符名称、数字或者统一资源标示符(Unique Resource Locator,URL)等来标识,本申请对此不作限定。如果一个智能应用包括多个具体的应用,那么还可以为每一个具体的应用提供一个标识,以示区分。此外,该部署请求还包括所需的资源量。具体地,所需资源量包括最少计算资源量、所需最少内存量和所需最少存储量中的一个或多个。更通用地,本申请后续提到的资源量包括计算资源、内存资源和存储资源中的一个或者多个。关于部署请求可能包括的更多内容,参见图4-5的相关说明,此处不予赘述。需要说明的是,一个具体应用也可以称为智能应用。
步骤302,获取分析器和智能摄像机的分析能力信息,所述分析能力信息为与智能应用部署相关的资源信息;
具体地,编排器获取监控系统可提供的分析能力信息。监控系统中,智能摄像机具备分析能力。此外,通常还配置有专门的分析设备,用于补充监控系统中摄像机分析能力的不足。需要说明的是,智能摄像机作为获取多媒体数据的主体,相比于专门的分析设备,其分析的实时性较好,且节约带宽资源。主要原因是,专门的分析设备需要获取待被分析的数据,通常这些数据的数据量比较大,需要消耗通信带宽且可能需要较长的传输时间。
分析能力信息指的是跟部署智能应用相关的资源信息。分析能力信息也可以称为智能处理能力信息或智能分析能力等。例如,针对步骤301中提到的资源量信息。分析器和智能摄像机在某一时刻,可以提供的资源量不同。因此,编排器需要获取这些信息。可选地,分析能力信息还可以包括具备分析能力信息设备的优先级信息。具体地,可以通过多种方式来实现。在一种可能的实现中,可以通过给出设备标识或者设备支持的硬件平台信息来区分。例如,编排器可以默认智能摄像机的优先级高于分析器。也就是说,优先使用智能摄像机来进行智能应用的部署。甚至,可以在编排器上给不同的设备名称设定具体的优先级数值。在另一种可能的实现方式中,编排器获得优先级信息为直接优先级信息。例如,分析能力信息中包括一个优先级字段,来说明发送这个分析能力信息的主体的优先级。需要说明的是,如果在部署智能应用时,如果需要考虑到优先级这个因素,步骤301中的部署请求可以携带优先级的具体要求;或者,可以提前为编排器配置每一个具体应用的优先级。前者较为灵活。本领域技术人员可知,对于具备分析能力信息设备的优先级信息设定还可以考虑其他因素(例如:资源总量信息等),以区分具备不同能力的设备。本申请对此不作限定。
需要说明的是,本步骤有多种具体的实现方式。例如,编排器主动地获取分析器和摄像机的分析能力信息。具体的描述参见图5的说明,此处不予赘述。或者,可以是分析器和摄像机周期性或者不定期的上报。第一种实现方式更为灵活,实时性较好。但是,不同的监控系统可以根据实际的需要来获取,本申请对具体的实现方式没有任何限定。
可选地,编排器可以有选择性地来获取部分的智能摄像机的分析能力信息。如果针对智能应用的部署请求中包括的应用类型或其他限制条件,那么,编排器可以仅获取对应的能够部署这些应用的智能摄像机的分析能力信息。例如,如果仅需在特定的位置上(如,园区出入口)的摄像机来布署人脸识别,那么对应地,编排器可以只获取这些摄像机的分析能力信息。
另外需要补充说明的是,分析能力信息还可以包括当前对象(例如,分析器或摄像机)上已经部署的智能应用的信息。具体可以包括已经部署的智能应用的标识和占用的资源。
此外,还需要说明的是,步骤301和302没有严格的先后执行顺序。可以按照先步骤301,后步骤302,或者反过来,或者同时执行的方式。本申请对此没有限定。
步骤303,根据所述部署请求和获取的所述分析能力信息,确定所述分析器和所述智能摄像机中至少一个为用于部署所述智能应用的对象;
具体地,编排器根据部署请求和步骤302中获取的分析能力信息,来确定部署该部署请求中包括的应用的对象。在确定的过程中,编排器需要考虑到多个因素。例如,部署请求中限制条件,分析器和智能摄像机的可用资源情况,以及本地的一些策略信息。在一种可能的实现中,编排器选择智能摄像机来部署待部署的应用。在另一种可能的实现中,例如,智能摄像机的分析能力不足时,可能考虑仅采用分析器来部署待部署的应用;或者采用智能摄像机部署部分应用,分析器部署另一部分应用的方式。本申请对此不作限定。需要说明的是,考虑到智能摄像机的分析实时性较好,编排器可以设置本地策略,优先选择智能摄像机来进行智能应用的部署,或者对于优先级高的智能应用优先采取智能摄像机进行部署。这么做的好处是,充分利用智能摄像机的实时性优点,保证智能应用的及时处理和输出处理结果。
步骤304,发送部署命令至所述对象,所述部署命令用于指示所述对象部署所述部署请求中的一个或多个智能应用,所述部署命令包括所述一个或多个智能应用的标识。
具体地,编排器向步骤303中确定的对象发送部署命令,以指示所述对象来部署部署命令中制定的智能应用。需要说明的是,部署命令中包括的智能应用标识可以是智能应用的名称和/或智能应用的软件存放地址。例如,智能命令中可以仅包括具体应用的名称(例如:facedect_archX86_64.2.0.0.bin),接收到该部署命令的对象可以去一个提前获取的存放地址来下载相应的应用进行部署(例如:http://registry.xxx.com/vender/)。又如,部署命令可以即包括智能应用的名称(例如:facedect_archX86_64.2.0.0.bin),又包括下载的服务器地址(例如:http://registry.xxx.com/vender/),接收到该部署命令的对象可以组合两个信息后去下载相应的应用进行部署。再如,部署命令可以仅包括完整的软件下载地址(例如:http://registry.xxx.com/vender/facedect_archX86_64.2.0.0.bin),接收到该部署命令的对象可以直接通过这个完整的软件下载地址完成相关的应用的部署。
本申请提供的技术方案通过将监控系统里的分析资源进行统一管理,并结合具体的部署请求来进行合理的部署分配,可以降低智能应用部署的复杂性。
下面,将基于上面描述的适用于本申请的一些共性方面,对本申请实施例进一步详细说明。需要说明的是,本申请中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以其他本申请未描述的顺序实施。
图4为本申请实施例提供的另一种智能应用部署的方法流程图。在本实施例中,使用的系统为图2所示的监控系统。具体地,该监控系统包括部署设备、K个分析器,N个智能摄像机和R个普通摄像机,其中,K和N为大于或等于1的正整数,R为大于或等于零的正整数。部署设备可以为图2所示的编排器。在本实施例中,软件仓库中存储了支持当前监控系统中所有硬件架构的软件包。需要说明的是,部署设备也可以是部署装置。也就是说,部署功能可以是由独立设备来完成的,也可以是由一个设备的一部分来完成。
需要说明的是,本实施例主要描述跟智能摄像机相关的步骤流程。虽然普通摄像机无法部署智能应用,但是具体实施本申请技术方案的场景可能会包含普通摄像机。还需要说明的是,图4给出的流程图并没有单独给出每一个分析器或者摄像机,而是将所有分析器作为一个对象,所有智能摄像机作为一个对象,且通过1-2个示例来介绍动作和消息内容。本领域技术人员可以理解,每个分析器和智能摄像机的具体资源情况和具体交互消息内容需要根据其自身情况决定。
图4所示的流程包括如下步骤:
步骤401,接收智能应用的部署请求;
具体地,部署设备接收智能应用的部署请求。这个请求可以是监控系统的管理人员通过图形用户界面(Graphic User Interface,GUI)或者是操作命令发送到部署设备上或监控系统自动触发部署请求。该步骤类似图3中的步骤301,具体可以参见步骤301的更多描述,此处不再赘述。
需要说明的是,智能应用的部署请求可以通过部署文件(也可以称为配置文件)来描述。通过配置文件描述业务场景(即待部署的智能应用的集合),可以通过刷新配置文件来灵活地进行业务调整,进而实现动态地调整智能应用的部署位置,最大化保障一个业务场景中关键的智能应用的需求。表1中给出了一个部署文件示例。
表1部署文件示例
从表1可以看出,这个部署请求示例包括两个具体应用,分别具有不同的信息(名称,资源需求和优先级等)。需要说明的是,计算资源通常指的是CPU资源,可以用占比(%)来表示,或者省略%号,直接提供数字1-100之间的一个数值。此外,为了保证提供准确的CPU资源需求,可以提供多个数值,分别表示不同平台部署时需要的CPU资源。其他类型的资源量类似,不予赘述。例如,可以提供{CPU=30;CPU_ARM=30;CPU_X86_64=10},分别表示没有匹配到当前支持的具体CPU型号(例如,本例子中的ARM和X86_64)时需要的资源量,当CPU为ARM时需要的资源量和当CPU为X86_64时需要的资源量。
表1中的允许最大资源量指的是一个应用所需的最大资源量。在分析器或者智能摄像机较为空闲时,可以分配更多的资源量给当前在运行的应用,以提高应用的执行速度。提供这个信息的好处是,部署设备可以优先考虑可用资源较多(例如,超过允许最大资源量)的对象来部署对应的智能应用,以提高应用的执行速度。需要说明的是,一个具体的应用包含的具体信息可以根据实际需要来确定。关于资源量的描述,参见图3的相关描述,此处不再赘述。
还需要说明的是,表1中的优先级用于指示不同的智能应用的实时性需求。例如,可以将实时性要求高的智能应用设置为较高的优先级。那么,编排器在部署智能应用时,会优先将高优先级的智能应用部署到智能摄像机上。这个优先级也可以称为实时性要求。可选地,如果优先级分级较少,还可以通过增加第二个优先级信息来区分同一前述优先级,以使得第二优先级高的智能应用能够优先部署在智能摄像机上。
步骤402,获取分析能力信息;
具体地,部署设备获取分析器和智能摄像机的分析能力信息。该步骤类似图3中的步骤302,具体可以参见步骤302更多描述,此处不再赘述。图5为图4方法流程的一个具体举例。在图5中,部署设备通过主动查询的方式来获取分析能力信息。具体地,部署设备通过步骤502a和步骤503a分别给多个分析器和多个智能摄像机发送分析能力的请求信息(也可以称为查询请求)。对应地,收到该请求的分析器和智能摄像机给部署设备发送分析能力的回复信息(如图5中的步骤502b和步骤503b)。
表2中给出了一个分析能力的回复消息包括的内容举例。需要说明的是,这些信息中当前支持的应用信息、硬件架构和资源总量等信息可根据具体的需要来携带在回复消息中。例如,因为硬件架构通常是在一段时间内是不变的,可以仅上报一次,这样可以节约带宽。仅在再次发生变化是才需要再次上报。其他资源,如资源总量等可以做类似处理,不予赘述。
表2分析能力的回复消息中包括的信息举例
步骤403,确定智能应用的部署对象;
具体地,部署设备综合步骤401-402获取的信息,确定步骤401中获取的请求需要由哪些对象来部署。该步骤跟图3的步骤303类似,具体可以参见步骤303更多描述,此处不再赘述。例如,在本实施例中,智能摄像机1至7可以部署待部署的智能应用;而智能摄像机8至N-10,因为其本身的资源不足,需要将一部分的待部署应用部署到分析器上,另一部分放置到智能摄像机上部署;而摄像机N-9至N则没有资源部署更多的应用,需要完全借助于分析器。
步骤404,发送部署命令。
具体地,部署设备给403步骤确定的对象一一发送部署命令。如图5所示(步骤505和步骤506),可以发送不同内容的部署命令分别给分析器和智能摄像机。以步骤403给出的示例作为例子,那么,部署设备需要给摄像机1至7发送部署命令,以使这些摄像机部署所有待部署的具体应用。部署设备需要给摄像机8至N-10发送部署命令,以使得这些摄像机部署智能应用中部分的具体应用。此外,部署设备还得给分析器发送部署命令,来部署其他无法在摄像机中部署的剩余应用。部署设备无需给摄像机8至N-10发送部署命令,仅需给分析器发送部署命令,来部署所有的具体应用。需要说明的是,分析器有多个的话,那么前述第二种和第三种涉及到分析器的场景,可能需要将部署命令发送给不同的分析器。
需要说明的是,图5中的步骤501和步骤504,和图4中的步骤401和步骤403类似,此处不再赘述。
本申请提供的技术方案通过将监控系统里的分析资源进行统一管理,并结合具体的部署请求来进行较为合理的部署分配,实现了智能应用的自动部署,可以降低智能应用部署的复杂性。此外,还可以降低部署出错的概率,例如,重复配置智能应用,遗漏配置智能应用等。
图6为本申请实施例提供的又一种智能应用部署的方法流程图。本实施例,类似图4所示的实施例,使用的系统为图2所示的监控系统。需要说明的是,图6给出的流程图着重描述应用部署刷新的步骤。具体步骤如下:
步骤600(S600),部署智能应用;
具体地,该步骤可以替换为图3或者图4或者图5所示的部署步骤。详见对应附图的描述,此处不予赘述。需要说明的是,在本实施例中,部署设备还需要获取软件仓库里存放的智能应用支持的硬件平台信息,并将这个信息作为一个选择部署对象的一个考虑条件。例如,如果针对车牌识别这一应用,如果要求支持GPU硬件平台的软件版本,那么部署设备在选择部署对象时不考虑其中不支持GPU硬件平台的摄像机或者分析器。简言之,可以理解为根据部署请求和获取的分析能力信息,确定分析器和智能摄像机中至少一个为用于部署智能应用的对象,包括:根据所述部署请求、所述智能应用的软件包信息和获取的所述分析能力信息,确定所述分析器和所述智能摄像机中至少一个为用于部署所述智能应用的对象。
步骤601(S601):智能应用的更新请求;
具体地,部署设备收到智能应用的更新请求。例如,因为场景的变化,部署设备可能获取更新的请求,具体请求的来源可以为如步骤401中提及的智能应用的部署请求消息的发送主体。需要说明的是,两次请求的主题可以不同。例如,部署请求可以来自于系统管理软件,而刷新请求可以是平台自身策略触发的。
做一个具体的示例,可以更新已有智能应用请求中的优先级要求。例如,将表1中的两种应用的优先级信息对调。或者,可以是刷新如图3提到智能应用的部署请求中包含的内容。可选地,还可以是刷新智能应用的软件包。在后续的步骤中,以表1中的两种应用的实时性互换为一个示例来进行说明。本领域技术人员可知,如果是其他的属性更新,处理的方式类似。需要说明的是,假设在步骤600中,针对某一个智能摄像机(后续简称为智能摄像机X)的部署结果为:人脸识别部署在分析器上,而入侵检测部署在智能摄像机上。
步骤602(S602):确定是否需要刷新智能应用的部署;
具体地,部署设备根据已收到的智能应用的部署请求、对应的更新请求和获取的分析能力信息,综合判断是否需要刷新当前的部署。如果确定无需刷新部署,那么当前的流程结束。如果确定需要刷新部署,那么执行步骤603。
结合步骤601的示例,在当前步骤中,因为智能摄像机X的资源有限,再综合部署请求和更新请求,部署设备确定其部署的智能应用需要刷新。具体地,该智能摄像机需要部署人脸识别,而入侵检测则需要部署到分析器上。
步骤603(S603):确定要刷新智能应用的部署时,发送另一部署命令。
具体地,部署设备发送另一部署命令给需要刷新部署的对象,用于刷新智能应用的部署。取决于刷新的类型不同,另一部署命令可以不包括任何智能应用的标识,以使得接收到该命令的对象删除其当前部署的所有应用。或者,另一部署命令全部应该部署的智能应用(包括已经部署的和新增的),那么接收的对象可以自行判断哪些是已有的,哪些需要新增。或者,该命令仅包括需要变化的智能应用的标识,并通过指示字段来区分是删除或者新增或者参数刷新等。
结合步骤601-602的示例,在当前步骤中,部署设备需要发送另一个部署命令给智能摄像机X,指示其部署人脸识别。收到这个另一部署命令后,智能摄像机X确定其需要部署的智能应为人脸识别,并获取该应用的软件下载地址。那么,智能摄像机X删除当前的入侵检测部署,并下载人脸识别的智能应用软件并安装和运行,完成该应用的部署。类似地,部署设备发送部署命令给分析器,指示其部署入侵检测。需要说明的是,入侵检测可以部署到之前部署人脸检测应用的分析器,或者部署到另一个分析器上。需要说明的是,不论哪种情况,原来部署到分析器上的人脸识别应用需要删除。
本申请提供的技术方案通过将监控系统里的分析资源进行统一管理,并结合具体的部署请求来进行较为合理的部署分配,可以降低智能应用部署的复杂性。此外,本申请的技术方案还可以根据部署请求的更新,动态地调整智能应用的部署对象,提高了智能应用部署的效率。
图7为本申请实施例提供的一种可能的设备结构图。该设备700包括处理器701和收发器702。其中,所述处理器701和所述收发器702耦合。该设备700为图3中的编排器,或者图4-6中的部署设备。对应地,该设备实现图3的所有步骤。其中,收发器702实现发送和接收步骤,而处理器701实现其他步骤。类似地,该设备实现图4-6的部署设备执行的所有步骤。其中,收发器702实现发送和接收步骤,而处理器701实现其他步骤。
图8为本申请实施例提供的另一种可能的设备结构图。该设备800包括接收模块801、确定模块802和发送模块803。该设备800为图3中的编排器,或者图4-6中的部署设备。对应地,该设备实现图3的所有步骤。其中,接收模块801执行步骤301-302,确定模块802执行步骤303,发送模块执行步骤804。类似地,该设备实现图4-6的部署设备执行的所有步骤。其中,接收模块801实现接收或者从外部获取相关的动作,而发送模块803实现发送相关的动作,确定模块执行其他步骤(例如,图4中的步骤S403,图6中的步骤S603)。
尽管在此结合各实施例对本发明进行了描述,然而,在实施所要求保护的本发明过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
上述处理器或者确定模块可以是中央处理器(Central Processing Unit,CPU),通用处理器,人工智能(Artificial Intelligence,AI)芯片、图形处理器(GraphicsProcessing Unit,GPU),数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。所述处理器也可以是实现计算功能和/或控制功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合,或者CPU跟GPU或AI芯片的组合等等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过程序来指令相关的硬件完成。所述的程序可以存储于一种计算机可读存储介质中。存储介质可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasableprogrammable read-only memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
上述的这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。当使用软件实现时,上述实施例描述的方法步骤可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照图3和图4-8中任一所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘(SolidState Disk,SSD))等。
尽管结合具体特征及其实施例对本发明进行了描述,显而易见的,在不脱离本发明的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本发明的示例性说明,且视为已覆盖本发明范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
- 智能应用部署的方法、装置和系统
- 智能应用部署的方法、装置和系统