基于FPGA的运动目标实时检测系统设计

2022-04-25 11:48:00刘汝卿朱精果
计算机测量与控制 2022年4期
关键词:差分像素阈值

刘汝卿,李 锋,蒋 衍,朱精果

(中国科学院 微电子研究所,北京 100094)

0 引言

随着我国安防产业以及民众安全意识的提升,安防市场规模迅速扩大,其应用领域从文博等特殊单位发展到金融、公安、交通、楼宇等周边产业。其中,安防监控领域在技术层面也已进入数字化、高清化和网络化时期,在应用层面也步入了社会化安防产品、民用市场层[1-3]。同时,越来越多的传感器探测技术应用到安防市场中,如分布式光纤传感系统、振动光纤、声音监听、红外报警、激光雷达、视频监控等,其中民用摄像头、监控器、报警器等产品得到了最广泛的普及,安防视频监控行业已进入了快速发展期[4-6]。

由于人工方式检索进行视频排查效率低下,并且几乎不可能实现实时有效监控,因此目标检测技术已成为当前安防视频监控领域中非常重要的研究方向之一[7-9]。目标检测的主要目的是从一个场景或者视频中定位出目标的位置或者跟踪其运动轨迹。目前目标检测研究手段有CPU处理、GPU处理器、AI智能芯片以及FPGA、DSP等。其中CPU处理器采用串行方式效率略低,GPU及AI智能芯片多采用深度学习网络框架,功耗大,开发难度大,成本高,适用于大组网、大互联场景[10]。本文针对民用甚至是家用安防视频相机系统,利用FPGA速度快、高性价比、内部资源丰富等优点[11-13],设计并实现了一套基于FPGA的目标识别系统。

1 系统设计

家庭用安防视频相机系统通常采用1或几个小型相机和图像处理平台,对入侵人或物进行实时目标识别,利用千兆网线传输,将视频实时显示在终端设备上,从而实现对家庭安全的实时监测,其总体结构如图1所示。

图1 安防相机系统框图

本文设计的基于FPGA的安防样机系统,主要由视频采集模块、图像处理模块、显示器及相关电缆辅材等组成。在待观测区位置安装完成系统后,HDMI线缆把监测处理完成后的视频图像实时传送到显示器中,从而完成对家庭安全的实时监测。

系统具体结构如图2所示,主要包括视频采集模块:CMOS OV7725摄像头,图像处理模块:128 Mbit外部存储器(SDRAM)、Altra公司Cyclone IV FPGA等和LCD液晶显示器等外围硬件。EP4CE6F17C8芯片拥有6 272个逻辑单元(LE),15个乘法器,256个引脚封装,满足设计需求。

图2 FPGA目标检测与识别系统框图

FPGA经过IIC总线配置CMOS相机参数,从而实现CMOS 摄像头采集外部图像信息,并将数据通过外部存储器SDRAM进行缓存。FPGA处理图像数据后通过显示器将目标识别结果输出。系统包括数据采集模块、灰度化处理模块、目标识别模块、SDRAM存储控制模块以及VGA实时控制模块。

2 目标识别系统设计

目前目标检测方法主要有:1)光流法,其原理为给图像中的每个像素点赋予一个速度矢量,图像上的点与三维物体上的点一一对应,利用运动物体的速度矢量与背景速度矢量不同的特性进行检测。但是此方法计算量大,抗噪性能较差, 无法满足实时性和实用性要求[14];2)背景差分法,较简单、直接,先将背景图保存,再利用所需图像与背景图像差别进行判断。但此方法中背景需随时间不定期变换,且噪声也是个不得不考虑的因素[15];3)帧间差分法,视频图像帧间具有连续性,运动目标的存在会让连续的帧与帧之间由明显的变化,利用该现象可提取图像中的运动区域, 此方法通过设定阈值可以快速检测出运动目标, 但帧间间隔的选取以及在相差过程中容易失掉运动目标的一些像素点, 但相对简单,实时性好,可在合适的应用场景中应用[16-17]。

2.1 数据采集模块

CMOS OV7725 是一款集成1/4英寸单芯片VGA相机及图像处理器的高性能传感器,具有640×480的感光阵列,其lens chief ray angle为25°,lens size为1/4″,帧频为60 fps,像素大小为6.0 μm×6.0 μm,成像面积为3 984 μm×2 952 μm,且能在-20~70 ℃范围内正常工作,满足民用监控市场的需求。其使用时先要对寄存器进行配置,包括采样画质、输出格式、曝光以及自动增益、自动曝光、自动对比度的模式选择。此处寄存器设置为640×480分辨率、RGB565格式视频输出。FPGA接收其连续两个像素时钟的8 bit数据,拼接得到完整的16 bit的RGB565信号。

