王崇海
(1.中国电子科技集团公司第三十八研究所,合肥 230088;2.安徽省公共安全应急信息技术重点实验室,合肥 230088)
现代社会各种视频资源非常丰富,人工识别查找视频蕴含信息耗时长,效率低,通过计算机对视频包含信息进行自动检测识别在各种应用中有着巨大的实用价值。多维视频侦查系统可以自动检测识别视频中的车辆和人脸,方便用户查询感兴趣的车辆和人脸信息。
多维视频侦查系统由客户端和服务端组成。在客户端,用户可以提交视频处理任务由服务端处理。服务端对提交的任务进行处理,将从视频提取的车辆和人脸信息存储起来。用户可以在客户端检索已识别的车辆车牌和车型信息,也可以输入人脸图片和已识别的人脸信息比较,查找相似度较高的人脸。
客户端可以上传离线视频文件,也可以接入摄像头(在线视频),对离线和在线视频可以分别提交车辆抓拍和人脸抓拍任务入数据库。离线车辆抓拍服务会去数据库获取离线视频车辆抓拍任务并处理,在线车辆抓拍服务会去数据库获取在线视频车辆抓拍任务并处理。类似的,离线人脸抓拍服务会去数据库获取离线视频人脸抓拍任务并处理,在线人脸抓拍服务会去数据库获取在线视频人脸抓拍任务并处理。
离线车辆抓拍服务和在线车辆抓拍服务会抓取视频中包含车辆的视频帧并保存为图片文件(本系统图片文件存储在网络共享文件夹下),将该图片的相关信息存入数据库,并提交车牌识别任务入数据库,一张抓拍图片提交一个任务。车牌识别服务会从数据库中获取车牌识别任务,识别该任务中包含的图片中车辆的车牌号码,并将车牌信息存入数据库,同时车牌识别服务会提交车型识别任务入数据库,该车型识别任务也包含同一张图片。分发提取服务会从数据库中获取车型识别任务,并将该任务中包含的图片存储路径通过Socket通信传递给车型识别服务,车型识别服务识别图片中的车型信息后将车型信息通过Socket通信传递给车型存储服务,车型存储服务会将车型信息存入数据库。离线视频车辆信息提取任务指的是一个离线视频从提交抓拍任务到完成车辆抓拍和所有抓拍图片的车牌车型识别的全过程,任务状态包括未进行,进行中,完成等,任务进度指的是任务完成度。在线视频车辆信息提取任务指的是在线视频提交抓拍任务后,进行车辆抓拍和车牌车型识别的过程,任务状态包括未进行,进行中等。离线视频任务监控服务会在离线视频车辆信息提取任务的处理过程中更新任务状态和进度。离线视频车辆信息提取任务的状态,进度和在线视频车辆信息提取任务状态存储在数据库中,由系统各部分维护,并在客户端展示。
离线人脸抓拍服务和在线人脸抓拍服务会抓取视频中包含的人脸,每个人脸都会保存为一张图片文件,并提交人脸特征提取任务入数据库,一个抓拍人脸图片提交一个任务。分发提取服务会从数据库获取人脸特征提取任务,提取人脸的特征并保存为特征文件,人脸的相关信息会存入数据库。离线视频人脸信息提取任务指的是一个离线视频从提交抓拍任务到完成人脸抓拍和所有抓拍人脸图片特征提取的全过程,任务状态包括未进行,进行中,完成等,任务进度指的是任务完成度。在线视频人脸信息提取任务指的是在线视频提交抓拍任务后,进行人脸抓拍和人脸特征提取的过程,任务状态包括未进行,进行中等。离线视频任务监控服务会在离线视频人脸信息提取任务的处理过程中更新任务状态和进度。离线视频人脸信息提取任务的状态,进度和在线视频的人脸信息提取任务状态存储在数据库中,由系统各部分维护,并在客户端展示。
2.1.1 离线视频车辆抓拍
客户端提交离线视频抓拍任务前,需要在视频的一帧图片上画出矩形识别区域线框,线框一般画在车道上,横向覆盖车道的宽度,一个车道一个线框。在提交的离线视频抓拍任务信息中包含识别区域线框的坐标和视频文件的路径。离线车辆抓拍服务从数据库获取任务后,启动一个进程执行该任务。任务执行进程解码该视频,获取视频帧序列,对视频帧运行运动检测算法。一辆车经过识别区域线框,会被运动检测算法识别,包含该车辆的一个视频帧会被抓拍保存为图片文件。包含该帧图片的车牌识别任务会被提交入数据库。任务执行进程在任务执行过程中会更新数据库该视频的离线视频车辆信息提取任务的进度。对于每个进行车辆信息提取的离线视频,数据库中都有该视频的一条车辆信息提取任务监控记录用于监控该视频的车辆信息提取工作是否完成,该记录保存该视频的抓拍图片总数和目前已完成车牌和车型信息提取的图片数。在任务执行进程开始执行任务时,在数据库中插入该车辆信息提取任务监控记录,抓拍图片总数设为-1,当前完成车牌和车型信息提取的图片数设为0。在完成对该视频所有帧的运动检测后,将抓拍的图片总数存入数据库该离线视频对应车辆信息提取任务监控记录。
2.1.2 在线视频车辆抓拍
客户端提交在线视频抓拍任务前,和离线视频一样,也需要在该在线视频一帧图片上画出矩形识别区域线框。在线车辆抓拍服务从数据库获取任务后,启动一个进程执行该任务。任务执行进程会启动两个线程,一个线程负责从流媒体服务器获取摄像头视频帧序列,另一个线程负责运行运动检测算法识别经过识别区域线框的车辆。视频帧获取线程将获取的视频帧数据存入缓存,运动检测线程从缓存中读取视频帧数据,并对视频帧运行运动检测算法,经过线框的车辆会被识别,包含该车辆的一个视频帧会被保存为图片文件。包含该帧图片的车牌识别任务会被提交入数据库。
车牌识别服务从数据库获取车牌识别任务后,运行车牌识别算法,识别该任务中的图片中的车辆车牌号码,将车牌号码,车牌的坐标等信息存入数据库,同时提交对该图片的车型识别任务入数据库。运动检测算法抓拍的图片,有时不同的图片会包含同一辆车,例如两辆车相隔较近,则前一辆车经过识别区域线框被抓拍的图片中会包含后面的还未经过识别区域线框的车,而后面的车在经过识别区域线框时也会被运动检测算法抓拍并保存,这样后面这辆车就会被两张图片所包含。为了不让后面的车被识别多次,可以在获取车牌识别结果后,根据车牌坐标增加区域限制,只存储靠近识别区域线框的车辆,而不存储远离识别区域线框的车辆,这样可以避免车牌被重复识别。
分发提取服务从数据库中获取车型识别任务后,将该任务中的图片存储路径通过Socket通信传递给车型识别服务,车型识别服务对该图片运行车型识别算法,将车型识别结果和车辆的坐标位置通过Socket通信传递给车型存储服务。
车型存储服务在收到一张图片的车型识别结果后,通过数据库查询找到该张图片对应的车牌识别结果,并取出车牌的坐标。对于车型识别结果中的一个车辆,通过坐标我们知道包含该车辆的矩形框。对于车牌识别结果,通过坐标我们知道包含该车牌的矩形框。如果一个车辆矩形框包含一个车牌矩形框,我们认为该车型识别结果中的车辆和该车牌属于的车辆是同一辆车,将车型结果存入数据库中该车牌对应的车辆记录中。如果一个车辆矩形框不包含任何一个车牌矩形框,则该车型结果为一辆新车,存入数据库,该车辆只有车型结果没有车牌结果。如果一个车牌矩形框不被任何车辆矩形框所包含,则该车辆只包含车牌信息,不包含车型信息。对于离线视频抓拍的图片,车型存储服务在完成该图片车型信息存储后会更新数据库该视频任务监控记录当前完成车牌和车型信息提取图片数,即将该数字加一。类似于车牌识别的区域限制以避免车牌被重复识别,车型存储服务在获得一张图片的识别结果后,也可以根据车型识别结果中车辆的坐标,只存储靠近识别区域线框的车辆,而不存储远离识别区域线框的车辆,以避免车辆被重复识别。
对于离线视频车辆信息提取任务,离线视频任务监控服务会每隔一段时间访问数据库离线视频车辆信息提取任务监控记录,当抓拍图片总数已不为-1时(说明抓拍已完成),比较抓拍图片总数和已完成车牌和车型提取的图片数,如果两者相等,则说明该离线视频的车辆信息提取任务已完成,则修改该任务的状态为已完成,修改任务的进度为100%,并删除该视频的离线视频车辆信息提取任务监控记录;如果抓拍图片总数大于已完成车牌和车型提取的图片数,则更新该任务的进度;如果在一段较长时间里,抓拍图片总数和已完成车牌和车型提取的图片数仍然不相等,则说明该任务已失败,则修改该任务的状态为失败,修改任务进度为0,并删除该任务监控记录。
3.1.1 离线视频人脸抓拍
客户端提交离线视频人脸抓拍任务后,离线视频人脸抓拍服务从数据库获取任务,启动进程执行该任务。任务进程解码该视频,获取视频帧序列,对视频帧运行人脸检测抓拍算法,视频帧中的人脸会被人脸检测抓拍算法识别并从视频帧中截取保存为图片文件,包含人脸的视频帧也会被保存为背景图片文件。对于每一个被识别截取的人脸,离线视频人脸抓拍服务会生成一个人脸特征提取任务,提交入数据库。任务执行进程在任务执行过程中会更新数据库该视频的离线视频人脸信息提取任务的进度。对于每个进行人脸信息提取的离线视频,数据库中都有该视频的一条人脸信息提取任务监控记录用于监控该视频的人脸信息提取工作是否完成,该记录保存该视频的人脸抓拍图片总数和目前已完成人脸特征提取的图片数。在任务执行进程开始执行任务时,在数据库中插入该人脸信息提取任务监控记录,人脸抓拍图片总数设为-1,目前已完成人脸特征提取的图片数设为0。在完成对该视频所有帧的人脸检测抓拍后,将抓拍存储的人脸图片总数存入数据库该离线视频对应人脸信息提取任务监控记录。
3.1.2 在线视频人脸抓拍
客户端提交在线视频人脸抓拍任务后,在线视频人脸抓拍服务从数据库获取任务,启动进程执行该任务。任务进程启动两个线程,一个线程负责从流媒体服务器获取摄像头视频帧序列,另一个线程负责检测识别视频帧中的人脸。视频帧获取线程将获取的视频帧数据存入缓存,人脸检测线程从缓存中读取视频帧,并对视频帧运行人脸检测抓拍算法,视频中的人脸会被检测识别并截取保存为图片文件,包含人脸的视频帧也会被保存为背景图片文件。对于每一个被识别截出的人脸,在线视频人脸抓拍服务会生成一个人脸特征提取任务,提交存入数据库。
分发提取服务从数据库获取人脸特征提取任务,对任务中的人脸图片运行人脸特征提取算法,将特征存入特征文件,将特征文件路径等相关信息存入数据库。对于完成人脸特征提取的离线视频抓拍截取的人脸图片,分发提取服务会去数据库该视频人脸信息提取任务监控记录更新当前完成人脸特征提取图片数,即将该数字加一。
离线视频任务监控服务每隔一段时间会访问数据库离线视频人脸信息提取任务监控记录,操作类似于对离线视频车辆信息提取任务监控记录的操作,此处不再赘述。
本文阐述了多维视频侦查系统车辆和人脸信息检测识别的设计和实现技术,阐明了多个后台服务协作完成对视频车辆和人脸信息提取的机制。对于离线视频和在线视频,在任务执行过程,状态维护等方面都有不同的设计以适应其各自的特点。该系统在视频资源极其丰富的今天有着广泛的应用价值。
[1] 黄凯奇,陈晓棠,康运锋,谭铁牛.智能视频监控技术综述.计算机学报,[J]2015,38(6):1093-1118.
[2] 孙斌.智能视频监控技术及其主要应用.电子技术与软件工程,[J]2015(13):107-107.