发明内容
本申请实施例的目的在于提供一种图像校正的方法、存储介质及产品,通过本申请实施例提供的技术方案既能解决有标定不能适配具有变焦不鲁棒的多摄系统的问题,也能改善无标定对于弱纹理和重复纹理场景不鲁棒问题。
第一方面,本申请实施例提供一种图像校正的方法,所述方法包括:获取待校正图像对,其中,所述待校正图像对包括主摄图像以及副摄图像;将所述待校正图像对输入目标立体校正模型得到副摄变换矩阵,其中,所述目标立体校正模型至少包括目标光流网络,所述目标光流网络用于从所述待校正图像对上提取匹配属性信息,所述副摄变换矩阵是通过所述匹配属性信息得到的;根据所述副摄变换矩阵对所述副摄图像进行变换得到目标图像,完成校正。
本申请的一些实施例采用光流网络进行特征提取,以得到副摄图像的变换矩阵,本申请采用光流该网络获取左右图(即主摄图像和副摄图像)的匹配属性信息,既能解决有标定不能适配具有变焦不鲁棒的多摄系统的问题,也能改善无标定对于弱纹理和重复纹理场景不鲁棒问题。
在一些实施例中,所述将所述待校正图像对输入目标立体校正模型得到副摄变换矩阵,包括:将所述待校正图像对输入所述目标立体校正模型,通过所述目标立体校正模型中的所述目标光流网络得到初始光流图,其中,所述初始光流图用于表征所述主摄图像和所述副摄图像上匹配点之间的位置偏移信息;根据所述初始光流图得到所述副摄变换矩阵。
在一些实施例中,所述目标立体校正模型还进一步包括:用于接收所述目标光流网络的输出数据的降采样模块,其中,所述根据所述初始光流图得到所述副摄变换矩阵,包括:将所述初始光流信息输入所述降采样模块,并通过所述降采样模块对所述初始光流信息进行降采样得到降采样光流图;根据所述降采样光流图得到所述副摄变换矩阵。
在一些实施例中,所述目标立体校正模型还进一步包括:用于接收所述降采样模块的输出数据的目标深度卷积网络,其中,所述根据所述降采样光流图得到所述副摄变换矩阵,包括:将所述降采样光流图输入所述目标深度卷积网络,并通过所述目标深度卷积网络得到所述副摄变换矩阵。
本申请的一些实施例采用光流网络获取特征点能够有效克服采用无标定方式提特征点鲁棒性差,且对于弱纹理处理效果很差的缺陷,且本申请的一些实施例采用深度卷积网络获取拟合参数相比与传统的参数拟合方法技术效果更稳定。
在所述将所述待校正图像对输入目标立体校正模型得到副摄变换矩阵之后,所述方法还包括:根据所述副摄变换矩阵对所述副摄图像进行变换得到目标图像,完成立体校正。
本申请的一些实施例采用副摄变换矩阵对副摄图像进行坐标变换得到立体校正的图像,可以提升图像匹配等进一步处理结果的准确性。
在一些实施例中,所述将所述待校正图像对输入目标立体校正模型得到副摄变换矩阵之前,所述方法还包括:根据训练图像对立体校正模型进行训练,得到所述目标立体校正模型,其中,所述训练图像包括多组训练图像对,每组训练图像对包括:主摄样本图像、副摄样本图像以及目标光流图像,所述目标光流图像用于计算损失值,所述立体校正模型包括光流网络以及深度卷积网络。
本申请的一些实施例基于训练数据对模型进行训练得到目标立体校正模型。
在一些实施例中,所述根据训练图像对立体校正模型进行训练得到所述目标立体校正模型,包括:将所述主摄样本图像和所述副摄样本图像输入所述光流网络,得到预测光流图;对所述预测光流图进行降采样处理得到降采样预测光流图;将所述降采样预测光流图输入所述深度卷积网络得到预测副摄变换矩阵;根据所述目标光流图和所述预测副摄变换矩阵得到所述损失值,并根据所述损失值对所述光流网络和所述深度卷积网络的参数进行调整。
本申请的一些实施例提供了一种对立体校正模型进行训练的方法。
在一些实施例中,所述根据所述目标光流图和所述预测副摄变换矩阵得到所述损失值,包括:根据所述目标光流图和所述预测光流图得到第一损失值;通过所述预测副摄变换矩阵得到第二损失值,其中,所述第二损失值包括用于约束整幅图像的第三损失值和用于约束稀疏点的第四损失值中的至少一个,所述整幅图像是通过所述副摄样本图像和所述预测副摄变换矩阵得到的,所述稀疏点是与对所述主摄样本图像降采样后的各网格点对应的匹配点;根据所述第一损失值和所述第二损失值得到所述损失值。
本申请的一些实施例所设计的损失函数至少包括用于反应光流网络训练情况的第一损失值也包括用于反应深度卷积网络训练情况的第二损失值,且第二损失值采用了对整幅图像进行约束和对稀疏点进行约束两者中至少一个来评价对深度卷积网路的训练情况,可以理解的是通过本申请一些实施例的损失函数能更好对训练中的立体校正模型进行参数调整提升得到的目标立体校正模型的效果。
在一些实施例中,所述通过所述预测副摄变换矩阵得到第二损失值,包括:根据所述预测副摄变换矩阵得到平移量;基于所述平移量对所述预测副摄变换矩阵进行补偿得到补偿预测副摄变换矩阵;根据所述补偿预测副摄变换矩阵对所述副摄样本图像进行图像仿射变换得到更新副摄样本图像;计算对齐副摄样本图像和所述更新副摄样本图像上各像素点的像素值的差值,并基于所述差值得到所述第三损失值,其中,所述对齐副摄样本图像是经过立体校正算法后的图像。
本申请的一些实施例提供了获取平移量并根据平移量对预测副摄变换矩阵补偿后的矩阵得到更新副摄样本图像,进而求解第三损失值的方法,这种方法使得对整幅图像进行约束的计算过程更客观。
在一些实施例中,所述根据所述预测副摄变换矩阵得到平移量,包括:对所述目标光流图进行下采样,得到目标尺寸的下采样第一目标光流图;将所述主摄样本图像划分为多个图像块得到多个第一网格,并确定所述多个第一网格中每个第一网格的网格坐标,其中,所述多个第一网格的网格总数目与所述下采样目标光流图的像素数相同;根据所述下采样第一目标光流图获取所述每个第一网格的网格光流偏移信息;将任一第一网络的网格坐标与所述任一第一网格的网格光流偏移信息求和得到与所述任一第一网格匹配的匹配点,重复该过程得到所有第一网格的匹配点得到匹配点集合;根据所述匹配点集合和所述预测副摄变换矩阵得到变换匹配点集合,得到与所述匹配点分别对应的变换匹配点坐标;基于所述任一第一网格的网格坐标与所述任一第一网格对应的变换匹配点坐标得到所述平移量。
本申请的一些实施例提供了一种获取平移量的计算方法,提升了平移量计算的客观性和准确性。
在一些实施例中,所述通过所述预测副摄变换矩阵得到第二损失值,包括:计算第一项损失值,并计算第二项损失值,其中,所述第一项损失值用于约束行对齐,所述第二项损失值用于约束图像平移量;根据所述第一项损失值和所述第二项损失值得到所述第四损失值。
本申请的一些实施例通过约束行对齐和约束图像平移量两个方面的考虑来定义用于约束系数点的第四损失值,提升该第四损失值的准确性和客观性。
在一些实施例中,所述计算第一项损失值,并计算第二项损失值,包括:对所述预测光流图进行下采样,得到目标尺寸的下采样第二预测光流图;将所述主摄样本图像划分为多个图像块得到多个第二网格,并确定所述多个第二网格中每个第二网格的网格坐标,其中,所述多个第二网格的网格总数目与所述下采样预测光流图的像素数相同;根据所述下采样第二预测光流图获取所述每个第二网格的网格光流偏移信息;求解任一第二网络的网格坐标与所述任一第二网格的网格光流偏移信息求和得到与所述任一第二网格匹配的匹配点,重复该过程得到所有第二网格的匹配点得到副摄图匹配点集合;根据所述副摄图匹配点集合和所述预测副摄变换矩阵得到变换副摄匹配点集合,其中,所述变换副摄匹配点集合中各元素用于表征所述匹配点的变换后坐标;基于所述任一第二网格的网格坐标与所述任一第二网格对应的匹配点的变换后坐标计算所述第一项损失值和所述第二项损失值。
本申请的一些实施例提供了一种对稀疏点进行约束的损失值计算方法,使得到第四损失值更客观更准确。
在一些实施例中,所述基于所述任一第二网格的网格坐标与所述任一第二网格对应的匹配点的变换后坐标得到所述第一项损失值和所述第二项损失值,包括:根据所述网格坐标的纵坐标值和所述变换后坐标的纵坐标值计算所述第一项损失值。
本申请一些实施例的行约束是通过纵坐标计算的,提升了该第一损失值计算的客观性和准确性。
在一些实施例中,所述基于所述任一第二网格的网格坐标与所述任一第二网格对应的匹配点的变换后坐标得到所述第一项损失值和所述第二项损失值,包括:求解与所有第二网格对应的各网格坐标的横坐标值和相应变换后坐标的横坐标值的差值,得到多个差值;从所述多个差值中选取最小值作为所述第二项损失值。
本申请的一些实施例通过求解最小差值的方式可以使得变换后的副摄图像最远处内容相比于主摄图像有最小平移量即趋近与0,提升了得到的第二项损失值的准确性。
第二方面,本申请的一些实施例提供一种图像校正的装置,所述装置包括:待校正图像获取模块,被配置为获取待校正图像对,其中,所述待校正图像对包括主摄图像以及副摄图像;处理模块,被配置为将所述待校正图像对输入目标立体校正模型得到副摄变换矩阵,其中,所述目标立体校正模型至少包括目标光流网络,所述目标光流网络用于从所述待校正图像对上提取匹配属性信息;变换模块,被配置为根据所述副摄变换矩阵对所述副摄图像进行变换得到目标图像,完成校正。
第三方面,本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如第一方面任意实施例所述的方法。
第四方面,本申请的一些实施例提供一种电子设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述程序时可实现如第一方面任意实施例所述的方法。
第五方面,本申请的一些实施例提供一种计算机程序产品,所述的计算机程序产品包括计算机程序,其中,所述的计算机程序被处理器执行时可实现如第一方面任意实施例所述的方法。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参看图1,图1为本申请的一些实施例提供的立体校正前后的效果对比图。
图1示例性展示了左右两个相机(即第一相机101和第二相机102)在立体校正前的原始姿态以及对这两个相机执行立体校正方法后得到的立体校正后状态,可以理解的是,经过立体校正后最终使得左右两个相机在同一水平位置上且姿态相同、光轴平行。例如,如图2所示,该图第一图像201(即主摄图像)以及第二图像202(即待校正副摄图像)为分别采用图1的左右相机分别进行图像拍摄得到的两幅原始图像,图2的第三图像211以及第四图像212是经过立体校正方法得到的变换矩阵对原始图像进行变换得到的校正图像,可以理解的是基于图2的第三图像211(对应于主摄图像)以及第四图像212(利用副摄变换矩阵对副摄图像202进行校正后的副摄图像)进行立体匹配显然可以提升匹配的速度和准确率。
相关技术除了提供基于标定方式的立体校正方法之外,还提供了基于无标定方式的立体校正方法。例如,Pollefeys将极点看做极坐标原点,利用坐标变换思想进行图像极线校正。Loop等人将图像校正过程分为射影变换和放射变换两个部分,但是射影变换需要非线性求解,稳定性不能保证。需要说明的是,本申请的发明人在研究中发现基于无标定方式的立体校正方案,简化了标定方式的立体校正方案,但是其依赖从图像上提取的特征点的鲁棒性,因此对存在弱纹理和重复纹理的图像对应的摄影系统的立体校正效果不佳。
至少为了克服上述问题,本申请的一些实施例提出一种基于光流网络(用于特征提取)和深度卷积网络(用于实现参数拟合)的立体校正方法,采用本申请实施例的立体校正方法能够有效地提升立体校正的适用性,解决当前无标定方案对于场景不鲁棒的缺陷问题。例如,光流网络可以采用FlowNet2网络并采用VGG网络(作为深度卷积网络的一个示例)拟合出变换矩阵。
由于本申请的一些实施例利用神经网络的思想替代了传统方法,既能解决有标定不能适配具有变焦不鲁棒的多摄系统的问题,也能改善无标定对于弱纹理和重复纹理场景不鲁棒问题。
下面结合图3示例性阐述本申请一些实施例的应用场景,可以理解的是本申请的一些实施例也可以应用在其他与手机具有相似摄像系统的设备上,实现对这些设备的多摄像头进行立体校正。
需要说明的是,本申请的一些实施例的立体校正过程的输出结果是得到副摄变换矩阵,可以理解的是该副摄变换矩阵是针对副摄像机拍摄的副摄图像进行变换的变换矩阵。例如,由于手机上两个或多个摄像头的夹角较小因此在立体校正过程中可以仅获取副摄变换矩阵即可。可以理解的是,若需要进行立体校正的设备上的多个摄像头间距较远(即与手机多摄像机特征不同时),为了能够应用本申请的技术方案还需要预先获取主摄图像的变换矩阵,再根据该变换矩阵对主摄像头拍摄的主摄图像进行变换后作为输入目标立体校正网络的主摄图像或者作为训练的主摄样本图像输入待训练的立体校正网络对该网络进行训练。可以理解的是,对于如何获取主摄图像的变换矩阵属于本领域的公知常识,在此不做过多赘述。
图3为本申请的一些实施例提供的立体校正的系统,该系统包括手机终端310以及服务器320,其中,图1的手机终端310采用主摄像头311以及副摄像头312针对同一场景拍摄两张图像得到待校正图像对(即主摄像头311拍摄的是主摄图像313,副摄摄像头312拍摄得到的是副摄图像314),并将拍摄的两张图像发送到服务器320,服务器320被配置为根据这两张图像得到变换矩阵并根据变换矩阵对副摄图像进行变换得到校正后的目标副摄图像。
例如,在本申请的一些实施例中,主摄像头311以及副摄像头312均为RGB摄像头。
手机终端310还可以为PAD等,本申请实施例不限定终端的具体类型。手机终端310与服务器320之间可以通过无线网络或者有线网络互连,实现两者之间的信息(例如,获得第一帧图像、第二帧图像以及目标配准图像等)传输。
需要说明的是,在本申请的一些实施例中,也可以由手机终端310来执行由服务器320的功能,即有终端310根据这两张图像得到变换矩阵并根据变换矩阵对副摄图像进行变换得到校正后的目标副摄图像。在这些实施例中,并不需要布置图3的服务器320。
下面结合图4示例性阐述本申请一些实施例提供的由手机终端10或者服务器执行的立体校正方法。
如图4所示,本申请实施例提供一种图像校正的方法,该方法包括:S101,获取待校正图像对,其中,所述待校正图像对包括主摄图像以及副摄图像;S102,将所述待校正图像对输入目标立体校正模型得到副摄变换矩阵,其中,所述目标立体校正模型至少包括目标光流网络,所述目标光流网络用于从所述待校正图像对上提取匹配属性信息,所述副摄变换矩阵是通过所述匹配属性信息得到的;S103,根据所述副摄变换矩阵对所述副摄图像进行变换得到目标图像,完成校正。
需要说明的是,本申请的一些实施例采用光流网络进行特征提取,以得到副摄图像的变换矩阵,本申请采用光流该网络获取左右图(即主摄图像和副摄图像)的匹配信息,既能解决有标定不能适配具有变焦不鲁棒的多摄系统的问题,也能改善无标定对于弱纹理和重复纹理场景不鲁棒问题。
下面结合图5示例性阐述本申请一些实施例提供的目标立体校正模型。
如图5所示,本申请一些实施例提供的目标立体校正模型200包括:目标光流网络131、降采样处理模块102以及目标深度卷积网络133。
例如,目标光流网络131为FlowNet2网络也可以为其它类型的光流网络。目标深度卷积网络133可以采用VGG网络。降采样处理模块102可以采用池化层实现,例如,该池化层可以是均值池化也可以是最值池化。
图5中输入目标立体校正模块的是主摄图像111以及副摄图像112,可以理解的是,这两幅图像是本次需要立体校正的待校正图像对。图5除了目标立体校正模型外还包括变换模块,可以理解的是通过该变换模块可以将副摄图像112基于目标副摄变换矩阵141进行坐标变换,得到目标副摄图像151。主摄图像111以及副摄图像112可能具有图2上两幅图像存在的问题,但是主摄图像111以及得到目标副摄图像151将具有类似于图2下两幅图像的效果,即同一被拍摄的物点在两幅图像上位于同一横行,仅存在水平方向的坐标差值。
下面结合图5示例性阐述本申请示例的立体校正过程。
例如,在本申请的一些实施例中,上述S102示例性包括:将所述待校正图像对输入所述目标光流网络,并通过所述目标光流网络得到初始光流图,其中,所述初始光流图用于表征所述主摄图像和所述副摄图像上匹配点之间的位置偏移信息;根据初始光流信息得到副摄变换矩阵。例如,目标立体校正模型200包括降采样模块,则根据初始光流信息得到副摄变换矩阵的过程示例性包括:将所述初始光流信息输入所述降采样模块,并通过所述降采样模块对所述初始光流信息进行降采样得到降采样光流图,根据降采样光流图得到所述副摄变换矩阵。例如,目标立体校正模型包括目标深度卷积网络,则根据降采样光流图得到副摄变换矩阵的过程示例性包括:将所述降采样光流图输入所述目标深度卷积网络,并通过所述目标深度卷积网络得到所述副摄变换矩阵。
本申请的一些实施例采用光流网络获取特征点能够有效克服采用无标定方式提特征点鲁棒性差,且对于弱纹理处理效果很差的缺陷,且本申请的一些实施例采用深度卷积网络获取拟合参数相比与传统的参数拟合方法技术效果更稳定。本申请的一些实施例采用池化层对光流网路的输出进行降采样以适应目标深度卷积网络对输入图像尺寸的要求。
可以理解的是,图5的目标立体校正模型200是经过训练数据训练得到的网络模型,下面示例性阐述对立体校正模型进行训练得到目标立体校正模型的过程。
也就是说,在本申请的一些实施例中,在执行S101之前,所述图像校正的方法还包括:根据训练图像对立体校正模型进行训练,得到所述目标立体校正模型,其中,所述训练图像包括多组训练图像对,每组训练图像对包括:主摄样本图像、副摄样本图像以及目标光流图像,所述目标光流图像用于计算损失值,所述立体校正模型包括光流网络以及深度卷积网络。本申请的一些实施例基于训练数据对模型进行训练得到目标立体校正模型。
下面以副摄样本图像和主摄样本图像示例性阐述一次训练过程。如图6所示,立体校正模型100包括光流网络171、降采样处理模块102以及深度卷积网络103,且训练图像包括主摄样本图像111、副摄样本图像112、理想光流图像113(或称为目标光流图)以及对齐副摄样本图像114,训练中的立体校正模型输出的是预测的副摄变换矩阵121,该矩阵后续用于计算损失值。可以理解的是,在训练过程为了确定参数调整方向还需要预先获取目标光流图像(即理想光流图)以及对齐副摄样本图像(即通过现有的其他算法等获取与主摄样本图像对齐的副摄样本图像),这些图像可以用于计算损失值,进而确定参数调整方向。
例如,在本申请的一些实施例中,所述根据训练图像对立体校正模型进行训练得到所述目标立体校正模型,包括:
S201,将所述主摄样本图像和所述副摄样本图像输入所述光流网络,得到预测光流图。
可以理解的是,主摄样本图像和副摄样本图像是通过主摄像机和副摄像机在同一时刻对同一场景进行拍摄得到的图像,且为了确定参数调整方向还需要预先获取与主摄样本图像对齐的对齐副摄样本图像以及为了检验预测光流图像质量的目标光流图像。例如,该对齐副摄样本图像的获取方式包括:采用鲁棒的双目结构通过准确标定数据对采集的图像进行立体校正或者,通过仿真软件构建完美的平行双目相机,采集虚拟场景的双目图像。
S202,对所述预测光流图进行降采样处理得到降采样预测光流图。
例如,采用均匀池化操作对预测光流图像进行均匀池化操作,得到降采样的预测光流图。
S203,将所述降采样预测光流图输入所述深度卷积网络得到预测副摄变换矩阵。
例如,预测副摄变换矩阵的大小可以为3*3的矩阵。
S204,根据所述目标光流图和所述预测副摄变换矩阵得到所述损失值,并根据所述损失值对所述光流网络和所述深度卷积网络的参数进行调整。
下面示例性阐述第四步的实现过程。
可以理解的是,本申请一些实施例构造的损失值需要能够反映光流网络训练情况的损失值也需要能够反映预测的副摄变换矩阵质量的损失值。例如,在本申请的一些实施例中,上述S204记载的所述根据所述目标光流图和所述预测副摄变换矩阵得到所述损失值示例性包括如下三个子步骤:
第一子步,根据所述目标光流图和所述预测光流图得到第一损失值。
例如,该第一损失值用于对目标光流图和预测光流图上每个像素点的光流偏移量进行约束。
第二子步,通过所述预测副摄变换矩阵得到第二损失值,其中,所述第二损失值包括用于约束整幅图像的第三损失值和用于约束稀疏点的第四损失值中的至少一个,所述整幅图像是通过所述副摄样本图像和所述预测副摄变换矩阵得到的,所述稀疏点是与对所述主摄样本图像降采样后的各网格点对应的匹配点。
也就是说,在本申请的一些实施例中,该第二损失值为第三损失值。在本申请的另一些实施例中,该第二损失值为第四损失值。在本申请的又一些实施例中,该第二损失值既包括第三损失值也包括第四损失值,例如,该第二损失值为第三损失值和第四损失值的和。
下面示例性阐述获取第三损失值的过程。
在本申请的一些实施例中,上述第二子步示例性包括:根据所述预测副摄变换矩阵得到平移量,其中,所述平移量用于表征所述预测副摄变换矩阵与真;基于所述平移量对所述预测副摄变换矩阵进行补偿得到补偿预测副摄变换矩阵;根据所述补偿预测副摄变换矩阵对所述副摄样本图像进行图像仿射变换得到更新副摄样本图像;计算对齐副摄样本图像和所述更新副摄样本图像上各像素点的像素值的差值,并基于所述差值得到所述第三损失值,其中,所述对齐副摄样本图像是经过立体校正算法后的图像。
也就是说,本申请的一些实施例提供了获取平移量并根据平移量对预测副摄变换矩阵补偿后的矩阵得到更新副摄样本图像,进而求解第三损失值的方法,这种方法使得对整幅图像进行约束的计算过程更客观。
为了获取平移量,在本申请的一些实施例中,所述根据所述预测副摄变换矩阵得到平移量示例性包括:对所述目标光流图进行下采样,得到目标尺寸的下采样第一目标光流图;将所述主摄样本图像划分为多个图像块得到多个第一网格,并确定所述多个第一网格中每个第一网格的网格坐标,其中,所述多个第一网格的网格总数目与所述下采样目标光流图的像素数相同;根据所述下采样第一目标光流图获取所述每个第一网格的网格光流偏移信息;将任一第一网络的网格坐标与所述任一第一网格的网格光流偏移信息求和得到与所述任一第一网格匹配的匹配点,重复该过程得到所有第一网格的匹配点得到匹配点集合;根据所述匹配点集合和所述预测副摄变换矩阵得到变换匹配点集合,得到与所述匹配点分别对应的变换匹配点坐标;基于所述任一第一网格的网格坐标与所述任一第一网格对应的变换匹配点坐标得到所述平移量。本申请的一些实施例提供了一种获取平移量的计算方法,提升了平移量计算的客观性和准确性。
下面示例性阐述获取S204所述的第四损失值的实现过程。
在本申请的一些实施例中,上述第二子步示例性包括:计算第一项损失值,并计算第二项损失值,其中,所述第一项损失值用于约束行对齐,所述第二项损失值用于约束图像平移量;根据所述第一项损失值和所述第二项损失值得到所述第四损失值。例如,在本申请的一些实施例中,将第一项损失值和第二项损失值两者直接求和得到第四损失值,在本申请的一些实施例中也可以将第一项损失值和第二项损失值两者加权求和等方式得到第四损失值。
需要说明的是,获取第一项损失值的算法可以包括:RMSE(均方根误差)、MSE(均方误差)、MAE(平均绝对误差)、SD(标准差)。
也就是说,本申请的一些实施例通过约束行对齐和约束图像平移量两个方面的考虑来定义用于约束系数点的第四损失值,提升该第四损失值的准确性和客观性。
例如,在本申请的一些实施例中,所述计算第一项损失值,并计算第二项损失值示例性包括:对所述预测光流图进行下采样,得到目标尺寸的下采样第二预测光流图;将所述主摄样本图像划分为多个图像块得到多个第二网格,并确定所述多个第二网格中每个第二网格的网格坐标,其中,所述多个第二网格的网格总数目与所述下采样预测光流图的像素数相同;根据所述下采样第二预测光流图获取所述每个第二网格的网格光流偏移信息;求解任一第二网络的网格坐标与所述任一第二网格的网格光流偏移信息求和得到与所述任一第二网格匹配的匹配点,重复该过程得到所有第二网格的匹配点得到副摄图匹配点集合;根据所述副摄图匹配点集合和所述预测副摄变换矩阵得到变换副摄匹配点集合,其中,所述变换副摄匹配点集合中各元素用于表征所述匹配点的变换后坐标;基于所述任一第二网格的网格坐标与所述任一第二网格对应的匹配点的变换后坐标计算所述第一项损失值和所述第二项损失值。本申请的一些实施例提供了一种对稀疏点进行约束的损失值计算方法,使得到第四损失值更客观更准确。
需要说明的是,本申请的一些实施例根据网格坐标和变换后的坐标得到第一项损失值和第二项损失值。
例如,在本申请的一些实施例中,所述基于所述任一第二网格的网格坐标与所述任一第二网格对应的匹配点的变换后坐标得到所述第一项损失值和所述第二项损失值,包括:根据所述网格坐标的纵坐标值和所述变换后坐标的纵坐标值计算所述第一项损失值。本申请一些实施例的行约束是通过纵坐标计算的,提升了该第一损失值计算的客观性和准确性。
例如,在本申请的一些实施例中,所述基于所述任一第二网格的网格坐标与所述任一第二网格对应的匹配点的变换后坐标得到所述第一项损失值和所述第二项损失值,包括:求解与所有第二网格对应的各网格坐标的横坐标值和相应变换后坐标的横坐标值的差值,得到多个差值;从所述多个差值中选取最小值作为所述第二项损失值。本申请的一些实施例通过求解最小差值的方式可以使得变换后的副摄图像最远处内容相比于主摄图像有最小平移量即趋近与0,提升了得到的第二项损失值的准确性。
第三子步,根据所述第一损失值和所述第二损失值得到所述损失值。
例如,在本申请的一些实施例中,将第一损失值和第二损失值两者直接求和得到损失值。在本申请的另一些实施例中,将第一损失值和第二损失值两者加权求和得到损失值。
本申请的一些实施例所设计的损失函数至少包括用于反应光流网络训练情况的第一损失值也包括用于反应深度卷积网络训练情况的第二损失值,且第二损失值采用了对整幅图像进行约束和对稀疏点进行约束两者中至少一个来评价对深度卷积网路的训练情况,可以理解的是通过本申请一些实施例的损失函数能更好对训练中的立体校正模型进行参数调整提升得到的目标立体校正模型的效果。
下面结合两幅具体大小的左图IL(作为主摄样本图像的一个示例)、右图IR(作为副摄样本图像的一个示例)、光流GT图IG(作为目标光流图像的一个示例)以及对齐GT右图IR_G(作为对齐副摄样本图像的一个示例)为例示例性阐述训练过程。向立体校正模型输入左图IL,右图IR,光流GT图IG,对齐GT右图IR_G对立体校正模型进行训练。具体地,该训练过程示例性包括:
第一步,向FlowNet2网络(作为光流网络的一个示例)输入左图IL、右图IR和光流GT图IG,采用该网络的目的是用来获取左图和右图的匹配信息,这里没有采用CNN特征等特征网络的原因是光流网络在特征均匀性和弱纹理等场景上具有更好的表现。
左图IL和右图IR的大小尺寸以及通道数表示为512x384x3,FlowNet2网络输出的预测光流图为512x384x2,光流图一般为2通道,一个通道存储x方向偏移,另一个通道存储y方向偏移。
第二步,使用2x2的池化层(作为降采样模块的一个示例)对预测光流图进行采样,采样后得到的光路图为256x192x2的光流图。
需要说明的是,光流就是两幅图像之间的位置偏移关系,例如,左图上P1L点在右图的位置为P1R点,那么P1L该点的光流为(x2-x1,y2-y1),而光流图就是全图每个像素位置偏移的集合。
第三步,向VGG网络(作为深度卷积网络的一个示例)输入第二步得到的光流图,该图大小为256x192x2,该VGG网络输出的是大小为1x8向量。本示例所采用的VGG网络的参数为:第一层256x192x48,第二层128x96x96,第三层64x48x192,第四层32x24x384,第五层16x12x384,第六层8x6x384,第七层1x1x1028,第八层1x1x8。
第四步,根据VGG网络输出的向量构建右图变换的矩阵
得到预测副摄变换矩阵。
下面示例性阐述获取第四损失值的过程。
4.1,对第一步得到的预测光流图(或对第二步得到的光流图)进行采样得到大小为32x24(目标尺寸的一个示例)尺寸的两通道光流图,得到目标尺寸的下采样第二预测光流图,将该下采样第二预测光流图与图像网格坐标结合得到768(通过32x24计算得到该值)个匹配点对PL和PR。对右图点进行变换得到变换副摄匹配点集合PRN=H*PR,那么第四损失值的计算公式示例化为:Loss1=RMSE(PL-PRN)|y+MIN(PL-PRN)|x,这里RMSE(PL-PRN)|y表示取y坐标约束行对齐,MIN(PL-PRN)|x表示取x坐标最小值约束图像的平移量。
将预测光流图下采样到32x24x2的可以降低运算量和参数量,防止VGG网络内存暴涨。
上述4.1还包括如下实现过程:
上述匹配点对PL和PR(PL和PR都是N*2的二维坐标,N为常量且其取值为采样网格点的数量)的获取方法为:
获取的下采样第二预测光流图的光流偏移是将预测光流图(单通道大小为512x384)均匀划分为32x24个网格每个网格点对应的光流偏移。将主摄样本图像(原图大小为512x384)均匀划分为32x24(目标尺寸的一个示例)个网格后得到32x24个图像块每个图像块对应一个第二网格,则每个第二网格点的坐标示例化为:(512/32*i,384/24*j)i=0,1,..31,j=0,1,…,23。
左图的坐标点(作为每个第二网格的网格坐标对应的坐标点)PL=(512/32*i,384/24*j)i=0,1,..31,j=0,1,…,23,其每个第二网格的坐标点对应的光流可以从32x24x2的光流图上获取,那么右图的对应坐标点(即副摄图匹配点集合中的各匹配点)PR=PL+flow(x,y)*2(即通过求解任一第二网络的网格坐标PL与所述任一第二网格的网格光流偏移信息(即flow(x,y)*2)求和得到与所述任一第二网格匹配的匹配点(即得到PR中的各点)),这里flow(x,y)是从32x24x2光流图取得的(x,y)偏移量,flow(x,y)*2是因为32x24x2的光流图尺度是256x192x2的光流图,是原图的1/2。
可以理解的是,PL是32*24的网格坐标点,PR就是左边的网格点加上光流偏移量得到右图的网格坐标点。
上述4.1的坐标转换,P
RN=H*P
R,这里H是3x3的矩阵,P
R是Nx2的二维坐标转换成3xN的其次坐标,二维坐标表示P=(x,y)对应其次坐标
上述第一项损失值的计算公式为,n的取值范围为大于等于1且小于等于N:
第二项损失值计算公式为:
MIN(PL-PRN)|x=MIN(PL.x0-PRN.x0,PL.x1-PRN.x1,…,PL.xn-PRN.xn),
其中,.x表示取x坐标.y表示取y坐标,x0、x1……xn表征横坐标值,当然RMSE也可以用MSE,L1等简单loss替换,其结果会存在一定波动。第一项损失值涉及的RMSE(均方根误差)算法可以替换为:MSE(均方误差)、MAE(平均绝对误差)或者SD(标准差)。
上述4.1的RMSE(PL-PRN)|y用于约束y坐标,期望得到副摄变换矩阵H,使得变换后的副摄图像中内容与主摄对应内容在同一行上。MIN(PL-PRN)|x用于约束副摄图像的平移,期望得到副摄变换矩阵H,使得变换后的副摄图像最远处内容相比于主摄有最小平移量,趋近与0。
下面示例性阐述获取第三损失值是的过程。
4.2利用4.1中P
RN|
x与GT光流I
G变化(4.1操作)后P
R_G_RN|
x计算预测H与真值的差值(平移量)t=P
RN|
x-P
R_G_RN|
x。然后对预测的H进行平移补偿
对输入右图变换I
RN=H*I
R,那么Loss2=RMSE(I
RN-I
R_G)(作为第三损失值的一个示例)。
上述4.2的变换匹配点集合PR_G_RN中各点的二维坐标获取方式为:
将光流的GT图IG(512x384x2)进行下采样到32x24x2得到目标尺寸的下采样第一目标光流图。将主摄样本图像(即大小为512x384的左图)均匀划分为32x24图像块得到32x24个第一网格,每个第一网格点的网格坐标PL_G=(512/32*i,384/24*j)i=0,1,..31,j=0,1,…,23。与每个第一网格的坐标点对应的光流可以从32x24x2的IG光流图上获取(即根据所述下采样第一目标光流图获取所述每个第一网格的网格光流偏移信息)。右图的对应坐标点(即与所述任一第一网格匹配的匹配点)PR_G=PL_G+flow(x,y),这里flow(x,y)不需要倍率,因为光流图是原尺寸下采样的,至此得到准确的二维匹配点对PL_G和PR_G,对右图二维点进行变换PR_G_RN=H*PR_G,得到变换匹配点集合。
上述平移量计算公式示例化为:
也就是说,在本申请的一些实施例中平移量的职位取所有匹配点x坐标差值的均值。
上述对输入右图变换IRN=H*IR,是图像的warp变换。
上述第三损失值可以示例化为:
该第三损失值表达是用于表征对图像上每个像素的颜色值进行约束。第三损失值涉及的RMSE(均方根误差)算法可以替换为:MSE(均方误差)、MAE(平均绝对误差)或者SD(标准差)。
4.3第一损失值示例化计算方式
对于光流网络出来的预测光流图IP,需要和GT对比,该第一损失值示例化为:
其中,该第一损失值表示对图像每个像素的光流偏移量进行约束。第一损失值涉及的RMSE(均方根误差)算法可以替换为:MSE(均方误差)、MAE(平均绝对误差)或者SD(标准差)。
作为本申请的一个示例,损失函数值为上述第一损失值、第三损失值以及第四损失值的和,用公式表示为:Loss=Loss1+Loss2+Loss3。
请参考图8,图8示出了本申请实施例提供一种图像校正的装置,应理解,该装置与上述图4方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置的具体功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。装置包括至少一个能以软件或固件的形式存储于存储器中或固化在装置的操作系统中的软件功能模块,该图像校正的装置包括:待校正图像获取模块801,处理模块802以及变换模块803。
待校正图像获取模块801,被配置为获取待校正图像对,其中,所述待校正图像对包括主摄图像以及副摄图像。
处理模块802,被配置为将所述待校正图像对输入目标立体校正模型得到副摄变换矩阵,其中,所述目标立体校正模型至少包括目标光流网络,所述目标光流网络用于从所述待校正图像对上提取匹配信息。
变换模块,被配置为根据所述副摄变换矩阵对所述副摄图像进行变换得到目标图像,完成立体校正。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置的具体工作过程,可以参考前述方法中的对应过程,在此不再过多赘述。
本申请的一些实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时可实现如上述图像校正的方法中任意实施例所述的方法。
本申请的一些实施例提供一种计算机程序产品,所述的计算机程序产品包括计算机程序,其中,所述的计算机程序被处理器执行时可实现如上述图像校正的方法中任意实施例所述的方法。
如图9所示,本申请的一些实施例提供一种电子设备900,该电子设备900包括存储器910、处理器920以及存储在所述存储器910上并可在所述处理器920上运行的计算机程序,其中,所述处理器920通过总线930从存储器910读取程序并执行所述程序时可实现如上述图像校正的方法中任意实施例所述的方法。
处理器520可以处理数字信号,可以包括各种计算结构。例如复杂指令集计算机结构、结构精简指令集计算机结构或者一种实行多种指令集组合的结构。在一些示例中,处理器520可以是微处理器。
存储器510可以用于存储由处理器520执行的指令或指令执行过程中相关的数据。这些指令和/或数据可以包括代码,用于实现本申请实施例描述的一个或多个模块的一些功能或者全部功能。本公开实施例的处理器520可以用于执行存储器510中的指令以实现图4中所示的方法。存储器510包括动态随机存取存储器、静态随机存取存储器、闪存、光存储器或其它本领域技术人员所熟知的存储器。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。