多特征检测人形识别安防摄像机设计
2021-12-21周利杰郝瑞林蔡国庆孙迎建
周利杰,郝瑞林,蔡国庆,孙迎建,刘 辉
(1.河北水利电力学院机械工程系,河北省沧州市黄河西路49号 061001;2.河北省工业机械手控制与可靠性技术创新中心,河北省沧州市黄河西路49号 061001)
智能视频监控采用机器视觉技术,在不需人为干预的情况下实时分析视频图像,并提取关键信息,实现对场景中目标的定位、识别和跟踪。在视频监控过程中,最重要的环节就是进行人形探测。快速可靠的人形探测方法是智能视频监控的核心。常用的人形探测方法有红外报警法[1]、微波探测法[2]、机器视觉法等[3]。红外报警法和微波探测法对人体和动物都具有敏感性,探测误差较高。机器视觉法能够利用一定的人体轮廓成像特征,并通过图像处理,最终发现和定位人形目标,具有较高的鲁棒性和实用性。基于机器视觉的人形识别技术是机器视觉、图像处理以及计算机技术的融合,是安防和监控系统的重要研究方向,能够应用于安防监控、人机交互、交通控制、目标跟踪等多个领域。
目前较为成熟的人形识别技术有卡尔曼滤波算法[4]、YOLO(You Only Look Once)算法[5]、粒子滤波算法[6]、相关滤波算法[7]、深度学习算法[8]、haar特征算法[9]等。其中,卡尔曼滤波算法、YOLO算法、粒子滤波算法、相关滤波算法、深度学习算法由于计算量较大,通常需要配备运算速度较快的计算机平台,不适合集成到体积小、处理能力低的嵌入式平台中;Haar特征算法数据处理量较小,能够集成到嵌入式平台中[10]。人形识别准确率是评价人形识别性能的重要指标,常规的特征识别方法只能够识别单一特征,当人形目标身体姿态变化后会导致准确率较低。本文采用haar特征+adaboost算法,并结合OpenMV(Open Machine Vision)机器视觉模块,设计了一种多特征组合人形识别方法,能够识别人形的多个特征,提高人形识别的准确率。快速跟踪性能也是评价人形识别跟踪性能的重要指标,跟踪性能较差会导致丢失人形目标的现象发生。本文采用PID控制算法实时控制步进电机和舵机,能够快速跟踪视野内的人形目标。
1 系统整体方案设计
人形识别安防摄像机主要由OpenMV机器视觉模块、录像模块、WiFi模块、步进电机、步进电机驱动器、舵机、手机端APP组成。系统组成方案如图1所示。基于haar特征+adaboost算法,提出了一种多特征检测方法,用于识别视野内的人形特征,并定位人形特征在视野内的位置,同时计算出人形特征的中心点坐标和视野中心与人形特征中心点的差值。随后,OpenMV机器视觉模块采用PID算法将差值转换为驱动步进电机和舵机的驱动信号,从而控制步进和舵机运动,带动摄像机追踪视野内的人形。当OpenMV机器视觉模块检测到视野内的人形后,发出控制信号开启录像模块,录像模块将录制好的视频存储到内存卡中;当OpenMV机器视觉模块未检测到人形时,发出控制信号关闭录像模块。人形识别摄像机的航向角度由步进电机驱动改变,可实现360°跟踪拍摄。人形识别摄像机的俯仰角度由舵机驱动改变,可实现180°跟踪拍摄。
图1 系统组成方案图Fig.1 System composition scheme diagram
为更方便地使用人形识别摄像机,本文开发了手机端APP。通过APP不仅能够远程下载内存卡中的录像文件,而且可以控制人形识别摄像机的工作模式。摄像机有3种工作模式,分别为:手动模式、搜索模式和跟踪模式。切换为手动模式时,摄像机不具有人形跟踪功能。摄像机的拍摄角度由使用者通过APP手动调整。切换为搜索模式时,摄像机能够在360°视野自动搜索人形,搜索到人形后停止搜索,并进行跟踪摄像。切换为跟踪模式时,摄像机停留在一个初始的固定观测角度,当视野内发现人形后,进行跟踪摄像,人形特征丢失后返回初始的固定观测角度。其中,工作在搜索模式时,步进电机控制摄像机以30°的步长完成360°视野搜索。舵机控制摄像机以36°/s的速率实现0~180°视野内目标搜索。摄像机的运动路径如图2所示。摄像机整体工作流程如图3所示。
图2 搜索模式运动路径Fig.2 Search mode motion path
图3 摄像机整体工作流程图Fig.3 The overall work flow chart of the camera
2 人形识别摄像机结构设计
人形识别摄像机要求能够在360°的全范围视野内进行跟踪拍摄,所以要求摄像机不仅能够360°旋转,而且能够实现俯仰运动。根据摄像机的功能要求,本文进行了摄像机的结构设计,设计结构如图4所示。
图4 人形识别摄像机结构图Fig.4 Humanoid recognition camera structure diagram
摄像机的结构主要由底座、步进电机、航向支架、电池仓、电池盖、舵机、前盖、后盖和底盖组成。步进电机的输出轴与底座固定连接,步进电机的机身内嵌在航向支架内部。当步进电机转动时,由于底座是固定的,即可实现航向支架的360°旋转。航向支架上设计有电池仓,可以容纳锂电池。前盖、后盖和底盖装配在一起形成可俯仰运动的摄像机壳体结构。舵机壳体与航向支架固定连接,舵机臂与摄像机壳体结构固定连接。当舵机转动时,即可实现摄像机壳体结构的俯仰运动。摄像机壳体结构内部装配OpenMV机器视觉模块、摄像头、录像模块、WiFi模块、步进电机驱动器。结构参数如表1所示。
表1 摄像机结构参数
3 人形识别摄像机控制系统设计
本文基于haar特征+adaboost算法,提出一种多特征人形目标识别方法,并将该方法在OpenMV机器视觉模块中实现。本文通过OpenCV(Open Source Computer Vision Library)计算机视觉库训练人形正负样本,得到XML类型文件,再将其转换为OpenMV机器视觉模块能够使用的cascade类型文件。进而,OpenMV机器视觉模块能够在图像视野内实现人形目标识别,并定位人形目标以及计算出人形目标的中心点坐标。人形目标中心点坐标和图像视野中心点的差值再通过PID算法生成控制步进电机和舵机的信号,从而驱动摄像机航向运动和俯仰运动。
3.1 多特征人形目标识别方法
本文采用haar特征+adaboost算法进行人形目标识别。haar特征又称为haar-like特征,该算法是一种常用的机器视觉算法,主要包括:边缘特征、线性特征、中心环绕特征、对角线特征[11],如图5所示。haar特征将白色矩形和黑色矩形的像素差作为特征值,计算方法如公式(1),通过不同的特征值描述图像中灰度值的变化规律,完成对图像中目标的检查和识别。
图5 haar特征Fig.5 haar features
(1)
式中,RecSum(ri)代表矩形ri内像素点的灰度值之和;ωi表示像素点的权重,白色矩形的权重为1,黑色矩形的权重为-1。
在实际应用中,为更加高效的计算出haar特征,常采用积分图法解决重复计算和计算量大的问题[12]。积分图像的计算公式如公式(2)所示。使用积分图法只需进行一次积分运算,构造出图像的积分图,之后即可通过简单的查表和加减运算既可以得到任何子窗口的haar特征值[13]。矩形区域积分图像法计算公式如公式(3)所示。
(2)
RecSum(r)=ii(x-1,y-1)+ii(x+w-1,
y+h-1)-ii(x-1,y+h-1)-
ii(x+w-1,y-1)
(3)
式中,ii(a,b)表示积分图像数值;i(x,y)表示原始图像(x,y)处的像素灰度值。
采用单一特征进行人形识别时,误差率较高[14],因此本文采用adaboost级联算法将单个弱分类器组合训练为强分类器。该算法的基本步骤为:训练样本(x1,y1),(x2,y2),…,(xn,yn),其中xi表示第i个人形,yi为1时表示人形,为0时表示非人形;初始化样本权重Ot,j为n-1,并进行归一化权重计算,如公式(4)所示;对于每个特征,训练出对应的弱分类器hj(x),并计算弱分类器的权重误差,如公式(5)所示;将弱分类器进行组合,并更换概率分布,如公式(6)(7)所示;最终生成强分类器,如公式(8)(9)所示。以上步骤可概括为图6所示的过程。
图6 采用adaboost级联分类器检测人形过程Fig.6 Humanoid detection process by using adaboost cascade classifier
(4)
(5)
(6)
(7)
(8)
αt=-logβj
(9)
人形识别摄像机在工作过程中,人员闯入摄像机视野时的身体姿态是不确定的,为了更好的识别人形目标,本文提出一种多特征组合人形识别方法,通过构建了3分类器,每个分类器采用25级级联,分别识别人形正身、人形背身和人形侧身。当任何一个分类器识别成功即认为识别到了人形目标,多特征人形检测方法工作原理如图7所示。在构建样本数据集过程中,每个分类器收集1500张正样本和3000张负样本,样本主要来源于实际采集和网络图片。样本收集完成后,统一进行归一处理,批量处理为24×24像素灰度图片。灰度化处理时,采用公式(10)进行处理,权重值0.3、0.59和0.11为人眼对RGB颜色的敏感程度[15]。
图7 多特征人形检测方法工作原理Fig.7 Working principle of multi-feature humanoid detection method
0.11B(x,y)
(10)
本文通过OpenCV计算机视觉库中的opencv_traincascade.exe进行级联分类器的训练,并生成.xml类型文件,再通过Python脚本转换工具cascade_convert.py转换为.cascade文件,并将文件存储到OpenMV机器视觉模块的内存卡中,以供OpenMV机器视觉模块相关函数的调用。通过对OpenMV机器视觉模块的编程,即可实现视野内的人形目标识别和定位,识别情况如图8所示。识别帧率(FPS)可以维持在20~27Hz,能够满足摄像机的检测需求。
图8 人形目标识别和定位Fig.8 Humanoid target recognition and positioning
为了验证多特征组合人形识别方法的鲁棒性和实时性,将多特征组合人形识别方法和单特征人形识别方法进行对比实验。实验过程中,将两种人形识别方法对准同一段视频录像,识别视频中的人形目标。同时输出并记录两种人形检测方法能够正确识别人形的帧数。实验结果如表2所示。
表2 识别准确率对比
由实验结果可知:多特征组合人形识别方法准确率比单特征人形识别方法高27.3%,这主要因为单特征人形识别方法只能够识别人形正身特征,而多特征组合人形识别方法能够识别人形正身、背身和侧身,当人形目标姿态变化后,单特征人形识别方法无法有效识别人形特征,同时显示出多特征组合人形识别方法具有较好的鲁棒性和实时性。
3.2 摄像机追踪摄像运动控制
为了更加精准的追踪人形目标,采用PID算法控制步进电机和舵机的运动。步进电机采用两相四线步进电机,步距角1.8°,12V供电。步进电机驱动器采用A3967驱动器,8细分。舵机采用SG90舵机,5V供电。在人形目标追踪时,人形目标中心点坐标与视野中心点坐标的差值作为PID控制算法的输入,经PID算法输出步进电机的驱动步数和舵机的角度。为了避免步进电机和舵机的频繁动作,分别设置了3个像素的差值阈值,当中心点差值大于3像素时才进行PID运算。控制流程如图9所示。
图9 人形目标跟踪流程图Fig.9 Humanoid target tracking flowchart
为测试人形目标的追踪性能,本文开展了目标追踪测试。首先,调整摄像机的角度,将待识别的人形目标调整到摄像头视野右下角的位置;然后,开启摄像机的人形目标识别和追踪功能;最后,输出人形目标和视野中心的的差值数据。步进电机和舵机的差值波动测试曲线如图10所示。测试结果表明:步进电机和舵机能够快速跟踪人形目标,追踪相应时间不超过1.7s。
图10 中心点差值波动曲线Fig.10 Center point difference fluctuation curve
3.3 人形识别摄像机录像模块与WiFi模块
录像模块和摄像头安装在摄像机内部,在步进电机和舵机的带动下实时对准人形目标,实现人形目标的录像功能。摄像头采用索尼IMX322,200万像素,最低照度可达0.01lux。录像模块采用NOVATEK公司的NT96658芯片,该芯片最高频率可达432MHz,内置1Gb DDR3 SDRAM,可支持500万像素CCD或者CMOS图像传感器,支持高速串口接口和SD卡接口,能够满足本文的功能需求。摄像头和录像模块如图11所示。
图11 摄像头和录像模块实物图Fig.11 Physical map of camera and video module
为使摄像机具备远程控制和传输视频功能,人形识别摄像机中设计有WiFi模块。WiFi模块采用RTL8189芯片。该芯片是一款高性能、低功耗、体积小SDIO接口无线模组,符合IEEE802.11N标准,支持IEEE 802.11安全协议,能够快速、方便的与无线设备互相联通,支持64/128位WEP数据加密,支持WPA-PSK/WPA2-PSK安全机制,无线传输速率高达150Mb/s,WiFi模块如图12所示。
图12 WiFi模块实物图Fig.12 Physical map of WiFi module
3.4 手机端APP设计
为方便用户使用人形识别摄像机,本文开发了手机APP。通过WiFi将手机APP与摄像机连接起来,实现控制命令和视频流的传输。APP使用Android Studio开发平台,采用Java语言开发。APP设计有WiFi登录、工作模式选择、摄像机运动控制、视频下载、录像控制等功能,运行主界面如图13所示。通过模式选择按键可以设置摄像机在手动模式、搜索模式和跟踪模式之间切换。通过界面中间偏右侧的方向按键可以调整摄像机的航向和俯仰角度。通过最右侧的功能按键可以下载录制在内存卡中的视频文件,通过设置按键可以设置摄像机的单文件录像时长、摄像机名称、WiFi密码等功能。通过最底部的按键可以设置画面亮度、拍照、暂停/开始录像、播放音量等功能。
图13 APP运行主界面Fig.13 APP running main interface
4 结语
本文设计了一款基于机器视觉的人形识别安防摄像机。基于haar特征+adaboost算法提出了一种多特征组合人形识别方法,能够识别人形正身、侧身和背身,与单特征人形识别方法相比,识别准确率提高了27.3%,并且人形识别帧率在20~27Hz之间,满足安防摄像机对鲁棒性和实时性的要求。步进电机和舵机采用PID算法实现人形跟踪功能,经测试,追踪时间不超过1.7s,满足安防摄像机对跟踪快速性的要求。利用Android Studio开发平台开发了手机APP。具有体积小、功能丰富、操作便捷、性价比高的优点,适合应用于家庭、商场、仓库、病房等场所。