基于FPGA和卷积神经网络的人脸识别系统
2021-07-27范世朝郑国强孙国庆韩旭
电子元器件与信息技术 2021年5期
范世朝,郑国强,孙国庆,韩旭
(河南科技大学信息工程学院,河南 洛阳 471023)
0 引言
常规的基于FPGA的人脸识别系统大多是利用HDL语言来实现,这就要求开发者熟悉硬件之间的逻辑关系。为了使软件开发者能更方便的参与FPGA开发,Xilinx公司推出了HLS高层次综合工具和PYNQ系列FPGA开发板。对于软件开发者可以在HLS平台利用C语言实现逻辑功能,之后高层次综合会自动将C语言转化为Verilog语言,生成相应的IP核。而PYNQ系列开发板ARM端内置Jupyter notebook网络服务器,Linux系统和IPython内核,可以十分方便的利用Python对生成的IP核进行调用,大大降低了开发门槛[1]。
1 人脸识别系统的流程
本文利用PYNQ-Z2开发板为基础,设计出一个基于卷积神经网络的人脸识别系统,该系统能够识别输入的人脸图像的面部特征,并判断目标是否是训练库中的用户,如果是会在结果中标识出目标的名字。该系统的总体架构如图1:

图1 系统总体架构图
2 主要流程分析
2.1 数据集制作
利用Python调用PC端的摄像头,实时采集图像数据,并进行人脸识别,当识别出人脸时,会自动抓取图片并进行保存。这里对人脸进行识别的方法是调OpenCV的cv2级联分类器haarcascade_frontalface_alt2.xml,同时在调用级联器时,对级联器的detectMultiScal函数中minNeighbors参数进行设置,来设定需要达到的检测有效点数,本文需要达到的检测有效点数是2,意味着只有连续两次识别成功时才会认为识别出了人脸数据。同时为了保证后续进行模型训练时图像的大小相同,在识别时设置保存的人脸图像大小统一为64×64[2]。
整个数据集的制作流程如下:……p>
登录APP查看全文
