一种用于图像特征查找的遍历方法

文档序号:6355006阅读:153来源:国知局
专利名称:一种用于图像特征查找的遍历方法
技术领域
本发明涉及图像特征查找技术领域,具体涉及用于图像特征查找的遍历方法。
背景技术
随着对人机交互需求的增加,人们对人机交互系统提出了越来越高的要求。其中 一个非常重要的指标就是系统的分辨率。但人机交互其固有特点是数据处理量大,并且实 时性要求高。这就是阻碍其走向高分辨率系统应用的一大瓶颈。人机交互领域用到了大量的模式识别方法。但两者最大的不同在于——模式识别 给定一幅图(如大小为20*20),再去识别这幅图是否所需要找的目标(如人脸);而人机交互 给定一幅图(如大小为640*480),再去识别这幅图中的什么位置上是否有所需要找的目标 (如大小为20*20的人脸)。因此,与模式识别相比,人机交互多出了一个在整幅图像遍历查 找的过程。对特定目标(如人脸)进行查找需要用到特征。特征一般由多个像素点作和组成, 并且不同的特征其所包含的像素点数不同。因此计算每个特征需要的运算数量和运算时间 也是不同的,这不利于硬件的实现。所以现在一般均采用基于积分图计算特征的方法。积 分图中每一个点的值为其左上所有点的灰度值之和。因此在计算每一个特征时,仅仅需要 用其4个端点的积分值进行2次加法运算和1次减法运算即可。这样既降低了运算复杂度 又保证了每次的运算时间。人机交互因其数据处理量大,并且实时性要求高的特点成为其应用于通用处理的 一大瓶颈。最近几年,世界各地也开始了 一些把人机交互处理做到FPGA或ASIC上的尝试。 考虑到运算复杂度、运算速度、功耗等因素,现今主流的做法均采用基于积分图的特征查找 和遍历。其中,有3种典型的方法。第一种方法,把整幅图像的积分图存储到寄存器(寄存 器)中。第二种方法,把积分图按行或者按列存储到RAM中。第三种方法,在RAM与寄存器之 间加入特定数量的行buffer (如图像为640*480,检测目标的大小为20*20,则加入(20+步 进)个长度为640的行buffer),数据先从RAM到buffer,再最后到达寄存器(参见Proposed FPGA Hardware Architecture for High Frame Rate OlOOfps) Face Detection Using
Feature Cascade Classifiers - Hung-Chih Lai, Marios Savvides, Tsuhan Chen
Department of Electrical and Computer Engineering Carnegie Mellon University ;
FPGA-Based Face Detection System Using Haar Classifiers - Junguk Cho,
Shahnam Mirzaei, Jason Oberg, Ryan Kastner Department of Computer Science and Engineering University of California)。不管采用以上的哪一种设计,在实际应用当中都会存在制约。第一种方法,其所需 用到的寄存器数目很多,只能用于整幅图像比较小的情况。第二种方法,提取特征的速度太 慢将拖慢整个系统的速度。方法三虽然对前面两种方法进行了折中处理,但却额外消耗了 很多的buffer资源。现阶段基于积分图的特征查找和遍历最大的难点在于怎么用尽可能 少的硬件资源进行尽可能快的特征提取。

