[发明专利]人脸检测系统有效
申请号: | 202110425915.7 | 申请日: | 2021-04-20 |
公开(公告)号: | CN113255446B | 公开(公告)日: | 2023-04-18 |
发明(设计)人: | 翁秀梅;朱佳;傅东;沈家瑞;郝志杰;吴金英;丁杰;杨兆龙 | 申请(专利权)人: | 长沙海格北斗信息技术有限公司 |
主分类号: | G06V40/16 | 分类号: | G06V40/16;G06V10/82;G06N3/0464;G06N3/08 |
代理公司: | 长沙知行亦创知识产权代理事务所(普通合伙) 43240 | 代理人: | 严理佳 |
地址: | 410200 湖南省长沙市高新*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 检测 系统 | ||
1.一种基于FPGA芯片的人脸检测系统,其特征在于,所述人脸检测系统包括:PS模块,以及与所述PS模块连接的图像采集模块、FPGA芯片和存储模块;所述FPGA芯片与所述存储模块连接;
所述图像采集模块,用于采集至少一帧原始图像,并将采集的原始图像传输至所述PS模块,以使所述PS模块将原始图像存储至所述存储模块;
所述PS模块,用于发送包括帧编号的处理指令至所述FPGA芯片;
所述FPGA芯片,用于在接收到包括帧编号的处理指令后,根据预设的神经网络模型,依次执行预设的神经网络模型中各网络层的运算,以获得该帧编号对应的人脸检测结果,并反馈包括帧编号的处理完成信息至所述PS模块,其中,在执行每一网络层运算时,从存储模块中读取该帧编号对应的原始图像或与当前网络层连接的上游网络层的输出数据作为当前网络层的输入数据,以及从存储模块中读取当前网络层的参数;根据当前网络层的参数、输入数据和运算规则进行运算,获得当前网络层的输出数据,将当前网络层的输出数据存储至存储模块中,若当前网络层为预设神经网络层的最后一层网络层,则输出数据为该帧编号对应的人脸检测结果;
所述PS模块,还用于接收到包括帧编号识别完成信息后,从所述存储模块中读取帧编号对应的人脸检测结果,并根据读取的人脸检测结果对帧编号对应的原始图像中的人脸进行标记,获得标记人脸的图像;
所述FPGA芯片包括依次连接的预处理子模块、前处理子模块、卷积子模块、预测子模块和检测子模块,所述预处理子模块、所述前处理子模块、所述卷积子模块和所述预测子模块、所述检测子模块分别与所述存储模块连接;所述预设神经网络模型中网络层包括预处理层、前处理层、至少一层卷积层、预测层和检测层;
所述预处理子模块,用于接收到所述PS模块发送的包括帧编号的处理指令后,从存储模块中读取该帧编号对应的原始图像以及预处理层的参数,根据预处理层的预设运算规则和参数对原始图像进行运算,获得该帧编号对应的预处理图像,将该帧编号对应的预处理图像存储至存储模块中,并将包括帧编号的处理指令发送至所述前处理子模块;
所述前处理子模块,用于在接收到包括帧编号的处理指令后,从存储模块中读取该帧编号对应的预处理图像以及前处理层的参数,根据前处理层的预设运算规则和参数对该帧编号对应的预处理图像进行运算,获得前处理层的输出特征图谱,将前处理层的输出的特征图谱存储至所述存储模块中,并将包括帧编号的处理指令发送至所述卷积子模块;
所述卷积子模块,用于在接收到包括帧编号的处理指令后,根据各卷积层的连接顺序,依次执行各卷积层的卷积计算,在完成各卷积层运算后,将包括帧编号的处理指令发送至所述预测子模块,其中,在执行每一卷积层的卷积运算时,从所述存储模块中读取与当前卷积层连接的上游网络层的输出特征图谱作为当前卷积层的输入特征图谱,以及从所述存储模块中读取当前卷积层对应的卷积参数;根据预先配置的当前卷积层的卷积规则和当前卷积层的卷积参数对当前卷积层的输入特征图谱进行卷积处理,获得当前卷积层的输出特征图谱,将当前卷积层的输出特征图谱存储至所述存储模块中;
所述预测子模块,用于在接收到包括帧编号的处理指令后,从所述存储器中读取至少一卷积层的输出特征图谱,以及预测层的卷积参数;根据预测层的预设运算规则和预测层的参数,对读取的各输出特征图谱进行运算,获得该帧编号对应的预测结果,将预测结果存储至所述存储模块中,并将包括帧编号的处理指令发送至所述检测子模块;
所述检测子模块,用于在接收到包括帧编号的处理指令后,从存储模块中读取该帧编号对应的预测结果和检测层的参数,根据预先配置的检测层的运算规则和检测层的参数,对预测结果进行运算,获得该帧编号对应的人脸检测结果,将人脸检测结果存储至所述存储模块中;
所述FPGA芯片还包括归一化子模块,所述归一化子模块分别连接所述卷积子模块和所述预测子模块;
所述卷积子模块,还用于在完成各卷积层运算后,将包括帧编号的处理指令发送至所述归一化子模块;
所述归一化子模块,用于在接收到包括帧编号的处理指令后,从所述存储模块中读取归一化层的参数和预设神经网络模型中与归一化层连接的各卷积层的输出特征图谱,并作为归一化层的输入特征图谱,根据归一层的预设运算规则和归一化层的参数对归一化层的输入特征图谱进行运算,获得归一化层的输出特征图谱,将归一化层的输出特征图谱存储至所述存储模块中,并将包括帧编号的处理指令发送至所述预测子模块;
所述预测子模块,还用于在接收到所述卷积子模块和所述归一化子模块分别发送的包括帧编号的处理指令后,根据预设神经网络模型中各网络层的连接顺序,从存储器中读取预设神经网模型中与预测层连接的各卷积层的输出特征图谱和归一化层的输出特征图谱,以及预测层的参数;根据预测层的预设运算规则和预测层的参数,对读取的各输出特征图谱进行运算,获得预测结果,将预测结果存储至所述存储模块中,并将包括帧编号的处理指令发送至所述检测子模块;
所述卷积子模块还包括卷积控制单元,以及依次连接的卷积缓存单元、卷积计算单元、激活单元和池化单元,所述卷积缓存单元和所述池化单元分别与所述存储模块连接;
所述卷积控制单元与所述卷积缓存单元连接,用于接收到所述前处理子模块发送的包括帧编号的处理指令后,控制所述卷积缓存单元在根据神经网络模型依次执行神经网络模型中每一卷积层的卷积运算时,从所述存储模块中读取帧编号对应的与当前卷积层连接的上游网络层的输出特征图谱作为当前卷积层的输入特征图谱,以及当前卷积层的卷积核参数,并进行缓存;
所述卷积控制单元与所述卷积计算单元连接,用于控制所述卷积计算单元从卷积缓存单元中读取缓存的当前卷积层的输入特征图谱和卷积核参数,并根据卷积核参数对输入特征图谱进行卷积计算,获得初始特征图谱,将初始特征图发送至所述激活单元;
所述卷积控制单元与所述激活单元连接,用于控制所述激活单元接收到所述卷积计算单元发送的初始特征图谱时,根据预设的激活函数对初始特征图谱进行激活计算,获得激活特征图谱,并将激活特征图谱发送至所述池化单元;
所述卷积控制单元与所述池化单元连接,用于控制所述池化单元接收到所述激活单元发送的激活特征图谱时,对激活特征图谱进行池化处理,获得池化特征图谱,将池化特征图谱作为当前卷积层的输出特征图谱,并将当前卷积层的输出特征图谱存储至所述存储模块;
所述卷积控制单元还分别与所述归一化子模块和所述预测子模块连接,用于在完成预设神经网络模型中各卷积层的运算后,将包括帧编号的处理指令分别发送至所述归一化子模块和所述预测子模块;所述卷积缓存单元包括参数缓存子单元和特征图谱缓存子单元;所述参数缓存子单元分别与所述存储模块和所述卷积计算单元连接;所述特征图谱缓存子单元分别与所述存储模块和所述卷积计算单元连接;
所述特征图谱缓存子单元,用于根据预设神经网络模型,执行每一层卷积层的卷积计算时,从所述存储模块中读取与当前卷积层连接的上游网络层的输出特征图谱作为当前卷积层的输入特征图谱,并进行缓存;
所述参数缓存子单元,用于根据预设神经网络模型,执行每一层卷积层的卷积计算时,从所述存储模块中读取当前卷积层的卷积核参数,并进行缓存;
所述卷积计算单元,还用于分别从参数缓存子单元和特征图谱缓存子单元对应读取当前卷积层的卷积核参数和输入特征图谱,根据卷积核参数对输入特征图谱卷积计算,获得初始特征图谱,并将初始特征图谱发送至所述激活单元;所述卷积计算单元包括:乘加子单元和累加子单元;
所述乘加子单元,用于移动卷积窗口提取输入特征图谱中的特征值进行卷积计算,其中每进行一次卷积窗口移动,将卷积窗口对应的输入特征图谱中的各特征值划分为多组特征值,依次将各组特征值与卷积核参数中对应的权重进行乘加计算获得中间乘加结果,并将每次获得的中间乘加结果依次发送至累计计算子单元;
所述累加子单元,用于每接收到所述乘加子单元输出的一个卷积窗口对应的一个中间乘加结果时,会将该中间乘加结果与已接收到的同一卷积窗口对应的各中间乘加结果进行累加,直至同一卷积窗口对应的所有中间乘加结果全部累加完成,将最终的累加结果作为初始特征图谱的一个特征值;当获得初始特征图谱中所有特征值后,会将初始特征图谱发送至所述激活单元;
神经网络模型为S3FD模型,在S3FD模型中各卷积层采用4位量化策略,预测层采用8位量化策略;在执行每一个卷积层运算时,卷积子模块33会将当前卷积层的预设输入映射因子、预设输出因子、预设卷积权重映射因子、卷积核参数和当前卷积层的输入特征图谱输入至预设的浮点卷积计算公式中,获得32位浮点特征图,该浮点卷积计算公式为:
其中yfloat为32位浮点特征图谱,xint4为当前卷积层的4bit定点输入特征图谱,wint4为当前卷积层的4bit定点卷积权重参数,S1为当前卷积层的输入映射因子,S2为当前卷积层的卷积权重映射因子、S3为当前卷积层的输出映射因子,n为预设正整数值,bfloat为当前卷积层的偏置参数;
然后根据定点转换公式,将32位浮点特征图谱转换为4位定点特征图谱,该定点转换公式为:
其中,为对yfloat进行四舍五入运算后的值;
在执行预测层的运算时,预测子模块34会将预测层的预设输入映射因子、预设输出因子、预设卷积权重映射因子、卷积核参数和预测层的输入特征图谱输入至预设的浮点卷积计算公式中,获得32位浮点特征图,该浮点卷积计算公式为:
其中yfloat为32位浮点特征图谱,xint8为预测层的8bit定点输入特征图谱,wint8为预测层的8bit定点卷积权重参数,S1为预测层的输入映射因子,S2为预测层的卷积权重映射因子、S3为预测层的输出映射因子,n为预设正整数值,bfloat为预测层的偏置参数;
然后根据定点转换公式,将32位浮点特征图谱转换为8位定点特征图谱,该定点转换公式为:
其中,为对yfloat进行四舍五入运算后的值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于长沙海格北斗信息技术有限公司,未经长沙海格北斗信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110425915.7/1.html,转载请声明来源钻瓜专利网。