发明名称 一种基于快速归一化互相关法的相似性测度硬件加速方法
摘要 一种基于快速归一化互相关法的相似性测度硬件加速方法,首先建立实时图与模板图之间相关系数的数学模型;然后利用两层流水线进行硬件算法的设计,并利用有限状态机方法计算搜索窗口选定的实时图与模板图之间的相关系数;在所有搜索窗口选定的实时图与模板图之间的相关系数计算完成后,找出相关系数中的最大值和对应搜索窗口左上角在实时图坐标系中的横坐标和纵坐标,该搜索窗口对应的选定区域即为匹配区域,本发明合理控制硬件资源代价,在Xilinx Virtex5-XC5VFX100T下满足达到100M的要求,对大小为80*64的实时图和大小为25*25的模板图进行相似性匹配运算只需3.5ms,极大的提高了算法速度。
申请公布号 CN104657553A 申请公布日期 2015.05.27
申请号 CN201510070071.3 申请日期 2015.02.10
申请人 北京航天自动控制研究所;中国运载火箭技术研究院 发明人 赵雄波;刘亮亮;吴松龄;范仁浩;严志刚;蒋彭龙;田甜;孟景
分类号 G06F17/50(2006.01)I 主分类号 G06F17/50(2006.01)I
代理机构 中国航天科技专利中心 11009 代理人 安丽
主权项 一种基于快速归一化互相关法的相似性测度硬件加速方法,其特征在于步骤如下:(1)建立实时图与模板图之间相关系数的数学模型;所述数学模型由公式:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mi>&rho;</mi><mrow><mo>(</mo><mi>p</mi><mo>,</mo><mi>q</mi><mo>)</mo></mrow><mo>=</mo><mfrac><mrow><munderover><mi>&Sigma;</mi><mrow><mi>x</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></munderover><munderover><mi>&Sigma;</mi><mrow><mi>y</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></munderover><msub><mi>S</mi><mrow><mi>p</mi><mo>,</mo><mi>q</mi></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>+</mo><mi>p</mi><mo>,</mo><mi>y</mi><mo>+</mo><mi>q</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><mi>T</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>-</mo><mover><mi>T</mi><mo>&OverBar;</mo></mover><mo>&CenterDot;</mo><munderover><mi>&Sigma;</mi><mrow><mi>x</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></munderover><munderover><mi>&Sigma;</mi><mrow><mi>y</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></munderover><msub><mi>S</mi><mrow><mi>p</mi><mo>,</mo><mi>q</mi></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>+</mo><mi>p</mi><mo>,</mo><mi>y</mi><mo>+</mo><mi>q</mi><mo>)</mo></mrow></mrow><mrow><msqrt><mrow><mo>(</mo><munderover><mi>&Sigma;</mi><mrow><mi>x</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></munderover><munderover><mi>&Sigma;</mi><mrow><mi>y</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></munderover><msub><mi>S</mi><mrow><mi>p</mi><mo>,</mo><mi>q</mi></mrow></msub><msup><mrow><mo>(</mo><mi>x</mi><mo>+</mo><mi>p</mi><mo>,</mo><mi>y</mi><mo>+</mo><mi>q</mi><mo>)</mo></mrow><mn>2</mn></msup><mo>)</mo></mrow><mo>&CenterDot;</mo><mi>m</mi><mo>&CenterDot;</mo><mi>n</mi><mo>-</mo><msup><mrow><mo>(</mo><munderover><mi>&Sigma;</mi><mrow><mi>x</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></munderover><munderover><mi>&Sigma;</mi><mrow><mi>y</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></munderover><msub><mi>S</mi><mrow><mi>p</mi><mo>,</mo><mi>q</mi></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>+</mo><mi>p</mi><mo>,</mo><mi>y</mi><mo>+</mo><mi>q</mi><mo>)</mo></mrow><mo>)</mo></mrow><mn>2</mn></msup></msqrt><msqrt><mfrac><mrow><munderover><mi>&Sigma;</mi><mrow><mi>x</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></munderover><munderover><mi>&Sigma;</mi><mrow><mi>y</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></munderover><mi>T</mi><msup><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mn>2</mn></msup></mrow><mrow><mi>m</mi><mo>&CenterDot;</mo><mi>n</mi></mrow></mfrac><msup><mover><mi>T</mi><mo>&OverBar;</mo></mover><mn>2</mn></msup></msqrt></mrow></mfrac></mrow>]]></math><img file="FDA0000670396560000011.GIF" wi="1587" he="313" /></maths>给出,ρ(p,q)为搜索窗口选定的实时图与模板图之间的相关系数;p和q分别为搜索窗口左上角在实时图坐标系中的横坐标和纵坐标,T(x,y)为模板图中坐标点(x,y)的图像灰度值,S(x+p,y+q)为实时图中对应点的图像灰度值,所述坐标点(x,y)位于模板图坐标系中,<img file="FDA0000670396560000017.GIF" wi="99" he="87" />表示实时图中搜索窗口所覆盖子图区域的灰度均值,<img file="FDA0000670396560000018.GIF" wi="59" he="79" />表示模板图的灰度均值,m为模板图宽度,n为模板图高度,所述搜索窗口为与模板图大小、形状均相同的矩形窗口,所述实时图坐标系的坐标原点为实时图的左上角,左上角向右为实时图坐标系X轴正方向,左上角向下为实时图坐标系Y轴正方向,所述模板图坐标系的坐标原点为模板图的左上角,左上角向右为模板图坐标系X轴正方向,左上角向下为模板图坐标系Y轴正方向;(2)利用硬件从存储器中读取实时图和模板图,根据步骤(1)中的数学模型,分别求得数学模型中的<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><munderover><mi>&Sigma;</mi><mrow><mi>x</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></munderover><munderover><mi>&Sigma;</mi><mrow><mi>y</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></munderover><mi>F</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000670396560000012.GIF" wi="318" he="149" /></maths><maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><munderover><mi>&Sigma;</mi><mrow><mi>x</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></munderover><munderover><mi>&Sigma;</mi><mrow><mi>y</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></munderover><msub><mi>S</mi><mrow><mi>p</mi><mo>,</mo><mi>q</mi></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>+</mo><mi>p</mi><mo>,</mo><mi>y</mi><mo>+</mo><mi>q</mi><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000670396560000013.GIF" wi="498" he="149" /></maths><maths num="0004" id="cmaths0004"><math><![CDATA[<mrow><munderover><mi>&Sigma;</mi><mrow><mi>x</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></munderover><munderover><mi>&Sigma;</mi><mrow><mi>y</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></munderover><msub><mi>S</mi><mrow><mi>p</mi><mo>,</mo><mi>q</mi></mrow></msub><msup><mrow><mo>(</mo><mi>x</mi><mo>+</mo><mi>p</mi><mo>,</mo><mi>y</mi><mo>+</mo><mi>q</mi><mo>)</mo></mrow><mn>2</mn></msup><mo>,</mo></mrow>]]></math><img file="FDA0000670396560000014.GIF" wi="521" he="148" /></maths><maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><munderover><mi>&Sigma;</mi><mrow><mi>x</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></munderover><munderover><mi>&Sigma;</mi><mrow><mi>y</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></munderover><mi>F</mi><msup><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow><mn>2</mn></msup></mrow>]]></math><img file="FDA0000670396560000015.GIF" wi="300" he="147" /></maths>和<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><munderover><mi>&Sigma;</mi><mrow><mi>x</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></munderover><munderover><mi>&Sigma;</mi><mrow><mi>y</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>n</mi><mo>-</mo><mn>1</mn></mrow></munderover><msub><mi>S</mi><mrow><mi>p</mi><mo>,</mo><mi>q</mi></mrow></msub><mrow><mo>(</mo><mi>x</mi><mo>+</mo><mi>p</mi><mo>,</mo><mi>y</mi><mo>+</mo><mi>q</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><mi>F</mi><mrow><mo>(</mo><mi>x</mi><mo>,</mo><mi>y</mi><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000670396560000016.GIF" wi="684" he="144" /></maths>(3)步骤(2)中的计算完成后,进入步骤(4),利用步骤(1)中数学模型和步骤(2)中的结果计算搜索窗口选定的实时图与模板图之间的相关系数;同时,利用硬件从存储器中读取下一幅实时图和模板图,返回步骤(2);(4)利用有限状态机方法计算搜索窗口选定的实时图与模板图之间的相关系数;(5)所有搜索窗口选定的实时图与模板图之间的相关系数计算完成后,找出相关系数中的最大值和对应搜索窗口左上角在实时图坐标系中的横坐标和纵坐标,该搜索窗口对应的选定区域即为目标区域。
地址 100854 北京市海淀区北京142信箱402分箱