基于FPGA图像处理技术的人脸检测
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
人脸检测与识别技术已逐渐应用于支付、开锁、公共安全等领域。
针对人脸检测与识别,传统的PC 机存在不方便携带、体积大以及对高速的图像信号难以实时处理等问题,在某些要求装置体积小、处理速度快等场合发挥不了作用。
FPGA 是以硬件描述语言为基础的硬件开发平台,具有并行性、高速性、稳定性、体积小等特点,被越来越广泛地运用到数字图像处理领域中。
随着技术的不断突破,FPGA 的集成度的不断提高,性能的不断加强,逻辑资源不断增加,利用FPGA 进行图像处理逐渐成为一种新的发展趋势。
本文利用FPGA 高速和并行处理能力在图像处理中的应用,设计了一套人脸的实时检测系统。
1系统设计
系统总体结构如图1所示,主要包括CMOS 摄像头、外部存储器(SDRAM )、LCD 液晶显示器外围硬件以及FPGA 图像处理模块等。
图1中虚线框中内容为FPGA 图像处理模块及控制外围硬件的FPGA 内部设置。
图1系统结构图
1.1FPGA 处理器
考虑到系统所需要的资源以及开发成本,选择Altera 公司Cyclone Ⅳ芯片EP4CE10F17C8作为图像处理控制核心。
该芯片拥有10320个逻辑单元(LE ),30个M9K 存储器,179个I /O 口和2个PLL 。
1.2CMOS 摄像头
采用用Omnivision 系列CMOS 摄像头OV5640,图像像素
大小为2592×1944,最高可支持500W 像素输出,同时可支持6种格式输出,最高支持VGA (640×480)90fps 格式输出。
本系统选用的LCD 屏幕分辨率为800×480,因而选择输出格式为VGA640×480。
1.3SDRAM 存储器
采用Micron 公司的SDRAM W9812G6KH 作为图像信息存储以及跨时钟域的信息交互。
SDRAM 存储大小为128Mbit ,该芯片最高运行频率166MHz [1]。
1.4LCD 液晶显示器
采用5寸TFT 显示模块,分辨率大小为800×480。
在使用时将24位颜色数据转化为16位数据,通过排针接口与FPGA 开发板相连。
1.5系统工作流程
如图1所示,FPGA 经过SCCB 总线(即串行相机控制总线)配置CMOS 摄像头OV5640所需的参数,设置CMOS 摄像头数据输出为8bti RGB 格式,经过串并转换,将8bit 数据格式转换为16bit 数据格式,从而实现CMOS 摄像头采集外部图像信息。
由于CMOS 摄像头模块和SDRAM 控制器模块工作频率不同,采用异步FIFO 实现跨时钟域的数据处理;SDRAM 控制器模块通过操作命令和时序控制SDRAM ,实现数据的存储。
FPGA 图像处理模块对获取的图像进行中值滤波,以滤除椒盐噪声,经过灰度化转换为灰度图,以便进行人脸定位;通过RGB 与YCbCr 格式转化,并设定相应的阈值,实现图像二值化;采用形态学滤波和积分法,实现人脸定位;最后通过LCD 显示控制模块将检测结果输出至LCD 显示屏。
2图像处理
采集的视频图像在FPGA 中通过中值滤波、YCbCr 格式转换、灰度变换、肤色二值图形态学滤波和积分法的处理,实现人脸定位,用于检测。
2.1中值滤波
中值滤波是将数字图像中一个点的值用该点邻域中各点的中间值代替[2],以中间值作为输出结果,实现平滑噪声和消除椒盐噪声。
本系统中,邻域算子采用3×3模板,通过添加Shift Register IP 核(图2所示为Shift Register 移位存储示意图),位宽为16bit ,深度为640,缓存两行数据,并与当前行形成3×3
基于FPGA 图像处理技术的人脸检测
Face Detection Based on FPGA Image Processing Technology 李
钢
李
静(中国科学技术大学精密机械与精密仪器系,安徽合肥230026)
摘要:利用FPGA 高速和并行处理等特性设计了一套人脸检测系统。
该系统可对拍摄的人脸图像进行采集、存储、处理和显示等。
针对采集的视频图像,采用了快速中值滤波、YCbCr 格式转换、灰度变换、肤色二值图形态学滤波和积分的处理方法,实现了人脸准确快速检测。
关键词:FPGA ;图像处理;人脸检测
Abstract 押In this paper熏FPGA characteristcs of high speed and parallel processing are used to design a face detection system.The system can collect熏store熏process and display the captured face images.Methods such as fast median filtering熏YCbCr format conversion熏grayscale transformation熏skin color binary image morphological filtering熏and integration processing熏are used to deal with the captured video images熏accurate and fast detection of human faces is achieved.
Keywords 押FPGA熏image processing熏face
detection
基于FPGA 图像处理技术的人脸检测
84
《工业控制计算机》2020年第33卷第3期像素阵列,从而进行中值滤波算法[3]。
图2Shift Register 移位存储示意图
中值滤波算法是将3×3区域内9个图像数据,进行排序比较,最后取中间值输出的。
一般常用的方法是冒泡排序法,通过逐次比较,需要比较36次,速度比较慢。
本系统充分发挥FPGA 并行运算的优势,采用一种快速中值滤波的方案。
其计算原理如下:首先将3×3方形区域内9个数据按照行数分三组(L1、L2、L3),每组3个数据按照大小进行排序,分别得到每一行的max 、mid 、min ;然后将每行的max 、mid 、min 合并为新的一组并比较大小,分别找出max 组中的最小值max_min ,mid 组中的中间值mid_mid ,min 组中的最大值min_max ;最后,将这三个数据进行比较,取三者中间值作为该邻域内的中值滤波结果。
每一步操作需要耗费一个时钟周期,进行3个数据排序时需要比较三次,经过3个时钟周期和20次比较就能得出比较结果,大大提高了中值滤波的速度。
快速中值滤波流程如图3所示。
图3中值滤波流程图
2.2格式转换
图像在YCbCr 空间中,肤色受亮度信息影响最小,因而以YCbCr 空间为肤色检测模型。
摄像头输出的数据格式一般是RGB 格式,采用浮点数运算算法进行图像数据格式空间转换。
转换的公式如下:
Y=0.257×R+0.564×G+0.098×B+16(1)Cb=-0.148×R-0.291×G+0.439×B+128(2)Cr=0.439×R-0.368×G-0.071×B+128
(3)
由于FPGA 不能进行浮点小数计算,需要通过移位的方式将数据放大256倍,即向左移动8位,相应的数据寄存器位宽也变大,以避免数据溢出。
在进行浮点数运算时,输入数据到输出数据共有3个clock 的时延。
第一个时钟周期计算所有的乘法运算;第二个时钟周期计算所有的加法运算,正负数分别进行相加;第三个时钟周期计算最终的代数和,如果代数式最终结果为负数则取0。
最后将计算后的数据向右移动8位,将放大后的数据还原。
YCbCr 空间中图像亮度和色度分离,Y 代表亮度信息,Cb 和Cr 代表色度信息[4]。
RGB 空间转换到YCbCr 空间后,需要通过人脸的肤色值在色度空间的分布进行图像分割,因此肤色模
型的精度直接影响图像分割后的效果。
本系统采用范围性的分割模型,在阈值范围之内的视为肤色区域,在阈值范围之外的视为是非肤色区域。
经过大量的人脸肤色统计,选用的CbCr 阈值范围如下:
100≤Cb ≤125,130≤Cr ≤160
(4)
2.3灰度图转换
将RGB 彩色图转换为灰度图采用了浮点数算法。
方法同上一小节,采用移位的方式进行运算,具体的灰度转换公式如下:
Gray=R×0.299+G×0.587+B×0.114
(5)
2.4形态学滤波
形态学滤波是一种非线性的处理方式,可以抑制脉冲干扰和随机噪声,同时又能在一定程度上保持图像的边缘细节信息。
形态学滤波基本运算有膨胀、腐蚀、开运算和闭运算[5]。
其中开运算是先腐蚀后膨胀,闭运算先膨胀后腐蚀[6]。
开运算可以消除一些孤立的点,平滑物体轮廓;闭运算可以消除内部孔状噪声,使边界更加平滑。
基本运算公式如下:设f (x ,y )和g (i ,j )是两个离散函数,位于位置离散空间。
f (x ,y )是图像在点(x ,y )处的像素灰度值,g (i ,j )为形态学滤波算子,则g (i ,j )对于图像f (x ,y )的膨胀和腐蚀公式分别如下:
(f ⊕g )(x ,y )=max [f (x-i ,y-j )+g (i ,j )]
(6)
(f Θg )(x ,y )=min [f (x+i ,y+j )+g (i ,j )](7)g (i ,j )对于图像f (x ,y )的开运算和闭运算公式如下:
(fog )(x ,y )=[(f 选g )⊕g ](x ,y )(8)(f ·g )(x ,y )=[(f ⊕g )选g ](x ,y )
(9)
本系统对肤色建模后的二值图进行形态学开运算,在滤波过程中选择如下3×3八邻域模板:
g=111
111
111
()
由于在进行形态学滤波时,需要形成连续三行的数据做集合运算,而要实现这一形态学滤波检验过程,要构造一个3×3窗口,同样添加Shift Register IP 核,图像尺寸大小是640×480,故选择的数据深度是640。
采用了行缓存和列延迟,行缓存是保证FPGA 在同一个clock 时钟内有三行数据,列延迟是采用移位寄存器的方式,以构成3×3算子窗口。
本系统采用如上的形态学滤波模板,对图像进行腐蚀滤波,过程如下:当3×3窗口算子内的9个图像数据值均为1时,腐蚀操作后的输出值为1。
依次遍历整个图像,最后会得滤波后的二值图像。
与腐蚀滤波相反,膨胀滤波可以消除图像内部小的空洞,本系统采用跟腐蚀同样的模板,但是膨胀操作要求滤波窗口内只要有一个数据值为1,该像素值即为1。
经过形态学滤波处理后,人脸图像处理的结果如
图4所示。
2.5积分法
对图像依次进行中值滤波、格式空间转换、灰度转换和形态学滤波后,需要在肤色二值图中提取目标人脸区域,剔除非人脸区域。
这里将人脸近似看作是一个矩形,根据先验知识和大量统计结果分析,图像中人脸区域的长宽满足如下的关系:
1<height /width<2
(11)
在FPGA 进行人脸定位时,采用的方法是积分法,对滤波
后
图4形态学滤波后的图像85
(上接第67页)
两组曲线经对比发现仿真结果相近,当A 点位置做如图x 轴负方向,y 、z 轴正方向运动的时候,各支链长度变化与速度变化趋势基本相同,加速度在实时性上稍有差距,因为Adams 仿真过程中与Matlab 分析过程中的坐标系不同,故对曲线做出一定修正。
这验证了运动学中位置,速度和加速度情况的正确性。
5结束语
本文为并联机构的运动控制和实际应用提供了理论基础与指导,对并联机构的研究与推广有着重要的意义。
参考文献
[1]刘伟,刘宏昭.具有2T1R 与2R1T 运动模式3自由度并联机构型综合[J ].农业机械学报,2018,49(7):401-409
[2]李仕华,田志立,王子义,等.具有连续转轴的对称2R1T 三自由度并联机构型综合[J ].机械工程学报,2017,53(23):74-82[3]王玉茹,张大卫,黄田.Tricept 并联机构的运动学设计理论浅析[J ].
天津大学学报,2002(3):376-379
[4]陈善君.Tricept 混联机器人逆运动学解析[C ]∥中国航空学会自动控制专业分会.中国航空学会控制与应用第十二届学术年会论文集,
2006:1
[5]王敬磊.Exechon 变异机构的研究分析[D ].秦皇岛:燕山大学,2016
[6]刘玲玲.Exechon 并联机构运动学分析[D ].天津:天津理工大学,
2012[7]Hennes N.Ecospeed押An Innovative Machining Concept for
High Performance 5-axis-machining of Large Structural Com⁃ponent in Aircraft Engineering [C ]//Proceedings of 3rd Chemnitz Parallel kinematics Seminar熏Chemnitz ,2002押763-774
[8]Huang T熏Li M熏Zhao X M熏et al.Conceptual design and di⁃
mensional synthesis for a 3-DOF module of the TriVariant-a novel 5-DOF reconfigurable hybrid robot眼J演.IEEE Transactions
on Robotics熏2005熏21穴3雪押449-456
[收稿日期:2019.12.2]
的二值图进行水平积分与垂直积分。
人脸区域的部分显示为白色,非人脸区域的部分显示黑色。
通过积分求和的形式,标定人脸矩形区域的行坐标和列坐标,在人脸的灰度图中进行标记,最终通过VGA 显示控制模块将检测结果输出。
3实验验证系统
系统各个子模块经过设计、编译、时序仿真验证,例化到顶层模块。
经过Quartus 软件全编译过后,系统硬件资源消耗情况如图5所示。
图5FPGA 硬件逻辑消耗图
相同大小的图片,分别用于FPGA 和PC 机上进行人脸检测,所需运行时间如表1所示。
(表1中所用PC 机配置为Intel Core i5-4570,CPU 主频是3.2GHz ,8GDDR Ⅲ1600MHz 内存,Win764bits 系统,MATLAB2015平台实验结果。
)由表1可见,FPGA 硬件实现的人脸检测速度是PC 机的34倍,速率大大提高。
表1
不同平台人脸检测速度对比
分别在弱光和强光下采用本系统进行实验,检验光照对人脸检测结果的影响。
图6显示在强光和暗光的环境下,均能有效定位人脸位置;图7所示对于采集多个人脸信息的场合,本系统也能够进行有效地检测。
4结束语
本文基于FPGA 建立了一套人脸检测系统,可对拍摄的人脸图像进行采集、存储、处理和显示等。
该系统利用FPGA 高速和并行处理的特性,对采集的视频图像进行了中值滤波、YCbCr 格式转换、灰度变换、肤色二值图形态学滤波和积分的处理,实现了人脸检测。
经实验验证,该系统比PC 机检测速度更快,在
弱光环境下也可以检测到人脸,并且可以对多个人脸同时进行检测。
参考文献
[1]杨伟.基于FPGA 的全景监控系统的研究和实现[D ].哈尔滨:哈尔滨
工程大学,2015
[2]侯亚楠.彩色QR 码编码解码算法的研究与实现[D ].西安:西安理工大学,2017
[3]杨帆,张皓,马新文,等.基于FPGA 的图像处理系统[J ].华中科技大学学报(自然科学版),2015,43(2):119-123[4]董博生.人脸识别技术的实现及其在远程身份验证中应用[D ].北京:北方工业大学,2007
[5]王治文.基于四元数小波变换的图像融合方法研究[D ].无锡:江南大学,2016
[6]宋立锋.视频编码新技术的研究[D ].广州:华南理工大学,2002
[收稿日期:2020.1.17
]
图6弱光和强光环境下人脸
检测图
图7多人人脸检测图
基于FPGA 图像处理技术的人脸检测
86。