当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]人脸检测系统的SoPC设计

摘要:本文采用NiosⅡ软核处理器在FPGA上设计了一种人脸检测系统,对该系统的功能、结构和实现作了较详细的阐述。设计结果表明,该系统体积小,数据处理速度快,保证了很好的实时性。

关键词:人脸检测;FPGA;软核处理器;片上系统

引言

人脸检测跟踪是计算机视觉中十分重要的研究领域,正受到越来越多的关注。传统基于PC平台的人脸检测跟踪系统体积大,不能满足便携的要求,更不适合露天使用;而采用通用的DSP芯片组成的系统,外围电路较复杂,设计与调试都需要较长的时间,且系统的可扩展性和移植性不好。利用32位NiosⅡ软核处理器在FPGA上完成设计,减小了系统的体积,而且在PC上开发的程序可移植到NiosⅡ处理器上,实现了片上系统。采用NiosⅡ处理器的自定义指令,用硬件实现部分算法,大大提高了数据的处理速度,保证了较好的实时性。在外围电路不变的情况下,通过更新FPGA内部的电路设计,能使系统功能升级和增强。  

系统组成及工作原理

人脸检测跟踪系统根据具体应用场合可以定制为不同的功能,而且不同的功能只需要在Nios中写入相应的C语言程序即可,不需要再做硬件板,非常方便。下面介绍一种比较通用的人脸检测跟踪系统。系统的结构如图1所示。本文设计的人脸检测跟踪系统主要包括三个模块:图像采集模块,人脸检测跟踪模块以及数据通信模块。

图像采集模块

该模块主要包括摄像头和外扩SRAM。本系统采用的图像传感器是OV7620,OV7620是美国OmniVision公司开发的1/3英寸,30万像素CMOS彩色图像传感器,该芯片将CMOS光感应核与外围辅助电路集成在一起,具有可编程控制与视频模/数混合输出等功能。该芯片的主要特性有:最大分辨率为664×492,同时支持VGA(640×480分辨率)和QVGA(320×240分辨率)两种模式。输出帧频在0.5fps—30fps之间可调。输出窗口尺寸在4×2—664×492之间可调。图像数据输出格式可以为8位/16位的YCrCb4:2:2ITU2656、IR2601GRB4:2:2或RGB Raw Data。能工作在逐行/隔行扫描方式下,也能工作在彩色/黑白模式下。上述的所有性能,用户可以根据自己的需要,通过SC2CB接口设置芯片内相应的寄存器进行选择。

人脸检测跟踪模块

该模块采用的FPGA选择Altera公司Stratix系列的EP1S25。该芯片的片上资源比较丰富,有25660个逻辑单元(LE),1944576bit的RAM,10个DSP模块,6个数字锁相环(DPLL),用户可用的I/O最多达到702个。在EP1S25中嵌入Nios软核,控制连接在外部总线上的SRAM和Flash,用它的以太网模块单元控制以太网接口芯片LAN91C11。[!--empirenews.page--]

其中FPGA是主芯片,在1片FPGA中包含了Nios处理器、SRAM控制器、SDRAM控制器、Flash控制器、UART以及摄像头和外扩SRAM控制器的用户逻辑模块。这正体现了Nios的优势,将很多资源集中在FPGA中为设计PCB带来了便利,而且对系统的更改也变得非常容易,只要重新在FPGA中添加不同的模块就可以了。SRAM中存储嵌入式系统所用的向量表、数据和程序。Flash用于在系统掉电的情况下存储程序和数据。

数据通信模块

根据实际情况选择用以太网或GPRS把人脸检测跟踪后的结果发送到主控制站。在有以太网连接的条件下优先选用以太网连接,可以提供较高的传输速率和可靠性,在没有以太网的条件下选用GPRS进行通信。同时,如果用户需要,也可以直接在LCD上显示。


人脸检测跟踪算法的实现

在实现人脸检测跟踪算法之前,图像的预处理很重要。图像预处理主要有噪声滤除和图像增强,提高图像的质量。本系统采用中值滤波进行噪声滤除。与其它滤波方法相比,中值滤波不仅能有效滤除图像中的孤立噪声点,还能保护边界信息。图像增强技术主要包括直方图修改处理、图像平滑处理和图像锐化处理等。所以,实际的人脸检测系统采用图像增强来消除光照影响。

本系统采用基于肤色和差分帧相结合的方法来确定视频序列中的人脸。这样不但可以排除类似肤色背景的干扰,提高人脸检测的准确性,还可以保证检测与跟踪的实时性。大量实验表明,人脸肤色在YCrCb空间内的Cr和Cb值分布在特定的范围之内,Cr范围为135~156,Cb的范围为108~123。由此建立人脸肤色聚类模型,即彩色图像的像素B满足条件:108≤Cb≤123和135≤Cr≤156,则B是肤色点。

