发明名称 一种高清立体视频的视差范围快速检测方法
摘要 本发明涉及一种高清立体视频的视差范围快速检测方法。所述方法包括快速立体匹配的步骤、提高快速匹配准确度的步骤、视差范围提取的步骤、空间精度补偿的步骤和时间精度补偿的步骤。本发明将快速稠密立体匹配与检测方法相结合,通过阈值判决的方式快速提取立体图像的视差范围;采用分布式思路,通过跟踪画面出屏最大物体的方式计算视频的最大出屏范围,大幅降低了计算量,提高了计算速度;本发明不需要计算立体视频每一帧的稠密视差图像,通过截取窗口及视差范围继承的方式快速估计非计算帧的视差范围。与现有技术相比,本发明能够在抽帧处理的同时保证视差信息时间上的连续性,能够准实时地逐帧计算高清视频的视差范围。
申请公布号 CN104065954B 申请公布日期 2016.05.18
申请号 CN201410315437.4 申请日期 2014.07.03
申请人 中国传媒大学 发明人 姜秀华;郑冠雯
分类号 H04N13/04(2006.01)I;H04N17/00(2006.01)I 主分类号 H04N13/04(2006.01)I
代理机构 北京思海天达知识产权代理有限公司 11203 代理人 沈波
主权项 一种高清立体视频的视差范围快速检测方法,其特征在于包括以下步骤:步骤1,初始化及预处理,方法如下:(1)配置立体匹配的基本参数;包括图像基本信息、匹配搜索范围、快速稠密立体匹配中的匹配窗口大小、对匹配精度的要求、对匹配速度的要求;其中,匹配搜索范围需要为8的整数倍、匹配窗口大小应为大于1的奇数;(2)读入目标立体图像;若目标图像或视频为压缩格式,需要对原图像或视频进行解码处理,得到YCrCb的非压缩图像;(3)提取亮度信息;将YCrCb格式图像中的亮度信息Y进行提取和保存,用于后续处理,舍弃色度信息CrCb;(4)对立体图像进行偏移;设立体匹配的搜索范围为[0,L],为了使不同拍摄方式的立体视频能够采用同样的匹配方法进行处理,对图像进行偏移:若原始立体图像采用平行式立体拍摄,不需要进行偏移处理;若原始立体图采用交叉式立体拍摄,需要对参考图像进行向左L/2像素的偏移;(5)对立体图像进行下采样;对原始立体图像的目标图像及偏移后的参考图像进行水平及垂直方向上1/4的空间下采样;根据使用者对匹配速度的实际要求,对原始序列进行一定比例的时间下采样即抽帧,采用比例为1/3的空间下采样能够达到实时处理;步骤2,快速立体匹配实现,方法如下:(1)采用快速稠密立体匹配方法对立体图像进行立体匹配;匹配方法选用固定窗口算法,匹配代价函数选择绝对差值和SAD,匹配窗口大小和匹配搜索范围根据立体图像实际情况进行选择;(2)改写匹配代价SAD的计算代码;设参考图像为L,目标图像为R,图像宽度为Width,高度为Height,匹配窗口宽度为W,对于图像中不同位置的点L(x,y):对于参考图像中的点I<sub>R</sub>(x,y),x=W/2,y=W/2,匹配代价函数SAD的表达式为:<img file="FDA0000891794730000011.GIF" wi="869" he="117" />式中,d为参考图像与目标图像之间对应点的视差值,S为匹配代价聚合窗口,I<sub>R</sub>为参考图像,I<sub>T</sub>为目标图像;对于点L(x,y),x=W/2,y∈[W/2+1,Height]),将原SAD算法改写如下:SAD(x,y+1,d)=SAD(x,y,d)+U(x,y+1,d) <img file="FDA0000891794730000021.GIF" wi="1068" he="214" /><img file="FDA0000891794730000022.GIF" wi="1742" he="215" />对于点L(x,y),(x=[W/2+1,W+W/2],y∈[W/2+1,Height]),将原SAD算法改写如下:SAD(x,y+1,d)=SAD(x,y,d)+U(x,y+1,d)U(x,y+1,d)=U(x‑1,y+1,d)+|A‑A'|‑|B‑B'|‑(|D‑D′|‑|C‑C'|)其中,A、B、C、D为参考图像中的点,A为匹配窗口外左上方相邻处的像素,B为匹配窗口外右上方相邻处的像素,C为匹配窗口内右下方的像素点,D为匹配窗口外左下方的像素点;A'、B'、C'、D'为目标图像中的点;对于点L(x,y),(x=[W+W/2+1,Width],y∈[W/2+1,Height]),将原SAD算法改写如下:SAD(x+wd,y,d)=SAD(x+wd,y‑1,d)+U(x+wd,y,d)U(x+wd,y,d)=U(x+wd‑1,y,d)+S(x,y,d)‑|B<sub>wd</sub>‑B<sub>wd</sub>'|+|C<sub>wd</sub>‑C<sub>wd</sub>'| S(x,y,d)=‑|B‑B′|+|C‑C'|其中,B、C、B<sub>wd</sub>、C<sub>wd</sub>为参考图像中点,B'、C'、B<sub>wd</sub>'、C<sub>wd</sub>'为目标图像中的点;B为中心点P(x,y,d)窗口外右上方相邻处的像素点,C为中心点P(x,y,d)窗口内右下方的像素点,B<sub>wd</sub>为中心点P(x+wd,y,d)窗口外右上方相邻处的像素点,C<sub>wd</sub>为中心点P(x+wd,y,d)窗口内右下方的像素点;(3)用并行指令改写核心匹配代码;对于点L(x,y),(x=[W+W/2+1,Width],y∈[W/2+1,Height]),采用SIMD中的MMX指令集改写原代码;具体地,将原始图像以8个点为一组进行打包,保存到MMX专用寄存器中进行并行处理;同时,将匹配搜索的循环次数减少至原先的1/8;步骤3,快速立体匹配优化,方法如下:(1)对快速匹配结果视差图像进行左右一致性检测;对于所述步骤2中描述的快速匹配方法,在匹配代价选择的过程中,增加目标图像相对与参考图像的匹配代价选择过程,记录目标图像每个点的视差选择结果;根据结果将目标图像与参考图像的视差值进行比对,若二者相同,则认为目标图像原匹配结果可靠,保留该匹配结果;若二者不相同,则认为目标图像原匹配结果不可靠,舍弃该匹配结果;(2)对快速匹配结果视差图像进行视差显著性检测;对于目标图像的匹配过程,采用如下公式进行误匹配检测:<img file="FDA0000891794730000031.GIF" wi="365" he="207" />其中,e<sub>min</sub>为匹配代价最小值,e<sub>i</sub>为N个匹配代价次小值,δ<sub>e</sub>为阈值;若计算结果小于阈值δ<sub>e</sub>,则认为匹配结果不显著,舍弃该匹配结果;(3)对快速匹配结果视差图像进行视差集中性检测;对于目标图像的匹配过程,采用如下公式进行误匹配检测:<img file="FDA0000891794730000032.GIF" wi="350" he="135" />其中,d<sub>min</sub>为匹配代价最小值的视差值,d<sub>i</sub>为N个匹配代价次小值的视差值,δ<sub>d</sub>为阈值;若计算结果大于阈值δ<sub>d</sub>,则认为匹配结果不集中,舍弃该匹配结果;步骤4,视差范围提取,方法如下:(1)判断图像最大视差范围;将所述步骤1、2计算得到的视差图像称为Dmap,将所述步骤3检测得到的视差图像称为DmapR;在视差搜索范围[‑L,L]内,以L为起始值对搜索范围[‑L,L]进行遍历;记DmapR中视差值为l∈[‑L,L]的点数为Cntl,设定最大视差范围的判断阈值δ<sub>dmax</sub>为全图像素数量的1%;若Cntl小于δ<sub>dmax</sub>,则减小l值继续遍历;若Cntl大于等于δ<sub>dmax</sub>,则停止遍历,并将此时的l值Dmax记录为该立体图像的最大视差范围;(2)判断图像最小视差范围;在视差搜索范围[‑L,L]内,以‑L为起始值对搜索范围[‑L,L]进行遍历;记DmapR中视差值为l∈[‑L,L]的点数为Cntl,设定最小视差范围的判断阈值δ<sub>dmin</sub>为全图像素数量的5%;若Cntl小于δ<sub>dmin</sub>,则减小l值继续遍历;若Cntl大于等于δ<sub>dmin</sub>,则停止遍历,并将此时的l值Dmin记录为该立体图像的最小视差范围;步骤5,空间精度补偿,方法如下:(1)获取最大出屏物体位置;对于DmapR,以δ<sub>dmax</sub>±t为视差范围截取原视差图像;其中,t为最大出屏物体识别范围,建议取值范围为t∈[0,2],本文档的实例中均取t=1;对于截取后的视差图像,计算并记录全部有视差值点的平均水平位置AvgX和平均垂直位置AvgY;(2)截取最大出屏物体;设Th为截取窗口的高度,Tw为截取窗口的宽度;设图像宽度为Width,高度为Height:若AvgX–Tw/2&lt;0,则将AxgX设置为Tw/2;若AvgX+Tw/2&gt;Width,则将AxgX设置为Width‑Tw/2;若AvgY–Th/2&lt;0,则将AxgY设置为Th/2;若AvgY+Th/2&gt;Height,则将AxgY设置为Height‑Th/2;以AxgX±Tw/2、AxgY±Th/2为范围对参考图像 进行截取;(3)设[‑δ<sub>L</sub>,δ<sub>L</sub>]为视差微调范围,根据下采样的比例确定δ<sub>L</sub>的大小;在l∈[‑δ<sub>L</sub>,δ<sub>L</sub>]的范围内,比较(2)中截取的参考图像与目标图像中心为(AxgX+l,AxgY),范围为AxgX+l±Tw/2、AxgY±Th/2的区域进行SAD计算,记录[‑δ<sub>L</sub>,δ<sub>L</sub>]范围内拥有最小SAD的位置l<sub>SADmin</sub>;记Dmax+l<sub>SADmin</sub>为该立体图像的精确最大出屏范围;步骤6,时间精度补偿,方法如下:(1)在时间上进行视频帧分类;对于抽帧比例为S的一次视频实时视差范围提取过程,记帧数f<sub>noskip</sub>=nS的画面为抽取帧,记帧数f<sub>skip</sub>=nS+k,k∈[1,S‑1]的画面为非抽取帧,n为正整数;对于第f<sub>noskip</sub>帧;进行步骤5的计算,记录该次计算中的Dmax、AvgX、AvgY;(2)计算抽取帧的精确视差值;对于第f<sub>skip</sub>帧,将时间上距离第f<sub>skip</sub>帧最近的f<sub>noskip</sub>帧的Dmax、AvgX、AvgY作为本帧的Dmax、AvgX、AvgY,并采用上述数值进行步骤5的计算,所得到结果即为该抽取帧的精确视差值。
地址 100024 北京市朝阳区定福庄南里7号