发明内容
本发明的目的在于克服现有技术存在的上述不足,提供一种占用资源小的用于图 像特征查找的遍历方法,能使图像特征查找和遍历在速度和资源这两者上达到很好的折 中,具体技术方案如下。一种用于图像特征查找的遍历方法,利用硬件特征框对图像进行遍历,所述硬件 特征框包括一个特征提取框和位于特征提取框上、下、右方的三个缓冲区,所述特征提取框 由一个行X列为MXN的寄存器阵列组成,M为大于2的自然数,N为大于1的自然数;在 所述特征提取框中,除最上方X行、最下方X行、最右方Y列外,每个寄存器在上、下方向上 与距离该寄存器为X的寄存器相连,在右方向上与距离该寄存器为Y的寄存器相连,X为行 步进,X取值为小于M/2的自然数,Y为列步进,Y取值为小于N的自然数;所述上、下缓冲 区均由行X列为XXN的寄存器阵列组成;右缓冲区由行X列为MXY的寄存器阵列组成; 所述上缓冲区中的每个寄存器与下方特征提取框中距离该寄存器为X的寄存器相连,所述 下缓冲区中的每个寄存器与上方特征提取框中距离该寄存器为X的寄存器相连,右缓冲区 中的每个寄存器和左方特征提取框中距离该寄存器为Y的寄存器相连;所述遍历包括一次 以上重复由多次下移操作、一次右移操作、多次上移操作和一次的右移操作组成的流程后 完成对整副图像的遍历。上述的遍历方法中,所述下移操作为所述特征提取框中除最上方X行的寄存器 外,每个寄存器将所存储的数据写进其上方距离为行步进X的寄存器中,并且所述下缓冲 区中的寄存器将所存储的数据写进与其连接的特征提取框中的寄存器中。上述的遍历方法中,所述右移操作为所述特征提取框中除最左方Y列的寄存器 外,每个寄存器将所存储的数据写进其左方距离为列步进Y的寄存器中,并且所述右缓冲 区中的寄存器将所存储的数据写进与其连接的特征提取框中的寄存器中。上述的遍历方法中,所述上移操作为所述特征提取框中除最下方X行的寄存器 外,每个寄存器将所存储的数据写进其下方距离为行步进X的寄存器中,并且所述上缓冲 区中的寄存器将所存储的数据写进与其连接的特征提取框中的寄存器中。上述的遍历方法中,所述特征提取框为MXN的用于存储积分图数据的多输入寄 存器阵列,所述上、下缓冲区为XXN的用于存储积分图数据的单输入多输出移位寄存器阵 列,所述右缓冲区为MXY的用于存储积分图数据的单输入多输出移位寄存器阵列。上述的遍历方法,具体可包括如下步骤
(1)遍历开始开始时,特征提取框内的数据都是无效的,要进行特征提取必须先把图像 最左上方的数据输入特征提取框;由于特征提取框与外围没有接口,所以必须先通过下缓 冲区输入数据;
(2)数据输入下缓冲区,然后进行一次下移操作,数据移进特征提取框的最下方的两
行;
(3)重复步骤(2),直到图像最左上方的数据就全部移进特征提取框;
(4)进行一次图像特征提取,由于下一次的操作也为下移操作,所以同时图像再往下两 行的图像数据存入下缓冲区,待本次特征提取完成后进行一次下移操作;
(5)重复步骤(4),直至图像再往下方没有数据。此时,下一次的操作为右移,右缓冲区开始工作,在特征提取的同时,图像再往右方两列的图像数据存入右缓冲区;
(6)进行一次右移操作,此时,下一次的操作为上移,上缓冲区开始工作,在特征提取的 同时,图像再往上方两行的图像数据存入上缓冲区;
(7)进行一次上移操作,再进行图像特征提取;同时,由于下一次的操作也为上移操作, 所以图像再往上方两行的数据数据存入上缓冲区;
(8)重复步骤(7),直至图像再往上方没有数据;此时,下一次的操作为右移,右缓冲区 开始工作,在特征提取的同时,图像再往右方两列的图像数据存入右缓冲区;
(9)重复之前的步骤(4)至步骤(8),直至整个目标图像被遍历完毕。本发明其所需要提取的特征由训练结果给出,可以直接固化成硬件连线,也可以 利用MUX与ROM的组合完成特征的提取。这两种方法都可以用现有的成熟的技术实现。相对于现有技术,本发明具有如下优点
(1)应用于较高分辨率图像时,所需要的硬件资源很少。以图像为640*480,检测目标 的大小为20*20,步进为2作为说明。采用本发明所用的方案需要520个(20*20+3*2*20) 寄存器。如果采用整个积分图存储的方案需要307200个(640*480)寄存器。如果采用添 加buffer的方案需要400个(20*20)寄存器和22个深度为640的block RAM。由此可以 看出,采用本发明所述方案能有效减少硬件资源,并且对于分辨率越高的图像,越能有效地 减少所需资源。(2)在有效减少硬件资源的同时,不会对处理速度有大的影响。本发明在每一次基 本操作之后会根据状态机的情况迅速定出下一次所需的基本操作。在特征提取框中进行提 取的同时,把数据写入相应的缓冲区中(每次仅有一个缓冲区在工作——写入数据)。由于 这两者是同时进行的,并且大部分情况下,步进比较小,特征提取的用时会长于数据写入, 这样并不会带来额外的延时。而步进较大并且特征提取很快结束这样的情况相对很少,这 种情况下,虽然会带来一定的延时,但相比起资源的节省这也是完全可以接受的。


