本发明属于立体拍摄成像技术领域,尤其涉及一种立体成像方法及立体成像装置。
背景技术:
现有的3D成像方法主要的是由双目及多目成像系统实现,双目和多目面临了相机安装平行度,光心对准,相机校准,水平或垂直视差的retification对准,多图匹配以及定位等难题。同时双目和多目的3D成像系统无法近距离拍摄合理视差的3D成像。还有采用双目摄像机不仅成本高昂,而且成像装置体积难以缩小,这限制了成像装置在某些场合的应用。
当然,最近随着成像技术的进步,也出现了不少采用单目摄像装置实现3D拍摄的,有些是通过单目摄像机产生位移来模拟双目摄像机实现3D拍摄,另外一些是通过内部复杂的光学结构设计实现3D拍摄,如对比文件1(CN103415807A)公开一种能够拍摄良好的3D图像的单目立体图像拍摄装置。3D图像拍摄装置包括:单目摄影透镜12;第一和第二固态成像设备30、33,该第一和第二固态成像设备30、33经由平行的摄影透镜12接收来自被摄体的入射光的一个部分和另一个部分;光分割部件24,该光分割部件24使用垂直于光轴延伸的边界区域将入射光分割成入射光的一个部分和另一个部分,并且使得入射光的一个部分和另一个部分相应地进入第一和第二固态成像设备30、33;视差分离部件23,该视差分离部件23防止入射光的进入边界区域的部分进入第一和第二固态成像设备30、33;以及图像处理单元41,该图像处理单元41通过对第一和第二固态成像设备30、33的相应的输出信号执行图像处理而产生被摄体的3D图像数据。然而对比文件1虽然入光是由一个摄影透镜12来实现,然而仍需两个固态成像设备30、33才能实现立体成像,结构复杂,需要较多的分光器件和图像传感器,由于分光器件较多实际中较难实现准确分光,其设置多个反射镜,光学对准安装困难。更进一步地,通光量少,导致成像质量差。
基于此,有必要提供一种新的立体成像方法和装置,用以解决现有技术的单目3D摄像机存在的技术问题。
技术实现要素:
有鉴于此,本发明提供一种立体成像方法及立体成像装置,用于解决现有技术中的3D摄像机装置存在的结构复杂、繁杂的图像处理等问题。
本发明提供一种立体成像方法,所述立体成像方法包括以下步骤:S1控制一可变焦透镜单元获取所要拍摄场景的场景深度分布图;S2依据所述场景深度分布图,获取所述场景的视差偏移量;S3依据所述场景深度分布图,控制所述可变焦透镜单元对所述场景的感兴趣区域进行对焦,经图像处理后生成立体图像的第一图像;S4依据所述视差偏移量与所述第一图像生成立体图像的第二图像。
较佳地,所述步骤S2包括以下步骤:
S21依据所述场景深度分布图,建立各场景深度与物距之间的一一映射关系,其中,所述物距为所述可变焦透镜单元到所述场景中物体的距离;
S22获取所述物距分布范围;
S23依据所述物距分布范围,计算所述视差偏移量。
较佳地,所述步骤S3包括以下步骤:
S31依据所述场景深度分布图,控制所述可变焦透镜单元获取所述感兴趣区域的场景深度信息;
S32依据所述感兴趣区域的场景深度信息,输出所述感兴趣区域的对焦电压;
S33获取所述感兴趣区域的对焦图像;
S34获取所述可变焦透镜单元处于非透镜状态下的参考图像;
S35对所述对焦图像与所述参考图像进行图像处理,生成所述立体图像的第一图像。
较佳地,所述步骤S4进一步包括:
S41依据场景深度分布图,获取所述场景的最大深度值和最小深度值;
S42根据预设视差范围、所述最大深度值和最小深度值,获取零视差面的深度值;
S43根据图像中每一像素的深度信息,场景的零视差面的深度值、最大深度值和最小深度值以及预设视差范围,计算对应各像素的视差偏移量;
S44根据图像中各像素的视差偏移量和立体图像的第一图像,生成立体图像的第二图像。
较佳地,所述步骤S42中获取零视差面的深度值的计算公式如下:
上式中,D0表示零视差面的深度值,D1表示场景中距离所述可变焦透镜单元最近的物体与所述可变焦透镜单元之间的最小距离,D2表示场景中距离所述可变焦透镜单元最远的物体与所述可变焦透镜单元之间的最大距离,d1表示预设视差范围内为正视差值,d2表示预设视差范围内为负视差值。
较佳地,所述步骤S43中计算对应各像素的视差偏移量时采用以下公式:
上式中,d表示各像素的视差偏移量,不同的像素之间视差偏移量d取决于相应像素的深度值。
本发明提供一种立体成像装置,所述立体成像装置包括:
场景深度分布图获取单元,用于控制一可变焦透镜单元获取所要拍摄场景的场景深度分布图;
视差偏移量获取单元,用于依据所述场景深度分布图,获取所述场景的视差偏移量;
第一图像生成单元,用于依据所述场景深度分布图,控制所述可变焦透镜单元对所述场景的感兴趣区域进行对焦,经图像处理后生成立体图像的第一图像;
第二图像生成单元,用于依据所述视差偏移量与所述第一图像生成立体图像的第二图像。
较佳地,所述视差偏移量获取单元包括:
映射关系建立模块,用于依据所述场景深度分布图,建立各场景深度与物距之间的一一映射关系,其中,所述物距为所述可变焦透镜单元到所述场景中物体的距离;
物距分布范围获取模块,用于获取所述物距分布范围;
计算模块,用于依据所述物距分布范围,计算所述视差偏移量。
较佳地,所述第一图像生成单元包括:
感兴趣区域场景深度信息获取模块,用于依据所述场景深度分布图,控制所述可变焦透镜单元获取所述感兴趣区域的场景深度信息;
对焦电压输出模块,用于依据所述感兴趣区域的场景深度信息,输出所述感兴趣区域的对焦电压;
对焦图像获取模块,用于获取所述感兴趣区域的对焦图像;
参考图像获取模块,用于获取所述可变焦透镜单元处于非透镜状态下的参考图像;
第一图像生成模块,用于对所述对焦图像与所述参考图像进行图像处理,生成所述第一图像。
较佳地,所述第二图像生成单元包括:
深度极值获取模块,用于依据场景深度分布图,获取所述场景的最大深度值和最小深度值;
零视差面深度值获取模块,用于根据预设视差范围、所述最大深度值和最小深度值,获取零视差面的深度值;
视差偏移量计算模块,用于根据图像中每一像素的深度信息,场景的零视差面的深度值、最大深度值和最小深度值以及预设视差范围,计算对应各像素的视差偏移量;
立体图像的第二图像生成模块,用于根据图像中各像素的视差偏移量和立体图像的第一图像,生成立体图像的第二图像。
较佳地,获取零视差面的深度值的计算公式如下:
上式中,D0表示零视差面的深度值,D1表示场景中距离所述可变焦透镜单元最近的物体与所述可变焦透镜单元之间的最小距离,D2表示场景中距离所述可变焦透镜单元最远的物体与所述可变焦透镜单元之间的最大距离,d1表示预设视差范围内为正视差值,d2表示预设视差范围内为负视差值;
计算对应各像素的视差偏移量时采用以下公式:
上式中,d表示各像素的视差偏移量,不同的像素之间视差偏移量d取决于相应像素的深度值。
本发明还提供一种立体成像装置,所述立体成像装置包括:
主透镜;
图像传感器,用于将光学信号转换为电信号;
可变焦透镜单元,设于所述主透镜与所述图像传感器之间;
图像处理器以及存储器;其中,所述图像处理器分别连接所述图像传感器、所述可变焦透镜单元以及所述存储器,调用所述存储器中存储的一段程序指令以执行如前所述的立体成像方法。
本发明的立体成像方法及立体成像装置,无需考虑成像设备的平整度,无垂直视差,也无需进行繁琐的左右图匹配处理,立体成像简单便捷。
附图说明
图1为本发明较佳实施方式的立体成像方法的流程示意图。
图2为图1中步骤S2的流程示意图。
图3为图1中步骤S3的流程示意图。
图4a为视差随物距变化的几何关系示意图。
图4b为图1中步骤S4的流程示意图。
图5为本发明一较佳实施方式的立体成像装置的结构示意图。
图6为图5中视差偏移量获取单元的详细结构示意图。
图7为图5中第一图像生成单元的详细结构示意图。
图8为图5中第二图像生成单元的详细结构示意图。
图9为本发明另一较佳实施方式的立体成像装置的结构示意图。
具体实施方式
下面结合附图和实施例对本发明进行详细说明。需要说明的是,如果不冲突,本发明实施例以及实施例中的各个特征可以相互结合,均在本发明的保护范围之内。
请参见图1,图1为本发明较佳实施方式的立体成像方法的流程示意图。如图1所示,本发明的立体成像方法主要包括以下步骤:
S1控制一可变焦透镜单元获取所要拍摄场景的场景深度分布图;这里的可变焦透镜单元包括液晶透镜、液体透镜等电驱动的透镜。具体来说,上述获取场景深度分布图的方法可以通过以下步骤实现:
S11驱动一可变焦透镜单元在至少两个光焦度下对同一场景获取至少两幅图像,各幅图像的放大率相同;在这里,主要是分成至少两个时刻,每一时刻分别对可变焦透镜单元施加驱动电压,在驱动电压所对应的光焦度下获取同一场景的图像,而且由于可变焦透镜单元是采用电控制可变焦透镜单元的梯度折射率变化,进而实现焦距变化,因而像距是不变的,可以保证各幅图像的放大率不会发生变化。当然这里的至少两幅图像是指最少采集到两幅图像就可实现场景相对深度的测量,当然要保证场景的相对深度分布的准确性,可以采集3幅及以上的图像,此时只需用多个时刻施加不同的驱动电压至可变焦透镜单元,使其在相应的多个光焦度下获取相应的多幅图像。
S12分别获取每幅图像的相对散焦度值或聚焦度值;这里可以依据弥散圆的计算公式来获取每幅图像的相对散焦度值或聚焦度值。公式如下:
R=qD/2=s*D*[1/f–1/u–1/s]/2
式中,R为弥散圆半径,D是含有该可变焦透镜单元的透镜系统的光阑,s表示像距,f表示焦距,u表示物距。当R接近或等于0时,表示汇聚为一个点,此时可认为处于完全聚焦状态。
S13通过DFD算法或DFF算法获取所述场景的场景深度分布图。这里的DFD算法是指离焦深度法(Depth from Defocus,简称DFD),是图像处理中一种常见的测量场景深度的算法。DFF算法是指聚焦深度法(Depth from focus,简称DFF)是图像处理中另一种常见的测量场景深度的算法。
S2依据所述场景深度分布图,获取所述场景的视差偏移量;
S3依据所述场景深度分布图,控制所述可变焦透镜单元对所述场景的感兴趣区域进行对焦,经图像处理后生成立体图像的第一图像;
S4依据所述视差偏移量与所述第一图像生成立体图像的第二图像。
本发明的立体成像方法,通过可变焦透镜单元获取场景深度分布图之后,然后计算出视差偏移量,拍摄场景时只需获取构成立体图像的第一图像(例如为左图),然后再结合视差偏移量得到构成立体图像的第二图像(例如为右图),无需考虑成像设备的平整度,无垂直视差,也无需进行繁琐的左右图匹配处理,立体成像简单便捷。
请参见图2,图2为图1中步骤S2的流程示意图。所述步骤S2包括以下步骤:
S21依据所述场景深度分布图,建立各场景深度与物距之间的一一映射关系,其中,所述物距为所述可变焦透镜单元到所述场景中物体的距离;
S22获取所述物距分布范围;
S23依据所述物距分布范围,计算所述视差偏移量。
请参见图3,图3为图1中步骤S3的流程示意图。如图3所示,所述步骤S3包括以下步骤:
S31依据所述场景深度分布图,控制所述可变焦透镜单元获取所述感兴趣区域的场景深度信息;
S32依据所述感兴趣区域的场景深度信息,输出所述感兴趣区域的对焦电压;
S33获取所述感兴趣区域的对焦图像;
S34获取所述可变焦透镜单元处于非透镜状态下的参考图像;
S35对所述对焦图像与所述参考图像进行图像处理,生成所述立体图像的第一图像。这里主要是立体成像装置中不需要采用偏光片,具体主要采用以下方法实现:
S351提取光焦度为0时对应的图像作为参考图像I0;
S352对每一图像按照以下方式进行处理:H2n+1=(I2n+1–γI0)/(1-γ),其中,H2n+1表示处理后获得的图像,I2n+1表示在某一光焦度下获取的图像,γ为偏振态异向因子,表征未被所述可变焦透镜单元调制的偏振光分量在入射光中所占的比例。
请参见图4a和4b,图4a为视差随物距变化的几何关系示意图,图4b为图1中步骤S4的流程示意图。如图4a与图4b所示,所述步骤S4进一步包括:
S41依据场景深度分布图,获取所述场景的最大深度值Dmax(这里以图4a中的D1取最大值)和最小深度值Dmin(这里以图4a中的D2取最小值);这个场景深度分布图可依据现有技术中的深度信息同物距D(x,y)之间的关系D(x,y)=function(depth(x,y))获得。
S42根据预设视差范围[d2,d1]、所述最大深度值Dmax和最小深度值Dmin,获取零视差面的深度值D0;这里的预设视差范围可以依据用户需要来设定,较佳的设定是d2取负视差值,即d2<0,而d1取正视差值,即d1>0。
S43根据图像中每一像素的深度信息D,场景的零视差面的深度值D0、最大深度值Dmax和最小深度值Dmin以及预设视差范围,计算对应各像素的视差偏移量d。视差偏移量的集合h:
d(x,y)∈h,0≤x<ImageWidth;0≤y<ImageHeight
上述公式中,ImageWidth表示图像宽度,ImageHeight表示图像高度。
S44根据图像中各像素的视差偏移量d和立体图像的第一图像,生成立体图像的第二图像。这里第二图像为3d成像的右图:
IR(x,y)=Ipif(x+d(x,y),y),0≤x+d(x,y)<ImageWidth
结合图4a,所述步骤S42中获取零视差面的深度值通过计算公式推导如下:
得出零视差面的深度值D0:
上式中,D0表示零视差面的深度值,D1表示场景中距离所述可变焦透镜单元最近的物体与所述可变焦透镜单元之间的最小距离,D2表示场景中距离所述可变焦透镜单元最远的物体与所述可变焦透镜单元之间的最大距离,d1表示预设视差范围内为正视差值,d2表示预设视差范围内为负视差值。
结合图4a,所述步骤S43中计算对应各像素的视差偏移量时采用以下公式:
由此得出,视差偏移量d
上式中,d表示各像素的视差偏移量,不同的像素之间视差偏移量d取决于相应像素的深度值。
请参见图5,图5为本发明一较佳实施方式的立体成像装置的结构示意图。如图5所示,本发明提供一种立体成像装置,所述立体成像装置包括:
场景深度分布图获取单元100,用于控制一可变焦透镜单元获取所要拍摄场景的场景深度分布图;
视差偏移量获取单元200,用于依据所述场景深度分布图,获取所述场景的视差偏移量;
第一图像生成单元300,用于依据所述场景深度分布图,控制所述可变焦透镜单元对所述场景的感兴趣区域进行对焦,经图像处理后生成立体图像的第一图像;
第二图像生成单元400,用于依据所述视差偏移量与所述第一图像生成立体图像的第二图像。
本发明的立体成像装置,通过可变焦透镜单元获取场景深度分布图之后,然后计算出视差偏移量,拍摄场景时只需获取构成立体图像的第一图像(例如为左图),然后再结合视差偏移量得到构成立体图像的第二图像(例如为右图),无需考虑成像设备的平整度,无垂直视差,也无需进行繁琐的左右图匹配处理,立体成像简单便捷。
请参见图6,图6为图5中视差偏移量获取单元的详细结构示意图。如图6所示,所述视差偏移量获取单元200包括:
映射关系建立模块210,用于依据所述场景深度分布图,建立各场景深度与物距之间的一一映射关系,其中,所述物距为所述可变焦透镜单元到所述场景中物体的距离;
物距分布范围获取模块220,用于获取所述物距分布范围;
计算模块230,用于依据所述物距分布范围,计算所述视差偏移量。
请参见图7,图7为图5中第一图像生成单元的详细结构示意图。如图7所示,所述第一图像生成单元300包括:
感兴趣区域场景深度信息获取模块310,用于依据所述场景深度分布图,控制所述可变焦透镜单元获取所述感兴趣区域的场景深度信息;
对焦电压输出模块320,用于依据所述感兴趣区域的场景深度信息,输出所述感兴趣区域的对焦电压;
对焦图像获取模块330,用于获取所述感兴趣区域的对焦图像;
参考图像获取模块340,用于获取所述可变焦透镜单元处于非透镜状态下的参考图像;
第一图像生成模块350,用于对所述对焦图像与所述参考图像进行图像处理,生成所述第一图像。
请参见图8,图8为图5中第二图像生成单元的详细结构示意图。如图8所示,所述第二图像生成单元400包括:
深度极值获取模块410,用于依据场景深度分布图,获取所述场景的最大深度值和最小深度值;
零视差面深度值获取模块420,用于根据预设视差范围、所述最大深度值和最小深度值,获取零视差面的深度值;
视差偏移量计算模块430,用于根据图像中每一像素的深度信息,场景的零视差面的深度值、最大深度值和最小深度值以及预设视差范围,计算对应各像素的视差偏移量;
立体图像的第二图像生成模块440,用于根据图像中各像素的视差偏移量和立体图像的第一图像,生成立体图像的第二图像。
较佳地,获取零视差面的深度值的计算公式如下:
上式中,D0表示零视差面的深度值,D1表示场景中距离所述可变焦透镜单元最近的物体与所述可变焦透镜单元之间的最小距离,D2表示场景中距离所述可变焦透镜单元最远的物体与所述可变焦透镜单元之间的最大距离,d1表示预设视差范围内为正视差值,d2表示预设视差范围内为负视差值;
计算对应各像素的视差偏移量时采用以下公式:
上式中,d表示各像素的视差偏移量,不同的像素之间视差偏移量d取决于相应像素的深度值。
请参见图9,图9为本发明另一较佳实施方式的立体成像装置的结构示意图。如图9所示,本发明还提供一种立体成像装置,所述立体成像装置包括:
主透镜10;
图像传感器30,用于将光学信号转换为电信号;
可变焦透镜单元20,设于所述主透镜10与所述图像传感器30之间;
图像处理器40以及存储器50;其中,所述图像处理器40分别连接所述图像传感器30、所述可变焦透镜单元20以及所述存储器50,调用所述存储器50中存储的一段程序指令以执行如前所述的立体成像方法,该立体成像方法主要描述如下:
S1控制一可变焦透镜单元获取所要拍摄场景的场景深度分布图;这里的可变焦透镜单元包括液晶透镜、液体透镜等电驱动的透镜。
S2依据所述场景深度分布图,获取所述场景的视差偏移量;
S3依据所述场景深度分布图,控制所述可变焦透镜单元对所述场景的感兴趣区域进行对焦,经图像处理后生成立体图像的第一图像;
S4依据所述视差偏移量与所述第一图像生成立体图像的第二图像。
本发明的立体成像装置,通过可变焦透镜单元获取场景深度分布图之后,然后计算出视差偏移量,拍摄场景时只需获取构成立体图像的第一图像(例如为左图),然后再结合视差偏移量得到构成立体图像的第二图像(例如为右图),无需考虑成像设备的平整度,无垂直视差,也无需进行繁琐的左右图匹配处理,立体成像简单便捷。
其中,所述步骤S2包括以下步骤:
S21依据所述场景深度分布图,建立各场景深度与物距之间的一一映射关系,其中,所述物距为所述可变焦透镜单元到所述场景中物体的距离;
S22获取所述物距分布范围;
S23依据所述物距分布范围,计算所述视差偏移量。
其中,所述步骤S3主要包括以下步骤:
S31依据所述场景深度分布图,控制所述可变焦透镜单元获取所述感兴趣区域的场景深度信息;
S32依据所述感兴趣区域的场景深度信息,输出所述感兴趣区域的对焦电压;
S33获取所述感兴趣区域的对焦图像;
S34获取所述可变焦透镜单元处于非透镜状态下的参考图像;
S35对所述对焦图像与所述参考图像进行图像处理,生成所述立体图像的第一图像。
其中,所述步骤S4进一步包括:
S41依据场景深度分布图,获取所述场景的最大深度值Dmax和最小深度值Dmin;
S42根据预设视差范围[-d2,+d1]、所述最大深度值Dmax和最小深度值Dmin,获取零视差面的深度值D0;
S43根据图像中每一像素的深度信息D,场景的零视差面的深度值D0、最大深度值Dmax和最小深度值Dmin以及预设视差范围,计算对应各像素的视差偏移量d。
S44根据图像中各像素的视差偏移量d和立体图像的第一图像,生成立体图像的第二图像。
在一个具体实施例中,所述步骤S42中获取零视差面的深度值的计算公式如下:
上式中,D0表示零视差面的深度值,D1表示场景中距离所述可变焦透镜单元最近的物体与所述可变焦透镜单元之间的最小距离,D2表示场景中距离所述可变焦透镜单元最远的物体与所述可变焦透镜单元之间的最大距离,d1表示预设视差范围内为正视差值,d2表示预设视差范围内为负视差值。
在一个具体实施例中,所述步骤S43中计算对应各像素的视差偏移量时采用以下公式:
上式中,d表示各像素的视差偏移量,不同的像素之间视差偏移量d取决于相应像素的深度值。
以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。