一种sift特征向量梯度直方图多通道更新电路的制作方法

文档序号:6543331阅读:263来源:国知局
一种sift特征向量梯度直方图多通道更新电路的制作方法
【专利摘要】本发明公开了一种SIFT特征向量梯度直方图多通道更新电路,使用16个八维四更新的直方图组来取代1个128维16更新的直方图,每一个八维四更新的直方图代表同一空间位置的NBO方向维度的子特征值向量。所述电路包括:第一三线性插值模块、第二三线性插值模块、方向地址仲裁模块、第一至第十六四通道更新仲裁模块、第一至第十六八维四通道更新直方图模块。本发明的电路硬件面积开销仅占传统128维16更新的直方图电路面积开销的28%。从硬件开销方面,本电路优势明显;并且在SMIC0.18um的工艺下,本发明的最高工作频率为130MHz,传统128维16更新的直方图电路最高工作频率为100MHz。
【专利说明】一种SIFT特征向量梯度直方图多通道更新电路
【技术领域】
[0001]本发明属于图像处理【技术领域】,更具体地,涉及一种SIFT特征向量梯度直方图多通道更新电路。
【背景技术】
[0002]SIFT (Scale-1nvariant Feature Transform,尺度不变特征变换)是由 D.G.Lowe开发并进行完善,并且在目前广泛运用于图像配准领域的一种算子。该算子对图像特征点邻域进行描述,进而计算特征向量,该特征向量对灰度、尺度及旋转均具有不变性,而对噪声、视角以及放射变换也具有一定程度的抗性。这种高稳定性的特征向量有利于后期的配准工作。
[0003]SIFT算子共分为四个步骤:尺度空间极值点检测;特征点精确定位;拟合特征点主方向角度;计算特征点特征向量。
[0004]特征向量的计算是将以关键点为中心的图像邻域划分为NBPXNBP个子区域,处于同一个子区域内的像素点参与同一个NBO维的梯度方向直方图的统计计算。这样一来,最后得到的SIFT特征向量就是NBPXNBPXNB0维的向量。在原始SIFT算法中,NBP=4,NB0=8,这样一来,每个SIFT特征向量是128维的。而每个参与特征向量计算的像素点都会通过三线性插值的计算方法,对特征向量做出贡献。三线性插值运算是将一个像素点的梯度幅值,按照距离比例分配128维特征向量中的多个维度,最多8维度中去。这8个维度分别是水平方向相邻的两个向量,垂直方向相邻的两个向量以及方向相邻的两个方向。图1描述的是在二维空间中像素点的值插入到特征向量直方图的相应直方柱中的方法。图1中的坐标轴是旋转后并且进行了伸缩的坐标轴;方框表示待扫描的像素点所在的区域;16个灰色的点分别位于同一组NBO维的方向直方图扫描范围的中心;黑点是某一个待采样的像素点,其坐标为(nx,ny,nt)。从它的空间位置可以判定,这个采样点将在二维空间中插值到a,b,c,d这四个NBO维方向直方图中。水平方向、垂直方向和角度的插值维度bx,by, bt为:
[0005]bx = [ηχ-0.5]
[0006]by = [ny-0.5]
[0007]b Θ = [η Θ ]
[0008]而rbx, rby, rbt为被采样的像素点与左下方的方向直方图的相对距离:
[0009]rbx = nx-bx
[0010]rby = ny-by
[0011]rbt = nt-bt
[0012]为了提高特征向量部分计算的吞吐率,每个时钟周期对两个像素点进行扫描与计算。这样一来,直方图电路每个时钟周期至多会有16维的直方柱需要更新。而直方图电路的更新路径越多,地址重复性仲裁逻辑就越为复杂。单纯的128维16更新的直方图电路的地址重复性仲裁逻辑复杂度极高,如若分多级流水来完成地址仲裁,又会造成复杂的直方图数据读写冲突。同时,复杂的逻辑电路又会使得硬件面积开销的激增。综上所述,传统的高维度多更新的直方图电路不仅面积开销大,也极为容易成为整体模块设计的关键路径。

【发明内容】