图像数据采集模块的接口信号,如图3所示,coms_href 为摄像头行信号,coms_pclk 为摄像头的像素时钟,coms_pclk 为驱动时钟,两者频率一般相同,coms_data 就是8 bit的图像数据。即利用FPGA并行处理能力将两个8 bit像素数据拼接为rgb565 16 bit的图像数据。

图3 数据采集模块

2.2 灰度化处理

通常,视频图像采集后需要进一步的处理,才能满足后续目标检测识别的需求,即实现RGB565格式到YCbCr信号的转换。在灰度处理中,Y表示明亮度,值越大,颜色越白,Y越小,颜色越暗。如果输出的RGB的值都等于这个亮度Y的值,VGA显示的图像就成了黑白图像。其原理如下所示:

Y= 0.183R+ 0.614G+ 0.062B+ 16

CB= -0.101R- 0.338G+ 0.439B+ 128

CR= 0.439R- 0.399G- 0.040B+ 128

(1)

这里,由于FPGA不善于处理浮点数,因此将浮点数转为定点数,各个系数均扩大256倍,最后在计算完之后除以256,如公式(2)所示:

Y=(77*R+150*G+29*B)>>8

U=(-43R-85G+128B+128*256)>>8

V=(128R-107G-21B+128*256)>>8

(2)

同样,在FPGA里面,使用组合逻辑不能直接按上述公式(2)在计算,组合逻辑延时太大,导致时序不收敛,因此需要添加寄存器来切割流水线;利用FPGA并行处理的特点加速计算。这里分三级流水线处理:第一级流水线计算所有乘法;第二级流水线计算所有加法,把正的和负的分开进行加法;第三级流水线计算最终的和,若为负数取0。

2.3 目标识别处理

由于图像采集端与输出端不同步,帧差法需要缓存一帧的数据,若使用外部存储,则可以减少FPGA内部资源,本文设计的双端口SDRAM控制器,一侧读写端口用作帧缓存,另一端口用来缓存视频流,如图4所示。

图4 SDRAM控制器实现流程

首先,视频图像经过FPGA灰度化处理后,写入到FPGA的双口SDRAM控制器的接收端侧,存储当前帧视频图像数据,即从第二帧时刻开始两帧图像在设定阈值条件下做差分计算。但由于光照背景的变化以及阈值固定等原因,此时得到的差分后的二值图像会有很大的噪声。本系统去噪降噪主要采用形态学滤波法,直接去除面积较小的噪声点。然后求得目标范围的左上角和右下角像素坐标,与原始RGB图像叠加后重新写入到SDRAM2端口,此时VGA就可以显示处理后的图像的效果。为了提高运算速度,数据输入输出模块与SDRAM控制之间增加了数据缓存fifo模块,由于cmos相机数据率与FPGA时钟不匹配,为保证可实现突发模式读写操作,利用FPGA片上资源开辟了多个fifo缓存区,保证数据了实时性。

2.3.1 差分处理

目标差分法,顾名思义,是用差分方法进行目标识别,通过对视频图像中连续两帧,即将当前帧图像与前一帧图像做差分运算,从而获得目标轮廓。当监控市场中存在运动物体时,相邻帧之间在灰度上有明显差别,两帧相减,得到相对差分值,判断其是否大于某一阈值,进行图像二值化,从而确定监控图像中有无运动目标[18-19]。

如图4所示:视频数据写入sdram 写口1侧,做为缓存,通过控制信号rd1从sdram 读口1侧读数据,经过延时一帧后进行差分处理。本系统中设定阈值threshold为 15,大于阈值则认为时目标区域,设置为255,小于阈值则为0,阈值可以根据需要调节控制。另一路sdram2是当前的图像数据。

2.3.2 形态学滤波处理

形态学是一种以形态为基础对图像进行分析的数据方法,对图像先进行变换,以突出所需要的信息,使后续的识别工作能够抓住目标最本质的形态特征,包括膨胀、腐蚀、开运算、闭运算[20]。在FPGA中形态学滤波方式主要是实现腐蚀和膨胀以得到减少噪声的目的。首先对差分处理后二值图形进行腐蚀处理以去除小边界和孤立点;再进行膨胀处理,填充空洞。在去掉毛刺、孤立点和锐化角的同时,使目标轮廓变得光滑。

所谓腐蚀是对图像中目标的“收缩细化”过程,将图像中的高亮区域或白色部分进行缩减细化,其运行结果比原图的高亮区域更小。本次采用3*3窗口实现腐蚀。

膨胀将图像的高亮区域或白色部分进行扩张,其运行结果图比原图的高亮区域更大。从数学的角度是就将图像与计算核(也称锚点)进行卷积是通过结构元素的平移控制对图像中目标的“加长”或“变粗”过程,操作。

