基于软核NiosⅡ的实时人脸检测系统
实现模块根据AdaBoost人脸检测算法流程对人脸进行检测,然后输出人脸的相关数据。LCD显示模块主要是输出行同步信号(HS)和场同步信号(VS),结合人脸检测算法实现模块的检测结果和视频缓存模块存放的视频数据,完成人脸位置显示和视频数据中人脸位置标定。硬件系统的设计框架如图4所示。
![](../img/eep/emb/emb-440731ui0bbripa1.jpg)
具体功能流程如下:
(1)初始化:FPGA通过I2C总线传输SDAT和SCLK信号,完成对ADV7121的配置;来自模拟摄像机的模拟视频信号,经过ADV7121,输出ITU—RBT.656格式数字视频信号。
(2)FPGA将转换后的数字视频数据传输给SRAM1。图5为视频采集模块框图。ADV7121主要完成视频数据采集,其视频数据总线、帧图像数据时钟(PCLK)、场同步信号(Vsync)、行同步信号(Hsync)与FPGA视频采集模块相连。FPGA协调两块SRAM“乒乓模式”的读写操作,并完成模块的外部接口。
![](../img/eep/emb/emb-44074qhpbmcl0pkn.jpg)
(3)FPGA等待一帧图像数据存储结束后,调用人脸检测模块,同时等待下一帧图像数据,并存储到SRAM2。
(4)检测结束,FPGA将得到的人脸位置写回图像所在SRAM中。
(5)当SRAM2存储完毕,通知人脸检测模块,同时等待下一帧图像数据,并存储到SRAM1。检测结束,将得到的人脸位置坐标写回图像所在SRAM中。每秒25帧,每帧周期40 ms,因此从写入视频图像到检测模块返回结果,需要在40 ms内完成。
4 实验结果
经过对A、B、C 3名同学在多种不同情况下的反复测试,得到测试数据如表1所示。
![](../img/eep/emb/emb-44075dy5hyjsntlh.jpg)
其中,N、n、FR分别为该条件下测试的总次数、错检次数以及误检率。
此外,还对网络上的具有多个人脸的图像进行了测试,实验结果表明,系统对多人脸模式也有较好的识别能力,效果图如图6所示。
![](../img/eep/emb/emb-44076zrtmg3wjf4t.jpg)
5 实验结论
通过对实验结果的分析,可得如下结论:
(1)检测速度:通过分析人脸检测算法,经过训练分类器、定点化、以及硬件加速后,使人脸检测系统在DE-2开发板平台上,基本达到实时检测的效果。
(2)检测定位:从检测结果可以看到,人脸的范围较小,侧重点主要集中在眉毛、眼睛、鼻子、嘴唇等器官上,没有耳朵信息特征表现。这是因为人脸训练库主要是围绕几个主要特征,所以检测定位是小区域定位。
(3)检测率与误检率:通过反复实验可以看到,该系统具有较高的检测率和可以接受的误检率,尤其是在正面人脸、小角度倾斜、光照比较均匀的情况下。漏检往往是因为头像过小、脸部特征发生暂时性变化(戴眼镜)、只出现部分人脸或偏转角度过大,又或者光照不均匀等。而那些被判定为人脸的非人脸图像,通常是因为背景复杂,而且该图像又具有人脸某些特征等因素造成的。
(4)资源利用率:从最终的综合和仿真结果来看,在所有模块当中,积分图资源占用最多,分类器计算时间最长,因此选用一种好的处理架构,能大幅提升系统的整体性能。
- 在采用FPGA设计DSP系统中仿真的重要性 (06-21)
- 基于 DSP Builder的FIR滤波器的设计与实现(06-21)
- 基于FPGA的快速并行FFT及其在空间太阳望远镜图像锁定系统中的应用(06-21)
- 3DES算法的FPGA高速实现(06-21)
- 用FPGA实现FFT算法(06-21)
- FPGA的DSP性能揭秘(06-16)