图1是本发明的用于遍历图像的硬件特征框的结构框图,图中reg表示寄存器。图2是硬件特征框的上移操作,图中小方框为寄存器reg。图3是硬件特征框的下移操作,图中小方框为寄存器reg。图4是硬件特征框的右移操作,图中小方框为寄存器reg。图5是实施例中的硬件特征框,图中小方框为寄存器reg。图6是整个图像搜索方案的过程图。
具体实施例方式下面结合附图对本发明的步骤作进一步的说明,但本发明要求保护的范围并不局 限于下例表述的范围。图1是硬件特征框的结构框图,包括一个特征提取框和位于特征提取框上、下、右 方的三个缓冲区;特征提取框由一个行χ列为MXN的用于存储积分图数据的寄存器阵列 组成,M为大于2的自然数,N为大于1的自然数;在所述寄存器阵列中,除最上方X行、最 下方X行、最右方Y列外,每个寄存器在上、下方向上与距离该寄存器为X的寄存器相连,在右方向上与距离该寄存器为Y的寄存器相连,X为行步进,X取小于M/2的自然数,Y为列步 进,Y取小于N的自然数;上、下缓冲区均由行X列为XXN的用于存储积分图数据的寄存 器阵列组成;右缓冲区由行X列为MXY的存储积分图数据的寄存器阵列组成;所述上缓 冲区中的每个寄存器与下方特征提取框中距离该寄存器为X的寄存器相连,所述下缓冲区 中的每个寄存器与上方特征提取框中距离该寄存器为X的寄存器相连,右缓冲区中的每个 寄存器和左方特征提取框中距离该寄存器为Y的寄存器相连。如图2,硬件特征框的上移操作为所述特征提取框中除最下方X行的寄存器外, 每个寄存器将所存储的数据写进其下方距离为行步进X的寄存器中,并且所述上缓冲区中 的寄存器将所存储的数据写进与其连接的特征提取框中的寄存器中。如图3,硬件特征框的下移操作为所述特征提取框中除最上方X行的寄存器外, 每个寄存器将所存储的数据写进其上方距离为行步进X的寄存器中,并且所述下缓冲区中 的寄存器将所存储的数据写进与其连接的特征提取框中的寄存器中。如图4,硬件特征框的右移操作为所述特征提取框中除最左方Y列的寄存器外, 每个寄存器将所存储的数据写进其左方距离为列步进Y的寄存器中,并且所述右缓冲区中 的寄存器将所存储的数据写进与其连接的特征提取框中的寄存器中。如图5所示,是本实施例的硬件特征框,其特征提取框大小为10X10 ;在特征提取 框的上方和下方,分别是一个列χ行为10X2的缓冲区,分别称为上缓冲区和下缓冲区;在 特征提取框的右方,是一个列X行为2X10的缓冲区,称之为右缓冲区。如图6所示,本实施例整个图像遍历过程如下
(1)遍历开始开始时,特征提取框内的数据都是无效的,要进行特征提取必须先把图像 最左上方的数据输入特征提取框;由于特征提取框与外围没有接口,所以必须先通过下缓 冲区输入数据;
(2)数据输入下缓冲区,然后进行一次下移操作,数据移进特征提取框的最下方的两
行;
(3)重复步骤(2),一共5次,直到图像最左上方的数据就全部移进特征提取框;
(4)进行一次图像特征提取,由于下一次的操作也为下移操作,所以同时图像再往下两 行的图像数据存入下缓冲区,待本次特征提取完成后进行一次下移操作;
(5)重复步骤(4),直至图像再往下方没有数据。此时,下一次的操作为右移,右缓冲区 开始工作,在特征提取的同时,图像再往右方两列的图像数据存入右缓冲区;
(6)进行一次右移操作,此时,下一次的操作为上移,上缓冲区开始工作,在特征提取的 同时,图像再往上方两行的图像数据存入上缓冲区;
(7)进行一次上移操作,再进行图像特征提取;同时,由于下一次的操作也为上移操作, 所以图像再往上方两行的数据数据存入上缓冲区;
(8)重复步骤(7),直至图像再往上方没有数据;此时,下一次的操作为右移,右缓冲区 开始工作,在特征提取的同时,图像再往右方两列的图像数据存入右缓冲区;
(9)重复之前的步骤(4)至步骤(8),如图6所示,直至整个目标图像被遍历完毕。本发明应用于较高分辨率图像时,所需要的硬件资源很少。以图像为640*480,检 测目标的大小为20*20,步进为2为例。采用本发明所用的方案需要520个(20*20+3*2*20) 寄存器。如果采用整个积分图存储的方案需要307200个(640*480)寄存器。如果采用添加buffer的方案需要400个(20*20)寄存器和22个深度为640的block RAM。由此可以 看出,采用本发明所述方案能有效减少硬件资源,并且对于分辨率越高的图像,越能有效地 减少所需资源。
权利要求
1.一种用于图像特征查找的遍历方法,利用硬件特征框对图像进行遍历,其特征在于 所述硬件特征框包括一个特征提取框和位于特征提取框上、下、右方的三个缓冲区,所述特 征提取框由一个行χ列为MXN的寄存器阵列组成,M为大于2的自然数,N为大于1的自 然数;在所述特征提取框中,除最上方X行、最下方X行、最右方Y列外,每个寄存器在上、下 方向上与距离该寄存器为X的寄存器相连,在右方向上与距离该寄存器为Y的寄存器相连, X为行步进,X取值为小于M/2的自然数,Y为列步进,Y取值为小于N的自然数;所述上、下 缓冲区均由行X列为XXN的寄存器阵列组成;右缓冲区由行X列为MXY的寄存器阵列组 成;所述上缓冲区中的每个寄存器与下方特征提取框中距离该寄存器为X的寄存器相连, 所述下缓冲区中的每个寄存器与上方特征提取框中距离该寄存器为X的寄存器相连,右缓 冲区中的每个寄存器和左方特征提取框中距离该寄存器为Y的寄存器相连;所述遍历包括 一次以上重复由多次下移操作、一次右移操作、多次上移操作和一次的右移操作组成的流 程后完成对整副图像的遍历。
2.根据权利要求1所述的遍历方法,其特征在于所述下移操作为所述特征提取框中 除最上方X行的寄存器外,每个寄存器将所存储的数据写进其上方距离为行步进X的寄存 器中,并且所述下缓冲区中的寄存器将所存储的数据写进与其连接的特征提取框中的寄存 器中。
3.根据权利要求1所述的遍历方法,其特征在于所述右移操作为所述特征提取框中 除最左方Y列的寄存器外,每个寄存器将所存储的数据写进其左方距离为列步进Y的寄存 器中,并且所述右缓冲区中的寄存器将所存储的数据写进与其连接的特征提取框中的寄存 器中。
4.根据权利要求1所述的遍历方法,其特征在于所述上移操作为所述特征提取框中 除最下方X行的寄存器外,每个寄存器将所存储的数据写进其下方距离为行步进X的寄存 器中,并且所述上缓冲区中的寄存器将所存储的数据写进与其连接的特征提取框中的寄存 器中。
5.如权利要求1 4任一项所述的遍历方法,其特征在于所述特征提取框为MXN的用 于存储积分图数据的多输入寄存器阵列,所述上、下缓冲区为XXN的用于存储积分图数据 的单输入多输出移位寄存器阵列,所述右缓冲区为MXY的用于存储积分图数据的单输入 多输出移位寄存器阵列。
6.根据权利要求5所述的遍历方法,其特征在于具体包括如下步骤(1)遍历开始开始时,特征提取框内的数据都是无效的,要进行特征提取必须先把图像 最左上方的数据输入特征提取框;由于特征提取框与外围没有接口,所以必须先通过下缓 冲区输入数据;(2)数据输入下缓冲区,然后进行一次下移操作,数据移进特征提取框的最下方的两行;(3)重复步骤(2),直到图像最左上方的数据就全部移进特征提取框;(4)进行一次图像特征提取,由于下一次的操作也为下移操作,所以同时图像再往下两 行的图像数据存入下缓冲区,待本次特征提取完成后进行一次下移操作;(5)重复步骤(4),直至图像再往下方没有数据;此时,下一次的操作为右移,右缓冲区 开始工作,在特征提取的同时,图像再往右方两列的图像数据存入右缓冲区;(6)进行一次右移操作,此时,下一次的操作为上移,上缓冲区开始工作,在特征提取的 同时,图像再往上方两行的图像数据存入上缓冲区;(7)进行一次上移操作,再进行图像特征提取;同时,由于下一次的操作也为上移操作, 所以图像再往上方两行的数据数据存入上缓冲区;(8)重复步骤(7),直至图像再往上方没有数据;此时,下一次的操作为右移,右缓冲区 开始工作,在特征提取的同时,图像再往右方两列的图像数据存入右缓冲区;(9 )重复之前的步骤(4 )至步骤(8 ),直至整个目标图像被遍历完毕。
全文摘要
本发明公开一种用于图像特征查找的遍历方法,其利用硬件特征框对图像进行遍历,所述硬件特征框包括一个特征提取框和位于特征提取框上、下、右方的三个缓冲区。所述遍历包括一次以上重复由多次下移操作、一次右移操作、多次上移操作和一次的右移操作组成的流程后完成对整副图像的遍历。本发明在每一次基本操作之后会根据状态机的情况迅速定出下一次所需的基本操作。在特征提取框中进行提取的同时,把数据写入相应的缓冲区中。由于这两者是同时进行的,并且大部分情况下,步进比较小,特征提取的用时会长于数据写入,这样并不会带来额外的延时。采用本发明所述方案能有效减少硬件资源,并且对于分辨率越高的图像,越能有效地减少所需资源。
文档编号G06T1/00GK102117326SQ20111004702
公开日2011年7月6日 申请日期2011年2月28日 优先权日2011年2月28日
发明者叶德盛, 周德祥, 姜小波 申请人:华南理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1