[0013]本发明所要解决的技术问题是克服现有的SIFT特征向量16更新通道直方图电路的地址重复性的仲裁逻辑复杂度高,硬件面积代价大的问题。提供一种硬件面积较小,且能工作在较高频率下的SIFT特征向量梯度直方图多通道更新电路。
[0014]SIFT特征向量梯度直方图多通道更新电路是使用16个八维四更新的直方图组来取代I个128维16更新的直方图。每一个八维四更新的直方图代表同一空间位置的NBO方向维度的子特征值向量。SIFT特征向量梯度直方图多通道更新电路包括:第一三线性插值模块、第二三线性插值模块、方向地址仲裁模块、第一四通道更新仲裁模块、第二四通道更新仲裁模块、第三四通道更新仲裁模块、第四四通道更新仲裁模块、第五四通道更新仲裁模块、第六四通道更新仲裁模块、第七四通道更新仲裁模块、第八四通道更新仲裁模块、第九四通道更新仲裁模块、第十四通道更新仲裁模块、第十一四通道更新仲裁模块、第十二四通道更新仲裁模块、第十三四通道更新仲裁模块、第十四四通道更新仲裁模块、第十五四通道更新仲裁模块、第十六四通道更新仲裁模块、第一八维四通道更新直方图模块、第二八维四通道更新直方图模块、第三八维四通道更新直方图模块、第四八维四通道更新直方图模块、第五八维四通道更新直方图模块、第六八维四通道更新直方图模块、第七八维四通道更新直方图模块、第八八维四通道更新直方图模块、第九八维四通道更新直方图模块、第十八维四通道更新直方图模块、第十一八维四通道更新直方图模块、第十二八维四通道更新直方图模块、第十三八维四通道更新直方图模块、第十四八维四通道更新直方图模块、第十五八维四通道更新直方图模块、第十六八维四通道更新直方图模块。
[0015]所述的第一、第二三线性差值模块内部功能是根据像素点的bx,by值来确定该像素点参与计算的四个直方图组的序列号,并将16个仲裁模块中的相应四个模块使能信号(cen)置一。根据bt来判断参与计算的四个直方图组中的方向地址,并输出这两个地址值add_bin0, add_binl。第一三线性插值输出的地址第二三线性插值输出的地址,共四个地址信号与第一至第十六四通道更新仲裁模块相连。根据像素点的rbx,rby,rbt,以及像素点的权重值(mg)进行三线性插值计算得到8个插值值。将其中方向地址为add_bin0的四个插值值根据由 d0_bin0, dl_bin0, d2_bin0, d3_bin0, d4_bin0, d5_bin0, d6_bin0, d7_bin0, d8_binO, d9_bin0, dl0_bin0, dll_bin0, dl2_bin0, dl3_bin0, dl4_bin0, dl5_bin0 这 16 个通道中的4个通道输出,而这四个通道的序号与被置一的使能信号(cen)序号相同。将其中方向地址为 add_binl 的四个插值值根据由 d0_binl, dl_binl, d2_binl, d3_binl, d4_binl, d5_binl,d6—binl,d7—binl,d8_binl,d9—binl,dlO—binl,dll—binl,dl2—binl,dl3_binl,dl4_binl, dl5_binl这16个通道中的4个通道输出,而这四个通道的序号与被置一的使能信号(cen)序号相同。
[0016]所述的方向地址仲裁模块的内部功能是判断由第一三线性差值模块输出的地址add_bin0[0],add_binl[0]和由第二三线性差值模块输出的地址add_bin0[O],add_binl [O],这四个地址信号的重复性进行仲裁,生成标志信号flag。
[0017]所述的第一至第十六四通道更新仲裁模块的内部功能是通过来自第一三线性插值模输出的使能信号cenO,与来自第二三线性插值模块输出的使能信号cenl来判断是先处理的2个像素点是否对该序号的子特征向量直方图有贡献。仲裁第一三线性插值模块输出方向地址add_bin0[0], add_binl [O],第二三线性插值模块的共四组地址add_binO[l],add_binl[l]的重复性。因此四通道更新仲裁模块输出信号有输出有效信号vdO, vdl, vd2, vd3 ;地址信号 addrO, addrl, addr2, addr3 ;数据信号 datO, datl, dat2, dat3。这12个信号与八维四通道更新直方图模块相连。
[0018]所述的第一至第十六八维四通道更新直方图模块内部功能是完成直方图的累加工作。每个八维四通道更新直方图模块都会输出同一空间坐标的八维子特征向量。这16个8维向量组成SIFT的128维特征向量{hisO,hisl, his2,...,hisl27}。例如,第一八维四通道更新直方图模块输出向量为{his0,hisl,his2,...,his7};第十六八维四通道更新直方图模块输出向量为{hisl20, hisl21, hisl22,...,hisl27}。
[0019]本发明与现有的技术相比具有的有益效果:
[0020]I)本发明的电路硬件面积开销仅占传统128维16更新的直方图电路面积开销的28%。从硬件开销方面,本电路优势明显;
[0021]2)在SMIC0.18um的工艺下,本发明的最高工作频率为130MHz,传统128维16更新的直方图电路最高工作频率为100MHz。
【专利附图】

