一种用于数字图像处理的特征提取模块及遍历方法

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

发明内容
本发明为了克服现有技术存在的缺点与不足,提供一种用于数字图像处理的特征提取模块及遍历方法。本发明采用如下技术方案
一种用于数字图像处理的特征提取模块,包括特征提取寄存器阵列、上缓冲区、下缓冲区、右缓冲区,所述上缓冲区位于特征提取寄存器阵列的上方,下缓冲区位于特征提取寄存器阵列的下方,右缓冲区位于特征提取寄存器阵列的右侧;所述特征提取寄存器阵列由M行N列的寄存器阵列构成,所述M为大于2的自然数,N为大于I的自然数;所述特征提取寄存器阵列中,除上方的X行、下方的X行、右侧的Y列寄存器外,其它的寄存器在上方与其距离为X的寄存器相连接,下方与其距离为X的寄存器连接,右侧与其距离为Y的寄存器相连接;所述上、下缓冲区均由X行N+Y列的寄存器阵列构成;所述上缓冲区中的X行N列中的每个寄存器与特征提取寄存器阵列中距离该寄存器为X的寄存器相连接,其它的X行Y列中的寄存器与右缓冲区中距离该寄存器为X的寄 存器相连接;所述下缓冲区中的X行N列中的每个寄存器与特征提取寄存器阵列中距离该寄存器为X的寄存器相连,其它的X行Y列中的寄存器与右缓冲区中距离该寄存器为X的寄存器相连接;所述右缓冲区由M行Y列的寄存器阵列构成,右缓冲区中的每个寄存器与特征提取寄存器阵列中距离该寄存器为Y的寄存器相连接;所述X为行步进,X为小于M/2的自然数,所述Y为列步进,Y为小于N的自然数。所述特征提取寄存器阵列为用于存储积分图数据的多输入寄存器阵列。所述上、下缓冲区为用于存储积分图数据的单输入多输出的移位寄存器阵列。所述右缓冲区为用于存储积分图数据的单输入多输出的移位寄存器阵列。一种用于数字图像处理的特征提取模块的遍历方法,所述遍历方法包括重复一次以上的由多次下移操作,一次右移操作,多次上移操作,一次右移操作构成的遍历流程。所述下移操作为所述特征提取寄存器阵列中除上方X行的寄存器外,其它寄存器将所存储的数据写进上方距离该寄存器为X的寄存器中;所述下缓冲区中的寄存器将所存储的数据写进与其连接的特征提取寄存器阵列的寄存器及右缓冲区的寄存器中;所述右缓冲区中除上方X行寄存器外,其它寄存器将所存储的数据写进上方距离该寄存器为X的寄存器中;所述右移操作为所述特征提取寄存器阵列中除左方Y列寄存器外,其它寄存器将所存储的数据写进左方距离该寄存器为Y的寄存器中;所述右缓冲区中的寄存器将所存储的数据写进与其连接的特征提取寄存器阵列中的寄存器;所述上移操作为所述特征提取寄存器阵列除下方X行的寄存器外,其它寄存器将所存储的数据写进下方距离该寄存器为X的寄存器中;所述上缓冲区的寄存器将所存储的数据写进与其连接的特征提取寄存器阵列中;所述右缓冲区中除下方X行的寄存器外,其它寄存器所存储的数据写进下方距离该寄存器为X的寄存器中;所述上缓冲区中的寄存器将所存储的数据写进与其连接的右缓冲区。所述遍历方法具体包括如下步骤( I)遍历开始时,特征提取寄存器阵列内的数据为无效,要进行特征提取必须先把图像最左上方的数据输入特征提取寄存器阵列;由于特征提取寄存器阵列与外围没有接ロ,所以先通过下缓冲区输入数据;( 2 )数据输入下缓冲区,然后进行一次下移操作,数据移进特征提取寄存器阵列和 右缓冲区的最下方的X行;(3)重复步骤(2),直到图像最左上方的数据全部移进特征提取寄存器阵列;(4)进行一次图像特征提取,由于下一次的操作也为下移操作,所以同时图像再往下X行的图像数据存入下缓冲区,待本次特征提取完成后进行一次下移操作;(5)重复步骤(4),直至图像再往下方没有数据;此时,进行一次右移操作,由于在多次下移操作的时候,右缓冲区也在不断更新数据,因此这个时候右缓冲区已经存放着有效的数据,直接进行右移操作,无需等待数据写入右缓冲区;(6)进行一次右移操作后,下一次的操作为上移,上缓冲区开始工作,在特征提取的同时,图像再往上方X行的图像数据存入上缓冲区;(7)进行一次上移操作后再进行图像特征提取;同吋,由于下一次的操作也为上移操作,所以图像再往上方X行的数据存入上缓冲区;(8)重复步骤(7),直至图像再往上方没有数据;此时,进行一次右移操作,由于在多次上移操作的时候,右缓冲区也在不断更新数据,因此这个时候右缓冲区已经存放着有效的数据,直接进行右移操作,无需等待数据写入右缓冲区;(9)重复之前的步骤(4)至步骤(8),直至整个目标图像被遍历完毕。相比现有技术,本发明具有如下优点(I)应用于较高分辨率图像时,所需要的硬件资源很少。以图像为640*480,检测目标的大小为20*20,步进为2作为说明。采用本发明所用的方案需要528个(20*20+2*20+2*22*2)寄存器。如果采用整个积分图存储的方案需要307200个(640*480)寄存器。如果采用添加buffer的方案需要400个(20*20)寄存器和22个深度为640的block RAM。由此可以看出,采用本发明所述方案能有效减少硬件资源,并且对于分辨率越高的图像,越能有效地減少所需资源。(2)在有效减少硬件资源的同吋,对处理速度没有影响。本发明在每一次基本操作之后会根据状态机的情况迅速定出下一次所需的基本操作。在特征提取寄存器阵列进行数据移位的同时,把数据写入相应的缓冲区中。由于这两者是同时进行的,并且大部分情况下,步进比较小,特征提取的用时会长于数据写入,这样并不会带来额外的延时。而步进较大并且特征提取很快结束这样的情况相对很少,这种情况下,虽然会带来一定的延时,但相比起资源的节省这也是完全可以接受的。另外,由于在多次上移操作、下移操作的时候,右缓冲区也在不断更新数据,因此当需要进行右移操作的时候,右缓冲区已经存放着有效的数据,可以直接进行右移操作,无需等待数据写入右缓冲区,达到提速的目的。