形态学滤波处理后,对运动目标的框选采用包围盒算法,设计包围盒得到上下左右 4点像素坐标,框出目标区域。通过行场信号,设计行列计数器,从而可以获取图像每个像素点的坐标信息,然后设计4个寄存器实时与行列计数器比较,从而实现对目标的框选效果。

3 系统验证

3.1 模块仿真验证

对各个模块进行Modelsim仿真验证,结果如图5~7所示。

图5 图像采集模块仿真波形图

图5是数据采集模块的仿真结果,其中cmos_data为实现输出RGB565格式,框中的数字“03”和“04”,coms_frame_data是将连续两个像素时钟的8 bit数据的拼接成16 bit的数据,如图中的数字“0304”,即实现数据采集模块中8 bit转16 bit的功能要求。

图6为差分处理模块的仿真结果,由框中数据可以看到data_next - data_cur = 8’d130 时,大于设定阈值15则输出数据post_img_Bit 为255,否则为0。即两帧图像的差分图像中通过阈值判断后,静止的物体值为0,而移动的物体保留。

图6 差分处理仿真图

图7为腐蚀膨胀处理仿真波形图,得到的是matrix_p11~matrix_p33 9个像素数据组成3×3 图像模板,这里通过行缓存设计(缓存了两行图像数据),延时两行数据后,得到完整的3×3 图像模板,即实现了噪声滤除和目标轮廓变得光滑。

图7 腐蚀膨胀仿真波形图

3.2 实验结果与分析

在FPGA黑金开发板上实现,并配以OV7725摄像头和VGA显示器,构建图像目标识别系统并验证基于FPGA的实时目标检测系统的实现效果。由于本系统针对视频监控系统中运动目标检测,因此采用3种不同大小的遥控模型进行实验,如图8所示。

图8 运动目标检测图

对象1是一辆体积为25 cm×7 cm的运动工程车模型,对象2是体积为25 cm×7 cm的运动工程车模型,对象3是0.5 cm×.057 cm的小汽车模型,对象4是170 cm×30 cm的汽车模型。从图8中可以看出,当小车运动速度匀速时,左图显示图像清晰,标识框边界,识别率100%;当小车速度很慢或者很快时,小车图像出现虚影,并且标识虚框比较明显,与虚影相对应。

为了更好地评判该系统性能,本系统对不同实验对象,在不同运动速度下进行8种实验,每种实验条件进行10次实验。采用10次取平均法,和控制条件变量法,通过采集30 fps的图像,验证本系统的性能。具体结果如表1所示。

表1 实验统计表序号

表1中,识别率表示框选面积与目标物体视觉面积的相对比值。比值100%表示本系统识别红色框选面积即为目标视觉面积,误差容忍度为±10%。由表1可以得出规律,在相同距离条件下,识别率随目标速度的降低而变低;同时相同大小的目标物体的识别率随距离的变小而升高。

为了进一步验证该系统的在室外环境下的性能,在夏天白天光照下,将该目标识别系统安装在居民室内正面向门口楼道,楼道总长度约50 m,尽头为一扇窗户。在此条件下,测试结果如表1所示,可以看出,该系统的探测效果与目标物体大小、运动速度和距离有关。在距离80 cm条件下,最小探测物体大小为0.5×0.57 cm2,速度大于0.08 m/s时,运动目标可准确识别。

4 结束语

应对目前民用家用安防系统中视频采集入侵目标自动检测需求,利用FPGA的高速并行处理能力,设计了一款运动目标实时识别样机系统,实现了CMOS相机运动目标检测功能。采用帧差法对运动目标进行实时处理,节省系统资源,运算方法简单、方便。从测试结果可以看出,在一定环境中,该系统可准确识别入侵运动物体,可处理帧频30 fps,640×480的图像,且实时性较好。值得一提的是,该系统可扩展性较强,可根据应用需求搭配分辨率更高的摄像头,可采用多帧叠加方式增强识别效果,因此具有广阔的应用空间。

猜你喜欢
差分像素阈值
赵运哲作品
艺术家(2023年8期)2023-11-02 02:05:28
像素前线之“幻影”2000
数列与差分
小波阈值去噪在深小孔钻削声发射信号处理中的应用
“像素”仙人掌
基于自适应阈值和连通域的隧道裂缝提取
比值遥感蚀变信息提取及阈值确定(插图)
河北遥感(2017年2期)2017-08-07 14:49:00
室内表面平均氡析出率阈值探讨
高像素不是全部
CHIP新电脑(2016年3期)2016-03-10 14:22:03
基于差分隐私的大数据隐私保护