根据公式(1)可将图像转化为一个二值图像,其中白色像素点为肤色点,黑色像素点为非肤色点。由于头部与背景的相对运动,差分帧法是运动图像分析的有效方法。它检测图像序列相邻两帧之间的变化,即直接比较两帧图像对应像素点的灰度值。帧f(x,y,j)与帧f(x,y,k)之间的变化可用一个二值差分图像DBjkf(x,y)表示:

式中的T是阈值。

使用NiosII的定制指令,可以将一个复杂的标准指令序列简化为一个用硬件实现的单一指令,从而简化系统软件设计并加快系统运行速度。在人脸检测跟踪算法中,对图像的处理数据运算量大,循环数目多,而NiosII的定制指令个数已增加到256个,可以使用定制指令完成许多循环内的数据处理,从而加速数据处理的速度。定制指令逻辑和NiosII的连接在SoPCBuilder中完成。NiosIICPU配置向导提供了一个可添加256条定制指令的图形用户界面,在该界面中导入设计文件,设置定制指令名,并分配定制指令所需的CPU时钟周期数目。系统生成时,NiosIIIDE为每条用户指令产生一个在系统头文件中定义的宏,可以在C或C++应用程序代码中直接调用这个宏。  

结语

本文的人脸检测跟踪系统利用32位NiosⅡ软核处理器在FPGA上完成设计,减小了系统的体积,而且在PC上开发的程序可移植到NiosⅡ处理器上,实现了片上系统。Nios是性价比较高的微处理器软核,可以方便地把用户需要的接口和自定义的逻辑加入到系统中。本文介绍的方法体现了SoPC嵌入式系统的灵活性。因此,这种方法能够有效地缩短开发周期、同时能够延长产品的生命周期、可以不断地在原有产品的基础上进行升级设计。
 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

广州2023年9月22日 /美通社/ -- 日前,国际独立第三方检测、检验和认证机构德国莱茵TÜV大中华区(以下简称"TÜV莱茵")顺...

关键字: 研讨会 中国汽车 汽车产业 指令

深圳2023年8月10日 /美通社/ -- 近日,源自德国的第三方检测认证机构TÜV南德意志集团 (NB 0123) (以下简称"TÜ...

关键字: 网络安全 指令 BSP ST

(全球TMT2023年7月20日讯)7月19日,第二十届中国制造业数字化转型高峰论坛在西安举行。中之杰智能与现场嘉宾共同分享企业转型方法,探索数智化最佳实践,为制造业高质量发展集势聚能。中之杰智能打造了颠覆性创新产品...

关键字: 建模 双模 中国制造业 指令

单片机的功能是由指令系统体现的。所以,寻址方式和指令系统是衡量微型机的重要指标。

关键字: 单片机 指令 寻址方式

单片机将中央处理器(CPU)、存储和输入输出集成在一个芯片上。可以说,单片机就是微机,只是它的功能和我们平时用的电脑不一样,不是我们用的。像电脑一样强大。计算机可以一个一个地运行应用程序,单片机可以根据工程师的指令编写可...

关键字: 单片机 寄存器 指令

对新手PLC编程入门,或刚毕业的大学生,或多或少对PLC编程有所了解。学习PLC编程常见的方法就是通过相关的辅导书籍来学习,当然,随着PLC培训班的兴起,去PLC编程培训学校学习也是一种很好的学习方法。

关键字: plc 算术运算 指令

ARM微处理器的指令集是加载/存储型的,也即指令集仅能处理寄存器中的数据,而且处理结果都要放回寄存器中,而对系统存储器的访问则需要通过专门的加载/存储指令来完成。ARM微处理器的指令集可以分为跳转指令、数据处理指令、程序...

关键字: ARM 处理器 指令

在指令“MOV A,#12H”中,立即数#12H是源操作数,紧随操作码74H之后存放在ROM中。该指令执行时,单片机先从ROM中读取操作码74H,对操作码74H解码后,确定要进行的操作是将一个8位立即数送入累加器A,接下...

关键字: 单片机 指令 寻址方式

汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。在汇编语言中,用助记符代替机器指令的操作码,用地址符号或标号代替指令或操作数的地址。在...

关键字: 汇编语言 指令 单片机

北京2023年1月3日 /美通社/ -- 近日,由中国消费品质量安全促进会(简称“中消会”)和亚马逊共同举办的2022年出口消费品安全合规年度总结大会,暨跨境电商质量安全治理专业委员会筹备启动大会在线上圆满举行。会议回顾...

关键字: 亚马逊 SAFETY 中国制造 指令
关闭
关闭