发明名称 宽动态摄像机中不同曝光度图像的双次配准方法
摘要 本发明涉及一种宽动态摄像机中不同曝光度图像的双次配准方法。现有宽动态摄像机中利用基于图像特征的配准算法来实现不同曝光度图像配准,计算量过大。本发明方法采用宽动态摄像机中不同曝光度图像的双次配准方法,包括通过拍摄硬件获取多路不同曝光度的视频图像数据,对相同曝光度的视频分别进行配准,再利用配准后的视频图像进行不同曝光度图像的再次配准,提升了不同曝光度视频图像的配准精度,最后合成所需的宽动态图像。本发明方法可以提升手持宽动态摄像机不同曝光度视频图像的配准效果,合成成像效果更好的宽动态视频,同时减少了配准运算量。本发明方法利用双次配准增加了不同曝光度图像的配准精度,提高了宽动态视频的成像质量。
申请公布号 CN104202538A 申请公布日期 2014.12.10
申请号 CN201410457507.X 申请日期 2014.09.10
申请人 浙江广播电视集团 发明人 杨勇;宋暘;陈晓东;周建海;陈宏;应跃波;陈宪;周智敏;胡键巧;吴宇超;吴晓东;潘永杰;胡伟;沈泰阁;蒋丰;李震
分类号 H04N5/235(2006.01)I;H04N5/243(2006.01)I 主分类号 H04N5/235(2006.01)I
代理机构 杭州求是专利事务所有限公司 33200 代理人 杜军
主权项 宽动态摄像机中不同曝光度图像的双次配准方法,其特征在于该方法具体步骤是:步骤(1)获取拍摄硬件的响应函数g,获取方法具体是:在静态条件下,拍摄硬件对同一场景拍摄P张不同曝光度的图像,P≥2,在每张图像中均匀采样N个像素点,利用每个采样像素点对应的像素值、曝光时间,得到拍摄硬件的响应函数g(Z<sub>ij</sub>)=lnE<sub>i</sub>+lnΔt<sub>j</sub>;其中,Z<sub>ij</sub>表示第j幅图像第i个采样像素点的像素值,E<sub>i</sub>表示第i个采样像素点的亮度值,第Δt<sub>j</sub>表示第j幅图像的曝光时间;将P张图像中一共P×N个采样点的像素值Z<sub>ij</sub>和曝光时间Δt<sub>j</sub>代入误差函数<img file="FDA0000567955600000011.GIF" wi="667" he="146" />中求解即可得到响应函数g;N的取值需满足N×(P‑1)&gt;(Z<sub>max</sub>‑Z<sub>min</sub>),Z<sub>max</sub>和Z<sub>min</sub>分别为采样像素点的最大像素值和最小值像素值;步骤(2)拍摄硬件在拍摄时,同时获取多路不同曝光度的视频图像数据,多路不同曝光度的视频图像数据由拍摄硬件在不同曝光度下交替拍摄获取,所述的拍摄硬件为宽动态摄像机;步骤(3)将已获取的多路不同曝光度的视频图像分别进行配准操作,使得同一曝光度下的视频图像序列获得良好的稳定性;所述的相同曝光度视频配准操作具体方法是:对于相同曝光度的视频图像序列,选取固定帧作为参考帧,利用块匹配进行参考帧与当前帧之间的匹配,具体是:在一帧图像中均匀选取16个64×64像素大小的匹配块,设定搜索范围为15个像素;首先将三个颜色通道的彩色图像利用灰度图转换公式<img file="FDA0000567955600000021.GIF" wi="678" he="141" />进行灰度化,其中grey表示得到的灰度值,R表示输入图像该点红色分量的像素值,G表示输入图像该点绿色分量的像素值,B表示输入图像该点蓝色分量的像素值;利用公式<img file="FDA0000567955600000022.GIF" wi="898" he="121" />进行匹配误差计算,其中S表示匹配块中的像素点,h<sub>r</sub>(x,y)表示参考帧中坐标为(x,y)点的灰度值,h<sub>n</sub>(x+m,y+n)表示当前帧中坐标为(x+m,y+n)点的灰度值,m和n为相应的位移量,m和n的范围为[‑15,15],SAD为总匹配误差值;在搜索范围中找到最小SAD值的匹配点,记录相应的m和n的值,确定为该匹配块的运动矢量;在依次获取16个匹配块的运动矢量之后,利用同时存在平移运动和旋转的仿射变换公式计算全局的运动矢量,全局的运动矢量包括绕旋转中心顺时针旋转的弧度、全局运动的水平位移变化量、全局运动的垂直位移变化量:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mfenced open='(' close=')'><mtable><mtr><mtd><msub><mi>x</mi><mi>j</mi></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mi>j</mi></msub></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open='(' close=')'><mtable><mtr><mtd><mi>cos</mi><mi>&theta;</mi></mtd><mtd><mo>-</mo><mi>sin</mi><mi>&theta;</mi></mtd></mtr><mtr><mtd><mi>sin</mi><mi>&theta;</mi></mtd><mtd><mi>cos</mi><mi>&theta;</mi></mtd></mtr></mtable></mfenced><mfenced open='(' close=')'><mtable><mtr><mtd><msub><mi>x</mi><mi>i</mi></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mi>i</mi></msub></mtd></mtr></mtable></mfenced><mo>+</mo><mfenced open='(' close=')'><mtable><mtr><mtd><mi>&Delta;x</mi></mtd></mtr><mtr><mtd><mi>&Delta;y</mi></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000567955600000023.GIF" wi="736" he="171" /></maths>其中(x<sub>i</sub>,y<sub>i</sub>)为运动补偿之前的原坐标点,θ为绕旋转中心顺时针旋转的弧度,(x<sub>j</sub>,y<sub>j</sub>)为(x<sub>i</sub>,y<sub>i</sub>)进行运动补偿之后得到的坐标,公式简化为:<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mfenced open='(' close=')'><mtable><mtr><mtd><msub><mi>x</mi><mi>j</mi></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mi>j</mi></msub></mtd></mtr></mtable></mfenced><mo>=</mo><mfenced open='(' close=')'><mtable><mtr><mtd><mn>1</mn></mtd><mtd><mo>-</mo><mi>&theta;</mi></mtd></mtr><mtr><mtd><mi>&theta;</mi></mtd><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mfenced open='(' close=')'><mtable><mtr><mtd><msub><mi>x</mi><mi>i</mi></msub></mtd></mtr><mtr><mtd><msub><mi>y</mi><mi>i</mi></msub></mtd></mtr></mtable></mfenced><mo>+</mo><mfenced open='(' close=')'><mtable><mtr><mtd><mi>&Delta;x</mi></mtd></mtr><mtr><mtd><mi>&Delta;y</mi></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000567955600000024.GIF" wi="580" he="171" /></maths>变形后可得<maths num="0003" id="cmaths0003"><math><![CDATA[<mfenced open='{' close=''><mtable><mtr><mtd><mo>-</mo><msub><mi>y</mi><mi>i</mi></msub><mo>&times;</mo><mi>&theta;</mi><mo>+</mo><mn>1</mn><mo>&times;</mo><mi>&Delta;x</mi><mo>+</mo><mn>0</mn><mo>&times;</mo><mi>&Delta;y</mi><mo>=</mo><msub><mi>x</mi><mi>j</mi></msub><mo>-</mo><msub><mi>x</mi><mi>i</mi></msub></mtd></mtr><mtr><mtd><msub><mi>x</mi><mi>i</mi></msub><mo>&times;</mo><mi>&theta;</mi><mo>+</mo><mn>0</mn><mo>&times;</mo><mi>&Delta;x</mi><mo>+</mo><mn>1</mn><mo>&times;</mo><mi>&Delta;y</mi><mo>=</mo><msub><mi>y</mi><mi>j</mi></msub><mo>-</mo><msub><mi>y</mi><mi>i</mi></msub></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000567955600000025.GIF" wi="670" he="163" /></maths>通过16组x<sub>j</sub>‑x<sub>i</sub>和y<sub>j</sub>‑y<sub>i</sub>的值,得到θ、Δx、Δy的值,Δx为全局运动的水平位移变化量,Δy为全局运动的垂直位移变化量;根据下式计算出运动补偿后的点在原图像中的位置:<maths num="0004" id="cmaths0004"><math><![CDATA[<mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>x</mi><mi>i</mi></msub><mo>=</mo><mfrac><mn>1</mn><mrow><mfrac><mn>1</mn><mi>&theta;</mi></mfrac><mo>+</mo><mi>&theta;</mi></mrow></mfrac><mo>[</mo><mfrac><mn>1</mn><mi>&theta;</mi></mfrac><mo>&times;</mo><msub><mi>x</mi><mi>j</mi></msub><mo>+</mo><msub><mi>y</mi><mi>j</mi></msub><mo>-</mo><mfrac><mn>1</mn><mi>&theta;</mi></mfrac><mo>&times;</mo><mi>&Delta;x</mi><mo>-</mo><mi>&Delta;y</mi><mo>]</mo></mtd></mtr><mtr><mtd><msub><mi>y</mi><mi>i</mi></msub><mo>=</mo><mfrac><mn>1</mn><mrow><mfrac><mn>1</mn><mi>&theta;</mi></mfrac><mo>+</mo><mi>&theta;</mi></mrow></mfrac><mo>[</mo><mfrac><mn>1</mn><mi>&theta;</mi></mfrac><mo>&times;</mo><msub><mi>y</mi><mi>j</mi></msub><mo>-</mo><msub><mi>x</mi><mi>j</mi></msub><mo>+</mo><mi>&Delta;x</mi><mo>-</mo><mfrac><mn>1</mn><mi>&theta;</mi></mfrac><mo>&times;</mo><mi>&Delta;y</mi><mo>]</mo></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000567955600000031.GIF" wi="769" he="399" /></maths>在上式的计算中,获取的x<sub>i</sub>、y<sub>i</sub>如果不是整数,通过下式处理:down_left=(1‑x_value)×(1‑y_value)down_right=x_value×(1‑y_value)up_left=(1‑x_value)×y_valueup_right=x_value×y_valueresult=down_left×h(x,y)+down_right×h(x+1,y)+up_left×h(x,y+1)+up_right×h(x+1,y+1)其中x_value为x<sub>i</sub>的小数部分,y_value为y<sub>i</sub>的小数部分,down_left为左下像素系数、down_right右下像素系数、up_left为左上像素系数、up_right为右上像素系数,result为补偿后图像(x,y)点的像素值,函数h(x,y)表示(x,y)坐标位置的像素值;步骤(4)将完成相同曝光度配准操作的视频图像进行中值门限位图匹配法进行配准,具体配准方法是:采用金字塔形多分辨率匹配,分层的操作使得匹配图像从小到大,搜索层数为log2(max_offset),max_offset为最大偏移位置,每一层进行匹配的图像均采用矩形,图像的长和宽都是上一层图像的两倍;每次匹配过程中,搜索距离被限制在±1个像素范围之内,这样就需要做9次匹配;在下一层匹配中,先移动匹配中心至2倍上一层最佳匹配位置,再进行下一层的匹配;依次操作,直到得到最终的匹配结果;在每一层的匹配过程中,具体步骤是:首先将三通道彩色图像利用灰度图转换公式<img file="FDA0000567955600000041.GIF" wi="672" he="141" />进行灰度化;通过<img file="FDA0000567955600000042.GIF" wi="708" he="150" />求得当前层灰度图的全局平均灰度值A,其中Z<sub>m,n</sub>为当前层灰度图坐标(m,n)的灰度值,width为当前层灰度图的宽度,length为当前层灰度图的长度;再建立与当前层灰度图同样尺寸的门限图:当输入图像某一像素点的灰度值小于全局平均灰度值A时,令该点的值为0,如果当输入图像某一像素点的灰度值大于等于全局平均灰度值A时,则令该点的值为1;建立与当前层灰度图同样尺寸的去干扰图:如果输入图像某一像素点的灰度值与全局平均灰度值差的绝对值小于阈值4,那么该点的值为0;如果输入图像某一像素点的像素值与全局平均灰度值差的绝对值大于等于阈值4,那么该点的值为1;定义参考图像的门限图为tb1,待匹配图像的门限图为tb2,参考图像的去干扰图为eb1,待匹配图像的去干扰图为eb2;将参考图像的门限图tb1与经过位移至9个后选匹配点中之一的待匹配图像门限图为shitfted_tb2进行异或运算,得到两者的异或图diff_b1;再将diff_b1和参考图像的去干扰图为eb1进行与运算,得到图diff_b2;之后利用图diff_b2和经过位移的待匹配图像去干扰图shifted_eb2进行与运算,得到图diff_b3,求出图diff_b3中值为1的总数得打错误匹配数;在9个候选匹配点中找出最小错误匹配数的匹配点,为最佳匹配点,该点的位移为该层的运动矢量,代入下一层中进行运算;步骤(5)根据步骤(1)计算获得的响应函数g及步骤(4)得到的多幅已配准的不同曝光度图像合成特定格式的宽动态图像,合成方法是:<maths num="0005" id="cmaths0005"><math><![CDATA[<mrow><mi>ln</mi><msub><mi>E</mi><mi>i</mi></msub><mo>=</mo><mfrac><mrow><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>P</mi></munderover><mi>w</mi><mrow><mo>(</mo><msub><mi>Z</mi><mi>ij</mi></msub><mo>)</mo></mrow><mrow><mo>(</mo><mi>g</mi><mrow><mo>(</mo><msub><mi>Z</mi><mi>ij</mi></msub><mo>)</mo></mrow><mo>-</mo><mi>ln</mi><mi>&Delta;</mi><msub><mi>t</mi><mi>j</mi></msub><mo>)</mo></mrow></mrow><mrow><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>1</mn></mrow><mi>P</mi></munderover><mi>w</mi><mrow><mo>(</mo><msub><mi>Z</mi><mi>ij</mi></msub><mo>)</mo></mrow></mrow></mfrac></mrow>]]></math><img file="FDA0000567955600000051.GIF" wi="666" he="285" /></maths>其中w(z)为权重函数,其函数为:<maths num="0006" id="cmaths0006"><math><![CDATA[<mrow><mi>w</mi><mrow><mo>(</mo><mi>z</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mi>z</mi><mo>-</mo><msub><mi>Z</mi><mi>min</mi></msub><mo>,</mo><mi>z</mi><mo>&le;</mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mrow><mo>(</mo><msub><mi>Z</mi><mi>min</mi></msub><mo>+</mo><msub><mi>Z</mi><mi>max</mi></msub><mo>)</mo></mrow></mtd></mtr><mtr><mtd><msub><mi>Z</mi><mi>max</mi></msub><mo>-</mo><mi>z</mi><mo>,</mo><mi>z</mi><mo>></mo><mfrac><mn>1</mn><mn>2</mn></mfrac><mrow><mo>(</mo><msub><mi>Z</mi><mi>min</mi></msub><mo>+</mo><msub><mi>Z</mi><mi>max</mi></msub><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0000567955600000052.GIF" wi="711" he="278" /></maths>其中z为该点实际像素值,Z<sub>max</sub>为最大像素值、Z<sub>min</sub>为最小像素值。
地址 310005 浙江省杭州市莫干山路111号