0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Nios Ⅱ软核处理器和FPGA实现人脸检测跟踪系统的设计

电子设计 来源:电子设计应用 作者:孙莹涛,李玉山 2021-01-12 10:24 次阅读

人脸检测跟踪是计算机视觉中十分重要的研究领域,正受到越来越多的关注。传统基于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 位的YCrCb 4 : 2 :2 ITU2656 、IR2601GRB 4 :2 :2或RGB Raw Data。能工作在逐行/隔行扫描方式下,也能工作在彩色/ 黑白模式下。上述的所有性能,用户可以根据自己的需要,通过SC2CB 接口设置芯片内相应的寄存器进行选择。

人脸检测跟踪模块

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

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

数据通信模块

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

基于Nios Ⅱ软核处理器和FPGA实现人脸检测跟踪系统的设计

图1 基于Nios Ⅱ软核的人脸检测系统设计

人脸检测跟踪算法的实现

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

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

(1)根据公式

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

(2)式中的T是阈值

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

结语

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

责任编辑:gt

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19129

    浏览量

    228895
  • FPGA
    +关注

    关注

    1625

    文章

    21642

    浏览量

    601395
  • 计算机
    +关注

    关注

    19

    文章

    7388

    浏览量

    87646
收藏 人收藏

    评论

    相关推荐

    基于Nios II处理器的多生理参数测量系统的总体设计

      本文主要搭建一个多生理参数测量系统的数据处理平台,在FPGA中嵌入一个32位Nios II
    发表于 08-18 12:10 1007次阅读
    基于<b class='flag-5'>Nios</b> II<b class='flag-5'>软</b><b class='flag-5'>核</b><b class='flag-5'>处理器</b>的多生理参数测量<b class='flag-5'>系统</b>的总体设计

    基于NIOS II嵌入式处理器的LCD控制实现

    本文介绍了一种基于NIOS II处理器实现对LCD-LQ057Q3DC02控制的新方法。在设计中利用
    发表于 11-09 11:30 2081次阅读
    基于<b class='flag-5'>NIOS</b> II嵌入式<b class='flag-5'>处理器</b>的LCD控制<b class='flag-5'>实现</b>

    基于NIOS II 处理器的SOPC 技术

    基于NIOS II 处理器的SOPC 技术摘要:介绍了基于NIOS II
    发表于 10-06 15:05

    嵌入式Nios Ⅱ串口直接读写寄存有哪些编程方法?

    对设计进行综合,下载到FPGA中就可以方便地实现一个具有高速DSP功能的嵌入式处理器。那么直接在读写寄存上进行嵌入式
    发表于 08-06 06:37

    请问如何实现片上嵌入式Nios处理器系统的设计?

    片上Nios Ⅱ嵌入式处理器系统具有哪些优势?如何实现片上嵌入式
    发表于 04-19 08:17

    求一种在多处理器系统中的Nios II处理器的启动方案

    本文设计了一种在多处理器系统中的Nios II处理器的启动方案,这个方案在外部
    发表于 04-27 06:52

    人脸检测系统的SoPC设计

    人脸检测系统的SoPC设计关键词:32位Nios处理
    发表于 02-05 08:23 34次下载

    基于Nios处理器的SOPC技术来实现数码相框的设计

      0 引言   本文采用了基于Nios处理器的SOPC技术来实现数码相框的设计,从根本上改变了传统设计方案的不足。
    发表于 08-23 10:22 1296次阅读
    基于<b class='flag-5'>Nios</b>Ⅱ<b class='flag-5'>软</b><b class='flag-5'>核</b><b class='flag-5'>处理器</b>的SOPC技术来<b class='flag-5'>实现</b>数码相框的设计

    FPGANios_的语音识别系统的研究

    FPGANios_的语音识别系统的研究。
    发表于 05-10 10:46 20次下载

    基于SoPC 技术的片上嵌入式Nios处理器系统

    嵌入式系统的核心是RISC 处理器,具有代表性的RISC处理器Nios
    发表于 04-07 09:27 1025次阅读
    基于SoPC 技术的片上嵌入式<b class='flag-5'>Nios</b> Ⅱ<b class='flag-5'>软</b><b class='flag-5'>核</b>六<b class='flag-5'>处理器</b><b class='flag-5'>系统</b>

    介绍如何用Nios II 处理器来开发FPGA嵌入式系统软件

    FPGA在嵌入式设计中的应用越来越普遍。了解怎样采用流行的Nios® II 处理器来轻松开发FPGA
    的头像 发表于 06-22 02:01 4524次阅读

    简述使用片内调试 Nios 处理器

    使用片内调试 Nios 处理器
    的头像 发表于 06-20 05:53 3184次阅读
    简述使用片内调试 <b class='flag-5'>Nios</b> <b class='flag-5'>软</b><b class='flag-5'>核</b><b class='flag-5'>处理器</b>

    基于Nios的SoPC系统硬件设计

    基于Nios的SoPC系统设计是整个系统硬件设计的核心,包括Nios
    发表于 08-21 14:22 1287次阅读
    基于<b class='flag-5'>Nios</b><b class='flag-5'>软</b><b class='flag-5'>核</b>的SoPC<b class='flag-5'>系统</b>硬件设计

    基于NiosFPGA器件实现电缆故障检测仪的设计方案

    脉冲发生电路产生探测脉冲,高速的A/D转换对脉冲及其反射回波信号进行采样,使用异步FIFO作为A/D采样数据的缓存。Nios作为系统
    发表于 08-24 15:46 1021次阅读
    基于<b class='flag-5'>Nios</b><b class='flag-5'>软</b><b class='flag-5'>核</b>和<b class='flag-5'>FPGA</b>器件<b class='flag-5'>实现</b>电缆故障<b class='flag-5'>检测</b>仪的设计方案

    FPGA 系统中的处理器们(二):,可杀鸡亦可屠龙?

    在前文中,我们了解到两种 FPGA 嵌入式处理器方案:与硬核。本文将展开讨论
    发表于 02-07 10:07 3次下载
    <b class='flag-5'>FPGA</b> <b class='flag-5'>系统</b>中的<b class='flag-5'>处理器</b><b class='flag-5'>核</b>们(二):<b class='flag-5'>软</b><b class='flag-5'>核</b>,可杀鸡亦可屠龙?