原创作品,转载请联系作者并注明出处:https://github.com/WalkerLau
源码地址:https://github.com/WalkerLau/DetectHumanFaces
本项目是第四届集成电路创新创业大赛(ARM杯)的参赛作品,包含了详细的技术文档、软件配置教程以及完整的代码。
我们采用ARM Cortex-M3软核及FPGA构成了轻量级的实时人脸检测SOC,通过ov5640摄像头采集实时图像,经过检测系统的检测后,将已经框出人脸的实时图像通过HDMI输出到显示器,同时可以通过UART查看检测时间等信息,还能通过板载LED灯查看检测到的人脸数量。
我们采用的算法是 Nenad Markus 提供的 Pixel Intensity Comparison-based Object detection ,该算法可以快速检测出人脸的位置与数量。
我们的人脸检测系统的特点如下:
速度快:我们为SOC设计了运算加速器,最终实现了18帧/秒的检测速度。关于加速器的详细介绍请看《TechSpecification》。
节省硬件资源:采用低成本的Cortex-M3处理器及FPGA实现。
经过Cortex-M3及硬件加速器的运算后,我们的人脸检测系统可以实现18帧/秒的检测能力。
硬件:
开发板:黑金 ALINX AX7050
FPGA 芯片:Xilinx Spartan7 XC7S50
摄像头:OmniVision(豪威) OV5640
软件:
Keil MDK v5.29
vivado 2019.2
FPGA资源消耗量
关于本人脸检测系统的具体技术细节,如系统架构、检测算法、加速器的设计等,都可以在本 Github repo 的《TechSpecification》中找到。
文件 Docs/Keil and Vivado Configurations.pdf
详细介绍了Keil与Vivado IP的配置。
文件夹 hardware
包含了所有硬件代码(Verilog代码)、约束文件和决策树参数文件 facefinder.coe
(.coe文件用于初始化Block RAM)。
文件夹 software
包含了所有软件代码(C代码等),创建完Keil项目之后需将该文件夹里的所有文件添加到项目。
files/minSOC.hex
是Keil编译好的机械码,用于在vivado中初始化ROM。
files/minSOC.bit
是vivado编译好的比特流文件,仅可用于 “黑金 ALINX AX7050” 开发板的下板。
hardware/facefinder.coe
是决策树参数文件,需要添加到BRAM中,如何添加请留意Docs/Keil and Vivado Configurations.pdf
关于Block memory一节。
Xuanzhi LIU
Qiao HU
Zongwu HE
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。