好文档 - 专业文书写作范文服务资料分享网站

基于嵌入式系统的人脸检测算法研究

天下 分享 时间: 加入收藏 我要投稿 点赞

基于嵌入式系统的人脸检测算法研究

方仲秋

【摘 要】文章在A8处理器作为硬件平台,嵌入式Linux操作系统作为软件平台的基础上深入研究了AdaBoost人脸检测算法,并对其进行了优化改进,采用遗传算法消除了冗余弱分类器,形成了最终的强分类器。 【期刊名称】无线互联科技 【年(卷),期】2017(000)024 【总页数】2

【关键词】人脸检测;嵌入式系统;AdaBoost

人脸识别技术不断进入大众视野。苹果新机iPhone X具备“刷脸”解锁功能,并且可运用到Apple Pay以及各种需要身份验证的APP中;首个“刷脸”支付的商用试点也在杭州一家肯德基餐厅开启;一些银行正尝试启用自动取款机“刷脸”取款功能;高铁检票、宾馆入住也在使用“刷脸”技术。人脸识别已经在人们衣食住行的各个领域发力,迎来运用的“井喷期”。本文针对嵌入式系统的应用平台,对人脸检测算法进行了改进和优化,并在嵌入式开发板上对改进后的算法进行了性能评测,效果良好。

1 AdaBoost人脸检测算法的原理

1.1 AdaBoost人脸检测算法的特点

采用积分图方法对Harr-like矩形特征值进行计算,方便快速;采用AdaBoost机器学习算法寻找出分类特征,利用这些分类特征生成弱分类器,然后将弱分类器进行叠加构成强分类器;强分类器通过串联的方式合成为分类效率高、结构复杂的级联分类器;使用最后产生的级联分类器对人脸待测图像进行搜索,

可以快速排除掉不包括人脸的背景区域,大大节省了检测时间[1]。 1.2 AdaBoost人脸检测算法的检测过程

(1)加载人脸待测图像和级联分类器。(2)将人脸待测图像中YUV格式的像素值用八位灰度值表示,即转化为灰度图像。(3)对转化后的待测图像进行扫描并采用积分图方法对Harr-like矩形特征值进行计算。(4)对待测图像进行分步检测,首先按照一定的策略对整幅图像使用一定规格的子窗口进行检测,然后按照一定比例对子窗口的尺寸进行扩大,直到当前待测图像和检测窗口大小一致;子窗口对待测图像的检测过程,实际上就是由简单到复杂的过程,首先对比较明显的分类特征进行选择,去除大部分不包括人脸的背景区域,然后经过多级分类器的筛选,最终对待测图像是否存在人脸及存在的个数做出判断。(5)最后对待测图像中人脸的位置及大小进行确定。(6)分割人脸区域。

2 嵌入式平台上人脸检测算法的优化

2.1 代码的优化 2.1.1 消灭重复计算

通过分析工具,找出最影响速度的代码段,有针对性地优化。一般来说是判断窗口是否是人脸的代码最耗时,因为调用次数最多。代码里首先要消灭的是重复计算,如代码

int b1=pixels[y×step+x]-pixels[y×step+x+1]; int b2=pixels[y×step+x+2]-pixels[y×step+x+3]; 可以写为

int offset=y×step+x;

int b1=pixels[offset]-pixels[offset+1];

int b2=pixels[offset+2]-pixels[offset+3]; 2.1.2 展开循环

如果循环次数是固定的,可以去掉for循环,直接展开。代码行数虽然多了,但是少了for循环的条件判断,可以加速,例如可加速10%~20%。另外可以在设计分类器的时候,就把这些因素考虑进去,由训练程序生成的强分类器包含固定数目的弱分类器,或者某种规律数目的弱分类器,这样有利于检测代码优化。

2.1.3 利用SIMD指令

无论Intel CPU还是ARM CPU,都有单指令多数据(Single Instruction Multiple Data,SIMD)指令。利用这些指令,可以一次算多个数据。例如两个byte向量相加,支持128位的SIMD指令可以一次算16个byte的加法,理论上可以加速16倍。人们常用的加速利器积分图,其构建过程很难用SIMD加速。如果有更好的策略,可以果断抛弃积分图。 2.1.4 多核并行运算

共享存储并行编程(Open Multi-Processing,OpenMP)或者Inter线程构建模块(Thread Building Blocks,TBB)可以让人们充分利用CPU的多个内核进行并行运算,提升速度。但用了OpenMP或TBB,未必可以加速,或未必可以加速到期望的倍数。多核并行,任务的拆分的粒度应该尽可能粗,不同的任务尽可能不用同一块内存,也就是任务之间的相关度低一些有利于加速。举个例子:如果两个矩阵相加,按像素进行并行操作,加速效果会很糟糕;如果按行并行,效果会好很多,但不要按列并行。 2.2 分类器的训练优化

基于嵌入式系统的人脸检测算法研究

基于嵌入式系统的人脸检测算法研究方仲秋【摘要】文章在A8处理器作为硬件平台,嵌入式Linux操作系统作为软件平台的基础上深入研究了AdaBoost人脸检测算法,并对其进行了优化改进,采用遗传算法消除了冗余弱分类器,形成了最终的强分类器。【期刊名称】无线互联科技【年(卷),期】2017(000)024【总页数】2<
推荐度:
点击下载文档文档为doc格式
6hbke607w96trx01723y3gzju6vsv000djx
领取福利

微信扫码领取福利

微信扫码分享