• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 25
    • 下载费用:30 金币  

    重庆时时彩预测下载: 基于归一化相关系数的模板匹配高速并行实现方法和装置.pdf

    关 键 词:
    基于 归一化 相关系数 模板 匹配 高速 并行 实现 方法 装置
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    摘要
    申请专利号:

    CN201310208097.0

    申请日:

    2013.05.28

    公开号:

    CN103310228A

    公开日:

    2013.09.18

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||实质审查的生效IPC(主分类):G06K 9/64申请日:20130528|||公开
    IPC分类号: G06K9/64 主分类号: G06K9/64
    申请人: 南京邮电大学
    发明人: 王邢波; 王小涛
    地址: 210003 江苏省南京市新模范马路66号
    优先权:
    专利代理机构: 南京知识律师事务所 32207 代理人: 汪旭东
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201310208097.0

    授权公告号:

    ||||||

    法律状态公告日:

    2017.09.29|||2013.10.23|||2013.09.18

    法律状态类型:

    授权|||实质审查的生效|||公开

    摘要

    本发明公开了一种基于归一化相关系数的模板匹配高速并行实现方法和装置,该方法步骤是读入实时图和模板图数据到对应的内部RAM缓冲块和实时图数据缓冲RAM中,同时进行模板图灰度值总和模板图灰度值平方总和计算和搜索位置(0,0)处实时图灰度值总和实时图灰度值平方总和计算;然后同时计算搜索位置第1行后续各列的搜索位置第1行各列模板图实时图灰度值乘积总和及归一化相关系数;进一步同时读入新一行的实时图数据到对应内部RAM缓冲块和实时图数据缓冲RAM对应位置中,同时计算当前行第1列的值;依次计算出后续各行归一化相关系数。该装置由高速相关运算器、外部数据结果存储器和微处理器构成。

    权利要求书

    权利要求书
    1.   一种基于归一化相关系数的模板匹配高速并行实现方法,其特征在于,所述方法包括如下步骤:
    步骤1:读入实时图和模板图数据到对应的内部RAM缓冲块中,同时实时图数据存储到用于计算实时图灰度值总和和实时图灰度值平方总和的实时图数据缓冲RAM中,同时进行模板图灰度值总和、模板图灰度值平方总和的计算和第1行第1列搜索位置处实时图灰度值总和、实时图灰度值平方总和的计算;
    步骤2:计算搜索位置第1行后续各列的实时图灰度值总和,同时计算当前位置实时图灰度值平方总和、搜索位置第1行各列模板图实时图灰度值乘积总和及归一化相关系数;
    步骤3:读入新一行的实时图数据到数据已经无效的内部RAM缓冲块,同时该新一行实时图数据读入到用于计算实时图灰度值总和和实时图灰度值平方总和的实时图数据缓冲RAM中覆盖已经无效的数据,同时计算当前行第1列的实时图灰度值总和、实时图灰度值平方总和值;
    步骤4:采用上述步骤2、步骤3相同的方式,依次计算出后续各行归一化相关系数。

    2.   根据权利要求1所述的一种基于归一化相关系数的模板匹配高速并行实现方法,其特征在于,所述的模板匹配方法用的是归一化相关系数,所用的归一化相关系数公式如下:
    <mrow><MI>C</MI><MROW><MO>(</MO><MI>u</MI><MO>,</MO><MI>v</MI><MO>)</MO></MROW><MO>=</MO><MFRAC><MROW><MI>ΣΣ</MI><MO>[</MO><MI>A</MI><MROW><MO>(</MO><MI>i</MI><MO>+</MO><MI>u</MI><MO>,</MO><MI>j</MI><MO>+</MO><MI>v</MI><MO>)</MO></MROW><MO>-</MO><MOVER><MROW><MI>A</MI><MROW><MO>(</MO><MI>u</MI><MO>,</MO><MI>v</MI><MO>)</MO></MROW></MROW><MO>&amp;OverBar;</MO></MOVER><MO>]</MO><MO>[</MO><MI>B</MI><MROW><MO>(</MO><MI>i</MI><MO>,</MO><MI>j</MI><MO>)</MO></MROW><MO>-</MO><MOVER><MI>B</MI><MO>&amp;OverBar;</MO></MOVER><MO>]</MO></MROW><MROW><MO>{</MO><MI>ΣΣ</MI><MSUP><MROW><MO>[</MO><MI>A</MI><MROW><MO>(</MO><MI>i</MI><MO>+</MO><MI>u</MI><MO>,</MO><MI>j</MI><MO>+</MO><MI>v</MI><MO>)</MO></MROW><MO>-</MO><MOVER><MROW><MI>A</MI><MROW><MO>(</MO><MI>u</MI><MO>,</MO><MI>v</MI><MO>)</MO></MROW></MROW><MO>&amp;OverBar;</MO></MOVER><MO>]</MO></MROW><MN>2</MN></MSUP><MSUP><MO>}</MO><MROW><MN>1</MN><MO>/</MO><MN>2</MN></MROW></MSUP><MO>{</MO><MI>ΣΣ</MI><MSUP><MROW><MO>[</MO><MI>B</MI><MROW><MO>(</MO><MI>i</MI><MO>,</MO><MI>j</MI><MO>)</MO></MROW><MO>-</MO><MOVER><MI>B</MI><MO>&amp;OverBar;</MO></MOVER><MO>]</MO></MROW><MN>2</MN></MSUP><MSUP><MO>}</MO><MROW><MN>1</MN><MO>/</MO><MN>2</MN></MROW></MSUP></MROW></MFRAC></MROW>]]&gt;</MATH></MATHS><BR><MATHS id=cmaths0002 num="0002"></MATHS><BR>A表示实时图,B表示模板图,其尺寸分别为K×L和M×N个像素,(u,v)为任一搜索位置,0≤u≤K?M,0≤v≤L?N,∑∑表示为模板图像的灰度平均值,为当前搜索位置(u,v)处实时图与模板图重叠部分的灰度平均值。<BR><BR>3.&nbsp;&nbsp; 根据权利要求1所述的一种基于归一化相关系数的模板匹配高速并行实现方法,其特征在于:<BR>步骤1所述的模板图数据读入到对应的内部RAM缓冲块,是将每一行N列的灰度值存储到一个RAM块中,共存入M行,即采用了M个RAM块,每个RAM块包含N个存储单元;实时图数据读入到对应的内部RAM缓冲块,是将每一行L列的灰度值存储到一个RAM块中,共存入M行,同样采用了M个RAM块,每个RAM块包含L个存储单元;实时图数据存储到用于计算实时图灰度值总和和实时图灰度值平方总和的实时图数据缓冲RAM中,总计存入M行N列数据,即该块RAM包含M×N个存储单元;<BR>步骤1所述的模板图灰度值总和的运算在读入模板图数据时,通过时序控制??榭刂埔桓隼奂悠魇迪?;累加器的输入端连接到模板图数据输入端,其输出即为模板图灰度值总和;<BR>步骤1所述的模板图灰度值平方总和的运算在读入模板图数据时,通过时序控制??榭刂埔桓銎椒皆怂隳?楹屠奂悠魇迪?;平方运算??榈氖淙攵肆拥侥0逋际菔淙攵?,平方运算??榈氖涑隽拥嚼奂悠鞯氖淙攵?,累加器输出即为模板图灰度值平方总和;<BR>步骤1中所述的搜索位置第1行第1列的实时图灰度值总和的计算,是通过时序控制??榭刂埔桓鲂惺堇奂幽?樵诿恳恍惺凳蓖际荻寥胧?,对实时图第1行第1列搜索位置处每一行数据进行累加,然后通过一个列累加器对这些行数据累加??槭涑鼋峁鹆薪欣奂?,并且和经过M步(模板图行数步)延迟的列累加器累加结果相减获得;<BR>步骤1中所述的搜索位置第1行第1列的实时图灰度值平方总和的计算,是通过时序控制??榭刂埔桓鲂惺堇奂幽?樵诿恳恍惺凳蓖际荻寥胧?,对实时图第1行第1列搜索位置处每一行数据平方后进行累加,然后通过一个列累加器对这些行数据累加??槭涑鼋峁鹆薪欣奂?,并且和经过M步(模板图行数步)延迟的列累加器累加结果相减获得。<BR><BR>4.&nbsp;&nbsp; 根据权利要求1所述的一种基于归一化相关系数的模板匹配高速并行实现方法,其特征在于:<BR>步骤2中后续各列每一个实时图灰度值总和计算,是从搜索位置第2列开始,通过时序控制??榭刂剖凳蓖际莼撼錜AM同时依次逐行输出实时图中模板图重叠区域相对于前一个搜索位置新进的一列数据和刚移出的一列数据,由减法器作差后,通过累加器逐行求和,并且与前一列搜索位置处的该累加器结果值求和,即该累加器从第2列开始保留所有的累加值,然后由加法器与已经计算出的当前行第1列搜索位置处的相加即可获得当前列的<BR>步骤2中后续各列每一个实时图灰度值平方总和计算,是从搜索位置第2列开始,通过时序控制??榭刂剖凳蓖际莼撼錜AM同时依次逐行输出实时图中模板图重叠区域相对于前一个搜索位置新进的一列数据和刚移出的一列数据,分别由平方运算??榍笃椒胶笥杉醴ㄆ髯鞑?,然后通过累加器逐行求和,并且与前一列搜索位置处的该累加器结果值求和,即该累加器从第2列开始保留所有的累加值,最后由加法器与已经计算出的当前行第1列搜索位置处的相加即可获得当前列的<BR>步骤2中的模板图与实时图当前搜索位置的灰度值乘积总和的计算,具体实现为:模板图像RAM缓冲块的所有输出端连接到一个多路选通开关,多路选通开关的输出连接到乘法??橹械囊桓龀朔ㄆ鞯囊欢?,乘法器的另一端对应连接到实时图像RAM缓冲块的输出端;采用模板图最大行数(M)个这样的并行通道进行并行运算,然后各个通道输出端连接到一个并加??榈氖淙攵?,并加??榈氖涑龆肆拥揭桓隼奂幽??;在具体计算时,时序控制??榭刂蒲⊥厥沟枚杂Φ哪0逋际萦胧凳蓖际萁谐嘶怂?,改变模板图像和实时图像RAM缓冲块的地址,逐列输出模板图和实时图的对应数据进行乘积运算,然后经过并加??槎缘鼻傲懈餍惺萁星蠛?,而后由累加??槎圆⒓幽?槭涑龅慕峁鹆星蠛秃?,获得当前列各个搜索位置的<MATHS id=cmaths0003 num="0003"><MATH><![CDATA[<mrow><MSUBSUP><MI>Σ</MI><MROW><MI>i</MI><MO>=</MO><MN>1</MN></MROW><MI>M</MI></MSUBSUP><MSUBSUP><MI>Σ</MI><MROW><MI>j</MI><MO>=</MO><MN>1</MN></MROW><MI>N</MI></MSUBSUP><MI>A</MI><MROW><MO>(</MO><MI>i</MI><MO>+</MO><MI>u</MI><MO>,</MO><MI>j</MI><MO>+</MO><MI>v</MI><MO>)</MO></MROW><MI>B</MI><MROW><MO>(</MO><MI>i</MI><MO>,</MO><MI>j</MI><MO>)</MO></MROW><MO>;</MO></MROW>]]&gt;</MATH></MATHS><BR>步骤2所述计算归一化相关系数是在<MATHS id=cmaths0004 num="0004"><MATH><![CDATA[<mrow><MSUBSUP><MI>Σ</MI><MROW><MI>i</MI><MO>=</MO><MN>1</MN></MROW><MI>M</MI></MSUBSUP><MSUBSUP><MI>Σ</MI><MROW><MI>j</MI><MO>=</MO><MN>1</MN></MROW><MI>N</MI></MSUBSUP><MI>B</MI><MROW><MO>(</MO><MI>i</MI><MO>,</MO><MI>j</MI><MO>)</MO></MROW><MO>,</MO><MSUBSUP><MI>Σ</MI><MROW><MI>i</MI><MO>=</MO><MN>1</MN></MROW><MI>M</MI></MSUBSUP><MSUBSUP><MI>Σ</MI><MROW><MI>j</MI><MO>=</MO><MN>1</MN></MROW><MI>N</MI></MSUBSUP><MI>B</MI><MSUP><MROW><MO>(</MO><MI>i</MI><MO>,</MO><MI>j</MI><MO>)</MO></MROW><MN>2</MN></MSUP><MO>,</MO><MSUBSUP><MI>Σ</MI><MROW><MI>i</MI><MO>=</MO><MN>1</MN></MROW><MI>M</MI></MSUBSUP><MSUBSUP><MI>Σ</MI><MROW><MI>j</MI><MO>=</MO><MN>1</MN></MROW><MI>N</MI></MSUBSUP><MI>A</MI><MROW><MO>(</MO><MI>i</MI><MO>+</MO><MI>u</MI><MO>,</MO><MI>j</MI><MO>)</MO></MROW><MO>,</MO></MROW>]]&gt;</MATH></MATHS>和计算出来以后,相应的<MATHS id=cmaths0005 num="0005"><MATH><![CDATA[<mrow><MI>MN</MI><MO>&amp;CenterDot;</MO><MSUBSUP><MI>Σ</MI><MROW><MI>i</MI><MO>=</MO><MN>1</MN></MROW><MI>M</MI></MSUBSUP><MSUBSUP><MI>Σ</MI><MROW><MI>j</MI><MO>=</MO><MN>1</MN></MROW><MI>N</MI></MSUBSUP><MI>B</MI><MSUP><MROW><MO>(</MO><MI>i</MI><MO>,</MO><MI>j</MI><MO>)</MO></MROW><MN>2</MN></MSUP><MO>-</MO><MSUP><MROW><MO>(</MO><MSUBSUP><MI>Σ</MI><MROW><MI>i</MI><MO>=</MO><MN>1</MN></MROW><MI>M</MI></MSUBSUP><MSUBSUP><MI>Σ</MI><MROW><MI>j</MI><MO>=</MO><MN>1</MN></MROW><MI>N</MI></MSUBSUP><MI>B</MI><MROW><MO>(</MO><MI>i</MI><MO>,</MO><MI>j</MI><MO>)</MO></MROW><MO>)</MO></MROW><MN>2</MN></MSUP><MO>,</MO><MI>MN</MI><MO>&amp;CenterDot;</MO><MSUBSUP><MI>Σ</MI><MROW><MI>i</MI><MO>=</MO><MN>1</MN></MROW><MI>M</MI></MSUBSUP><MSUBSUP><MI>Σ</MI><MROW><MI>j</MI><MO>=</MO><MN>1</MN></MROW><MI>N</MI></MSUBSUP><MI>A</MI><MSUP><MROW><MO>(</MO><MI>i</MI><MO>+</MO><MI>u</MI><MO>,</MO><MI>j</MI><MO>+</MO><MI>v</MI><MO>)</MO></MROW><MN>2</MN></MSUP><MO>-</MO><MSUP><MROW><MO>(</MO><MSUBSUP><MI>Σ</MI><MROW><MI>i</MI><MO>=</MO><MN>1</MN></MROW><MI>M</MI></MSUBSUP><MSUBSUP><MI>Σ</MI><MROW><MI>j</MI><MO>=</MO><MN>1</MN></MROW><MI>N</MI></MSUBSUP><MI>A</MI><MROW><MO>(</MO><MI>i</MI><MO>+</MO><MI>u</MI><MO>,</MO><MI>j</MI><MO>+</MO><MI>v</MI><MO>)</MO></MROW><MO>)</MO></MROW><MN>2</MN></MSUP><MO>,</MO></MROW>]]&gt;</MATH></MATHS><MATHS id=cmaths0006 num="0006"><MATH><![CDATA[<mrow><MI>MN</MI><MO>&amp;CenterDot;</MO><MSUBSUP><MI>Σ</MI><MROW><MI>i</MI><MO>=</MO><MN>1</MN></MROW><MI>M</MI></MSUBSUP><MSUBSUP><MI>Σ</MI><MROW><MI>j</MI><MO>=</MO><MN>1</MN></MROW><MI>N</MI></MSUBSUP><MI>A</MI><MROW><MO>(</MO><MI>i</MI><MO>+</MO><MI>u</MI><MO>,</MO><MI>j</MI><MO>+</MO><MI>v</MI><MO>)</MO></MROW><MI>B</MI><MROW><MO>(</MO><MI>i</MI><MO>,</MO><MI>j</MI><MO>)</MO></MROW><MO>-</MO><MROW><MSUBSUP><MI>Σ</MI><MROW><MI>i</MI><MO>=</MO><MN>1</MN></MROW><MI>M</MI></MSUBSUP><MSUBSUP><MI>Σ</MI><MROW><MI>j</MI><MO>=</MO><MN>1</MN></MROW><MI>N</MI></MSUBSUP><MI>A</MI><MROW><MO>(</MO><MI>i</MI><MO>+</MO><MI>u</MI><MO>,</MO><MI>j</MI><MO>+</MO><MI>v</MI><MO>)</MO></MROW></MROW><MSUBSUP><MI>Σ</MI><MROW><MI>i</MI><MO>=</MO><MN>1</MN></MROW><MI>M</MI></MSUBSUP><MSUBSUP><MI>Σ</MI><MROW><MI>j</MI><MO>=</MO><MN>1</MN></MROW><MI>N</MI></MSUBSUP><MI>B</MI><MROW><MO>(</MO><MI>i</MI><MO>,</MO><MI>j</MI><MO>)</MO></MROW></MROW>]]&gt;</MATH></MATHS>可以由乘法器、平方运算、加、减法器计算出来;归一化相关系数计算公式中的分母由两个求根??榻星蟾怂?,然后再对两者进行相乘获得;然后归一化相关系数计算公式中的分子和分母由定点转化为浮点,最终通过一个浮点除法运算得到浮点数据类型的归一化相关系数;<BR>步骤2所述的搜索位置第1行归一化相关系数的计算,是模板图像第1到M行与实时图第1到M行数据对应计算,搜索位置第1列归一化相关系数的计算为模板图像第1到N列与实时图像第1到N列数据对应计算,同时计算第2列的模板图像在实时图像中右移一列,并计算该处的<MATHS id=cmaths0007 num="0007"><MATH><![CDATA[<mrow><MSUBSUP><MI>Σ</MI><MROW><MI>i</MI><MO>=</MO><MN>1</MN></MROW><MI>M</MI></MSUBSUP><MSUBSUP><MI>Σ</MI><MROW><MI>j</MI><MO>=</MO><MN>1</MN></MROW><MI>N</MI></MSUBSUP><MI>A</MI><MROW><MO>(</MO><MI>i</MI><MO>+</MO><MI>u</MI><MO>,</MO><MI>j</MI><MO>+</MO><MI>v</MI><MO>)</MO></MROW><MI>B</MI><MROW><MO>(</MO><MI>i</MI><MO>,</MO><MI>j</MI><MO>)</MO></MROW><MO>,</MO></MROW>]]&gt;</MATH></MATHS>同时计算第3列的<MATHS id=cmaths0008 num="0008"><MATH><![CDATA[<mrow><MSUBSUP><MI>Σ</MI><MROW><MI>i</MI><MO>=</MO><MN>1</MN></MROW><MI>M</MI></MSUBSUP><MSUBSUP><MI>Σ</MI><MROW><MI>j</MI><MO>=</MO><MN>1</MN></MROW><MI>N</MI></MSUBSUP><MI>A</MI><MROW><MO>(</MO><MI>i</MI><MO>+</MO><MI>u</MI><MO>,</MO><MI>j</MI><MO>)</MO></MROW><MO>,</MO><MSUBSUP><MI>Σ</MI><MROW><MI>i</MI><MO>=</MO><MN>1</MN></MROW><MI>M</MI></MSUBSUP><MSUBSUP><MI>Σ</MI><MROW><MI>j</MI><MO>=</MO><MN>1</MN></MROW><MI>N</MI></MSUBSUP><MI>A</MI><MSUP><MROW><MO>(</MO><MI>i</MI><MO>+</MO><MI>u</MI><MO>,</MO><MI>j</MI><MO>)</MO></MROW><MN>2</MN></MSUP><MO>,</MO><MO>,</MO></MROW>]]&gt;</MATH></MATHS>此时后续的求平方根、浮点除法后续运算同步流水进行,以此重复,直到第一行归一化相关系数计算完成。<BR><BR>5.&nbsp;&nbsp; 根据权利要求1所述的一种基于归一化相关系数的模板匹配高速并行实现方法,其特征在于:<BR>步骤3所述从外部RAM读入新一行的实时图数据到相应的内部RAM缓冲块中,为第一行相关系数计算完成后,读入一行新的实时图数据覆盖不用的实时图RAM块数据,在后续各行计算时需要通过时序控制??橹匦虑谢欢嗦费⊥厥鼓0逋糝AM缓冲块输出与实时图RAM缓冲块输出顺序变化对应,同时该新一行实时图数据读入到实时图数据缓冲RAM中覆盖已经无效的数据;<BR>步骤3中所述在读入实时图新一行数据时,同时由前述方式相应的计算出当前行第1列的实时图灰度值总和的值,后续列实时图灰度值总和亦是按前述方式依次计算得出;<BR>步骤3中所述在读入实时图新一行的数据时,此时会由前述方式相应的计算出当前行第1列的实时图灰度值平方总和的值,后续列实时图灰度值平方总和亦是按前述方式依次计算得出。<BR><BR>6.&nbsp;&nbsp; 根据权利要求1所述的一种基于归一化相关系数的模板匹配高速并行实现方法,其特征在于:步骤4所述计算出后续各行归一化互相关系数,是指计算实时图像第2行至第K?M+1行归一化相关系数,第一行相关系数计算完成后,依次读入一行新的实时图数据覆盖不用的实时图RAM缓冲块数据和对应的实时图数据缓冲RAM中的数据,并且通过时序控制??橹匦卵≡衲0逋糝AM缓冲块输出多路选通开关使其与之对应,这样相当于模板图像在待匹配图像中下移一行,然后按照步骤2和步骤3方式进行计算,依次得到每行的归一化相关系数。<BR><BR>7.&nbsp;&nbsp; 一种基于归一化相关系数的模板匹配高速并行方法的装置,其特征在于:所述装置是由高速相关运算器10、模板图实时图数据存储器9、结果存储器11和微处理器37组成,高速相关运算器10与模板图实时图数据存储器9、结果存储器11、微处理器37相连,模板图实时图数据存储器9、结果存储器11也与微处理器37相连;所述的高速相关运算器10是由归一化相关系数计算???6、外部通信接口???以及时序控制???组成;归一化相关系数计算???6用于归一化相关系数的计算;外部通信接口???通过寄存器与处理器进行参数输入输出、指令输入、状态查询输出。<BR><BR>8.&nbsp;&nbsp; 根据权利要求7所述的一种基于归一化相关系数的模板匹配高速并行方法的装置,其特征在于:时序控制???控制整个归一化相关系数计算的工作流程,并与各个??橹械腞AM的地址及控制线、选通开关的选通地址、使能端寄存器的使能端相连;模板图实时图数据存储器9、结果存储器11分别存储原始图像数据以及运算结果,微处理器37由高速相关运算器10的外部通信接口???通过寄存器访问的方式进行参数输入输出、指令输入和状态查询输出,从而命令高速相关运算器10进行相应的操作,同时也进行原始图像数据的准备工作;高速相关运算器10把结果存储到结果存储器11中,并且模板图实时图数据存储器9中读取数据。<BR><BR>9.&nbsp;&nbsp; 根据权利要求7所述的一种基于归一化相关系数的模板匹配高速并行方法的装置,其特征在于:高速模板匹配装置中高速相关运算器10的归一化相关系数计算???6包括模板图灰度值求和???,模板图灰度值平方求和???,实时图灰度值求和???、实时图灰度值平方求和???和实时图模板图灰度值乘积求和???、后续计算???;模板图灰度值求和???由一个累加器14组成,模板图灰度值平方求和???由一个平方运算???2和一个累加器13相连而成;实时图灰度值求和???由与实时图灰度值平方求和???共用的实时图数据缓冲RAM21、第1列累加???4、减法器22、累加器23和加法器组成;实时图灰度值平方求和???由与实时图灰度值平方求和???共用的实时图数据缓冲RAM21、第1列累加???8、平方运算???6、27、38、减法器25、累加器29和加法器组成;实时图模板图灰度值乘积求和???由实时图RAM缓冲块20、模板图RAM缓冲块15、多路选通开关16、乘法器17、并加???8和累加器19组成;后续计算??橛沙朔ㄆ?、加、减法器和分子分母定点浮点转换???30、31)、分母方根运算??椋?3、34)、浮点除法运算???2组成。<BR><BR>10.&nbsp;&nbsp; 根据权利要求7所述的一种基于归一化相关系数的模板匹配高速并行方法的装置,其特征在于,所述装置的工作流程为:首先微处理器37把原始模板图和实时图数据存入模板图实时图数据存储器9中,然后向高速相关运算器10输入图像的尺寸参数,而后输入启动命令启动归一化相关运算;在运算过程中通过寄存器访问的方式查询运算的进程状态;在运算完成以后,微处理器37会从高速相关运算器10收到完成的中断信号,为可靠起见,微处理器37进一步查询高速相关运算器10的完成标志,在确保完成以后从结果存储器读取归一化相关系数计算结果进行后续处理工作。<BR></p></div> </div> </div> <div class="zlzy"> <div class="zltitle">说明书</div> <div class="gdyy"> <div class="gdyy_show"><p>说明书基于归一化相关系数的模板匹配高速并行实现方法和装置 <BR>技术领域 <BR>本发明涉及图像模板匹配技术领域,特别涉及一种基于归一化相关系数的模板匹配高速并行实现方法和装置。 <BR>背景技术 <BR>模板匹配主要用来定位图像中的一个目标,它广泛应用于图像对齐、边缘检测、双目立体视觉等图像处理领域,并且这些图像处理手段已经在导弹目标识别、卫星图像监控、医疗图像融合、基于双目立体视觉的测量等军用民用领域中得到广泛应用。 <BR>模板匹配主要是通过计算搜索位置处已知模板图与实时图搜索区域之间的相似性测度来定位与模板图有类似尺寸和图像的目标。由于归一化互相关系数对亮度和对比度变化具有不变性,其算法相对简单并且具有很高的精度,因此迄今为止它是模板匹配中应用最广泛的一种测度。假设实时图由A表示,模板图由B表示,其尺寸分别为K×L和M×N个像素。在任一搜索位置(u,v)(0≤u≤K?M,0≤v≤L?N)的归一化互相关系数(NCC?Normalized&nbsp;Cross?Correlation)定义为: <BR><MATHS num="0001"><MATH><![CDATA[ <mrow><MI>C</MI> <MROW><MO>(</MO> <MI>u</MI> <MO>,</MO> <MI>v</MI> <MO>)</MO> </MROW><MO>=</MO> <MFRAC><MROW><MI>ΣΣ</MI> <MO>[</MO> <MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>j</MI> <MO>+</MO> <MI>v</MI> <MO>)</MO> </MROW><MO>-</MO> <MOVER><MROW><MI>A</MI> <MROW><MO>(</MO> <MI>u</MI> <MO>,</MO> <MI>v</MI> <MO>)</MO> </MROW></MROW><MO>&amp;OverBar;</MO> </MOVER><MO>]</MO> <MO>×</MO> <MO>[</MO> <MI>B</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW><MO>-</MO> <MOVER><MI>B</MI> <MO>&amp;OverBar;</MO> </MOVER><MO>]</MO> </MROW><MROW><MO>{</MO> <MI>ΣΣ</MI> <MSUP><MROW><MSUP><MROW><MO>[</MO> <MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>j</MI> <MO>+</MO> <MI>v</MI> <MO>)</MO> <MO>-</MO> <MOVER><MROW><MI>A</MI> <MROW><MO>(</MO> <MI>u</MI> <MO>,</MO> <MI>v</MI> <MO>)</MO> </MROW></MROW><MO>&amp;OverBar;</MO> </MOVER><MO>]</MO> </MROW></MROW><MN>2</MN> </MSUP><MO>}</MO> </MROW><MROW><MN>1</MN> <MO>/</MO> <MN>2</MN> </MROW></MSUP><MO>{</MO> <MI>ΣΣ</MI> <MSUP><MROW><MO>[</MO> <MI>B</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW><MO>-</MO> <MOVER><MI>B</MI> <MO>&amp;OverBar;</MO> </MOVER><MO>]</MO> </MROW><MN>2</MN> </MSUP><MSUP><MO>}</MO> <MROW><MN>1</MN> <MO>/</MO> <MN>2</MN> </MROW></MSUP></MROW></MFRAC></MROW>]]&gt;</MATH></MATHS> <BR>其中∑∑表示为模板图的灰度均值,为在当前搜索位置的实时图与模板图重叠部分的灰度均值。由此可以看出,实际上该运算就是在实时图中平移模板图,并对实时图和模板图重叠点进行归一化相乘,然后进行累加操作。 <BR>为了获得精确定位,模板匹配需要在实时图中搜索与模板图相重合的每一个区域,因此对于一个通常的应用,需要搜索的位置数目往往非常多。对于自动目标识别、跟踪等实时应用领域,基于归一化互相关测度的模板匹配计算量相对还是太大从而导致其应用受到很大限制。 <BR>目前已经提出许多技术来加速模板匹配计算,由于这些技术不需要对所有位置进行匹配,因此大幅度的降低了计算量,但是这些技术通常由于局部的极值点干扰导致错误的匹配。事实上,由于模板匹配的计算是针对图像各个像素进行相关运算,因此该方法本身能够通过并行的方法来加速。另外也提出了一些多处理器系统来加速模板匹配的计算。但是对于要求小型化、微功耗的嵌入式应用,多处理器方法无法满足实际应用要求,并且也不经济。 <BR>近年来,随着电子技术和制造工艺的快速发展,现场可编程门阵列(FPGA)的容量越来越大、速度越来越快,这使得FPGA具有了一般微处理器所无法比拟的强大的并行性,因此FPGA特别适用于实现模板匹配计算。 <BR>专利申请号为200910069272.6高速图像匹配方法及装置提出的是一种实现归一化互相关系数方法,该方法实现结构简单,但具体实现流程需要太多的切换,乘累加??榈氖淙胄枰谢欢喔鍪淙?,这将增加逻辑资源消耗、增加布线的难度,导致布线路径较长从而降低系统可能达到的最高内核速度,同时增加了功耗;输出的只是中间累加结果,这将导致需要更多的外部存储空间或者需要DSP紧密配合运算,从而占用大量的DSP运行时间,导致DSP的控制和通信的复杂度,降低DSP运行的实时性。而本发明能够解决上面的问题。 <BR>发明内容 <BR>本发明针对上述现有技术的不足,提出了一种基于归一化相关系数的模板匹配高速并行实现方法,该方法可由现场可编程门阵列(FPGA)或超大规模集成电路(VLSI)通过并行方式来高速高精度地计算归一化互相关系数,能够进一步减少逻辑资源消耗,降低功耗和成本,同时提高运算速度;采用该方法的设备能够实现精度高、参数设置灵活、实时性强的高速模板匹配。 <BR>本发明解决上述技术问题所采用的技术方案是: <BR>基于归一化相关系数的模板匹配高速并行实现方法和装置,高速并行实现方法包括有如下步骤: <BR>步骤1:读入实时图和模板图数据到对应的内部RAM缓冲块中,同时实时图数据存储到用于计算实时图灰度值总和与实时图灰度值平方总和的实时图数据缓冲RAM中,同时进行模板图灰度值总和模板图灰度值平方总和的计算和第1行第1列搜索位置处实时图灰度值总和实时图灰度值平方总和的计算; <BR>步骤2:计算搜索位置第1行后续各列的实时图灰度值总和同时计算当前位置实时图灰度值平方总和搜索位置第1行各列模板图实时图灰度值乘积总和及归一化相关系数; <BR>步骤3:读入新一行的实时图数据到数据已经无效的内部RAM缓冲块,同时该新一行实时图数据读入到用于计算实时图灰度值总和与实时图灰度值平方总和的实时图数据缓冲RAM中覆盖已经无效的数据,同时计算当前行第1列的实时图灰度值总和实时图灰度值平方总和值; <BR>步骤4:采用上述步骤2、步骤3相同的方式,依次计算出后续各行归一化相关系数。 <BR>上述模板匹配方法所用的归一化相关系数公式如下: <BR><MATHS num="0002"><MATH><![CDATA[ <mrow><MI>C</MI> <MROW><MO>(</MO> <MI>u</MI> <MO>,</MO> <MI>v</MI> <MO>)</MO> </MROW><MO>=</MO> <MFRAC><MROW><MI>ΣΣ</MI> <MO>[</MO> <MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>j</MI> <MO>+</MO> <MI>v</MI> <MO>)</MO> </MROW><MO>-</MO> <MOVER><MROW><MI>A</MI> <MROW><MO>(</MO> <MI>u</MI> <MO>,</MO> <MI>v</MI> <MO>)</MO> </MROW></MROW><MO>&amp;OverBar;</MO> </MOVER><MO>]</MO> <MO>×</MO> <MO>[</MO> <MI>B</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW><MO>-</MO> <MOVER><MI>B</MI> <MO>&amp;OverBar;</MO> </MOVER><MO>]</MO> </MROW><MROW><MO>{</MO> <MI>ΣΣ</MI> <MSUP><MROW><MSUP><MROW><MO>[</MO> <MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>j</MI> <MO>+</MO> <MI>v</MI> <MO>)</MO> <MO>-</MO> <MOVER><MROW><MI>A</MI> <MROW><MO>(</MO> <MI>u</MI> <MO>,</MO> <MI>v</MI> <MO>)</MO> </MROW></MROW><MO>&amp;OverBar;</MO> </MOVER><MO>]</MO> </MROW></MROW><MN>2</MN> </MSUP><MO>}</MO> </MROW><MROW><MN>1</MN> <MO>/</MO> <MN>2</MN> </MROW></MSUP><MO>{</MO> <MI>ΣΣ</MI> <MSUP><MROW><MO>[</MO> <MI>B</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW><MO>-</MO> <MOVER><MI>B</MI> <MO>&amp;OverBar;</MO> </MOVER><MO>]</MO> </MROW><MN>2</MN> </MSUP><MSUP><MO>}</MO> <MROW><MN>1</MN> <MO>/</MO> <MN>2</MN> </MROW></MSUP></MROW></MFRAC></MROW>]]&gt;</MATH></MATHS> <BR><MATHS num="0003"><MATH><![CDATA[ <mrow><MO>=</MO> <MFRAC><MROW><MROW><MO>[</MO> <MI>MN</MI> <MO>&amp;CenterDot;</MO> <MI>ΣΣ</MI> <MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>j</MI> <MO>+</MO> <MI>v</MI> <MO>)</MO> </MROW><MI>B</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW><MO>-</MO> <MI>ΣΣA</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>j</MI> <MO>+</MO> <MI>v</MI> <MO>)</MO> </MROW><MI>ΣΣ</MI> <MO>×</MO> </MROW><MI>B</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW><MO>]</MO> </MROW><MROW><MO>{</MO> <MI>MN</MI> <MO>&amp;CenterDot;</MO> <MI>ΣΣ</MI> <MSUP><MROW><MSUP><MROW><MI>A</MI> <MROW><MSUP><MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>j</MI> <MO>+</MO> <MI>v</MI> <MO>)</MO> </MROW><MN>2</MN> </MSUP><MO>-</MO> <MO>(</MO> <MI>ΣΣA</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>j</MI> <MO>+</MO> <MI>v</MI> <MO>)</MO> </MROW><MO>)</MO> </MROW></MROW><MN>2</MN> </MSUP><MO>}</MO> </MROW><MROW><MN>1</MN> <MO>/</MO> <MN>2</MN> </MROW></MSUP><MO>{</MO> <MI>MN</MI> <MO>&amp;CenterDot;</MO> <MI>ΣΣ</MI> <MROW><MI>B</MI> <MSUP><MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW><MN>2</MN> </MSUP><MO>-</MO> <MSUP><MROW><MO>(</MO> <MI>ΣΣB</MI> <MO>(</MO> <MI>i</MI> <MROW><MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW><MO>)</MO> </MROW><MN>2</MN> </MSUP></MROW><MSUP><MO>}</MO> <MROW><MN>1</MN> <MO>/</MO> <MN>2</MN> </MROW></MSUP></MROW></MFRAC></MROW>]]&gt;</MATH></MATHS> <BR>A表示实时图,B表示模板图,其尺寸分别为K×L和M×N个像素。(u,v)为任一搜索位置,0≤u≤K?M,0≤v≤L?N。ΣΣ表示为模板图像的灰度平均值,为当前搜索位置(u,v)处实时图与模板图重叠部分的灰度平均值。 <BR>步骤1所述的模板图数据读入到对应的内部RAM缓冲块,是将每一行N列的灰度值存储到一个RAM块中,共存入M行,即采用了M个RAM块,每个RAM块包含N个存储单元;实时图数据读入到对应的内部RAM缓冲块,是将每一行L列的灰度值存储到一个RAM块中,共存入M行,同样采用了M个RAM块,每个RAM块包含L个存储单元;实时图数据存储到用于计算实时图灰度值总和和实时图灰度值平方总和的实时图数据缓冲RAM中,总计存入M行N列数据,即该块RAM包含M×N个存储单元。 <BR>步骤1所述的模板图灰度值总和的运算在读入模板图数据时,通过时序控制??榭刂埔桓隼奂悠魇迪?。累加器的输入端连接到模板图数据输入端,其输出即为模板图灰度值总和。 <BR>步骤1所述的模板图灰度值平方总和的运算在读入模板图数据时,通过时序控制??榭刂埔桓銎椒皆怂隳?楹屠奂悠魇迪?。平方运算??榈氖淙攵肆拥侥0逋际菔淙攵?,平方运算??榈氖涑隽拥嚼奂悠鞯氖淙攵?,累加器输出即为模板图灰度值平方总和。 <BR>步骤1中所述的搜索位置第1行第1列的实时图灰度值总和的计算,是通过时序控制??榭刂埔桓鲂惺堇奂幽?樵诙寥朊恳恍惺凳蓖际菔?,对实时图第1行第1列搜索位置处每一行数据进行累加,然后通过一个列累加器对这些行数据累加??槭涑鼋峁鹆薪欣奂?,并且和经过M步(模板图行数步)延迟的列累加器累加结果相减获得。 <BR>步骤1中所述的搜索位置第1行第1列的实时图灰度值平方总和的计算,是通过时序控制??榭刂埔桓鲂惺堇奂幽?樵诿恳恍惺凳蓖际荻寥胧?,对实时图第1行第1列搜索位置处每一行数据平方后进行累加,然后通过一个列累加器对这些行数据累加??槭涑鼋峁鹆薪欣奂?,并且和经过M步(模板图行数步)延迟的列累加器累加结果相减获得。 <BR>步骤2中后续各列每一个实时图灰度值总和计算,是从搜索位置第2列开始,通过时序控制??榭刂剖凳蓖际莼撼錜AM同时依次逐行输出实时图与模板图重叠区域中相对于前一个搜索位置新进的一列数据和刚移出的一列数据,由减法器作差后,再通过累加器逐行求和,并且与前一列搜索位置处的该累加器结果值求和(即该累加器从第2列开始保留所有的累加值),然后由加法器与已经计算出的当前行第1列搜索位置处的相加即可获得当前列的 <BR>步骤2中后续各列每一个实时图灰度值平方总和计算,是从搜索位置第2列开始,通过时序控制??榭刂剖凳蓖际莼撼錜AM同时依次逐行输出实时图与模板图重叠区域中相对于前一个搜索位置新进的一列数据和刚移出的一列数据,分别由平方运算??榍笃椒胶笤儆杉醴ㄆ髯鞑?,然后通过累加器逐行求和,并且与前一列搜索位置处的该累加器结果值求和(即该累加器从第2列开始保留所有的累加值),最后由加法器与已经计算出的当前行第1列搜索位置处的相加即可获得当前列的 <BR>步骤2中模板图与实时图当前搜索位置的灰度值乘积总和的计算如下实现。模板图RAM缓冲块的所有输出端连接到一个多路选通开关,多路选通开关的输出连接到乘法??橹械囊桓龀朔ㄆ鞯囊欢?,乘法器的另一端对应连接到实时图像RAM缓冲块的输出端;采用模板图最大行数(M)个这样的并行通道进行并行运算,然后各个通道输出端连接到一个并加??榈氖淙攵?,并加??榈氖涑龆肆拥揭桓隼奂幽??。在具体计算时,时序控制??榭刂蒲⊥厥沟枚杂Φ哪0逋际萦胧凳蓖际萁谐嘶怂?,改变模板图像和实时图像RAM缓冲块的地址,逐列输出模板图和实时图的对应数据进行乘积运算,然后经过并加??槎缘鼻傲懈餍惺萁星蠛?,然后由累加??槎圆⒓幽?槭涑鼋峁鹆星蠛?,获得当前列各个搜索位置的 <BR>步骤2所述计算归一化相关系数是在<MATHS num="0004"><MATH><![CDATA[ <mrow> <MSUBSUP><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>M</MI> </MSUBSUP><MSUBSUP><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>N</MI> </MSUBSUP><MI>B</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW><MO>,</MO> <MSUBSUP><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>M</MI> </MSUBSUP><MSUBSUP><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>N</MI> </MSUBSUP><MI>B</MI> <MSUP><MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW><MN>2</MN> </MSUP><MO>,</MO> <MSUBSUP><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>M</MI> </MSUBSUP><MSUBSUP><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>N</MI> </MSUBSUP><MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW><MO>,</MO> </MROW>]]&gt;</MATH></MATHS>和计算出来以后,相应的<MATHS num="0005"><MATH><![CDATA[ <mrow> <MI>MN</MI> <MO>&amp;CenterDot;</MO> <MSUBSUP><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>M</MI> </MSUBSUP><MSUBSUP><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>N</MI> </MSUBSUP><MI>B</MI> <MSUP><MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW><MN>2</MN> </MSUP><MO>-</MO> <MSUBSUP><MROW><MO>(</MO> <MI>Σ</MI> </MROW><MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>M</MI> </MSUBSUP><MI></MI><MSUBSUP><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>N</MI> </MSUBSUP><MI>B</MI> <MSUP><MROW><MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW><MO>)</MO> </MROW><MN>2</MN> </MSUP><MO>,</MO> <MSUBSUP><MROW><MI>MN</MI> <MO>&amp;CenterDot;</MO> <MI>Σ</MI> </MROW><MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>M</MI> </MSUBSUP><MSUBSUP><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>N</MI> </MSUBSUP><MI>A</MI> <MSUP><MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>j</MI> <MO>+</MO> <MI>v</MI> <MO>)</MO> </MROW><MN>2</MN> </MSUP><MO>-</MO> <MSUP><MROW><MO>(</MO> <MSUBSUP><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>M</MI> </MSUBSUP><MSUBSUP><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>N</MI> </MSUBSUP><MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>j</MI> <MO>+</MO> <MI>v</MI> <MO>)</MO> </MROW><MO>)</MO> </MROW><MN>2</MN> </MSUP><MO>,</MO> </MROW>]]&gt;</MATH></MATHS><MATHS num="0006"><MATH><![CDATA[ <mrow> <MI>MN</MI> <MO>&amp;CenterDot;</MO> <MSUBSUP><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>M</MI> </MSUBSUP><MSUBSUP><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>N</MI> </MSUBSUP><MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>j</MI> <MO>+</MO> <MI>v</MI> <MO>)</MO> </MROW><MI>B</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW><MO>-</MO> <MSUBSUP><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>M</MI> </MSUBSUP><MI></MI><MSUBSUP><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>N</MI> </MSUBSUP><MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>j</MI> <MO>+</MO> <MI>v</MI> <MO>)</MO> </MROW><MSUBSUP><MROW><MI>Σ</MI> </MROW><MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>M</MI> </MSUBSUP><MSUBSUP><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>N</MI> </MSUBSUP><MI>B</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW></MROW>]]&gt;</MATH></MATHS>可以由乘法器、平方运算、加、减法器计算出来。归一化相关系数计算公式中的分母由两个求根??榻星蟾怂?,然后再对两者进行相乘获得。然后归一化相关系数计算公式中的分子和分母由定点转化为浮点,最终通过一个浮点除法运算得到浮点数据类型的归一化相关系数。 <BR>步骤2所述的搜索位置第1行归一化相关系数的计算,是模板图像第1到M行与实时图第1到M行数据对应计算,搜索位置第1列归一化相关系数的计算为模板图像第1到N列与实时图像第1到N列数据对应计算,同时计算第2列的模板图像在实时图像中右移一列,并计算该处的同时计算第3列的此时后续的求平方根、浮点除法等后续运算同步流水进行,以此重复,直到第一行归一化相关系数计算完成。 <BR>步骤3所述从外部RAM读入新一行的实时图数据到相应的内部RAM缓冲块中,为第一行相关系数计算完成后,读入一行新的实时图数据覆盖不用的实时图RAM块数据,在后续各行计算时需要通过时序控制??橹匦虑谢欢嗦费⊥厥鼓0逋糝AM缓冲块输出与实时图RAM缓冲块输出顺序变化对应。同时该新一行实时图数据读入到实时图数据缓冲RAM中覆盖已经无效的数据。 <BR>步骤3中所述在读入实时图新一行数据时,同时由前述方式相应的计算出当前行第1列的实时图灰度值总和的值,后续列实时图灰度值总和亦是按前述方式依次计算得出。 <BR>步骤3中所述在读入实时图新一行的数据时,此时会由前述方式相应的计算出当前行第1列的实时图灰度值平方总和的值,后续列实时图灰度值平方总和亦是按前述方式依次计算得出。 <BR>步骤4所述计算出后续各行归一化互相关系数,是指计算实时图像第2行至第K?M+1行归一化相关系数,第一行相关系数计算完成后,依次读入一行新的实时图数据覆盖不用的实时图RAM缓冲块数据和对应的实时图数据缓冲RAM中的数据,并且通过时序控制??橹匦卵≡衲0逋糝AM缓冲块输出多路选通开关使其与之对应,这样相当于模板图像在待匹配图像中下移一行,然后按照步骤2和步骤3方式进行计算,依次得到每行的归一化相关系数。 <BR>本发明还提出了一种基于归一化相关系数的模板匹配高速并行方法的装置,该装置是由高速相关运算器10、模板图实时图数据存储器9、结果存储器11和微处理器37组成,高速相关运算器10与模板图实时图数据存储器9、结果存储器11、微处理器37相连,模板图实时图数据存储器9、结果存储器11也与微处理器37相连。所述的高速相关运算器10由归一化相关系数计算???6、外部通信接口???以及时序控制???组成。归一化相关系数计算???6主要用于归一化相关系数的计算。外部通信接口???主要通过寄存器与处理器进行参数输入输出、指令输入、状态查询输出。时序控制???主要基于上述步骤控制整个归一化相关系数计算的工作流程,它与各个??橹械腞AM的地址及控制线、选通开关的选通地址、使能端寄存器的使能端相连。模板图实时图数据存储器9、结果存储器11分别存储原始图像数据以及运算结果,微处理器37由高速相关运算器10的外部通信接口???通过寄存器访问的方式进行参数输入输出、指令输入和状态查询输出,从而命令高速相关运算器10进行相应的操作,同时也进行原始图像数据的准备工作。高速相关运算器10把结果存储到结果存储器11中,并且从模板图实时图数据存储器9中读取数据。 <BR>高速模板匹配装置中高速相关运算器10的归一化相关系数计算???6包括模板图灰度值求和???,模板图灰度值平方求和???,实时图灰度值求和???、实时图灰度值平方求和???、实时图模板图灰度值乘积求和???和后续计算???。模板图灰度值求和???由一个累加器14组成,模板图灰度值平方求和???由一个平方运算???2和一个累加器13相连而成。实时图灰度值求和???由与实时图灰度值平方求和???共用的实时图数据缓冲RAM21、第1列累加???4、减法器22、累加器23和加法器组成。实时图灰度值平方求和???由与实时图灰度值平方求和???共用的实时图数据缓冲RAM21、第1列累加???8、平方运算???6、27、38、减法器25、累加器29和加法器组成。实时图模板图灰度值乘积求和???由实时图RAM缓冲块20、模板图RAM缓冲块15、多路选通开关16、乘法器17、并加???8和累加器19组成。后续计算??橛沙朔ㄆ?、加、减法器和分子分母定点浮点转换???30、31)、分母方根运算??椋?3、34)、浮点除法运算???2组成。 <BR>高速模板匹配装置工作流程为:首先微处理器37把原始模板图和实时图数据存入模板图实时图数据存储器9中,然后向高速相关运算器10输入图像的尺寸参数,而后输入启动命令启动归一化相关运算。在运算过程中通过寄存器访问的方式查询运算的进程状态。在运算完成以后,微处理器37会从高速相关运算器10收到完成的中断信号,为可靠起见,微处理器37进一步查询高速相关运算器10的完成标志,在确保完成以后从结果存储器读取归一化相关系数计算结果进行后续处理工作。 <BR>高速模板匹配装置中所包含的高速相关运算器可以利用FPGA实现,也可利用VLSI实现。高速相关运算器中实时图像以及模板图像的行数和列数都是可以由外部微处理器输入的可变的参数,而最终实现的并行通道数目,包括内部实时图和模板图RAM缓冲块的数目,是由任务要求决定的最大的行数。 <BR>本发明的有益效果: <BR>1、本发明的实现方法通过合理、精细的设计,有效地减少了系统逻辑资源消耗,加快了运行速度,从而降低了功耗。 <BR>2、本发明缩短了布线路径,提高了FPGA内核所能达到的最大运行速度。 <BR>3、本发明降低了对外部微处理器的要求,并且该实现缩小了系统的体积。 <BR>附图说明 <BR>图1是基于归一化相关系数的模板匹配高速并行实现方法的原理结构框图。 <BR>图2是基于归一化相关系数的模板匹配高速并行实现方法的工作流程图。 <BR>图3是累加器的结构图。 <BR>图4是图1中第1列累加??槭迪衷斫峁雇?。 <BR>图5是模板匹配原理示意图。 <BR>图6是(a)累加?并加运算;(b)并加?累加运算。 <BR>图7是并加实现结构图。 <BR>图8是基于归一化相关系数的高速并行模板匹配装置原理结构框图。 <BR>图9是高速相关运算器的时序仿真波形结果图。 <BR>图10是基于归一化相关系数的模板匹配高速并行实现装置结构框图。 <BR>具体实施方式 <BR>下面结合说明书附图对本发明的技术方案作进一步说明。 <BR>本发明所用的归一化互相关系数公式如下: <BR><MATHS num="0007"><MATH><![CDATA[ <mrow><MI>C</MI> <MROW><MO>(</MO> <MI>u</MI> <MO>,</MO> <MI>v</MI> <MO>)</MO> </MROW><MO>=</MO> <MFRAC><MROW><MI>ΣΣ</MI> <MO>[</MO> <MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>j</MI> <MO>+</MO> <MI>v</MI> <MO>)</MO> </MROW><MO>-</MO> <MOVER><MROW><MI>A</MI> <MROW><MO>(</MO> <MI>u</MI> <MO>,</MO> <MI>v</MI> <MO>)</MO> </MROW></MROW><MO>&amp;OverBar;</MO> </MOVER><MO>]</MO> <MO>×</MO> <MO>[</MO> <MI>B</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW><MO>-</MO> <MOVER><MI>B</MI> <MO>&amp;OverBar;</MO> </MOVER><MO>]</MO> </MROW><MROW><MO>{</MO> <MI>ΣΣ</MI> <MSUP><MROW><MSUP><MROW><MO>[</MO> <MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>j</MI> <MO>+</MO> <MI>v</MI> <MO>)</MO> </MROW><MO>-</MO> <MOVER><MROW><MI>A</MI> <MROW><MO>(</MO> <MI>u</MI> <MO>,</MO> <MI>v</MI> <MO>)</MO> </MROW></MROW><MO>&amp;OverBar;</MO> </MOVER><MO>]</MO> </MROW><MN>2</MN> </MSUP><MO>}</MO> </MROW><MROW><MN>1</MN> <MO>/</MO> <MN>2</MN> </MROW></MSUP><MO>{</MO> <MI>ΣΣ</MI> <MSUP><MROW><MSUP><MROW><MO>[</MO> <MI>B</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW><MO>-</MO> <MOVER><MI>B</MI> <MO>&amp;OverBar;</MO> </MOVER><MO>]</MO> </MROW><MN>2</MN> </MSUP><MO>}</MO> </MROW><MROW><MN>1</MN> <MO>/</MO> <MN>2</MN> </MROW></MSUP></MROW></MFRAC></MROW>]]&gt;</MATH></MATHS> <BR><MATHS num="0008"></MATHS> <BR>A表示实时图,B表示模板图,其尺寸分别为K×L和M×N个像素。(u,v)为任一搜索位置(u,v),0≤u≤K?M,0≤v≤L?N?!啤票硎疚0逋枷竦木?,为在当前搜索位置实时图与模板图重叠部分的均值。 <BR>为了简单起见,进行下述变量定义:Bcc=∑∑B(i,j),B2cc=∑∑(B(i,j))2,Acc(u,v)=∑∑A(i+u,j+v),A2cc(u,v)=∑∑A(i+u,j+v)2,ABcc(u,v)=∑∑A(i+u,j+v)B(i,j),即Bcc表示模板图灰度值总和,B2cc表示模板图灰度值平方总和,Acc(u,v)表示当前搜索位置实时图灰度值总和,A2cc(u,v)表示当前搜索位置实时图灰度值平方总和,ABcc(u,v)表示当前搜索位置实时图模板图灰度值乘积总和。归一化互相关系数可进一步简写为: <BR><MATHS num="0009"><MATH><![CDATA[ <mrow><MI>C</MI> <MROW><MO>(</MO> <MI>u</MI> <MO>,</MO> <MI>v</MI> <MO>)</MO> </MROW><MO>=</MO> <MFRAC><MROW><MO>[</MO> <MI>MN</MI> <MO>&amp;CenterDot;</MO> <MI>ABcc</MI> <MROW><MO>(</MO> <MI>u</MI> <MO>,</MO> <MI>v</MI> <MO>)</MO> </MROW><MO>-</MO> <MI>Acc</MI> <MROW><MO>(</MO> <MI>u</MI> <MO>,</MO> <MI>v</MI> <MO>)</MO> </MROW><MI>Bcc</MI> <MO>]</MO> </MROW><MROW><MO>{</MO> <MI>MN</MI> <MO>&amp;CenterDot;</MO> <MI>A</MI> <MN>2</MN> <MI>cc</MI> <MROW><MO>(</MO> <MI>u</MI> <MO>,</MO> <MI>v</MI> <MO>)</MO> </MROW><MO>-</MO> <MSUP><MROW><MO>(</MO> <MI>Acc</MI> <MROW><MO>(</MO> <MI>u</MI> <MO>,</MO> <MI>v</MI> <MO>)</MO> </MROW><MO>)</MO> </MROW><MN>2</MN> </MSUP><MSUP><MO>}</MO> <MROW><MN>1</MN> <MO>/</MO> <MN>2</MN> </MROW></MSUP><MO>{</MO> <MI>MN</MI> <MO>&amp;CenterDot;</MO> <MI>B</MI> <MN>2</MN> <MI>cc</MI> <MSUP><MROW><MO>(</MO> <MI>Bcc</MI> <MO>)</MO> </MROW><MN>2</MN> </MSUP><MSUP><MO>}</MO> <MROW><MN>1</MN> <MO>/</MO> <MN>2</MN> </MROW></MSUP></MROW></MFRAC></MROW>]]&gt;</MATH></MATHS> <BR>根据上述公式的分子和分母可知,归一化互相关的计算需要大量的乘累加操作,相对而言,控制逻辑需求很少,因此非常适合用FPGA来实现。为简便起见,此处的定义和缩写在下文的描述、图形及表中同样有效。 <BR>实时图像以及模板图像的行数和列数(即,K≤Kmax,L≤Lmax,M≤Mmax,N≤Nmax)都是可以由外部微处理器输入的可变参数,其中Kmax、Lmax、Mmax、Nmax为由任务需求决定的最大可输入的行列数,也是本发明所采用的并行通道数目。本发明所提出的基于归一化相关系数的模板匹配高速并行实现方法的原理结构框图如图1所示。归一化相关系数计算完成以后取最大值或阈值处理操作由微处理器37来完成。为了清晰起见,图1主要给出了数据流相关的结构图,各个操作符号的功能说明已经在图例中给出。图中,时序控制???主要用于控制整个归一化相关系数计算的工作流程。外部通信接口???主要用于与微处理器9进行通信,即进行参数(包括K、L、M、N)、命令输入及状态输出。归一化相关系数计算???6为核心运算???,包括ABcc计算???、Acc计算???、A2cc计算???、Bcc计算???、B2cc计算???及后续计算???。 <BR>如图2所示,本发明的基于归一化相关系数的模板匹配高速并行实现方法包括如下4步。下面具体结合原理结构框图说明这些步骤中子??榈氖迪址椒肮ぷ髁鞒?。 <BR>(1)读入实时图和模板图数据到对应的内部RAM缓冲块中,同时实时图数据存储到用于计算实时图灰度值总和和实时图灰度值平方总和的实时图数据缓冲RAM中,同时进行模板图灰度值总和模板图灰度值平方总和计算和第1行第1列搜索位置处实时图灰度值总和实时图灰度值平方总和计算。 <BR>由于每一行中每一个位置上的归一化相关系数的计算只需模板图行数(M)行的实时图,因此我们可以采用Mmax个大小为1×Nmax的模板图RAM缓冲块15(如图1中的ORAM[0],...,ORAM[Mmax?1])及Mmax个大小为1×Lmax的实时图RAM缓冲块20(如图1中的RRAM[0],...,RRAM[Mmax?1])。在开始计算时,首先从外部存储器中读入实时图数据和模板图数据到对应的内部RAM缓冲块中。具体是将模板图每一行N列的灰度值数据存储在一个RAM缓冲块中,共存入M行;将实时图每一行L列的灰度值数据存储在一个RAM缓冲块中,共存入M行。 <BR>对于一个固定的模板图,在每一个模板匹配位置(u,v),Bcc和B2cc在整幅图搜索空间内只计算一次。因此可以在模板图数据从外部RAM(图1中的Exter?RORAM)9中输入到内部RAM缓冲块15(ORAM[0],...,ORAM[M?1])的同时把Bcc和B2cc计算出来。 <BR>Bcc由Bcc计算???实现,该??榘ㄒ桓隼奂悠?4。累加器14的输入端连接到模板图实时图数据存储器9的输出端,其输出即为模板图灰度值总和。 <BR>累加器的具体结构如图3所示。主要包括一个加法器和一个延迟寄存器(DFF),在外部时钟(clk)和使能信号(ena)的控制下累加器对输入(data[n..0])进行累加。 <BR>B2cc由B2cc计算???实现,该??榘ㄒ桓銎椒皆怂隳??2和一个累加器13。平方运算???2的输入端连接到模板图实时图数据存储器9的输出端,平方运算???2的输出连接到累加器13的输入端,累加器13的输出即为模板图灰度值平方总和。 <BR>搜索位置第1行第1列的实时图灰度值总和的计算,是通过时序控制??榭刂埔桓鲂惺堇奂幽?樵诿恳恍惺凳蓖际荻寥胧?,对实时图第1行第1列搜索位置处每一行数据进行累加,然后通过一个列累加器对这些行数据累加??槭涑鼋峁鹆薪欣奂?,并且和经过M步(模板图行数步)延迟的列累加器累加结果相减获得。具体是由第1列累加1???4来实现,该??榫咛宓脑硎迪纸峁谷缤?所示,每一行第一列Acc的计算都是由这个??槭迪值?。这个??橛?个累加器(行数据累加??楹土欣奂幽??、一组延迟寄存器和一个为适应不同模板图行数参数变化而选用的Mmax输入的多路选通开关组成,行数据累加??樵诿恳恍惺凳蓖际荻寥胧?,对每一行前N个数据进行累加,因此我们得到列累加??樵谛惺堇奂幽?榈玫嚼奂又凳倍愿美奂又到欣奂?,然后与经过M步(模板图行数步)延迟的列累加器累加结果相减获得每一行第一个搜索位置的Acc(u,1): <BR><MATHS num="0010"><MATH><![CDATA[ <mrow><MSUBSUP><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MROW><MI>M</MI> <MO>+</MO> <MI>u</MI> </MROW></MSUBSUP><MSUBSUP><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>N</MI> </MSUBSUP><MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW><MO>-</MO> <MSUBSUP><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>u</MI> </MSUBSUP><MSUBSUP><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>N</MI> </MSUBSUP><MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW><MO>=</MO> <MSUBSUP><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>M</MI> </MSUBSUP><MSUBSUP><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>N</MI> </MSUBSUP><MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW></MROW>]]&gt;</MATH></MATHS> <BR>因此,本发明在实时图数据从外部RAM9(图1中的Exter?RORAM)读入到FPGA内部RAM缓冲块20(RRAM[0],...,RRAM[M?1])和内部实时图数据缓冲RAM21(RRAM2)的过程中计算Acc(u,1)。 <BR>搜索位置第1行第1列的实时图灰度值平方总和的计算,是通过时序控制??榭刂埔桓鲂惺堇奂幽?樵诿恳恍惺凳蓖际荻寥胧?,对实时图第1行第1列搜索位置处每一行数据平方后进行累加,然后通过一个列累加器对这些行数据累加??槭涑鼋峁鹆薪欣奂?,并且和经过M步(模板图行数步)延迟的列累加器累加结果相减获得。具体由A2cc计算???中的平方???7和第1列累加2???8实现。第1列累加2??橛氲?列累加1??榈慕峁购凸ぷ髁鞒滔嗤?。即本发明在实时图数据从外部RAM9(图1中的Exter?RORAM)读入到FPGA内部RAM缓冲块20(RRAM[0],...,RRAM[M?1])和内部实时图数据缓冲RAM21(RRAM2)的过程中计算Acc(u,1)的同时计算A2cc(u,1)。 <BR>(2)计算搜索位置第1行后续各列的实时图灰度值总和同时计算当前位置实时图灰度值平方总和搜索位置第1行各列模板图实时图灰度值乘积总和及归一化相关系数。 <BR>1)后续Acc计算 <BR>后续各列每一个实时图灰度值总和的计算,是从搜索位置第2列开始,通过时序控制??榭刂剖凳蓖际莼撼錜AM同时依次逐行输出实时图与模板图重叠区域相对于前一个搜索位置新进的一列数据和刚移出的一列数据,由减法器作差后,通过累加器逐行求和,并且与前一列搜索位置处的该累加器结果值求和,即该累加器从第2列开始保留所有的累加值,然后由加法器与已经计算出的当前行第1列搜索位置处的相加即可获得当前列的 <BR>由具体的模板匹配过程图5可以看出,当前位置(u,v0+1)的Acc计算和前一位置(u,v0)只是多了一列新的数据(图5中的新列)和少了一列旧的数据(图5中的旧列),因此在当前给定搜索位置(u,v0+1),可以通过时序控制逻辑控制实时图数据缓冲RAM21(RRAM2)同时依次逐行输出实时图中模板图重叠区域相对于前一个搜索位置(u,v0)新进的一列数据(对应实时图中第v0+N列)和刚移出的一列数据(对应实时图中第v0列),由减法器作差后,对当前差值逐行求和,并且与前一列已经计算出的Acc(u,v0)进行相加即可获得当前搜索位置处的Acc(u,v0+1)。即 <BR><MATHS num="0011"><MATH><![CDATA[ <mrow><MI>Acc</MI> <MROW><MO>(</MO> <MI>u</MI> <MO>,</MO> <MSUB><MI>v</MI> <MN>0</MN> </MSUB><MO>+</MO> <MN>1</MN> <MO>)</MO> </MROW><MO>=</MO> <MI>Acc</MI> <MROW><MO>(</MO> <MI>u</MI> <MO>,</MO> <MSUB><MI>v</MI> <MN>0</MN> </MSUB><MO>)</MO> </MROW><MO>+</MO> <MSUBSUP><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>M</MI> </MSUBSUP><MO>[</MO> <MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>N</MI> <MO>+</MO> <MSUB><MI>v</MI> <MN>0</MN> </MSUB><MO>)</MO> </MROW><MO>-</MO> <MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MSUB><MI>v</MI> <MN>0</MN> </MSUB><MO>)</MO> </MROW><MO>]</MO> </MROW>]]&gt;</MATH></MATHS> <BR>向前推移可以得到: <BR><MATHS num="0012"><MATH><![CDATA[ <mfenced open='' close=''><MTABLE><MTR><MTD><MI>Acc</MI> <MROW><MO>(</MO> <MI>u</MI> <MO>,</MO> <MSUB><MI>v</MI> <MN>0</MN> </MSUB><MO>+</MO> <MN>1</MN> <MO>)</MO> </MROW><MO>=</MO> <MI>Acc</MI> <MROW><MO>(</MO> <MI>u</MI> <MO>,</MO> <MN>0</MN> <MO>)</MO> </MROW><MO>+</MO> <MSUBSUP><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>M</MI> </MSUBSUP><MO>[</MO> <MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>N</MI> <MO>+</MO> <MN>1</MN> <MO>)</MO> </MROW><MO>-</MO> <MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MN>1</MN> <MO>)</MO> </MROW><MO>]</MO> <MO>+</MO> <MO>&amp;CenterDot;</MO> <MO>&amp;CenterDot;</MO> <MO>&amp;CenterDot;</MO> </MTD></MTR><MTR><MTD><MO>+</MO> <MSUBSUP><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>M</MI> </MSUBSUP><MO>[</MO> <MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>N</MI> <MO>+</MO> <MSUB><MI>v</MI> <MN>0</MN> </MSUB><MO>)</MO> </MROW><MO>-</MO> <MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MSUB><MI>v</MI> <MN>0</MN> </MSUB><MO>)</MO> </MROW><MO>]</MO> </MTD></MTR></MTABLE></MFENCED>]]&gt;</MATH></MATHS> <BR>因此Acc(u,v0+1)可由累加器从第2列开始逐行累加作差值,然后由加法器与已经计算出的当前行第1列搜索位置处的Acc(u,0)相加得到。 <BR>因此后续列的实时图灰度值总和Acc(u,v)由Acc计算???中的与A2cc(u,v)计算???共用的内部实时图数据缓冲RAM21(RRAM2)、一个减法器22和一个累加器23(Accu4)组成。内部实时图数据缓冲RAM21(RRAM2)的两个输出端连接到减法器22的输入端,减法器22的输出端连接到累加器23的输入端。累加器的输出加上第1列累加1???4的输出即可得到后续列的实时图灰度值总和Acc(u,v)。 <BR>2)后续A2cc计算 <BR>从每一行的第2个搜索位置开始,A2cc(u,v)以与Acc(u,v)同样的方式实现。在当前给定搜索位置(u,v0+1),与A2cc(u,v)同时通过时序控制逻辑控制实时图数据缓冲RAM21(RRAM2)同时依次逐行输出实时图中模板图重叠区域相对于前一个搜索位置(u,v0)新进的一列数据(对应实时图中第v0+N列)和刚移出的一列数据(对应实时图中第v0列),求平方后由减法器作差,然后对当前差值逐行求和,并且与前一列搜索位置处的该累加器结果值求和,最后由加法器与已经计算出的当前行第1列搜索位置处的A2cc(u,0)相加即可获得当前列的A2cc(u,v)。 <BR>因此后续列的实时图灰度值总和A2cc(u,v)由A2cc计算???中的与Acc(u,v)计算???共用的内部实时图数据缓冲RAM21(RRAM2)、2个平方运算???6、一个减法器25和一个累加器29(Accu5)组成。内部实时图数据缓冲RAM21(RRAM2)的两个输出端连接到两个平方运算26输入端,平方运算26输出端连接到减法器25的输入端,减法器25的输出端连接到累加器20的输入端。累加器的输出加上第1列累加2???8的输出即可得到后续列的实时图灰度值总和A2cc(u,v)。 <BR>RRAM2可由双端口RAM实现,以实现同时读出两个数据;在没有双端口RAM时可由两块RAM实现。 <BR>3)ABcc计算???<BR>模板图与实时图当前搜索位置的灰度值乘积总和的计算,由ABcc计算???实现。 <BR>由归一化相关系数公式,采用模板图最大的行数(Mmax)个并行的乘法通道来进行并行运算。因此通过合理的时序控制(M≤Mmax)在一个时钟周期里就可以计算M个乘累加,这样,在N个时钟周期以后,我们可以得到一个搜索位置上的ABcc。 <BR>在开始计算时,首先从外部存储器中读入实时图数据和模板图数据到对应的内部RAM缓冲块中。当开始进行第2行搜索时,新来的一行实时图数据可以覆盖已经不用的第1个缓冲块,此时实时图第1个RAM缓冲块(RRAM[0])已经和模板图中的第1块(ORRAM[0])不对应,而是与模板图的最后一块(ORAM[M?1])相对应,第2个实时图缓冲块对应模板图的第1个缓冲块,以此类推。当进行第3行搜索时,新来的一行实时图数据可以覆盖第2个已经不用的RAM缓冲块,此时第1个实时图缓冲块对应第M?1个模板图缓冲块(ORAM[M?2]),第2个实时图缓冲块对应第M个模板图缓冲块(ORAM[M?1]),第3个才对应模板图的第1个缓冲块(ORAM[0]),以此类推。由此为了使实时图和模板图的每个RAM缓冲块数据能够对应上,本发明利用多路选通开关(MUX)从Mmax个模板图缓冲块中选出当前的第1块来与第1个实时图缓冲块对应,选出当前的第2块来与第2个实时图缓冲块对应,以此类推。总共需要Mmax个这样的多路选通开关来对数据进行重排。通过选通对实时图和模板图进行重排都是可以的,由于模板图的缓冲块较小,从而其布线路径会简单一些,因此本发明采用对模板图进行重排,如图1所示。 <BR>ABcc计算???由实时图RAM缓冲块20、模板图RAM缓冲块15、多路选通开关16、乘法器17、并加???8和累加器19组成。模板图RAM缓冲块15的所有输出端连接到一个多路选通开关16的输入,多路选通开关的输出连接到的一个乘法器17的一端,乘法器17的另一端对应连接到存储实时图像的RAM缓冲块的输出端。通过采用模板图最大行数(Mmax)个这样的并行通道进行并行运算,然后各个通道输出端连接到一个并加???8(PAdd1),最终连接到一个累加???9(Accu3)上。 <BR>在具体计算时,时序控制???控制选通开关16使得对应的模板图数据与实时图进行乘积运算,改变模板图和实时图RAM缓冲块的地址,逐列输出模板图和实时图的对应数据进行乘积运算,然后经过并加???8对当前列各行数据进行求和,而后由累加???9对并加???8输出的结果逐列求和后,获得当前列各个搜索位置的 <BR>本发明采用了先并加后累加,其结果与先累加然后并加的方式结果是一样的,但前者能够省掉M?1个重复的累加器(Accu),如图6(b)所示。从而降低了资源的消耗。 <BR>其中的并加结构如图7所示,多个输入通道在一步操作中就可以获得相加结果,在加入延迟寄存器缓冲后,并加可以实现流水输出。 <BR>4)归一化相关系数后续计算 <BR>归一化相关系数后续计算是由后续计算???实现的,在<MATHS num="0013"><MATH><![CDATA[ <mrow> <MSUBSUP><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>M</MI> </MSUBSUP><MSUBSUP><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>N</MI> </MSUBSUP><MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW><MO>,</MO> <MSUBSUP><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>M</MI> </MSUBSUP><MSUBSUP><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>N</MI> </MSUBSUP><MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW></MROW>]]&gt;</MATH></MATHS>和<MATHS num="0014"><MATH><![CDATA[ <mrow> <MSUBSUP><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>M</MI> </MSUBSUP><MSUBSUP><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>N</MI> </MSUBSUP><MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>j</MI> <MO>+</MO> <MI>v</MI> <MO>)</MO> </MROW><MI>B</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW></MROW>]]&gt;</MATH></MATHS>计算出来以后,相应的<MATHS num="0015"><MATH><![CDATA[ <mrow> <MI>MN</MI> <MO>&amp;CenterDot;</MO> <MSUBSUP><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>M</MI> </MSUBSUP><MSUBSUP><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>N</MI> </MSUBSUP><MI>B</MI> <MSUP><MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW><MN>2</MN> </MSUP><MO>-</MO> <MSUBSUP><MROW><MO>(</MO> <MI>Σ</MI> </MROW><MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>M</MI> </MSUBSUP><MI></MI><MSUBSUP><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>N</MI> </MSUBSUP><MI>B</MI> <MSUP><MROW><MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW><MO>)</MO> </MROW><MN>2</MN> </MSUP><MO>,</MO> <MSUBSUP><MROW><MI>MN</MI> <MO>&amp;CenterDot;</MO> <MI>Σ</MI> </MROW><MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>M</MI> </MSUBSUP><MSUBSUP><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>N</MI> </MSUBSUP><MI>A</MI> <MSUP><MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>j</MI> <MO>+</MO> <MI>v</MI> <MO>)</MO> </MROW><MN>2</MN> </MSUP><MO>-</MO> <MSUP><MROW><MO>(</MO> <MSUBSUP><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>M</MI> </MSUBSUP><MSUBSUP><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>N</MI> </MSUBSUP><MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>j</MI> <MO>+</MO> <MI>v</MI> <MO>)</MO> </MROW><MO>)</MO> </MROW><MN>2</MN> </MSUP><MO>,</MO> </MROW>]]&gt;</MATH></MATHS>和<MATHS num="0016"><MATH><![CDATA[ <mrow> <MI>MN</MI> <MO>&amp;CenterDot;</MO> <MSUBSUP><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>M</MI> </MSUBSUP><MSUBSUP><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>N</MI> </MSUBSUP><MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>j</MI> <MO>+</MO> <MI>v</MI> <MO>)</MO> </MROW><MI>B</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW><MO>-</MO> <MSUBSUP><MI>Σ</MI> <MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>M</MI> </MSUBSUP><MI></MI><MSUBSUP><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>N</MI> </MSUBSUP><MI>A</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>+</MO> <MI>u</MI> <MO>,</MO> <MI>j</MI> <MO>+</MO> <MI>v</MI> <MO>)</MO> </MROW><MSUBSUP><MROW><MI>Σ</MI> </MROW><MROW><MI>i</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>M</MI> </MSUBSUP><MSUBSUP><MI>Σ</MI> <MROW><MI>j</MI> <MO>=</MO> <MN>1</MN> </MROW><MI>N</MI> </MSUBSUP><MI>B</MI> <MROW><MO>(</MO> <MI>i</MI> <MO>,</MO> <MI>j</MI> <MO>)</MO> </MROW></MROW>]]&gt;</MATH></MATHS>可以由乘法器和加、减法器计算出来。归一化相关系数公式的分母先由两个求根???3和34分别进行求根运算,然后由乘法器???5进行相乘,这样可以降低数据宽度。归一化相关系数公式的分子和分母首先由定点浮点转换???0和31转化为浮点,最终通过一个浮点除法运算???2进行浮点除法就可以得到浮点格式的归一化相关系数。 <BR>搜索位置第1行归一化相关系数的计算,是模板图像第1到M行与实时图第1到M行数据对应计算,搜索位置第1列归一化相关系数的计算为模板图像第1到N列与实时图像第1到N列数据对应计算,同时计算第2列的模板图像在实时图像中右移一列,并计算该处的同时计算第3列的此时后续的求平方根、浮点除法等后续运算同步流水进行,以此重复,直到第一行归一化相关系数计算完成。根据实际需要可选择32位浮点或者64位浮点。 <BR>(3)读入新一行的实时图数据到数据已经无效的内部RAM缓冲块,同时该新一行实时图数据读入到用于计算实时图灰度值总和和实时图灰度值平方总和的实时图数据缓冲RAM中覆盖已经无效的数据,同时计算当前行第1列的实时图灰度值总和实时图灰度值平方总和值。 <BR>由步骤2中所述,从外部RAM读入新一行的实时图数据到相应的内部RAM缓冲块中,完成第一行相关系数计算后,读入一行新的实时图数据覆盖不用的实时图RAM块数据,在后续各行计算时需要通过时序控制???重新切换多路选通开关使模板图RAM缓冲块输出与实时图RAM缓冲块输出顺序对应。同时该新一行实时图数据读入到实时图数据缓冲RAM中覆盖已经无效的数据。 <BR>在读入实时图新一行数据时,同时由步骤2中所述方式计算出当前行第1列的实时图灰度值总和和实时图灰度值平方总和的值,后续列实时图灰度值总和与实时图灰度值平方总和按步骤2中所述方式依次计算得出。 <BR>(4)采用步骤2、步骤3相同的方式,依次计算出后续各行归一化相关系数。 <BR>计算实时图像第2行至第K?M+1行归一化相关系数,第一行相关系数计算完成后,依次读入一行新的实时图数据覆盖不用的实时图RAM缓冲块数据和对应的实时图数据缓冲RAM中的数据,并且通过时序控制??橹匦卵≡衲0逋糝AM缓冲块输出多路选通开关使其与之对应,这样相当于模板图像在待匹配图像中下移一行,然后按照步骤2和步骤3方式进行计算,依次得到每行的归一化相关系数。 <BR>在接收到外部微处理器输入参数和启动命令系统启动以后,首先进行初始化,并且设置m=0,n=0,如图2所示的工作步骤可具体化和细分为下述串行的6步操作完成,其中每一步的子过程是同步进行的。 <BR>第1步:(1.1)模板图数据由外部模板图实时图数据存储器(Exter?RORAM)读入到内部模板图RAM缓冲块ORAM[0..M?1]中;同时(1.2)由Bcc计算??榻心0逋祭奂蛹扑鉈cc;(1.3)由B2cc计算??槔奂?Bij)2计算B2cc; <BR>第2步:(2.1)第1~M行实时图数据由模板图实时图数据存储器(Exter?RORAM)读入到对应的内部RAM缓冲块RRAM[0..M?1])中,同时存储到实时图数据缓冲RAM(RRAM2)相应位置中;同时(2.2)由第1列累加1??楹偷?列累加2??榧扑鉇cc(0,0)和A2cc(0,0); <BR>第3步:(3.1)利用Acc计算??楹虯2cc计算??榧扑鉇cc(m,n)、A2cc(m,n);同时(3.2)利用ABcc计算??榧扑鉇Bcc(m,n); <BR>第4步:n=n+1,如果n&lt;L?N+1,返回第3步,否则继续执行到第5步; <BR>第5步:m=m+1,如果m&lt;K?M+1,继续执行到第6步,否则结束整个计算流程,并且修改完成状态寄存器。 <BR>第6步:(6.1)从外部模板图实时图数据存储器(Exter?RORAM)读入实时图第(M+m)行数据到相应的内部RAM缓冲块中;同时存储到实时图数据缓冲RAM(RRAM2)相应位置中;同时(6.2)分别由第1列累加1??楹偷?列累加2??榧扑鉇cc(m,1)和A2cc(m,1)值;计算上一列的归一化相关系数C(m,n)并且存入外部结果存储器中(Exter?RAM);继续执行到第3步。 <BR>其中本发明中外部实时图和模板图数据存储在一块RAM模板图实时图数据存储器(Exter?RORAM)中,此时读取分为两步;也可考虑存储在两块RAM中的情形,此时可同时进行读取。前两步对应技术方案的步骤1。第3步对应步骤2。第4步和第5步由时序控制相应后续列和行的计算,对应步骤4。第6步对应步骤3。 <BR>由上述步骤可知,归一化相关系数计算需要K*L+M*N+(K?M+1)*(L?N+1)*(N)个时钟周期,因此总的计算时间为(K*L+M*N+(K?M+1)*(L?N+1)*(N))/fclk,fclk为系统工作频率。 <BR>图8为一种基于归一化相关系数的高速并行模板匹配方法的装置,该装置由高速相关运算器10、模板图实时图数据存储器9、结果存储器11和微处理器37构成。高速相关运算器10与模板图实时图数据存储器9、结果存储器11、微处理器37相连,模板图实时图数据存储器9、结果存储器11也与微处理器37相连。如图1所示,高速相关运算器10由归一化相关系数计算???6、外部通信接口???和时序控制???组成。归一化相关系数计算???6主要用于归一化相关系数的计算。外部通信接口???主要通过寄存器与处理器进行参数输入输出、指令输入、状态查询输出。时序控制???主要基于上述步骤控制整个归一化相关系数计算的工作流程,它与各个??橹械腞AM的地址及控制线、选通开关的选通地址、使能端寄存器的使能端相连。模板图实时图数据存储器9、结果存储器11分别存储原始图像数据以及运算结果,微处理器37由高速相关运算器10的外部通信接口???通过寄存器访问的方式进行参数输入输出、指令输入和状态查询输出,从而控制高速相关运算器10进行相应操作,同时也进行原始图像数据的准备工作。高速相关运算器10把结果存储到结果存储器11中,并且从模板图实时图数据存储器9中读取数据。 <BR>如图1所示,高速模板匹配装置中的高速相关运算器10的归一化相关系数计算???6包括模板图灰度值求和???、模板图灰度值平方求和???、实时图灰度值求和???、实时图灰度值平方求和???、实时图模板图灰度值乘积求和???和后续计算???。模板图灰度值求和???由一个累加器14组成,模板图灰度值平方求和???由一个平方运算???2和一个累加器13相连而成。实时图灰度值求和???由与实时图灰度值平方求和???共用的实时图数据缓冲RAM21、第1列累加???4、减法器22、累加器23和加法器组成。实时图灰度值平方求和???由与实时图灰度值平方求和???共用的实时图数据缓冲RAM21、第1列累加???8、平方运算???6、27、38、减法器25、累加器29和加法器组成。实时图模板图灰度值乘积求和???由实时图RAM缓冲块20、模板图RAM缓冲块15、多路选通开关16、乘法器17、并加???8和累加器19组成。后续计算??橛沙朔ㄆ?、加、减法器和分子分母定点浮点转换???30、31)、分母方根运算??椋?3、34)、浮点除法运算???2组成。 <BR>高速模板匹配装置工作流程如下:首先微处理器37把原始模板图和实时图数据存入模板图实时图数据存储器9中,然后向高速相关运算器10输入图像的尺寸参数,而后输入启动命令启动归一化相关运算。在运算过程中通过寄存器访问的方式查询运算的进程状态。在运算完成以后,微处理器37会从高速相关运算器10收到完成的中断信号。为可靠起见,微处理器37进一步查询高速相关运算器10的完成标志,在确保完成后从结果存储器11读取归一化相关系数计算结果进行后续处理工作。 <BR>高速模板匹配装置中所包含的高速相关运算器可以利用FPGA实现,也可利用VLSI实现。高速相关运算器中实时图像以及模板图像的行数和列数都是可以由外部微处理器输入的可变参数,而最终实现的并行通道数目,包括内部实时图和模板图RAM缓冲块的数目,是由任务要求决定的最大的行数。 <BR>下面是算法的具体实施实例。 <BR>本发明的实施实例是以Altera公司的现场可编程门阵列Stratix&nbsp;II系列EP2S90F780I4芯片为平台。图像灰度值为8位,模板图和实时图的大小参数是可变的:2≤M≤80,2≤N≤80,2≤K≤512,2≤L≤512。相应的,我们采用模板图最大的行数80作为并行通道数。当前针对最大图像参数进行实施。采用Quartus&nbsp;II8.0sp1软件作为基本的逻辑分析、综合、逻辑布局布线工具,采用Verilog和VHDL语言混合硬件编程的方式进行逻辑设计。系统的全局时钟频率采用70MHz,由PLL根据外部输入的20MHz时钟产生。具体采用32位浮点归一化相关系数输出。 <BR>依据本发明,具体模板匹配实例如下实施。 <BR>1)依据两个图像的具体大小,搭建图像匹配系统, <BR>高速相关运算器按照图1在FPGA芯片上实现,完成归一化相关系数的计算。模板图实时图的RAM缓冲块由实例化RAM实现,实时图数据缓冲RAM由实例化双端口RAM实现,多路选通开关、乘法运算、平方运算、加法运算、减法运算、求方根运算、定点浮点转换、浮点除法运算都由Qartus&nbsp;II根据所用的FPGA进行实例化。时序控制??橥ü刺姆绞娇刂普鱿低车脑诵?。 <BR>2)采用Verilog和VHDL语言混合编程的方式进行逻辑设计 <BR>步骤1:读取模板图像80*80个数据以及实时图像前80行的80*512个数据并分别存储到对应的RAM缓冲块,前80行实时图像同时依次存入实时图数据缓冲RAM中,同时计算Bcc和B2cc和第1行第1列搜索位置上的Acc和A2cc。 <BR>对于模板图像和实时图像,分别设置80个RAM缓冲块,每一行信息存储到一个RAM缓冲块中,由于灰度值为8位二进制数据,每个RAM缓冲块的大小分别为80*8(位)和512*8(位),前80行实时图像同时依次存入实时图数据缓冲RAM中,总计80*512*8(位)。对于实时图,开始时读入的是第1至80行数据。Bcc在模板图像数据读入过程中通过Bcc计算??榧扑愠隼?,同时B2cc在模板图像数据读入过程中通过B2cc计算??榧扑愠隼?。第1行第1列搜索位置上的Acc和A2cc由第1列累加1??楹偷?列累加2??槭迪?。 <BR>步骤2:计算当前行各列的Acc(m,n)和A2cc(m,n),同时计算ABcc(m,n)。 <BR>对于每一行从第2列开始,Acc和A2cc可由时序控制??榭刂艫cc计算??楹虯2cc计算??槭迪?,具体为从实时图数据缓冲RAM(RRAM2)中顺序读出新进的一列数据和移出的旧的一列数据相减并且对结果值进行累加,然后与当前行第一列的Acc进行求和计算。 <BR>对于ABcc的计算,时序控制??榭刂颇0逋己褪凳蓖济恳桓鯮AM缓冲块同时读出一列数据,同时控制选通开关使得对应的模板图数据与实时图进行乘积运算,然后对所有行乘积结果同时求和的并加以及对并加结果逐列求和的累加后获得。 <BR>步骤3:从外部RAM读入新一行的实时图数据到相应的内部RAM缓冲块中,同时存入到实时图数据缓冲RAM中,同时计算当前行第1列的Acc(m,1)和A2cc(m,1)值,计算上一列的相关结果。 <BR>对于实时图像,当进行第2行搜索时,新来的第M+1行实时图数据覆盖已经不用的第1个缓冲块。以此类推,当进行第3行搜索时,新来的一行实时图数据可以覆盖第2个已经不用的RAM缓冲块,此时第1个实时图缓冲块对应第M?1个模板图缓冲块(ORAM[M?2]),第2个实时图缓冲块对应第M个模板图缓冲块(ORAM[M?1]),第3个实时图缓冲块才对应模板图的第1个缓冲块(ORAM[0])。时序控制??榭刂蒲⊥厥鼓0逋际萦胧凳蓖际荻杂?。 <BR>当前行第1列搜索位置上Acc(m,1)和A2cc(m,1)由第1列累加1??楹偷?列累加2??樵谛乱恍惺凳蓖际荻寥牍讨型奔扑愠隼?。 <BR>步骤4:重复(2)~(3),依次计算直到433行数据计算完毕。 <BR>3)资源消耗、内核速度及时间消耗 <BR>由Qartus&nbsp;II时序分析总结和编译报告,资源利用情况和FPGA内核最大可达的时钟频率如表1所示??杉?,在包含了求平方根、定点到浮点转换、浮点除法等运算情况下,整个FPGA芯片占用的逻辑资源不多,因而本发明所提方案是完全可以实现的。 <BR>表1&nbsp;&nbsp;资源利用情况及最大可达的时钟运行速度 <BR></TABLES> <BR>对于大小为80×80的模板图和大小为512×512的实时图,采用70MHz系统全局时钟频率下,模板图和实时图分别读入的情况下,高速相关运算器完成所有搜索位置归一化相关系数运算所用计算时间(包含外部RAM数据读取时间)为: <BR>(K*L+M*N+(K?M+1)*(L?N+1)*(N))/fclk= <BR>(512*512+80*80+(512?80+1)*(512?80+1)*N)/70000000=218ms。 <BR>由于采用80个并行通道,高速相关运算器仅用218ms就可以完成。因此在可编程逻辑器件上并行实现基于归一化相关系数的模板匹配可大大节约时间,提高匹配速度。 <BR>4)Quartus波形仿真结果 <BR>为了验证所提出的高速相关运算器的基本功能,另外选用大小为17×17的模板图和大小为40×40的实时图,17和40是输入的可变参数。实时图数据为由0开始递增的数据,而模板图数据是由64开始递增的数据。当数据超过当前位宽所能表示的最大值时,不考虑溢出的位数,也就是数据将在0~255的范围之内。 <BR>具体的时序仿真波形如图9所示。其中,端口Bcc,B2cc,Acc,A2cc和ABcc与前面定义的相同,输出端口Result_S,Result_E和Result_M分别表示浮点格式的NCC计算结果的符号位、指数项和尾数项??梢钥闯?,除了一点精度上的损失外,由Quartus&nbsp;II8.0得到的仿真结果与如表2所示的用Matlab所计算的结果是一致的。 <BR>表2&nbsp;&nbsp;由Matlab计算得到的结果 <BR><TGROUP cols="5"><COLSPEC colwidth="18%" colname="c001" /><COLSPEC colwidth="30%" colname="c002" /><COLSPEC colwidth="13%" colname="c003" /><COLSPEC colwidth="17%" colname="c004" /><COLSPEC colwidth="22%" colname="c005" /><ROW><ENTRY morerows="1">数据输出</ENTRY><ENTRY morerows="1">Result_M</ENTRY><ENTRY morerows="1">Acc</ENTRY><ENTRY morerows="1">A2cc</ENTRY><ENTRY morerows="1">ABcc</ENTRY></ROW><ROW><ENTRY morerows="1">0</ENTRY><ENTRY morerows="1">7.2717890e+006</ENTRY><ENTRY morerows="1">33608</ENTRY><ENTRY morerows="1">5434712</ENTRY><ENTRY morerows="1">4277336</ENTRY></ROW><ROW><ENTRY morerows="1">1</ENTRY><ENTRY morerows="1">5.9456620e+006</ENTRY><ENTRY morerows="1">33641</ENTRY><ENTRY morerows="1">5436681</ENTRY><ENTRY morerows="1">4266280</ENTRY></ROW><ROW><ENTRY morerows="1">2</ENTRY><ENTRY morerows="1">4.6373932e+006</ENTRY><ENTRY morerows="1">33674</ENTRY><ENTRY morerows="1">5438716</ENTRY><ENTRY morerows="1">4255480</ENTRY></ROW><ROW><ENTRY morerows="1">3</ENTRY><ENTRY morerows="1">3.3471433e+006</ENTRY><ENTRY morerows="1">33707</ENTRY><ENTRY morerows="1">5440817</ENTRY><ENTRY morerows="1">4244936</ENTRY></ROW><ROW><ENTRY morerows="1">4</ENTRY><ENTRY morerows="1">2.0750735e+006</ENTRY><ENTRY morerows="1">33740</ENTRY><ENTRY morerows="1">5442984</ENTRY><ENTRY morerows="1">4234648</ENTRY></ROW><ROW><ENTRY morerows="1">5</ENTRY><ENTRY morerows="1">8.2134461e+005</ENTRY><ENTRY morerows="1">33773</ENTRY><ENTRY morerows="1">5445217</ENTRY><ENTRY morerows="1">4224616</ENTRY></ROW></TGROUP></TABLES><BR>5)实际的实验结果 <BR>在实际系统中,基于归一化相关系数的模板匹配高速并行实现装置的基本构成如图10所示。图中,Exter?RORAM、Exter?RAM分别为缓存模板图实时图数据和运算结果的外部RAM。微处理器采用ADI公司的DSP芯片TS201。Addr和Data为地址和数据总线,RD、WR、CS为外部RAM读写控制信号。 <BR>首先TS201作为核心处理器把模板图实时图数据存入外部双端口RAM(Exter?RORAM)中,然后向FPGA输入图像的尺寸参数,其后输入启动命令启动模板匹配运算。在运算完成以后,TS201会收到完成的中断信号,为可靠起见,TS201需要查询FPGA的完成标志,在确保完成以后进行后续工作。 <BR>在不同参数情况下用不同实际图像数据对该装置进行了长期的稳定性测试,归一化相关系数计算的结果与实际计算值相一致,并且能够稳定可靠的工作。 <BR>同时还利用TS201对系统运算时间进行了评估,处理时间和前面的理论计算结果一致。对于大小为80×80的模板图和大小为512×512的实时图,70MHz系统全局时钟频率下,所用时间为218ms。 <BR>因为FPGA通常用作VLSI专用集成电路的验证和开发平台,因此所提出的高速相关运算器可以进一步由VLSI实现。</p> </div> </div> </div> </div> <div class="mt10 works-comment"> <div class="works-comment-hd"> <span class="font-tahoma">关于本文</div> <div style="line-height: 25px; padding: 10px 20px;"> 本文标题:基于归一化相关系数的模板匹配高速并行实现方法和装置.pdf<br /> 链接地址:<a href="//www.4mum.com.cn/p-5775710.html">//www.4mum.com.cn/p-5775710.html</a><br /> </div> </div> </div> <div class="boxright" id="boxright" > <div class="fr detail-aside" id="Div11" style="width:270px;"> <div class="box hot-keywords mt10" style="overflow: hidden;width: 268px; border:solid 1px #dedede;" id="relatebox0"> <div class="boxHd" > <div class="fl nt-ico mr5 ml13 ico" style="margin-top: 3px;"> </div> <h2 class="fl font-normal font16 font-yahei" style="font-size: 16px; font-weight: 100; margin-left: 0px; margin-top: 3px; font-family: 微软雅黑"> 当前资源信息</h2> </div> <div id="Div2" class="author-works-list bgF" style="overflow: hidden; padding:10px 10px; "> <table><tr><td> <dt class="author-avatar-box fl"><a class="author-avatar" title="e2" href="u-269.html"> <img src="//www.4mum.com.cn/images/avatar_small.gif" style="border-radius:50px 50px; " onerror="this.src='images/noavatar_small.gif'" alt="e2"></a> </dt></td><td> <div class="author-name fl w100 ellipsis"> <a href="u-269.html" target="_blank"> e2</a><img style="height:15px; width:20px; overflow:hidden; margin-right:10px;background:url(images/bg_index_ie6_781d95ab.png) no-repeat -185px 4px;display:none" src="images/s.gif" alt="企业认证" title="企业认证"/></div> <div class="author-level-bar"> <span class="mr5 author-grade author-grade5" title="会员等级"></span> </div></td></tr></table> <div class="fl" style="width: 240px;"> <p class="kh_cpZl"> 编号: cj20190318104214351482</p> <p class="kh_cpZl"> 类型: 共享资源</p> <p class="kh_cpZl"> 格式: PDF</p> <p class="kh_cpZl"> 大?。?4.60MB</p> <p class="kh_cpZl"> 上传时间: 2019-03-18</p> </div> </div> </div> <div class="box hot-keywords mt10" style="overflow: hidden;width: 268px; border:solid 1px #dedede;" id="relatebox"> <div class="boxHd" style="padding-bottom: 0px;"> <div class="fl keywords-ico mr5 ml13 ico"> </div> <h2 class="fl font-normal font16 font-yahei" style="font-size: 16px; font-weight: 100; margin-left: 0px; margin-top: 3px; font-family: 微软雅黑"> 相关资源</h2> </div> <div id="author-works-list" class="author-works-list bgF"> <li class="vprdn"> <img alt="智能枪支管理系统.pdf" class="pdf" src="Images/s.gif" /><a target="_parent" href="//www.4mum.com.cn/p-7326879.html" title="智能枪支管理系统.pdf">智能枪支管理系统.pdf</a> </li> <li class="vprdn"> <img alt="用于弹药储运监测与智能管理的方法.pdf" class="pdf" src="Images/s.gif" /><a target="_parent" href="//www.4mum.com.cn/p-7326820.html" title="用于弹药储运监测与智能管理的方法.pdf">用于弹药储运监测与智能管理的方法.pdf</a> </li> <li class="vprdn"> <img alt="一种具有指静脉识别功能的枪支及枪支管理系统.pdf" class="pdf" src="Images/s.gif" /><a target="_parent" href="//www.4mum.com.cn/p-7326812.html" title="一种具有指静脉识别功能的枪支及枪支管理系统.pdf">一种具有指静脉识别功能的枪支及枪支管理系统.pdf</a> </li> <li class="vprdn"> <img alt="一种具有指静脉识别功能的枪支及枪支管理系统.pdf" class="pdf" src="Images/s.gif" /><a target="_parent" href="//www.4mum.com.cn/p-7326802.html" title="一种具有指静脉识别功能的枪支及枪支管理系统.pdf">一种具有指静脉识别功能的枪支及枪支管理系统.pdf</a> </li> <li class="vprdn"> <img alt="智能枪支管理系统.pdf" class="pdf" src="Images/s.gif" /><a target="_parent" href="//www.4mum.com.cn/p-7326456.html" title="智能枪支管理系统.pdf">智能枪支管理系统.pdf</a> </li> <li class="vprdn"> <img alt="一种基于RFID的枪支位置判定系统.pdf" class="pdf" src="Images/s.gif" /><a target="_parent" href="//www.4mum.com.cn/p-7326443.html" title="一种基于RFID的枪支位置判定系统.pdf">一种基于RFID的枪支位置判定系统.pdf</a> </li> <li class="vprdn"> <img alt="信用卡套现识别方法和装置.pdf" class="pdf" src="Images/s.gif" /><a target="_parent" href="//www.4mum.com.cn/p-7326441.html" title="信用卡套现识别方法和装置.pdf">信用卡套现识别方法和装置.pdf</a> </li> <li class="vprdn"> <img alt="用于控制生产过程的系统和方法.pdf" class="pdf" src="Images/s.gif" /><a target="_parent" href="//www.4mum.com.cn/p-6421312.html" title="用于控制生产过程的系统和方法.pdf">用于控制生产过程的系统和方法.pdf</a> </li> <li class="vprdn"> <img alt="一种处理视频的方法及其系统.pdf" class="pdf" src="Images/s.gif" /><a target="_parent" href="//www.4mum.com.cn/p-6421251.html" title="一种处理视频的方法及其系统.pdf">一种处理视频的方法及其系统.pdf</a> </li> <li class="vprdn"> <img alt="基于脑电信号特征的影片剪辑筛选辅助仪及实现方法.pdf" class="pdf" src="Images/s.gif" /><a target="_parent" href="//www.4mum.com.cn/p-6421139.html" title="基于脑电信号特征的影片剪辑筛选辅助仪及实现方法.pdf">基于脑电信号特征的影片剪辑筛选辅助仪及实现方法.pdf</a> </li> <li class="vprdn"> <img alt="基于动态内插技术的通用化测控信道模拟方法.pdf" class="pdf" src="Images/s.gif" /><a target="_parent" href="//www.4mum.com.cn/p-6421123.html" title="基于动态内插技术的通用化测控信道模拟方法.pdf">基于动态内插技术的通用化测控信道模拟方法.pdf</a> </li></div> </div> <div class="box hot-keywords mt10" id="box3" style="overflow: hidden;width: 268px; border:solid 1px #dedede;"> <div class="boxHd" style="border: none;padding-bottom: 0px;"> <div class="fl keywords-ico mr5 ml13 ico"> </div> <h2 class="fl font-normal font16 font-yahei" style="font-size: 16px; font-weight: 100; margin-left: 0px; margin-top: 3px; font-family: 微软雅黑"> 相关搜索</h2> </div> <div class="hot-keywords-list"> <a target="_blank" href="search.html?p=0&q=%e5%9f%ba%e4%ba%8e" class="tag-item ico" title="基于" hidefocus="true"><span class="ico"><em> 基于</em></span></a> <a target="_blank" href="search.html?p=0&q=%e5%bd%92%e4%b8%80%e5%8c%96" class="tag-item ico" title="归一化" hidefocus="true"><span class="ico"><em> 归一化</em></span></a> <a target="_blank" href="search.html?p=0&q=%e7%9b%b8%e5%85%b3%e7%b3%bb%e6%95%b0" class="tag-item ico" title="相关系数" hidefocus="true"><span class="ico"><em> 相关系数</em></span></a> <a target="_blank" href="search.html?p=0&q=%e6%a8%a1%e6%9d%bf" class="tag-item ico" title="模板" hidefocus="true"><span class="ico"><em> 模板</em></span></a> <a target="_blank" href="search.html?p=0&q=%e5%8c%b9%e9%85%8d" class="tag-item ico" title="匹配" hidefocus="true"><span class="ico"><em> 匹配</em></span></a> <a target="_blank" href="search.html?p=0&q=%e9%ab%98%e9%80%9f" class="tag-item ico" title="高速" hidefocus="true"><span class="ico"><em> 高速</em></span></a> <a target="_blank" href="search.html?p=0&q=%e5%b9%b6%e8%a1%8c" class="tag-item ico" title="并行" hidefocus="true"><span class="ico"><em> 并行</em></span></a> <a target="_blank" href="search.html?p=0&q=%e5%ae%9e%e7%8e%b0" class="tag-item ico" title="实现" hidefocus="true"><span class="ico"><em> 实现</em></span></a> <a target="_blank" href="search.html?p=0&q=%e6%96%b9%e6%b3%95" class="tag-item ico" title="方法" hidefocus="true"><span class="ico"><em> 方法</em></span></a> <a target="_blank" href="search.html?p=0&q=%e8%a3%85%e7%bd%ae" class="tag-item ico" title="装置" hidefocus="true"><span class="ico"><em> 装置</em></span></a> <input name="ctl00$Content$hiddenCategoryID" type="hidden" id="Content_hiddenCategoryID" value="122" /> </div> </div> </div> </div> <!--end boxright--> <!--end layout01--> </div> <!--end mainpart--> </div> <div class="aspNetHidden"><input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="541A68AF" /></div></form> <div style="display: none" id="Div3"> </div> <div id="jubao" class="jubao" style="display: none;"> <div class="jubaoTitle"> 举报类型</div> <ul class="vprdn"> <li class="vprdn"> <input type="radio" id="jubaoSel12" name="jubaoSel12" value="12" />&nbsp;&nbsp; <label for="jubaoSel12">广告或垃圾信息</label> </li> <li class="vprdn"> <input type="radio" id="jubaoSel13" name="jubaoSel13" value="13" />&nbsp;&nbsp; <label for="jubaoSel13">色情、淫秽、低俗信息</label> </li> <li class="vprdn"> <input type="radio" id="jubaoSel14" name="jubaoSel14" value="14" />&nbsp;&nbsp; <label for="jubaoSel14">反政府、反人类、反社会等反动信息</label> </li> <li class="vprdn"> <input type="radio" id="jubaoSel15" name="jubaoSel15" value="15" />&nbsp;&nbsp; <label for="jubaoSel15">散布赌博、暴力、凶杀、恐怖或者教唆犯罪等信息</label> </li> <li class="vprdn"> <input type="radio" id="jubaoSel16" name="jubaoSel16" value="16" />&nbsp;&nbsp; <label for="jubaoSel16">侮辱、诽谤等人身攻击信息</label> </li> <li class="vprdn"> <input type="radio" id="jubaoSel17" name="jubaoSel17" value="17" />&nbsp;&nbsp; <label for="jubaoSel17">散布谣言、扰乱社会秩序,破坏社会稳定等信息</label> </li> <li style="text-align: center; height: 50px; margin-top: 10px;"> <input type="hidden" id="hidTypeID" /> <input type="button" onclick="saveJuBao()" value="提 交" />&nbsp;&nbsp;&nbsp;&nbsp;<input type="button" onclick="$('#jubao').hide();" value="取 消" /></li> </ul> </div> <div id="jubaoResponse" class="jubao" style="display: none;"> <div class="jubaoTitle"> 提示</div> <ul class="vprdn"> <li class="vprdn"> <h4 style="text-align: center; color: rgb(83, 136, 35);"> </h4> </li> <li style="text-align: center; height: 50px; margin-top: 10px;"> <input type="button" onclick="$('#jubaoResponse').hide();" value="关 闭" /> </ul> </div></div> <div class="tempdiv" style="display:none;line-height:0px;height:0px; overflow:hidden;"> </div> <!-- JiaThis Button END --> <span id="LabelScript"></span> </div> </div> <!--foot--><div class="bg_100 foot_nav_bg" style=" min-width:1200px;"> <div class="foot_nav"> <a href="//www.4mum.com.cn/h-33.html" target="_blank" rel="nofollow">关于我们</a> - <a href="//www.4mum.com.cn/h-34.html" target="_blank" rel="nofollow">网站声明</a> - <a href="//www.4mum.com.cn/h-35.html" target="_blank" rel="nofollow"> 网站地图</a> - <a href="//www.4mum.com.cn/sitemap.html" target="_blank" rel="nofollow"> 资源地图</a> - <a href="//www.4mum.com.cn/friend.aspx" target="_blank" rel="nofollow">友情链接</a> - <a rel="nofollow">网站客服</a> - <a href="//www.4mum.com.cn/h-93.html" target="_blank" rel="nofollow">联系我们</a> </div></div><div class="bg_100 siteInner_bg" style=" min-width:1200px;"> <div class="siteInner"> <p style="text-align: center; line-height: 1.75em;"><span style="font-size: 14px;"><span style="font-size: 14px; color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &#39;Times New Roman&#39;; line-height: 20px; text-align: center;">copyright@ 2017-2018 www.4mum.com.cn网站版权所有</span><br style="color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &#39;Times New Roman&#39;; font-size: 12px; line-height: 20px; text-align: center; white-space: normal; "/><span style="font-size: 14px; color: rgb(102, 102, 102); font-family: 微软雅黑, Arial, &#39;Times New Roman&#39;; line-height: 20px; text-align: center;">经营许可证编号:粤ICP备17046363号-1&nbsp;</span></span> &nbsp;</p><p><br/></p> </div></div><!--foot end--> <!-- 代码部分begin --><div class="QQ_S" style="height: 172px;position:fixed;right: 0px;bottom: 20px; top:auto;"> <div class="Q_top" onclick="HideFoot()"> <span class="signi"></span>收起</div> <div class="Q_botm"> <div class="Q_pic"> <div class="Q_pic_hide"> <a target="_blank" title="在线客服" rel="nofollow"><span class="hide_pic"></span>在线客服</a> </div> </div> <div class="Q_anser"> <div class="Q_anser_hide"><a target="_blank" title="意见反馈"> <span class="hide_pic1"></span>意见反馈 </a> </div> </div> <div class="Q_sign"> <div class="Q_sign_hide" onclick="backToTop();"><a href="javascript:void(0)" title="返回顶部"><span class="hide_pic2"></span>返回顶部 </a></div> </div> </div></div><div class="QQ_S1"> <div class="Q_top1" onclick="ShowFoot()"> <span class="signj"></span>展开</div> <div class="Q_botm1"> <div class="Q_pic1"> <div class="Q_pic1_hide"> <a href="//www.4mum.com.cn/" title="重庆时时彩单双窍门">重庆时时彩单双窍门</a></div> </div> <div class="Q_sign1"> <div class="Q_sign1_hide" onclick="backToTop();"><a href="javascript:void(0)">返回顶部</a></div> </div> </div></div> <!-- 代码部分end --> <li><a href="//www.4mum.com.cn/77d944/69034815.html ">四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 </a> 2019-05-13</li> <li><a href="//www.4mum.com.cn/euy29/3433514.html ">银保监会新规剑指大企业多头融资和过度融资 </a> 2019-05-12</li> <li><a href="//www.4mum.com.cn/a62999/3431813.html ">韩国再提4国联合申办世界杯 中国网友无视:我们自己来 </a> 2019-05-11</li> <li><a href="//www.4mum.com.cn/4kf294/98434412.html ">中国人为什么一定要买房? </a> 2019-05-11</li> <li><a href="//www.4mum.com.cn/33r392/76278011.html ">十九大精神进校园:风正扬帆当有为&nbsp;勇做时代弄潮儿 </a> 2019-05-10</li> <li><a href="//www.4mum.com.cn/1jd106/47417610.html ">粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 </a> 2019-05-09</li> <li><a href="//www.4mum.com.cn/997397/2262689.html ">太原设禁鸣路段 设备在测试中 </a> 2019-05-09</li> <li><a href="//www.4mum.com.cn/br3559/3646538.html ">拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 </a> 2019-05-08</li> <li><a href="//www.4mum.com.cn/9h7915/8581547.html ">“港独”没出路!“梁天琦们”该醒醒了 </a> 2019-05-07</li> <li><a href="//www.4mum.com.cn/3n3511/2345366.html ">陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 </a> 2019-05-06</li> <li><a href="//www.4mum.com.cn/b0059/6332815.html ">人民日报客户端辟谣:“合成军装照”产品请放心使用 </a> 2019-05-05</li> <li><a href="//www.4mum.com.cn/v5j888/7405464.html ">【十九大·理论新视野】为什么要“建设现代化经济体系”?&nbsp;&nbsp; </a> 2019-05-04</li> <li><a href="//www.4mum.com.cn/pl1926/4722623.html ">聚焦2017年乌鲁木齐市老城区改造提升工程 </a> 2019-05-04</li> <li><a href="//www.4mum.com.cn/14g861/9039202.html ">【专家谈】上合组织——构建区域命运共同体的有力实践者 </a> 2019-05-03</li> <li><a href="//www.4mum.com.cn/7jn906/5662951.html ">【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! </a> 2019-05-03</li> <script>(function(){ var src = (document.location.protocol == "") ? "//js.passport.qihucdn.com/11.0.1.js?9ed1f3a8f9c3ff069b7b95c01474c743":"https://jspassport.ssl.qhimg.com/11.0.1.js?9ed1f3a8f9c3ff069b7b95c01474c743"; document.write('<script src="' + src + '" id="sozz"><\/script>'); })(); </script> <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = '//push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> <a href="//www.4386270.live">华彩网群</a> <a href="//www.3250554.live">青海11选5前三和值表</a> <a href="//www.3871055.live">牛牛人人澡</a> <a href="//www.0240240.live">苹果彩票群</a> <a href="//www.023943.live">麻将初学图解</a> <a href="//www.2504175.live">快乐赛车计划</a> <a href="//www.6669716.live">篮球教学视频</a> <a href="//www.614682.live">广西体育彩票投注站收入</a> <a href="//13285271.com">快乐10分app</a> <a href="//www.5163620.live">广西11选5走势图</a> <a href="//www.300031.live">北京快八彩票有规律吗</a> <a href="//www.1555985.live">足彩总进球单双赔率</a> <a href="//www.195781.live">真实捕鱼游戏</a> <a href="//www.945352.live">重庆快乐十分最快开奖结果</a> <a href="//15280459.com">七乐彩群</a> <a href="//www.2119761.live">内蒙古11选5一定牛</a> </body></html>