图I是本发明的特征提取模块的结构框图,图中reg表示寄存器。图2是特征提取模块的上移操作,图中小方框为寄存器reg。图3是特征提取模块的下移操作,图中小方框为寄存器reg。图4是特征提取模块的右移操作,图中小方框为寄存器reg。图5是实施例中的特征提取模块,图中小方框为寄存器reg。图6是实施例中整个图像遍历方法的过程图。
具体实施方式
下面结合实施例及附图,对本发明作进ー步地详细说明,但本发明的实施方式不限于此。实施例如图I所示为本发明的特征提取模块的结构框图,包括特征提取寄存器阵列、上缓冲区、下缓冲区、右缓冲区,所述上缓冲区位于特征提取寄存器阵列的上方,下缓冲区位于特征提取寄存器阵列的下方,右缓冲区位于特征提取寄存器阵列的右侧;所述特征提取寄存器阵列由M行N列的寄存器阵列构成,所述M为大于2的自然数,N为大于I的自然数;所述特征提取寄存器阵列中,除上方的X行、下方的X行、右侧的Y列寄存器外,其它的寄存器在上方与其距离为X的寄存器相连接,下方与其距离为X的寄存器连接,右侧与其距离为Y的寄存器相连接;所述上、下缓冲区均由X行N+Y列的寄存器阵列构成;所述上缓冲区中的X行N列中的每个寄存器与特征提取寄存器阵列中距离该寄存器为X的寄存器相连接,其它的X行Y列中的寄存器与右缓冲区中距离该寄存器为X的寄存器相连接;所述下缓冲区中的X行N列中的每个寄存器与特征提取寄存器阵列中距离该寄存器为X的寄存器相连,其它的X行Y列中的寄存器与右缓冲区中距离该寄存器为X的寄存器相连接;所述右缓冲区由M行Y列的寄存器阵列构成,右缓冲区中的每个寄存器与特征提取寄存器阵列中距离该寄存器为Y的寄存器相连接;所述X为行步进,X为小于M/2的自然数,所述Y为列步进,Y为小于N的自然数。所述特征提取寄存器阵列为用于存储积分图数据的多输入寄存器阵列。所述上、下缓冲区为用于存储积分图数据的单输入多输出的移位寄存器阵列。所述右缓冲区为用于存储积分图数据的单输入多输出的移位寄存器阵列。一种用于数字图像处理的特征提取模块的遍历方法,所述遍历方法包括重复一次以上的由多次下移操作,一次右移操作,多次上移操作,一次右移操作构成的遍历流程。如图2所示为特征提取模块的上移操作,所述上移操作为所述特征提取寄存器阵列除下方X行的寄存器外,其它寄存器将所存储的数据写进下方距离该寄存器为X的寄存器中;所述上缓冲区的寄存器将所存储的数据写进与其连接的特征提取寄存器阵列中;所述右缓冲区中除下方X行的寄存器外,其它寄存器所存储的数据写进下方距离该寄存器为X的寄存器中;所述上缓冲区中的寄存器将所存储的数据写进与其连接的右缓冲区。如图3所示为特征提取模块的下移操作,所述特征提取寄存器阵列中除上方X行的寄存器外,其它寄存器将所存储的数据写进上方距离该寄存器为X的寄存器中;所述下缓冲区中的寄存器将所存储的数据写进与其连接的特征提取寄存器阵列 的寄存器及右缓冲区的寄存器中;所述右缓冲区中除上方X行寄存器外,其它寄存器将所存储的数据写进上方距离该寄存器为X的寄存器中。如图4所示为特征提取模块的右移操作所述特征提取寄存器阵列中除左方Y列寄存器外,其它寄存器将所存储的数据写进左方距离该寄存器为Y的寄存器中;所述右缓冲区中的寄存器将所存储的数据写进与其连接的特征提取寄存器阵列中的寄存器。如图5所示为实施例中的特征提取模块其特征提取寄存器阵列大小为10X10 ;在特征提取寄存器阵列的上方和下方,分别是ー个行X列为2X12的缓冲区,分别称为上缓冲区和下缓冲区;在特征提取寄存器阵列的右方,是ー个行X列为10X2的缓冲区,称之为右缓冲区。如图6所示为实施例整个图像遍历方法的过程图,所述遍历方法具体包括如下步骤( I)遍历开始时,特征提取寄存器阵列内的数据为无效,要进行特征提取必须先把图像最左上方的数据输入特征提取寄存器阵列;由于特征提取寄存器阵列与外围没有接ロ,所以先通过下缓冲区输入数据;( 2 )数据输入下缓冲区,然后进行一次下移操作,数据移进特征提取寄存器阵列和右缓冲区的最下方的两行;(3)重复步骤(2),一共5次,直到图像最左上方的数据全部移进特征提取寄存器阵列;(4)进行一次图像特征提取,由于下一次的操作也为下移操作,所以同时将图像再往下两行的图像数据存入下缓冲区,待本次特征提取完成后进行一次下移操作;(5)重复步骤(4),直至图像再往下方没有数据;此时,进行一次右移操作,由于在多次下移操作的时候,右缓冲区也在不断更新数据,因此这个时候右缓冲区已经存放着有效的数据,直接进行右移操作,无需等待数据写入右缓冲区;(6)进行一次右移操作后,下一次的操作为上移,上缓冲区开始工作,在特征提取的同时,图像再往上方两行的图像数据存入上缓冲区;(7)进行一次上移操作后再进行图像特征提取;同吋,由于下一次的操作也为上移操作,所以图像再往上方两行的数据存入上缓冲区;(8)重复步骤(7),直至图像再往上方没有数据;此时,进行一次右移操作,由于在多次上移操作的时候,右缓冲区也在不断更新数据,因此这个时候右缓冲区已经存放着有效的数据,直接进行右移操作,无需等待数据写入右缓冲区;(9)重复之前的步骤(4)至步骤(8),如图6所示,直至整个目标图像被遍历完毕。本发明应用于较高分辨率图像时,所需要的硬件资源很少,以图像为640*480,检测目标的大小为20*20,步进为2作为说明。采用本发明所用的方案需要528个(20*20+2*20+2*22*2)寄存器。如果采用整个积分图存储的方案需要307200个(640*480)寄存器。如果采用添加buffer的方案需要400个(20*20)寄存器和22个深度为640的block RAM。由此可以看出,采用本发明所述方案能有效减少硬件资源,并且对于分辨率越高的图像,越能有效地減少所需资源。 上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受所述实施例的 限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置換方式,都包含在本发明的保护范围之内。
权利要求
1.一种用于数字图像处理的特征提取模块,其特征在于,包括特征提取寄存器阵列、上缓冲区、下缓冲区、右缓冲区,所述上缓冲区位于特征提取寄存器阵列的上方,下缓冲区位于特征提取寄存器阵列的下方,右缓冲区位于特征提取寄存器阵列的右侧; 所述特征提取寄存器阵列由M行N列的寄存器阵列构成,所述M为大于2的自然数,N为大于I的自然数; 所述特征提取寄存器阵列中,除上方的X行、下方的X行、右侧的Y列寄存器外,其它的寄存器在上方与其距离为X的寄存器相连接,下方与其距离为X的寄存器连接,右侧与其距离为Y的寄存器相连接; 所述上、下缓冲区均由X行N+Y列的寄存器阵列构成; 所述上缓冲区中的X行N列中的每个寄存器与特征提取寄存器阵列中距离该寄存器为X的寄存器相连接,其它的X行Y列中的寄存器与右缓冲区中距离该寄存器为X的寄存器相连接; 所述下缓冲区中的X行N列中的每个寄存器与特征提取寄存器阵列中距离该寄存器为X的寄存器相连,其它的X行Y列中的寄存器与右缓冲区中距离该寄存器为X的寄存器相连接; 所述右缓冲区由M行Y列的寄存器阵列构成,右缓冲区中的每个寄存器与特征提取寄存器阵列中距离该寄存器为Y的寄存器相连接; 所述X为行步进,X为小于M/2的自然数,所述Y为列步进,Y为小于N的自然数。
2.根据权利要求I所述ー种用于数字图像处理的特征提取模块,其特征在于,所述特征提取寄存器阵列为用于存储积分图数据的多输入寄存器阵列。
3.根据权利要求I所述ー种用于数字图像处理的特征提取模块,其特征在于,所述上、下缓冲区为用于存储积分图数据的单输入多输出的移位寄存器阵列。
4.根据权利要求I所述ー种用于数字图像处理的特征提取模块,其特征在于,所述右缓冲区为用于存储积分图数据的单输入多输出的移位寄存器阵列。
5.权利要求I一 4任一项所述的一种用于数字图像处理的特征提取模块的遍历方法,其特征在于,所述遍历方法包括重复一次以上的由多次下移操作,一次右移操作,多次上移操作,一次右移操作构成的遍历流程。
6.根据权利要求5所述的遍历方法,其特征在干, 所述下移操作为 所述特征提取寄存器阵列中除上方X行的寄存器外,其它寄存器将所存储的数据写进上方距离该寄存器为X的寄存器中; 所述下缓冲区中的寄存器将所存储的数据写进与其连接的特征提取寄存器阵列的寄存器及右缓冲区的寄存器中; 所述右缓冲区中除上方X行寄存器外,其它寄存器将所存储的数据写进上方距离该寄存器为X的寄存器中; 所述右移操作为 所述特征提取寄存器阵列中除左方Y列寄存器外,其它寄存器将所存储的数据写进左方距离该寄存器为Y的寄存器中; 所述右缓冲区中的寄存器将所存储的数据写进与其连接的特征提取寄存器阵列中的寄存器; 所述上移操作为 所述特征提取寄存器阵列除下方X行的寄存器外,其它寄存器将所存储的数据写进下方距离该寄存器为X的寄存器中; 所述上缓冲区的寄存器将所存储的数据写进与其连接的特征提取寄存器阵列中; 所述右缓冲区中除下方X行的寄存器外,其它寄存器所存储的数据写进下方距离该寄存器为X的寄存器中; 所述上缓冲区中的寄存器将所存储的数据写进与其连接的右缓冲区。
7.根据权利要求6所述的遍历方法,其特征在于,所述遍历方法具体包括如下步骤 (1)遍历开始时,特征提取寄存器阵列内的数据为无效,要进行特征提取必须先把图像最左上方的数据输入特征提取寄存器阵列;由于特征提取寄存器阵列与外围没有接ロ,所以先通过下缓冲区输入数据; (2)数据输入下缓冲区,然后进行一次下移操作,数据移进特征提取寄存器阵列和右缓冲区的最下方的X行; (3)重复步骤(2),直到图像最左上方的数据全部移进特征提取寄存器阵列; (4)进行一次图像特征提取,由于下一次的操作也为下移操作,所以同时将图像再往下X行的图像数据存入下缓冲区,待本次特征提取完成后进行一次下移操作; (5)重复步骤(4),直至图像再往下方没有数据;此时,进行一次右移操作; (6)进行一次右移操作后,下一次的操作为上移,上缓冲区开始工作,在特征提取的同吋,图像再往上方X行的图像数据存入上缓冲区; (7)进行一次上移操作后再进行图像特征提取;同时,由于下一次的操作也为上移操作,所以图像再往上方X行的数据存入上缓冲区; (8)重复步骤(7),直至图像再往上方没有数据;此时,进行一次右移操作; (9 )重复之前的步骤(4 )至步骤(8 ),直至整个目标图像被遍历完毕。
全文摘要
本发明公开了一种用于数字图像处理的特征提取模块及遍历方法,包括特征提取寄存器阵列、上缓冲区、下缓冲区、右缓冲区,上、下缓冲区均由X行N+Y列的寄存器阵列构成,所述遍历方法包括一次以上重复由多次下移操作,一次右移操作,多次上移操作,一次右移操作。本发明在每一次基本操作之后会根据状态机的情况迅速定出下一次所需的基本操作。采用本发明所述方案能有效减少硬件资源,并且对于分辨率越高的图像,越能有效地减少所需资源。
文档编号G06K9/46GK102867181SQ20121026469
公开日2013年1月9日 申请日期2012年7月27日 优先权日2012年7月27日
发明者姜小波, 梁祥泰, 周德祥 申请人:华南理工大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1