【附图说明】
[0022]图1是现有技术中像素梯度值二线性插值原理示意图;
[0023]图2是本发明中SIFT特征向量梯度直方图多通道更新电路各子模块连接示意图;
[0024]图3是本发明实施例中三线性插值模块结构电路图;
[0025]图4是本发明实施例中方向地址仲裁模块功能示意图;
[0026]图5是本发明实施例中四通道更新仲裁模块结构电路图。
【具体实施方式】
[0027]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0028]图2所示,SIFT特征向量梯度直方图多通道更新电路包括:第一三线性插值模块(201)、第二三线性插值模块(201)、方向地址仲裁模块(202)、第一至第十六四通道更新仲裁模块(203)、第一至第十六八维四通道更新直方图模块(204)。图2为连接示意图,由于作图面积有限,只画出第一个(203(1))和第十六个(203(16))四通道更新仲裁模块;第一个(204(1))和第十六个(204(16))八维四通道更新直方图模块。
[0029]第一、第二三线性插值模块(201)的输出使能信号连接方式:cen0与第一四通道更新仲裁模块(203(1))相连,cenl与第二四通道更新仲裁模块(203(2))相连,以此类推,cenl5与第十六四通道更新仲裁模块(203(16))相连。第一、第二三线性插值模块的输出插值数据信号连接方式:d0_bin0和d0_binl与第一四通道更新仲裁模块(203(1))相连,dl_binO和dl_binl与第二四通道更新仲裁模块(203(2))相连,以此类推,dl5_bin0和dl5_binl与第十六四通道更新仲裁模块(203(16))相连。第一、第二三线性插值模块的输出地址信号连接方式:add_bin0和add_binl与十六个四通道更新仲裁模块(203)逐一相连。
[0030]方向地址仲裁模块(202)的输入信号是来自第一、第二三线性插值模块的输出地址信号,add_bin0和add_binl。输出标志信号flag与第一至第十六四通道更新仲裁模块
(203)相连。
[0031]每个四通道更新仲裁模块(203)的输出信号都会与一个八维四更新直方图模块
(204)相连,而该直方图模块(204)的序号与四通道更新仲裁模块(203)相同。即,第一四通道更新仲裁模块(203(1))与第一八维四更新直方图模块(204(1))相连。
[0032]图3所示,三线性插值模块(201)结构电路图。bt信号两级寄存以及进行‘加I’处理后寄存分别得到两个方向地址信号add_bin0, add_binl。rbx, rby, rbt与权重值mg通过三个减法器,20个乘法器在一级流水中完成三线性插值运算,计算得到8个插值值:d0, dl, d2, d3, d4, d5, d6, d7。bx, by通过三个加法器一个乘法器并进行一级寄存后,运算得到采样像素点的空间地址参数ind_sub:
[0033]ind_sub = (by+3) X 5+bx+3
[0034]sel模块是一个译码逻辑,其逻辑关系表1所示
[0035]表1
【权利要求】
1.一种SIFT特征向量梯度直方图多通道更新电路,其特征在于,包括:第一三线性插值模块、第二三线性插值模块、方向地址仲裁模块、第一四通道更新仲裁模块、第二四通道更新仲裁模块、第三四通道更新仲裁模块、第四四通道更新仲裁模块、第五四通道更新仲裁模块、第六四通道更新仲裁模块、第七四通道更新仲裁模块、第八四通道更新仲裁模块、第九四通道更新仲裁模块、第十四通道更新仲裁模块、第十一四通道更新仲裁模块、第十二四通道更新仲裁模块、第十三四通道更新仲裁模块、第十四四通道更新仲裁模块、第十五四通道更新仲裁模块、第十六四通道更新仲裁模块、第一八维四通道更新直方图模块、第二八维四通道更新直方图模块、第三八维四通道更新直方图模块、第四八维四通道更新直方图模块、第五八维四通道更新直方图模块、第六八维四通道更新直方图模块、第七八维四通道更新直方图模块、第八八维四通道更新直方图模块、第九八维四通道更新直方图模块、第十八维四通道更新直方图模块、第十一八维四通道更新直方图模块、第十二八维四通道更新直方图模块、第十三八维四通道更新直方图模块、第十四八维四通道更新直方图模块、第十五八维四通道更新直方图模块、第十六八维四通道更新直方图模块;其中: 所述第一三线性差值模块、第二三线性差值模块,用于根据像素点的bx,by值来确定该像素点参与计算的四个直方图组的序列号,并将16个仲裁模块中的相应四个模块使能信号cen置一;根据bt来判断参与计算的四个直方图组中的方向地址,并输出这两个地址值add_binO,add_binl ;第一三线性插值输出的两个地址值和第二三线性插值输出的两个地址值,共四个地址信号与第一至第十六四通道更新仲裁模块相连;根据像素点的rbx, rby, rbt,以及像素点的权重值mg进行三线性插值计算得到8个插值值,分别为d0,dl,d2,d3,d4,d5,d6,d7 ;其中dl, d3, d5, d7四个插值值的方向地址为add_binO, dO, d2, d4, d6四个插值值的方向地址为add_binl ;将dl, d3, d5, d7的值传送到d0_binO, dl_binO, d2_bin0, d3_bin0, d4_bin0, d5_bin0, d_6_bin0,d7_bin0,d8_bin0,d9_binO, dlO_binO, dll_binO, dl2_bin0, dl3_bin0, dl4_bin0, dl5_bin0 这 16 个通道中相应的通道中;将 dO, d2, d4, d6 的值传送到 dO_binl, dl_binl, d2_binl, d3_binl, d4_binl, d5_binl, d6_binl, d7_binl, d8_binl, d9_binl, dlO_binl, dll_binl, dl2_binl, dl3_binl, dl4_binl, d-15_binl这16个通道中相应的通道中; 所述的方向地址仲裁模块,用于判断由第一三线性差值模块输出的地址add_binO [O], add_binl [O]和由第二三线性差值模块输出的地址add_bin0[0], add_binl [O],对这四个地址信号的重复性进行仲裁,生成标志信号flag ; 所述的第一至第十六四通道更新仲裁模块,用于根据来自第一三线性插值模输出的使能信号cenO,与来自第二三线性插值模块输出的使能信号cenl来判断先处理的2个像素点是否对该序号的子特征向量直方图有贡献;仲裁第一三线性插值模块输出方向地址add_binO [O], add_binl [O],第二三线性插值模块的共四组地址 add_binO [I], add_binl [I]的重复性;四通道更新仲裁模块输出信号有输出有效信号vdO、vdU vd2、vd3,地址信号addrO、addrl、addr2、addr3,数据信号 datO、datl、dat2、dat3,这 12 个信号与八维四通道更新直方图模块相连; 所述的第一至第十六八维四通道更新直方图模块,用于完成直方图的累加工作,每个八维四通道更新直方图模块都用于输出同一空间坐标的八维子特征向量,这16个8维向量组成 SIFT 的 128 维特征向量{hisO, hisl, his2,...,hisl27}。
2.如权利要求1所述的电路,其特征在于,在所述第一三线性插值模块和第二三线性插值模块中:方向地址信号add_binO, add_binl由输入信号bt运算得到:
add_binO = bt
add_binl = bt+1 ; 采样像素点的空间地址参数ind_sub是由输入信号bx和by算数运算得到: ind_sub = (by+3)X5+bx+3 ; 插值值dO, dl, d2, d3, d4, d5, d 6, d7是由输入信号rbx, rby, rbt与mg在一级流水的时间中,使用3个减法器与20个乘法器三线性插值得到的;根据空间地址参数ind_sub的值,将使能信号cenO至cenl5中的I个,2个或者4个使能信号置一;根据空间地址参数ind_sub的值,将插值值dl, d3, d5, d7中的I个,2个或者4个传输到d0_bin0,dl_binO, d2_binO, d3_bin0, d4_bin0, d5_bin0, d6_bin0, d7_bin0, d8_bin0, d9_bin0, dl0_bin0, dl 1_binO, dl2_bin0, dl3_bin0, dl4_bin0, dl5_bin0 这 16 个数据通道中的相应的 I 个,2 个或者4个数据通道中;根据空间地址参数ind_sub的值,将插值值d0,d2, d4, d6中的I个,2个或者 4 个传输到 d0_binl, dl_binl, d2_binl, d3_binl, d4_binl, d5_binl, d6_binl, d7_binl, d8_binl, d9_binl, dl0_binl, dll_binl, dl2_binl, dl3_binl, dl4_binl, dl5_binl 这16个数据通道中的相应的I个,2个或者4个数据通道中。
3.如权利要求1或2所述的电路,其特征在于,所述方向地址仲裁模块用于比较两个三线性插值模块输出的方向地址信号的重复性并输出标志信号flag,其中方向地址重复包含三种场景:场景1,当第一三线性插值模块输出地址信号add0_bin0与第二三线性插值模块输出地址信号addl_binl重复,此时方向地址仲裁模块输出标志信号flag值为’ 01’ ;场景2,第一三线性插值模块输出地址信号add0_binl与第二三线性插值模块输出地址信号addl_bin0重复,此时方向地址仲裁模块(202)输出标志信号flag值为’ 10’;场景3,第一三线性插值模块输出地址信号add0_bin0,add0_binl与第二三线性插值模块输出地址信号addl_binl,addl_binl都重复,此时方向地址仲裁模块输出标志信号flag值为’ 00’ ;除上述三种场景之外,不会发生方向地址重复的情况,方向地址仲裁模块输出标志信号flag值为’ 11’。
4.如权利要求1或2所述的电路,其特征在于,所述四通道更新仲裁模块由21个四输入多路选择器和11个寄存器组成,使能信号cenO,cenl与标志信号flag为这21个四输入多路选择器的控制信号; cenl等于I并且cenO等于I时,代表两条输入数据通道都无效,所有输出信号(vdO,vdl, vd2, vd3, datO, datl, dat2, dat3, addO, addl, add2, add3)都为 0 ; cenl等于I而cenO等于O时,说明仅第一条输入数据通道有效,因此开启第一、第二输出数据通道,即将vdO、vdl置I,vd2、vd3置O ;第一输出插值数据datO的值为d0_bin0,第二输出插值数据datl的值为d0_binl,第三输出插值数据dat2与第四输出插值数据dat3的值都为O ;第一输出地址addO为add0_bin0,第二输出地址addl为add0_binl,第三输出地址add2和第四输出地址add3的值都为O ; cenl等于O而cenO等于I时,仅第二条输入数据通道有效,因此开启第一、第二输出数据通道,即将vdO、vdl置I, vd2、vd3置O ;第一输出插值数据datO的值为dl_bin0,第二输出插值数据datl的值为dl_binl,第三输出插值数据dat2与第四输出插值数据dat3的值都为O ;第一输出地址addO)为addl_binO,第二输出地址addl为addl_binl,第三输出地址add2和第四输出地址add3的值都为O ; cenl等于O而cenO等于O时,说明第一、第二输入数据通道都有效,此时输出的插值数据信号与输出的地址信号由标志信号控制flag等于‘11’时,为没有地址重复的现象;因此开启第一、第二、第三、第四条输入数据信号,即将vd0、vdl、d2、vd3置I ;第一输出插值数据datO的值为dO_binO,第二输出插值数据datl的值为dO_binl,第三输出插值数据dat2为dl_binO,第四输出插值数据dat3的值为dl_binl ;第一输出地址addO为addO_binO,第二输出地址addl为addO_binl,第三输出地址add2为addl_binO,第四输出地址add3的值都为addl_binl ;Flag等于‘10’时,输入地址add0_binl与addl_bin0重复;因此开启第一、第二、第三输入数据信号,即将vd0、vdl、d2置I ;第一输出插值数据datO的值为d0_binO,第二输出插值数据datl的值为d0_binl与dl_bin0的和值,第三输出插值数据dat2为dl_binl,第四输出插值数据dat3的值为O ;第一输出地址addO为add0_bin0,第二输出地址addl为add0_binl,第三输出地址add2为addl_binl,第四输出地址add3的值都为O ;Flag等于‘01’时,输入地址add0_bin0与addl_binl重复;因此开启第一、第二、第三输入数据信号,即将vdO、vdl、d2置I ;第一输出插值数据datO的值为dl_bin0,第二输出插值数据datl的值为d0_bin0与dl_binl的和值,第三输出插值数据dat2为d0_binl,第四输出插值数据dat3的值为O ;第一输出地址addO为 addl_bin0,第二输出地址addl为addl_binl,第三输出地址add2为add0_binl,第四输出地址add3的值都为O ;flag等于‘00’时,输入地址add0_bin0与addl_bin0重复,输入地址add0_binl与addl_binl重复;因此开启第一、第二输入数据信号,即将vd0、vdl置I ;第一输出插值数据datO的值为d0_bin0和dl_bin0的和值,第二输出插值数据datl的值为d0_binl与dl_binl的和值,第三输出插值数据dat2为0,第四输出插值数据dat3的值为O ;第一输出地址addO为add0_bin0,第二输出地址addl为add0_binl,第三输出地址add2为0,第四输出地址add3的值都为O。
【文档编号】G06T7/00GK103955919SQ201410141691
【公开日】2014年7月30日 申请日期:2014年4月9日 优先权日:2014年4月9日
【发明者】桑红石, 李茜, 张静, 梁巢兵, 王文, 张新宇, 何弘 申请人:华中科技大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1