一种基于多目标库图像识别的视频共享系统的制作方法

文档序号:20512374发布日期:2020-04-24 18:41阅读:202来源:国知局
一种基于多目标库图像识别的视频共享系统的制作方法
本发明涉及一种基于多目标库图像识别的视频共享系统。
背景技术
:图像识别是计算机对图像进行处理、分析和理解,以识别各种不同模式的目标和对像的技术。识别过程包括图像预处理、图像分割、特征提取和判断匹配。简单来说,图像识别就是计算机如何像人一样读懂图片的内容。借助图像识别技术,不仅可以通过图片搜索更快的获取信息,还可以产生一种新的与外部世界交互的方式,甚至会让外部世界更加智能的运行。图像识别中,应用比较广泛的是人脸识别,人脸识别是基于人的脸部特征信息进行身份识别的一种生物识别技术。人脸识别采用深度学习技术,依据多层神经网络模型,对千万张人脸图片进行样本训练,最终学习出人脸检测、特征计算等人脸识别相关的模型,用于人脸图像的智能身份识别。人脸识别广泛应用于实时视频流的智能分析中,用于对人进行无感知抓拍、自动识别身份,进而应用于门禁、考勤、签到、身份核验、轨迹分析等各种各样业务场景。因此,人脸识别系统通常是指通过摄像机或摄像头采集含有人脸的图像或视频流,并自动在图像中检测和跟踪人脸,进而对检测到的人脸进行脸部的一系列相关技术,包括人脸图像采集、人脸定位、人脸特征点提取、人脸聚类、人脸比对等达到识别不同人身份的目的,是一种非接触式、非配合式,具有友好性的动态人脸识别系统。目前主流的图像识别系统架构图如图1所示,图像识别管理平台用于根据图像识别应用的需求管理识别目标对象、目标库,以及目标库与终端视频分析仪的对应关系,同时借助消息中间件进行数据的缓存,借助数据库进行数据的持久化存储;终端视频分析仪用于获取摄像机的视频流进行图像识别,并将识别的结果上报图像识别管理平台;摄像机用于实时采集监控视频流,可以是网络摄像机,也可以是集成在终端设备中的摄像头;图像识别应用从图像识别管理平台获取识别结果数据进行分析、统计、可视化展示等。以下描述现有技术的缺点:(1)图像识别进行目标匹配时,不支持多目标库由于图像识别管理平台仅承担管理的职责,不参与图像识别相关的任何计算,因此它需要将目标对象的照片下发到终端视频分析仪中进行处理,尽管图像识别管理平台具备管理多目标库的能力,但是最终下发给终端视频分析仪的全部是目标对象照片,如果有多个目标库对应同一个终端视频分析仪,那么最终这些目标库中的目标对象会合并到一起,这也就意味着,终端视频分析仪始终只有一个目标库,而图像识别管理平台中的白名单库和黑名单库,最终将以对象标签的形式转移到目标对象上,因此尽管支持白名单和黑名单识别,但本质上,它们仍处于一个目标库中,只能匹配一次,无法支持多目标库的个性化识别需求;(2)图像识别进行目标匹配时,同一时间只能为其中一个应用服务由于不同的图像识别应用要监控的目标对象不一样,因此它们需要各自独立的与终端视频分析仪进行关联,但由于现在终端视频分析仪只支持一个目标库,当多个应用下发目标对象时,这些对象会汇总到一起,导致所有的应用无法正常工作,因此同一时刻只能为其中一个应用服务,如果要切换为其它应用服务,必须先清空上一个应用下发的目标对象,然后下发当前应用的目标对象,无法实现同一路视频的多应用共享,只能通过为每个应用单独分配一个终端视频分析仪来解决,十分浪费资源;(3)图像识别的结果与应用孤立由于图像管理平台收到识别结果后,进行持久化存储,需要图像识别应用主动取数据进行处理,一方面,应用的配置可能发生变化,取到的数据并非完全是历史数据,另一方面,存储的是基础公共数据,未与应用的业务建立关联,因此应用每次分析数据时都要进行相应的数据转化和扩展,影响性能;除此以外,应用若未及时取走数据,则可能发生数据丢失,而且应用无法按需订阅自己的数据。技术实现要素:发明目的:为解决
背景技术
中存在的技术问题,本发明提出一种基于多目标库图像识别的视频共享系统,所述系统能实现单路视频在进行图像识别分析时,同时支持多个目标库的图像匹配;进一步的通过为每个图像识别应用单独配置目标库,实现多个应用同时共享同一路视频,并且每个应用的图像识别结果可以由应用本身按需订阅和存储。所述目标库是目标对象组成的集合,目标对象即特定的摄像机要监控的对象。技术方案:本发明提供了一种基于多目标库图像识别的视频共享系统,包括数据库模块、消息中间件模块、图像识别应用模块、图像识别管理平台模块、内存数据库模块和终端视频分析仪模块;所述数据库模块,用于持久化存储图像识别的结果;所述消息中间件模块,用于临时缓存实时的图像识别结果;所述图像识别应用模块,用于调用图像识别管理平台模块的接口配置目标库列表、每个目标库中的目标对象、每个目标库对应的监控摄像机,以及通过图像识别管理平台模块,从消息中间件模块获取实时图像识别结果,从数据库模块获取历史图像识别结果;所述图像识别管理平台模块,用于管理所有的识别对象(包括计算识别对象的照片的特征值)、目标库、目标对象、目标库与摄像机的对应关系信息,并将这些信息同步到内存数据库模块,同时从数据库模块和消息中间件模块获取图像识别结果为上层应用提供数据查询服务;所述识别对象是所有要通过图像识别进行身份识别的对象,目标库是目标对象组成的集合,目标对象即特定的摄像机要监控的识别对象;所述内存数据库模块用于缓存图像识别管理平台对于终端视频分析仪模块的配置,所述配置包括识别对象、目标库、目标对象和摄像机布控,摄像机布控即目标库与摄像机的对应关系;所述终端视频分析仪模块包括终端视频分析仪,用于处理视频流,提取视频中的图像后,与目标库中的目标图像进行比对,并将比对的结果分别存入数据库模块和消息中间件模块。所述图像识别管理平台模块还用于上传图像,具体包括如下步骤:步骤a1,用户上传识别对象信息;步骤a2,创建识别对象信息表;步骤a3,用户上传识别对象照片,照片名称与识别对象编号对应,更新识别对象信息表照片url列;步骤a4,根据国际标准uuid算法计算识别对象照片的唯一标识码,更新识别对象信息表对象唯一标识码列;步骤a5,将照片送入国际开源的mxnet图像识别模型,由模型计算出特征值,更新识别对象信息表特征值列。所述终端视频分析仪模块采用定时更新配置的方式,即定时检查内存数据库中的配置更新,如果有更新,则加载到本地的内存中,所有的图像搜索匹配操作都是在本地内存中进行,具体包括如下步骤:步骤b1,获取摄像机抓拍图片、摄像机id;步骤b2,判断内存中的配置是否到期,如果到期,转步骤b3,否则转步骤b5;步骤b3,检查内存数据库中的配置是否有更新,如果有,转步骤b4,否则转步骤b5;步骤b4,更新本地内存中的配置,使其与内存数据库中的配置信息一致;步骤b5,更新配置结束。所述图像识别应用模块只有向所述图像识别管理平台模块注册以后,才能有权限访问图像识别管理平台模块;注册以后,图像识别管理平台模块会给图像识别应用模块分配一个应用id,后续图像识别应用模块访问图像识别管理平台模块的接口时,都需要带入这个应用id;图像识别管理平台模块提供目标库配置相关的接口供图像识别应用模块调用。当所述终端视频分析仪从视频流中获取了一张抓拍图片,并已经计算出所述图片的特征值,同时所述图片所属的摄像机id也已获取,搜索目标库的具体步骤如下:步骤c1,根据摄像机id从摄像机布控表配置中筛选出当前摄像机绑定的目标库id列表,以及每个目标库对应的匹配阈值;步骤c2,根据步骤c1得到的目标库id从目标库表中获取每个目标库id对应的应用id以及目标库的类型,得到中间目标库结果表;步骤c3,对步骤c2得到的中间目标库结果表,根据应用id进行分组,相同id值的条目分到同一个组里,每一个组代表一个图像识别应用模块,以组为单位进行操作,每个组的操作转到步骤c4;步骤c4,选取步骤c3中得到的目标库分组中的其中一组,遍历其中所有的目标库,具体包括如下步骤:步骤c4-1,针对每一个目标库,根据目标对象表获取目标库管辖的目标对象,再根据对象信息表获取目标库管辖的目标对象的特征值,通过将当前摄像机抓拍图片的特征值与目标对象的特征值进行逐一比较,选取超过匹配命中阈值相似度最高的为识别成功记录,并根据目标库的类型,标识识别记录是白名单识别或者黑名单识别,如果没有超过匹配命中阈值的目标对象,则视为所述目标库未命中;步骤c4-2,重复步骤c4-1,继续下一个目标库;步骤c4-3,所有目标库处理完毕后,如果均未命中,则视为陌生对象,存储为陌生对象记录;步骤c5:重复步骤c4直到所有分组处理完成。所述视频分析仪模块每次在存储图像识别结果记录时,采用1+n的方式进行冗余存储图像识别结果,其中1代表所述图像识别管理平台模块,n代表各个所述图像识别应用模块;对于图像识别的结果,首先图像识别管理平台模块会存储一份,图像识别的结果中,属于不同图像识别应用模块的部分,单独由相应的图像识别应用模块存储一份,每个图像识别应用模块只存储属于自己的数据;图像识别管理平台模块存储所有的抓拍记录和所有图像识别应用模块的匹配记录;图像识别应用模块的图像识别结果数据保存在所述消息中间件模块中;不同图像识别应用模块的图像识别结果数据存储在消息中间件中的不同队列中,队列key用应用id标识。有益效果:本发明实现图像识别支持多目标库,从而通过对不同的目标库配置不同的应用策略,大幅提高业务的灵活性、可扩展性;实现多个图像识别应用可共享同一路摄像头视频,有效提高资源利用率、降低网络负载、节约成本;实现图像识别的结果既能为所有应用提供公共基础服务,又能提高应用处理结果的性能,同时应用可以按需动态订阅和消费结果;附图说明下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。图1是主流的图像识别系统架构图。图2是支持多目标库的图像识别架构图。图3是图像识别管理平台上传图像流程图。图4是终端视频分析仪读取内存数据库配置流程图。图5是图像识别应用访问图像识别管理平台的流程图。图6是单个应用图像识别流程图。图7是多应用共享视频图像识别流程图。图8是平台存储图像识别结果流程图。图9是图像识别过程存储应用的识别结果流程图。具体实施方式本发明要解决的技术问题,具体如下:(1)目前通过摄像头监控视频进行实时的动态图像识别时,仅支持单一的识别目标库,而区分白名单和黑名单是通过目标对象进行标识,无论是白名单还是黑名单均不支持多个目标库,限制了功能的扩展;(2)目前通过摄像头监控视频进行实时的动态图像识别时,同一路视频被其中一个图像识别应用独占,无法为多个应用共享,资源利用率不高;(3)目前通过摄像头监控视频进行实时的动态图像识别时,图像识别结果的存储要么与应用强关联,不利于数据的多应用共享,要么与应用完全独立,降低了应用处理数据的性能;本申请提案的技术方案的详细阐述:(1)本发明对于视频图像识别支持多目标库的具体实现:1、在系统架构中增加内存数据库模块如图2所示,增加内存数据库模块,内存数据库模块用于缓存图像识别管理平台对于终端视频分析仪的配置,其中包括摄像机与目标库的对应关系,由于图像识别管理平台不直接将配置信息发送给终端视频分析仪,需要终端视频分析仪从内存数据库读取配置,为了避免每次图像识别搜索匹配时都要从内存数据库查询配置,终端视频分析仪采用定时更新配置的方式,即定时检查内存数据库中的配置更新,若有更新,则加载到本地的内存中,所有的图像搜索匹配操作都是在本地内存中进行,有效保证了图像识别的效率。2、图像识别管理平台模块上传图像库时,计算每个图像的特征值以人脸识别为例,当用户通过图像识别管理平台上传人员照片时,由平台统一计算每张人脸的特征值,人员库中的每个人员照片自始至终只计算一次,计算的结果为所有终端视频分析仪共享,无须将照片发送给各个终端视频分析仪重复计算。图像识别管理平台上传图像的流程图如图3所示,包括如下步骤:步骤a1,用户上传识别对象信息;步骤a2,创建识别对象信息表;步骤a3,用户上传识别对象照片,照片名称与识别对象编号对应,更新识别对象信息表照片url列;步骤a4,计算对象唯一标识码,更新识别对象信息表对象唯一标识码列;步骤a5,将照片送入图像识别模型,计算特征值,更新识别对象信息表特征值列。3、在内存数据库中维护识别对象信息表识别对象,即所有可能要进行图像识别的监控对象,是应用图像识别的对象全集。以人脸识别为例,识别对象就是代表所有要参与人脸识别的人员,他们的信息标识了他们的身份,他们的照片用来在视频监控时进行照片比对,以便比对成功时,锁定特定的人员对象,并根据该人员的基本信息,向用户展示其身份信息。识别对象信息表如表1所示,其中对象唯一标识码根据该对象的照片生成,从照片文件的md5值计算得到,用于唯一标识一个对象;对象照片特征值亦是根据该对象的照片计算得到,但不同的是,它代表照片中该对象外貌的特征信息,用于比较判断不同照片中的对象是否是同一个对象;对象身份信息是对于对象的基本信息描述,用于锁定对象后确定其身份。表1对象唯一标识码对象照片url对象照片特征值对象身份信息38b8c2c1093dd0fec383a9d9ac940515/usr/map/1.jpg[0.223,0.345,0.367,0.234,......]…42c7d09f245bc998e09a8445b9c34g23/usr/map/2.jpg[0.139,0.825,0.727,0.922,......]…83d93c89a9234ca8d033d00ff1209da09/usr/map/3.jpg[-0.22,-0.45,0.923,-0.129,......]…92ab34ccd8f8a992bf8223ab82f8d8c82/usr/map/4.jpg[-0.11,-0.98,0.219,-0.782,......]…10bf22ad092bb9aff992ac2cb448ffb292/usr/map/5.jpg[0.283,-0.292,-0.82,-0.16,......]…4、在内存数据库模块中维护目标库目标库是识别对象全集的一个子集,代表特定的摄像机要监控的对象,不同的摄像机可以分别监控不同的对象,这些对象都是识别对象库中的一部分,因此称作目标对象,由目标对象组成的集合称作目标库。目标库表如表2所示,目标库可以由图像识别应用申请创建,代表该应用想要监控的对象群体,因此在目标库表中设置应用id来标识当前目标库归属哪个应用;目标库可以分为白名单和黑名单,白名单库通常用于匹配命中后赋予权限,黑名单通常用于匹配命中后报警,而所有目标库均未命中的,视为陌生对象,通常仅进行抓拍记录。表2应用id目标库id目标库名称目标库类型app1app1-1学生白名单app1app1-2老师白名单app2app2-1异常人员黑名单app3app3-1外聘人员白名单5、在内存数据库模块中维护目标对象表目标对象表描述每个目标库拥有哪些识别对象,即界定目标库所管辖的对象范围。目标对象表如表3所示。表3目标库id对象唯一标识码app1-138b8c2c1093dd0fec383a9d9ac940515app1-142c7d09f245bc998e09a8445b9c34g23app1-283d93c89a9234ca8d033d00ff1209da09app2-192ab34ccd8f8a992bf8223ab82f8d8c82app3-110bf22ad092bb9aff992ac2cb448ffb2926、在内存数据库模块中维护摄像机布控表摄像机布控表描述了摄像机与目标库的对应关系,即明确了哪些摄像机各自监控哪些目标库,以及针对每个目标库搜索匹配的临界值。摄像机布控表如表4所示,摄像机id标识了特定的摄像机,在对所有摄像机的视频图像进行处理时,图像数据附带摄像机的id信息,再根据摄像机布控表,即可明确在对每张视频图像进行识别时要搜索哪些目标库。表4摄像机id目标库id匹配命中阈值camera1app1-170%camera1app1-270%camera1app2-180%camera2app3-160%7、终端视频分析仪定时获取内存数据库中的数据表由于内存数据库中已经维护了图像识别搜索过程中所需要的所有数据,因此终端视频分析仪只需要每次进行图像比对检索的时候,按照内存数据库中的配置信息搜索即可。但考虑到多个终端视频分析仪频繁的访问内存数据库,可能造成性能有所下降,因此采取定时将内存数据库中的配置信息下载到本地内存的措施。如图4所示是终端视频分析仪读取内存数据库配置的流程图,具体包括如下步骤:步骤b1,获取摄像机抓拍图片、摄像机id;步骤b2,判断配置是否到期,如果到期,转步骤b3,否则转步骤b5;步骤b3,检查数据是否有更新,如果有,转步骤b4,否则转步骤b5;步骤b4,更新本地内存数据;步骤b5,更新配置结束;(2)本发明对于图像识别的视频进行共享的具体实现:要实现图像识别过程中,同一路视频能够为多个应用共享,就必须针对每个应用,单独设置自己的目标库以及目标库与视频的对应关系,同时图像识别处理过程中,针对每个应用独立进行,互不影响,任何一个应用对其它共享同路视频的应用无感知。以下从整个过程的处理来描述本发明的实现:1、图像识别应用向图像识别管理平台模块注册图像识别应用只有向平台注册以后,才能有权限访问平台。注册以后,平台会给应用分配一个应用编号,后续应用访问平台的接口时,都需要带入这个编号,以便平台可以识别当前访问平台的应用身份。如图5是图像识别应用访问图像识别管理平台模块的流程图。2、图像识别管理平台模块提供目标库配置相关的接口供图像识别应用调用为了能够标识每个目标库所属哪个图像识别应用,必须由应用来创建目标库,因为应用在创建目标库的时候,会自动传入其自身的应用编码,平台依据该编码,即可标识其创建的目标库归属。为此图像识别管理平台模块需要提供目标库管理的相关接口,包括目标库的增删改查、目标对象的增删查、目标库与摄像机对应关系的增删改查,通过接口的调用以及平台对接口调用的处理,最终将形成表1至表4所示的数据表。3、图像识别支持多应用目标库比对搜索假设终端视频分析仪从视频流中获取了一张抓拍图片,并已经计算出这张图片的特征值,同时这张图片所属的摄像机id也已获取,下面就从此刻开始描述搜索目标库的具体实现:步骤c1:根据摄像机id从表4所示的摄像机布控表中筛选出当前摄像机绑定的目标库id列表,以及每个目标库对应的匹配阈值,以摄像机id为camera1为例,将筛选出如表5的中间结果表;表5目标库id匹配命中阈值app1-170%app1-270%app2-180%步骤c2:根据步骤c1得到的目标库id从表5-2所示的目标库表中获取每个目标库id对应的应用id以及目标库的类型,以上一步的数据为例,将得到如表6所示的中间结果表;表6应用id目标库id目标库类型匹配命中阈值app1app1-1白名单70%app1app1-2白名单70%app2app2-1黑名单80%步骤c3:对步骤c2得到中间结果表,根据应用id进行分组,相同id值的条目分到同一个组里,每一个组代表一个图像识别应用,为了保证每个应用独立处理,以组为单位进行操作,所有的组完全平等,处理其中任何一个组,对其它组无感知,直到所有组都以相同的处理方式轮循一遍;以上一步的数据为例,将分成2个组,第一组应用id为app1,包含2个目标库,第二组应用id为app2,包含1个目标库;步骤c4:选取步骤c3中得到的目标库分组中的其中一组,遍历其中所有的目标库:步骤c4-1,针对每一个目标库,根据表3目标对象表获取该目标库管辖的目标对象,再根据表1对象信息表获取这些对象的特征值,通过将当前摄像机抓拍图片的特征值与目标对象的特征值进行逐一比较,选取超过匹配命中阈值相似度最高的为识别成功记录,并根据目标库的类型,标识识别记录是白名单识别或者黑名单识别,若没有超过匹配命中阈值的目标对象,则视为该目标库未命中;步骤c4-2,重复步骤c4-1,继续下一个目标库;步骤c4-3,所有目标库处理完毕后,若均未命中,则视为陌生对象,存储为陌生对象记录,当然此陌生对象仅针对当前目标分组,也就是应用来说的;由于目标库分组中的每个组代表一个应用,因此步骤c4可以理解为是单个应用的图像识别流程,流程图如图6所示:步骤c5:重复步骤c4直到所有分组处理完成。以上五步的完整流程如图7所示。(3)本发明对于图像识别结果存储的具体实现:1、采用1+n的方式进行冗余存储。其中1代表图像识别管理平台,n代表各个图像识别应用。图像识别的结果,首先平台会存储一份,可用于平台本身的数据分析应用,例如记录查询、轨迹检索;识别结果中,属于不同应用的部分,单独由相应的应用存储一份,每个应用只存储属于自己的数据,并且基于应用自身的业务特点,完善扩充基础通用的识别结果,使之在应用对数据进行分析时,避免对数据的二次加工处理,有效保证应用的性能。2、平台存储所有应用的匹配记录和所有的抓拍记录;由于平台集成了所有的图像识别应用,因此平台的图像识别结果可以看作是所有应用的结果的叠加,因此只要是某个应用匹配命中的记录,都会存储为平台的记录,与此同时,所有的抓拍记录均会存储,踢除命中的记录,剩下的即为未命中的记录。平台存储图像识别结果的流程如图8所示。3、应用存储图像识别结果对于平台来说,应用的个数是不定的,并且可以动态扩展,同时应用也可能随时掉线,再者每个应用只关心自身的数据,不需要也不应该能够访问其它应用的数据,因此将数据保存在应用中的实现方案为两点:第一:应用数据保存在消息中间件中。这样对于平台来说,不需要关心有多少应用、哪些应用、通信接口怎样、是否掉线等等,图像识别的结果直接存储到消息中间件中,由应用自身来读取,并根据自身的业务进行处理后存储。第二:不同应用的数据存储在消息中间件中的不同队列中,队列key用应用id标识。消息中间件中的每个队列中的图像识别数据结构如表7所示:表7这样一方面,应用可以根据自身的id准确获取属于自己的数据,另一方面,平台每当发现一个新的应用配置目标库监控后,可立即根据其应用id创建新的队列,并将属于它的数据存放在该队列中,因此可支持动态的应用注册和热插拔。如图9所示是终端视频分析仪在图像识别过程中,存储应用的识别数据的流程图.本发明提供了一种基于多目标库图像识别的视频共享系统,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1