基于图像识别的人体目标检测传感器模块设计*
2020-03-08王国荣张伟光余昌筠
王国荣,张伟光,杨 旭,余昌筠
(哈尔滨师范大学)
0 引言
高校教室通常采用开方式管理,学生可以自主选择教室进行自习,照明设备通常由学生自主管理,教室经常会出现“长明灯”现象.据统计,高校教室占据整个校园总电量的40%以上,按照《建筑照明设计标准GB50032-20》规定,教室的照明功率密度为9 W/m2,教室的大小标准尺寸为12 m×8 m,每天每个教室的用电时长假设为12 h,每学年按照270 h计算,以一个高校200间教室为例,按照每年节电率平均30%计算,节约电费大约为15~20万人民币[1].照明节电不仅能节省大量能源还能够节省大量资金.
目前高校主要通过热释电红外传感器模块检测教室区域内是否有人体存在,控制灯具开启和关断.热释电红外传感器模块分为三部分:菲涅尔透镜、热释电红外感应探头、信号处理电路[2].其中,菲涅透镜将人体发出的红外线聚焦到热释电红外感应探头上来增大感应距离,并将探测区分为交替变化的明区和暗区[3].当人体处在暗区中,无论人体如何动作,传感器都不能检测到人体存在.只有人体在明区和暗区之间移动,热释电敏感元感应到红外线的变化才能够产生感应电压,经过信号处理电路形成触发信号.另外,人体在明区和暗区之间的移动速度越大,输出电压越大.人体在看书、学习时,身体动作幅度很小,无法在视区之间形成有效的运动,也可能人体处于暗区中,会造成该模块对检测区域内有无人体进行误判,当人体动作幅度大一点,又会产生控制信号输出.在教室照明灯控制中,误判所造成的非正常开启和关断不仅影响学习和办公,也会影响灯具寿命[4].
针对上述问题,该文提出利用图像识别并结合热释电红外技术,对检测区内是否存在人体进行检测、判断,达到了人在灯亮、人走灯灭的效果.
1 模块总体设计
目标检测传感器模块原理框图如图1所示,主要由五部分组成:热释电红外传感器部分、OV7725摄像头部分、外部SRAM、STM32主控部分、通信接口部分.热释电传感器部分主要检测动态人体目标、OV7725部分检测静态、准静态人体目标,STM32主控部分主要负责对采集的图像进行运算、采集热释电传感器触发信号、与外接设备进行通信.由于图像数据占据内存较大,该设计中使用外部SRAM对图像处理算法的数据进行存储.该模块外拓了USART、IIC、SPI、CAN、IO以及无线通信接口,方便用户拓展使用.
图1 目标检测传感器模块原理框图
2 目标检测算法
该文选用帧差分法、背景差分法来判定人体是否存在于检测区域内,差分算法涉及到图像处理技术包括灰度化、中值滤波以及二值化.帧差分法能够检测出人体微小动作变化,但是当人体处于静止状态时需要结合背景差分法来进行判定.倘若检测区域内有面积比较大的杂物,需要结合两种方法与定时器多次判定来区分杂物和人体.
2.1 帧差分、背景差分法
帧差分法主要是对视频中相邻帧或者是相隔一段时间的两帧进行差分运算,如公式(1)所示,b(x,y,t)为当前视频帧,b(x,y,t-i)为前i时刻的视频帧,p1(x,y,t)为差分后的图像,T为二值化阈值,若差分图像中某一位置像素值大于阈值T,则为前景,否则为背景[5].t时刻的帧差分图像如图2所示,从帧差分图像可以看出人体处于准静止状态.通过设定阈值T1,若差分图像中白色像素点总数大于阈值T1,则表明人体处于准静止或者运动状态,若小于阈值T1,则表明人体处于静止状态.
(1)
(a) t时刻的图像 (b) t-i时刻的图像 (c)帧差分图像图2 帧差分法图
背景差分法与帧差分法类似,不同之处在于背景差分法采用当前帧图像与背景图像进行差分,在背景差分法中,关键部分是背景的更新[6].
公式(2)为t时刻的背景差分表达式,设b(x,y,t)为t时刻的视频帧,a(x,y)背景图像,p2(x,y,t)为差分后的图像,T为二值化阈值.图3为背景差分法图,系统将判定为检测区域内无人时刻的图像作为更新的背景图像,统计图3背景差分图像中白色像素点总数并与阈值T2比较,白色像素点数目大于T2时可以判定人体存在于检测区域内.
(2)
(a)当前视频帧 (b)背景图像 (c)背景差分图像 图3 背景差分法图
当检测区域内有面积较大的杂物,需要进行背景差分、帧差分法来判定,背景差分法和帧差分法交替判定三次来区分人体或者杂物,详细流程在软件设计部分进行阐述.
2.2 图像处理
摄像头采集到的图片需要进行预处理,减少噪点对数据处理的影响,减轻处理器的运算负担.图像灰度处理主要有分量法、最大值法、均值法、加权均值法几种方式[7],采用加权均值法能够得到更好的灰度图像[8],该文选用加权均值法对采集的图像进行灰度处理,加权均值公式如(3)所示:
Gray=0.114B+0.578G+0.299R
(3)
图像采集过程中会存在椒盐噪声,该文利用中值滤波去除椒盐噪声,选用的模板为3×3模板,中值滤波不仅能够对椒盐噪声起到抑制的作用,而且能够有效的将图片边缘信息进行保留,图4为中值滤波示意图.
(a)加椒盐噪声的图像 (b) 中值滤波的图像图4 中值滤波图
该文需要对差分后的图像进行二值化,为了减小前景与背景的误判,采用自适应阈值算法对差分图像进行二值化,二值化图如图5所示.
(a)帧差分图像 (b)二值化后的图像图5 二值化图
3 硬件电路设计
硬件电路主要包括图像采集电路、热释电红外传感器电路、外部SRAM以及通信接口电路[9].该文选择的芯片为STM32F103ZET6,其最高频率可达72MHz,自带了64K字节的SRAM,因该文涉及到图像算法,存储一张320×240图像数据就需要75K的内存,所以需要将图像数据
在外部SRAM进行存储.
3.1 图像采集电路设计
图像采集电路OV7725图像传感器,有效像素为30W.直接利用STM32的IO口抓取数据困难,非常耗费处理器资源,因此该文配合FIFO芯片(AL422B)对图像数据进行缓存.图6为图像
图6 图像采集电路
采集电路,STM32的PG13、PD3分别与OV7725的SDA、SCL引脚相连,用来配置OV7725内部寄存器,STM32的PB3引脚控制U2是否将OV7725采集到的数据缓存到FIFO.FIFO的数据输出位与STM32的PC0-PC7相连,STM32可通过控制PG14、PG15引脚对缓存数据进行读取.
3.2 外部SRAM电路设计
该文选用ISIS公司生产的IS62WV5126静态内存芯片作为外部SRAM,内存有1M字节,外部SRAM电路图如图7所示,该芯片与STM32的FSMC(灵活的静态存储控制器)进行连接[10].将I/O0-I/O15、A0-A18、OE、WE、CS、UB、LB与STM32的FSMC接口的D0-D15、A0-A18、OE、WE、CS、UB、LB连接,选用FSMC的存储块区1的片选3来控制IS62WV5126.
图7 IS62WV5126电路图
3.3 红外传感器电路设计
红外传感器电路选用BISS0001芯片,其中内置二级运放,通过第一级运放将信号进行放大,耦合到第二级将信号再次放大,同时将信号抬高VDD信号的一半,然后进入COP1、COP2双向鉴幅器进行比较.当电压幅度高于COP1、或者低于COP2时,则输出触发信号.A引脚可以配置触发、不可触发两种模式.STM32的PA1引脚与VO(控制信号输出引脚)相连,STM32通过读取PA1电平来决定是否开启摄像头采集图像,电路设计如图8所示.
图8 红外传感器电路图
3.4 通信接口电路
该模块设置了丰富的通信接口:WIRLESS无线接口、USART、IIC、SPI、CAN、IO接口,用户可以根据自己的需要选择接口.外设接口电路如图9所示.在CAN通信接口中,选择TJA1050数据收发芯片.
图9 外设接口电路
4 软件设计
该文通过背景差分结合帧差分法以及定时器延时判定检测区域内是否存在人体.将外部SRAM划分出4个区:SRAM0、SRAM1、SRAM2、SRAM3,每个区域占据75K字节,SRAM0区存储当前帧图像数据,SRAM1区存储从FLASH中读出的背景图像数据,SRAM2区存储图像算法处理后的数据,SRAM3区存储帧差分法中上一帧图像数据.
系统程序流程图如图10所示,首先对外部SRAM、OV7725进行初始化,初始化目标标志位flag=0,判断次数I=0.热释电传感器的输出口与STM32的PA1引脚相连,将PA1引脚设置为浮空输入模式.STM32通过读取PA1引脚的电平来判定是否有目标进入检测区域内.当读取到高电平,表明有人体进入检测区,系统将判定结果通过数据流和高电平的方式传送到通信接口.
图10 系统程序流程图
当目标标志位flag为1时,定时器开启并设定时间H,每隔H时间采集一次图像进行帧差分运算,将前一帧图像数据保存到外部SRAM3区.当前帧图像数据存放外部SRAM0区,外部SRAM3区数据与外部SRAM0区当前帧图像数据进行帧差分运算、图像处理,将处理后的图像数据存放在外部SRAM2区.对处理后的图像中白色像素点进行统计,当白色像素点总数大于阈值T2则表明有人体存在.若图像中白色像素点总数小于阈值T2,表明人体处于静止状态,将flag置0进行背景差分判定.采集当前帧图像数据到外部SRAM0区,并读取FLASH中的背景图像数据到外部SRAM1区,对当前帧和背景图进行背景差分运算、图像处理,将处理后的图像数据存储在外部SRAM2区内.对处理后的图像中白色像素点进行统计并且与设定的阈值T1进行比较,若小于设定的阈值,则表明人体离开检测区,也可能是外界环境因素对热释电传感器造成的误触发,将判定结果通过数据流和低电平的方式传送到通信接口.若大于阈值T1,则可能是面积比较大杂物或人体,需要结合帧差法判定.每当上述过程完成一次,判定次数加一,判定次数I=3时,表明用背景差分、帧差分法各判定了三次.若没有达到阈值T2,但是达到了阈值T1,则表明区域内是面积比较大的杂物,而不是人体,判定结果通过数据流和低电平的方式传送到通信接口.当判定为没有人体存在时,采集当前图像并更新初始背景到FLASH中,关闭摄像头.
5 总结
该文设计的传感器模块可以对检测区域内是否存在人体进行判定,结合图像识别技术和热释电红外技术来判定人体是否进入、停留和离开检测区;采用背景差分、帧差分法结合定时器可以有效的区分检测区域内人体与杂物;图像检测方法可以有效避免热释电传感器对被控设备频繁的开启和关断;通过设定图像阈值T1、T2以及定时器时间H可以改变该模块的检测精度,两种检测技术的有效结合,增加了区域内人体目标检测的可靠性和准确性;该模块外拓了丰富的通信接口,适用范围更广.该模块可以应用于高校照明节能系统中,达到人在灯亮、人走灯灭的效果,还可以用于警情判定中,来保障财产安全.