基于SOPC的人脸检测系统的设计
分主要负责人脸视频信号的采集、人脸检测等模块;PL负责AXI4总线缓存、VGA驱动、图像预处理等模块。
系统采用现代的V26的USB摄像头进行视频的采集,该摄像头支持最大分辨率为1280*960,同时支持VGA(640*480)模式。图像数据输出格式可以为8位/16位的YCrCb 4:2:2 ITU2656、IR2601GRB 4:2:2或RGB Raw Data。
图像预处理对人脸检测有着很重要的作用,图像预处理主要由图像增强和噪声滤除,本文选用的是中值滤波是进行噪声滤除,中值滤波能有效的滤除图像中孤立的像素点,还能保护像素的边缘信息。图像增强主要采用直方图均衡化处理。本文通过PL调用了Xilinx公司的图像与处理的IP,通过PL对图像预处理能够节省系统的处理时间。
视频显示输出采用的是群创的AT070TN07数字液晶,视频显示输出采用群创AT056TN52数字液晶,其分辨率为640*480,40Pin 16bit的RGB格式输出,可视角:L/R/T/B:70/70/50/70,反应时间:15 ms。
人脸检测模块主要是通过在PC机Linux平台上的QT进行代码的编写,并通过Xilinx公司的交叉编译器xilinx-arm-linux将人脸检测代码编译成Zynq平台可执行的文件,然后通过将QT移植到Zynq平台。下面是本文人脸检测模块一些参数:
3 实验与结果
实现环境如图6所示,输入图像采用动态图像形式,外部USB摄像头将640*480的视频信传送到Zedboard开发板上,经人脸检测系统处理。系统输出采用的方式是开发板外接一个液晶驱动电路和液晶屏,经过处理的图像数据以640*480@60Hz的标准VGA格式输出,从液晶屏幕上可以观察到人脸检测的结果。
本人脸检测系统采用的级联分类器有25级,共有2913个弱分类器。本系统中Zedboard中PS的CPU工作频率为667 Mhz,PL的工作频率为100 MHz。得到的实验结果如图7所示,对于640*480分辨率的视频信号的平均检测时间56 ms,平均每秒的检测17.8帧的图像,基本满足实时性的检测结果。检测率在93%左右,误检率在2%左右。
在资源消耗方面,Zynq中PS的CPU的使用率为20%,内存的使用率为9.4%。PL的使用率如表1所示,可以看出Zynq的资源使用率较小。
4 结论
本文的人脸检测系统利用了Xilinx公司的Zynq-7000上完成设计,减小了系统面积,对于620*480的视频信号基本实现了实时人脸检测,有很强的实用性。本文介绍的人脸检测体现了SOPC技术的灵活性,同时结合了ARM和FPGA各自的优点,克服了传统ARM在图像视频领域开发速度上的劣势,同时减小了硬件设计的难度。
- 基于肤色检测和人眼定位的人脸检测方法(09-11)
- 基于新的肤色模型的人脸检测方法(12-11)
- 基于SoPC的FIR滤波器设计与实现(07-18)
- 基于FPGA的语音录制与回放系统(09-18)
- 基于SOPC的智能电子血压计设计(06-19)
- 基于SoPC的FPGA在线测试方法 (10-09)