发明名称 一种地空图像跟踪的FPGA实现方法
摘要 本发明涉及一种地空图像跟踪的FPGA实现方法,该方法首先对CCD输入图像解码,将相邻两帧图像中指定的同一区域在FPGA进行比较,获得有无目标运动信息;通过FPGA直接提取目标中心、运动偏移量和速度,并根据目标中心和运动速度确定CCD云台(或转台)的转向及大小,实现地对空目标跟踪;本发明直接采用FPGA处理全部图像采集和跟踪计算,实现了图像的快速处理和跟踪,不需要DSP等其它核心处理单元,提高了处理速度。<pb pnum="1" />
申请公布号 CN106508051B 申请公布日期 2014.01.01
申请号 CN201010048759.9 申请日期 2010.05.20
申请人 西北工业大学 发明人 史忠科;宁成军
分类号 G06T7/20(2006.01)I 主分类号 G06T7/20(2006.01)I
代理机构 西北工业大学专利中心 61204 代理人 王鲜凯
主权项 一种地空图像跟踪的FPGA实现方法,其特征在于包括以下步骤:(a)对CCD输入图像解码、将相邻两帧图像中指定的同一区域在FPGA进行比较,获得有无目标运动信息;用200Mhz高速时钟按设定的区域随解码芯片输出的图像数据流对当前帧图像与存入SRAM中的上一帧图像作绝对差分,差分结果与固定阈值进行比较,大于阈值为有运动像素点,否则为无运动像素点;对运动像素点进行统计,大于设定阈值时认为有运动目标,否则认为无运动目标;(b)检测到有运动目标后,首先对包含目标的设定区域进行灰度统计,计算灰度平均值,再用FPGA进行图像阈值分割;(c)通过FPGA提取目标中心、计算运动偏移量和速度;(d)通过FPGA预测下一帧图像中的目标中心位置;目标预测公式是:<maths id="cmaths0001" num="0001"><math><![CDATA[<mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mi>x</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><mi>x</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>v</mi><mi>x</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><mi>T</mi></mrow></mtd></mtr><mtr><mtd><mrow><mi>y</mi><mrow><mo>(</mo><mi>k</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>=</mo><mi>y</mi><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>+</mo><msub><mi>v</mi><mi>y</mi></msub><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow><mo>&CenterDot;</mo><mi>T</mi></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FWW0000000054870000011.GIF" wi="529" he="170" /></maths>式中,x(k+1)是第k+1帧图像中目标中心x坐标,x(k)是第k帧图像中目标中心x坐标,v<sub>x</sub>(k)是第k帧时刻目标在视场中x方向的运动速度,y(k+1)是第k+1帧图像中目标中心y坐标,y(k)是第k帧图像中目标中心y坐标,v<sub>y</sub>(k)是第k帧时刻目标在视场中y方向的运动速度,T是相邻两帧图像的间隔时间;设当前帧图像中目标中心坐标与上一帧图像中目标中心坐标偏差为ΔX,则有v<sub>x</sub>(k)·T=ΔX,将ΔX与x(k)通过加法器相加计算出下一帧图像中的目标中心x坐标,同样的方法计算下一帧图像中的目标中心y坐标;(e)按照下一帧图像中的目标中心位置,以调整运动目标到速度反方向的边沿为指标,对云台进行调整;云台的运动调整量计算公式是:<maths id="cmaths0002" num="0002"><math><![CDATA[<mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msub><mi>&delta;</mi><mi>x</mi></msub><mo>=</mo><mi>a</mi><mi>r</mi><mi>c</mi><mi>t</mi><mi>g</mi><mo>&lsqb;</mo><mn>2</mn><mi>&Delta;</mi><mi>X</mi><mo>&CenterDot;</mo><mi>t</mi><mi>g</mi><mrow><mo>(</mo><mi>&phi;</mi><mo>/</mo><mn>2</mn><mo>)</mo></mrow><mo>/</mo><mi>W</mi><mo>&rsqb;</mo><mo>+</mo><msub><mi>T</mi><mi>d</mi></msub></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>&delta;</mi><mi>y</mi></msub><mo>=</mo><mi>a</mi><mi>r</mi><mi>c</mi><mi>t</mi><mi>g</mi><mo>&lsqb;</mo><mn>2</mn><mi>&Delta;</mi><mi>Y</mi><mo>&CenterDot;</mo><mi>t</mi><mi>g</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>/</mo><mn>2</mn><mo>)</mo></mrow><mo>/</mo><mi>H</mi><mo>&rsqb;</mo><mo>+</mo><msub><mi>T</mi><mi>d</mi></msub></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FWW0000000054870000012.GIF" wi="708" he="176" /></maths>式中,φ和θ分别是CCD镜头水平视场角和垂直视场角,W和H分别是图像的宽和高,ΔX和ΔY分别是下一帧图像中的目标中心与目标锁定点的x和y方向坐标偏差,T<sub>d</sub>是修正因子,δ<sub>x</sub>和δ<sub>y</sub>分别是云台水平方向和俯仰方向的调整量;对计算公式进行简化,取<maths id="cmaths0003" num="0003"><math><![CDATA[<mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mi>t</mi><mi>g</mi><mrow><mo>(</mo><mi>&phi;</mi><mo>/</mo><mn>2</mn><mo>)</mo></mrow><mo>&ap;</mo><mi>&phi;</mi><mo>/</mo><mn>2</mn></mrow></mtd></mtr><mtr><mtd><mrow><mi>t</mi><mi>g</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>/</mo><mn>2</mn><mo>)</mo></mrow><mo>&ap;</mo><mi>&theta;</mi><mo>/</mo><mn>2</mn></mrow></mtd></mtr><mtr><mtd><mrow><mi>a</mi><mi>r</mi><mi>c</mi><mi>t</mi><mi>g</mi><mo>&lsqb;</mo><mn>2</mn><mi>&Delta;</mi><mi>X</mi><mo>&CenterDot;</mo><mi>t</mi><mi>g</mi><mrow><mo>(</mo><mi>&phi;</mi><mo>/</mo><mn>2</mn><mo>)</mo></mrow><mo>/</mo><mi>W</mi><mo>&rsqb;</mo><mo>&ap;</mo><mn>2</mn><mi>&Delta;</mi><mi>X</mi><mo>&CenterDot;</mo><mi>t</mi><mi>g</mi><mrow><mo>(</mo><mi>&phi;</mi><mo>/</mo><mn>2</mn><mo>)</mo></mrow><mo>/</mo><mi>W</mi></mrow></mtd></mtr><mtr><mtd><mrow><mi>a</mi><mi>r</mi><mi>c</mi><mi>t</mi><mi>g</mi><mo>&lsqb;</mo><mn>2</mn><mi>&Delta;</mi><mi>Y</mi><mo>&CenterDot;</mo><mi>t</mi><mi>g</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>/</mo><mn>2</mn><mo>)</mo></mrow><mo>/</mo><mi>H</mi><mo>&rsqb;</mo><mo>&ap;</mo><mn>2</mn><mi>&Delta;</mi><mi>Y</mi><mo>&CenterDot;</mo><mi>t</mi><mi>g</mi><mrow><mo>(</mo><mi>&theta;</mi><mo>/</mo><mn>2</mn><mo>)</mo></mrow><mo>/</mo><mi>H</mi></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FWW0000000054870000013.GIF" wi="935" he="322" /></maths>简化后云台的运动调整量计算公式是:<maths id="cmaths0004" num="0004"><math><![CDATA[<mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><msub><mi>&delta;</mi><mi>x</mi></msub><mo>=</mo><mi>&Delta;</mi><mi>X</mi><mo>&CenterDot;</mo><mi>&phi;</mi><mo>/</mo><mi>W</mi><mo>+</mo><msub><mi>T</mi><mi>d</mi></msub></mrow></mtd></mtr><mtr><mtd><mrow><msub><mi>&delta;</mi><mi>y</mi></msub><mo>=</mo><mi>&Delta;</mi><mi>Y</mi><mo>&CenterDot;</mo><mi>&theta;</mi><mo>/</mo><mi>H</mi><mo>+</mo><msub><mi>T</mi><mi>d</mi></msub></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FWW0000000054870000014.GIF" wi="410" he="160" /></maths>FPGA在一帧图像采集完成后,通过两次乘法两次加法运算计算出云台的调整量。pb pnum="1" />
地址 710072 陕西省西安市友谊西路127号