用于实现adaboost人脸检测算法的硬件结构及实现算法方法技术

技术编号:7269022 阅读:240 留言:0更新日期:2012-04-15 13:36
本发明专利技术提供的用于实现adaboost人脸检测算法的硬件结构,包括:图像存储单元、数据存储单元、控制单元、第一缓存单元、第二缓存单元、行积分运算单元、阵列单元、多个结果单元、编码单元、传输单元、及检测单元等,其中,阵列单元具有多个用于传递及执行运算的单元,且每一行的单元形成传递数据的行流水线,每一列的单元形成传递数据的列流水线,而数据存储单元所存储的分类器有关的数据经过编码后通过传输单元传输,由于采用了流水线的方式,使得积分图和矩形特征值的计算能快速完成,进而采用本发明专利技术的硬件结构就可以实现在嵌入式平台上应用adaboost人脸检测算法。

【技术实现步骤摘要】

本专利技术涉及一种。
技术介绍
人脸检测已经在新一代的人机界面、安全访问和视频监控、以及基于内容的检索等领域得到了应用。更为重要的是,随着嵌入式技术和智能设备的发展,许多人脸检测应用的领域都逐渐出现了移动化和户外工作的要求。然而,嵌入式平台的计算能力相当有限的, 无法实现纯软件的实时人脸检测,因此,往往需要考虑增加硬件加速模块来弥补嵌入式平台计算能力不足的问题,而如何设计符合人脸检测算法特点的硬件结构,就成了解决人脸检测嵌入式化的重要课题。
技术实现思路
本专利技术的目的在于提供一种用于实现adaboost人脸检测算法的硬件结构,以实现adaboost人脸检测算法在嵌入式平台的应用。为了达到上述目的及其他目的,本专利技术提供的用于实现adaboost人脸检测算法的硬件结构,包括用于存放待检测的图像的灰度图的图像存储单元;用于存放分类器数据的数据存储单元;用于对所述图像存储单元中所存放的图像的扫描方式和每次扫描尺寸进行控制及对所述数据存放单元所存放数据进行访问的控制单元;与所述图像存储单元连接且用于缓存被扫描的图像像素的灰度值的第一缓存单元;与所述数据存储单元连接且用于缓存被读出的数据的第二缓存单元;用于按照adaboost人脸检测算法,在图像的一个维度方向将第一缓存单元输出的图像灰度值进行行积分并求平方和的行积分运算单元;与所述行积分运算单元输出连接且用来传递与积分值相关的数据及完成在图像的另一个维度方向的积分运算的阵列单元,其具有的用于传递及执行运算的单元的数目与每次被扫描到的图像的行数与列数的乘积相同,且每一行的单元形成传递数据的行流水线,每一列的单元形成传递数据的列流水线;与所述阵列单元中作为输出的各单元分别连接的多个结果单元;用于对第二缓存单元输出的数据进行编码的编码单元;用于传递经编码单元输出且用于人脸检测所需的相关数据的传输单元;以及用于根据所述传输单元传递至的数据和所述多个结果单元的结果进行解码和检测的检测单元。本专利技术提供的实现adaboost人脸检测算法的方法,包括步骤1)控制单元控制对图像存储单元所存放的图像进行扫描以使相应尺寸的图像的各像素点的灰度值经过第一缓存单元后,并送入行积分运算单元进行横向积分和平方和计算;同时控制单元控制对数据存储单元的数据的访问,以使相应数据在编码单元中完成相应编码,部分被送入传输单元,部分被送入阵列单元;幻行积分运算单元将所计算后行积分数据依次移入阵列单元, 并在所述阵列单元的第一条行流水线上进行纵向积分后逐步移入各行,以便在所述阵列单元中形成待检图像的积分图;幻在所述阵列单元中形成待检图像的积分图后,阵列单元中3的各单元根据由编码单元送至的数据来确定是否需要将各自的积分图值叠加在由编码单元送至的数据上后,再向后续各单元传递由编码单元送至的数据,由此直至由编码单元送至的数据被传递至结果单元中;以及4)检测单元根据结果单元中的结果数据和传输单元传输至的数据执行检测作业。综上所述,本专利技术的用于实现adaboost人脸检测算法的硬件结构及实现算法的方法通过采用多条流水线,可快速完成积分图和矩形特征值的计算,进而可以实现在嵌入式平台上应用adaboost人脸检测算法。附图说明图1为本专利技术的用于实现adaboost人脸检测算法的硬件结构示意图。图2为本专利技术的用于实现adaboost人脸检测算法的硬件结构的分类器RAM中数据格式示意图。具体实施例方式请参阅图1,本专利技术的用于实现adaboost人脸检测算法的硬件结构主要包括图像存储单元、数据存储单元、控制单元、第一缓存单元、第二缓存单元、行积分运算单元、阵列单元、多个结果单元、编码单元、传输单元、及检测单元等。所述图像存储单元用于存放待检测的图像的灰度图,即如图中下方所示的图像 RAM,其可以采用片外的静态随机存取存储器(即SRAM)来实现。所述数据存储单元用于存放分类器数据,即如图中左方所示的分类器RAM,其也可以采用片外的静态随机存取存储器(即SRAM)来实现。所述控制单元用于对所述图像存储单元中所存放的图像的扫描方式和每次扫描尺寸进行控制、及对所述数据存放单元所存放数据进行访问,即如图中所示的窗口扫描控制,在本实施例中,其控制每次扫描的窗口尺寸为对拉4。所述第一缓存单元与所述图像存储单元连接,用于缓存被扫描的图像像素的灰度值,在第一次扫描后,第一缓存单元存储有M行图像的像素灰度值,其可采用先进先出单元(即 FIFO)。所述第二缓存单元与所述数据存储单元连接,用于缓存被读出的数据,即与分类器相关的特征数据等,其也可以是先进先出单元。所述行积分运算单元用于按照adaboost人脸检测算法,在图像的一个维度方向 (例如横向)将第一缓存单元输出的图像灰度值进行积分并求平方和,即如图中所示的积分逻辑。所述阵列单元与所述行积分运算单元输出连接,用来传递与积分值相关的数据、 及完成在图像的另一个维度方向(例如纵向)的积分运算,其具有的用于传递及执行运算的单元(如图中灰色方框)的数目与每次被扫描到的图像的行数与列数的乘积相同,即 24*24,且每一行的单元形成传递数据的行流水线,即有M条横向从左到右行流水线,每一列的单元形成传递数据的列流水线,即有M条纵向从下到上的列流水线。所述多个结果单元与所述阵列单元中作为输出的各单元分别连接,即如图所示的阵列单元右侧的竖条形小方框,共M个,各自连接一个阵列单元中的单元。4所述编码单元用于对第二缓存单元输出的数据进行编码,其编码方式容后陈述。所述传输单元用于传递经编码单元输出且用于人脸检测所需的相关数据,在本实施列中,其为两条一维的数据传输流水线,如图中上方的多个斜条纹小方框所形成的行流水线、及多个横条纹小方框形成的行流水线。所述检测单元用于根据所述传输单元传递至的数据和所述多个结果单元的结果进行解码和检测,如图所示的解码和检测逻辑。上述用于实现adaboost人脸检测算法的硬件结构的工作过程包括以下装载和检测两个步骤1、装载阶段为了检测不同位置的人脸,现有控制单元控制扫描图像存储单元中存储的图像, 每次以MXM的窗口进行扫描,扫描顺序是纵向优先扫描,即先沿纵向扫描完一列的窗口,然后向右扫描下一列。最基本的装载单位是行。根据待检窗口左上角的y坐标值,装载可以分为全装载和部分装载。当y = 0时,进行全装载,即控制器将从SRAM中读取24行的数据放入FIFO中,并在行积分运算单元中完成横向积分和平方和的计算。然后,积分和将依次移入阵列单元,阵列单元底部的单元会累计输入的积分和(即完成纵向积分),并输出给后一级的单元。后级单元则依次传递积分和。竖线单元也同样累计和传递每行的平方和。经过M个周期,整个子窗口的积分图都进入了阵列中单元,并得到了整个窗口像素的平方和。由于窗口的重叠关系,当y > 0时,只需从SRAM读取1行新数据即可,即进行阵列单元的部分装载。新行从阵列单元底部移入,而阵列单元顶部的行则移出阵列阵列单元,同时阵列单元中的每个单元都减去顶部移出行对应位置的积分和。这样无论是全装载还是部分装载,阵列单元中保存的都是待检窗口的积分图。2、检测阶段存放在分类器RAM中级联器数据的格式如图2所示。顶层数据结构Cascade由结构Stage和特征!Mature嵌套构成。其余元素都是3本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:赵峰王庭晖施跃华万江
申请(专利权)人:上海德致伦电子科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术