[0001]
本申请涉及计算机视觉技术领域,具体而言,涉及一种基于单目图像的模型训练方法、装置及数据处理设备。
背景技术:[0002]
双目图像对齐(stereo matching)是一个基本的计算机视觉问题,广泛应用于3d数字场景重建、自动驾驶等领域。双目图像对齐的目标是预测像素的位移,即两张双目图像之间的立体视差图。
[0003]
在处理双目图像对齐问题时,常使用卷积神经网络(convolutional neural networks,cnn)模型,通过大量的样本对cnn模型进行训练,然后使用训练完成的模型实现双目图像对齐。由于获得带有正确标注的双目图像训练样本成本十分昂贵,因此在一些实现方式中,改为采用合成的仿真图像进行训练,但这种方式训练出的模型对真实图像的识别能力不佳。在另一些实现方式中,采用未标记的双目图像,根据预测获得的视差图把右图像扭曲到左图像,然后根据光度量损失来测量扭曲过的右图像和左图像之间的差异,但这种方式仍然需要大量校正好的双目图像,训练成本高。
技术实现要素:[0004]
为了克服上述至少一个不足,第一方面,本申请提供一种基于单目图像的模型训练方法,应用于对图像匹配模型进行训练,所述方法包括:
[0005]
获取单目图像采集装置在不同时间点采集的第一训练图和第二训练图;
[0006]
根据所述第一训练图及第二训练图之间的光度损失,获得从所述第一训练图到第二训练图的第一光流预测结果;
[0007]
将所述第一光流预测结果作为代理标记,使用所述第一训练图和第二训练图进行光流预测的代理学习。
[0008]
第二方面,本申请提供一种基于单目图像的模型训练装置,应用于对图像匹配模型进行训练,所述装置包括:
[0009]
图像获取单元,用于获取单目图像采集装置在不同时间点采集的第一训练图和第二训练图;
[0010]
第一光流预测模块,用于根据所述第一训练图及第二训练图之间的光度损失,获得从所述第一训练图到第二训练图的第一光流预测结果;
[0011]
第二光流预测模块,用于将所述第一光流预测结果作为代理标记,使用所述第一训练图和第二训练图进行光流预测的代理学习。
[0012]
第三方面,本申请提供一种数据处理设备,包括机器可读存储介质及处理器,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被一个活多个所述处理器执行时,促使所述数据处理设备实现本申请提供的基于单目图像的模型训练方法。
[0013]
相对于现有技术而言,本申请具有以下有益效果:
[0014]
本申请提供的基于单目图像的模型训练方法、装置及图像处理设备,通过将双目图像匹配看作光流预测的特例,采用代理学习的方式,将不同时间点采集的两个单目图像作为训练样本得到的光流预测结果作为代理标记,用于指导模型进行再次光流预测的学习。如此,可以在不依赖校正好的双目图像样本的情况下实现双目图像立体匹配的自监督学习,使用同一个模型进行预测光流和立体匹配。
附图说明
[0015]
为了本申请实施例的技术方案进行清楚地说明,以下将简单地介绍实施例中所需要使用的附图。应当理解,下述附图仅包括针对本申请的部分可选实施例的说明,不应被视作是对本申请范围的限定,在不付出创造性劳动的前提下,本领域技术人员也可以根据这些附图获得其他相关的附图。
[0016]
图1为本申请实施例提供的数据处理设备的方框示意图;
[0017]
图2为本申请实施例提供的基于单目图像的模型训练方法的步骤流程示意图;
[0018]
图3为本申请实施例提供的双目图像对齐原理示意图之一;
[0019]
图4为本申请实施例提供的双目图像对齐原理示意图之二;
[0020]
图5为本申请实施例提供的图像匹配模型处理的示意图;
[0021]
图6为相同数据集上光流预测测试结果对比示意图;
[0022]
图7为相同数据集上双目图像对齐测试结果对比示意图;
[0023]
图8为本申请实施例提供的基于单目图像的模型训练装置的模块示意图。
具体实施方式
[0024]
为更清楚地介绍本申请实施例的目的、技术方案和优点,下面将附图对本申请实施例中的技术方案描述。
[0025]
请参照图1,图1为本实施例提供的一种数据处理设备100的硬件结构示意图。该数据处理设备100可包括处理器130及机器可读存储介质120。处理器130与机器可读存储介质120可经由系统总线通信。并且,机器可读存储介质120存储有机器可执行指令(如图像模型训练装置110相关的代码指令),通过读取并执行机器可读存储介质120中与图像模型训练逻辑对应的机器可执行指令,处理器130可执行上文描述的基于单目图像的模型训练方法。
[0026]
本文中提到的机器可读存储介质120可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:ram(radom access memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
[0027]
请参照图2,本实施例提供的一种基于单目图像的模型训练方法的流程图,以下将对所述方法包括各个步骤进行详细阐述。
[0028]
步骤s210,获取单目图像采集装置在不同时间点采集的第一训练图和第二训练图。
[0029]
步骤s220,根据所述第一训练图及第二训练图之间的光度损失,获得从所述第一训练图到第二训练图的第一光流预测结果。
[0030]
步骤s230,将所述第一光流预测结果作为代理标记,使用所述第一训练图和第二训练图进行光流预测的代理学习。
[0031]
详细地,由于双目图像对齐是从具有水平方向立体视察的两个双目图像中确定同一物体的计算机视觉任务。
[0032]
光流(opticalflow)预测是基于亮度恒定性和空间平滑性假设,根据像素的光度来确定不同帧图像中同一物体的运动的技术。
[0033]
经发明人研究发现,双目图像对齐和光流预测看作一类问题,即图像中对应像素点的匹配问题。两者的主要区别在于,双目图像对齐是一维搜索问题,在校正好的双目图像上,对应像素位于对极线上。而光流预测不具有这种约束,可以视作二维搜索问题。因此,双目图像对齐可以被视为是光流的特殊情况。如果通过训练出在二维场景能够良好执行像素匹配模型,它就也能够在一维场景上很好地实现像素匹配任务。因此,在本实施例的步骤s210中,可以获取单目图像采集装置不同时间点采集两个图像作为训练样本对图像匹配模型进行训练。
[0034]
具体地,对于双目图像对齐,双目摄像机左右两个摄像机同时图像,并且两个相机的相对位置是固定的,因此,根据该几何特性,在双目图像对齐过程中,针对左图像极线上的像素,其对应的像素应位于右图像的极线上,即这是一维图像匹配问题。
[0035]
请参照图3,三维场景中的点p在双目图像的左图像中的投影点为像素p
l
,右图像中的投影点为像素p
r
。当p
l
确定时,极线过左图像极点e
l
,且p
l
位于极线上,则在右图像上与p
l
的相应像素p
r
也总是位于极线上,并且极线通过右图像极点e
r
。其中,o
l
和o
r
分别是左右摄像机中心,e
l
和e
r
是极点。请参照图4,图4示出了双目立体图像校正的例子,左右两个摄像机是平行的,极线是水平的,即双目图像对齐是沿水平线找到匹配的像素。
[0036]
光流描述了两个相邻帧之间的密集运动。两个图像在不同时间拍摄,并且这两个帧之间的相机位置和姿势可以改变。光流预测的场景为刚性场景或非刚性场景。对于刚性场景,场景中物体没有移动,图像的差异仅因为摄像机的移动(旋转或平移),则光流预测也可以成为沿着极线的一维图像匹配问题。双目图像是在同一时间不同角度拍摄的画面,双目图像对齐问题可以视作在刚性场景中,摄像机在一个位置拍摄后移动另一位置在此拍摄,然后处理两个图像的光流预测的问题。
[0037]
由于估算自我运动本身将导致额外的误差并且场景并不总是刚性的,因此在本实施例中不考虑摄像机自我运动的问题,仅将双目图像对齐作为光流预测的特殊情况。也就是说,若图像匹配模型能在二维空间中实现良好的光流预测,也应该能够在一维空间中良好地实现双目图像对齐。
[0038]
因此,由于本实施例的步骤s220中,在光流预测过程中,会根据预测的光流把目标图像扭曲到参照图像,并通过测量翘曲目标图像和参照图像之间的差异来构建光度损失。但是,对于场景中被前景遮挡的物体对应的像素,亮度恒定性假设不再成立,因此对于被遮挡像素,光度损失可能将导致错误的训练监督。因此在本实施例中,在采用光度损失预测光流时需要预先确定并排除被遮挡像素。
[0039]
具体地,在本实施例中,根据所述第一训练图及第二训练图之间的光度损失,获得从第一训练图到第二训练图的初始光流图和初始置信度图,然后根据所述初始光流图和初始置信度图,获得排除被遮挡像素之后的所述第一光流预测结果。
[0040]
例如,所述初始置信度图中被遮挡像素的置信度被设置为0,未被遮挡像素的置信度被设置为1。然后根据所述初始光流图和初始置信度图,获得所述第一光流预测结果。
[0041]
由于被遮挡像素的置信度为0,当初始光流图与初始置信度图相乘时,即从所述初始光流图中剔除了被遮挡像素的数据,从而获得了未被遮挡的像素组成的高置信度的光流图。
[0042]
进一步地,在本实施例中,可以采用前向-后向光度检测对所述初始光流图进行处理,根据光度差异确定各像素点对应的置信度得到所述置信度图。其中,将光度差异超过预设阈值的像素的置信度设置为0,作为被遮挡的像素;将光度差异未超过预设阈值的像素的置信度设置为1,作为未被遮挡的像素。
[0043]
在进行前向-后向光度检测时,获得所述第一训练图i
t
到第二训练图i
t+1
的初始光流图上像素p的前向光流f
t
→
t+1
(p)及后向光流f
′
t
→
t+1
(p),其中,f
′
t
→
t+1
(p)=f
t+1
→
t
(p+f
t
→
t+1
(p)),f
t+1
→
t
为所述第二训练图到第一训练图的初始光流。
[0044]
按照以下公式根据所述像素p的前向光流和后向光流获得像素p的置信度图m
t
→
t+1
(p),
[0045][0046]
其中,p表示像素点,δ(p)=0.1(|f
t
→
t+1
(p)+f
′
t
→
t+1
(p)|)+0.05。
[0047]
另外,在本实施例中,还可以交换第一训练图和第二训练图来进行训练,来获得第二训练图到第一训练图的反向光流图。
[0048]
在步骤s220中,可以根据预设的光度损失函数和平滑度损失函数进行从所述第一训练图到第二训练图的光流预测,获得所述第一光流预测结果。
[0049]
具体地,所述光度损失函数l
p
为:
[0050][0051]
其中,p表示像素点,为将所述第一训练图i
t
使用census变化后获得的图像,为根据所述第一训练图到所述第二训练图的正向光流将扭曲到获得的扭曲图像,hamming(x)为汉明距离。
[0052]
所述平滑度损失函数l
m
的形式为:
[0053][0054]
其中,i(p)为所述第一训练图或第二训练图上的像素点,n是所述第一训练图或第二训练图的像素总数,表示梯度,t表示转置,i(p)为第一训练图或第二训练图上的像素点,f(p)为当前处理的光流图上的点。
[0055]
在步骤s220中,使用l
p
+λl
m
作为损失函数训练所述图像匹配模型,其中,λ=0.1。
[0056]
此外,在上述步骤s230中,由于即使只有稀疏的正确标记,cnn也可以在kitti数据集上学习到相当好的光流预测。因此,在本实施例中,首先从步骤s220获得稀疏的高置信度
的光流预测,然后将它们用作代理标记来指导图像匹配预测的学习。
[0057]
请参照图5,在本实施例中,可以将所述第一光流预测结果作为代理标记,使用预设的代理自监督损失函数和平滑度损失函数,执行从所述第一训练图到第二训练图的光流预测。
[0058]
具体地,所述代理自监督损失函数l
s
的形式为:
[0059][0060]
其中,p表示像素点,f
py
为所述初始光流图,m
py
为所述初始置信度图,f为当前处理的光流图。
[0061]
在步骤s230中,使用l
s
+λl
m
作为损失函数训练所述图像匹配模型,其中,λ=0.1。
[0062]
需要说明的是,与步骤s220的训练过程不同,在步骤s230中不再执行对未被遮挡像素的剔除动作,以使模型能够预测被遮挡区域的光流。
[0063]
可选地,在本实施例中,在步骤s230的训练过程中,可以随机地先对所述第一训练图和第二训练图进行相同位置和相同大小的剪裁和/或进行相同的随机降采样,然后使用剪裁后和/或降采样后的第一训练图和第二训练图进行步骤s230的训练,从而可以同时提高遮挡点以及被遮挡点光流预测准确率的效果。
[0064]
可选地,在本实施例中,在步骤s230的训练过程中,也可以先对所述第一训练图和第二训练图进行相同系数的随机缩放或相同角度的随机旋转,然后使用处理后的第一训练图和第二训练图进行步骤s230的训练。
[0065]
需要说明的是,也可以采用其他方法可以获得高置信度的光流预测。例如,采用传统方法来计算可靠的视差。在本实施例中,模型最终需要执行的是光流预测,因此采用在步骤s220中获取到光流预测结果和置信度图,然后在步骤s230中使用高置信度的光流预测作为代理基础事实来指导神经网络学习图像匹配,可在一个模型中完成上述训练过程。
[0066]
在本实施例中,经过代理学习之后,高置信度像素的数量将会增加,因此在步骤s230之后,还可以使用代理学习获得的第二光流预测结果进行迭代训练,以进一步改善所述图像匹配模型的识别能力。
[0067]
需要说明的是,通过本实施例提供的方法训练获得的图像匹配模型,既可以用于进行光流预测,也可以用于进行双目图像对齐。当训练好的所述图像匹配模型在进行光流预测时,可以将不同时间点采集的第一训练图i
t
到第二训练图i
t+1
作为输入,输出i
t
到i
t+1
的光流图。在将训练好的所述图像匹配模型用于双目图像对齐时,则可以将双目图像中左右摄像机采集的图像i
l
和i
r
作为输入,并获得输出的图像i
l
到i
r
的立体视差图作为匹配结果。
[0068]
在本实施例中,可以使用adam优化器在tensorflow系统上建立所述图像匹配模型,并模型的将批量大小设置为4,初始学习率为1e-4,每60k迭代将其衰减一半。在训练期间,可以将标准化的图像为输入并进行类似于随机剪裁、缩放或旋转的数据增强。特别地,裁剪大小可以设置为[256,640]像素大小,随机缩放系数范围可以设置为[0.75,1.25]。
[0069]
在步骤s220中,可以将光度损失应用于所有像素,并使用光度损失训练所述图像匹配模型,从头开始进行100k次迭代。需要注意的是,在开始时,不区分高置信度像素和低置信度像素,因为直接只将光度损失应用于高置信度像素可能会得出所有像素被视为低置
信度像素的明显解。之后,运用光度损失函数l
p
和平滑度损失函数l
m
进行400k次迭代来进行所述图像匹配模型。在步骤s230中,使用代理自监督损失函数l
s
和平滑度损失函数l
m
进行400k迭代来训练所述图像匹配模型。
[0070]
图6示出了在使用kitti 2012数据集和kitti 2015数据集上,使用现有的模型与使用本实施例提供的方法训练出的图像匹配模型进行光流预测的测试结果,从图6可见,本实施例提供的基于单目图像的模型训练方法训练出的图像匹配模型(“our+proxy”项)的识别能力明显优于例如multiframeoccflow和ddflow等现有最先进的无监督方法。
[0071]
图7示出了在使用kitti 2012数据集和kitti 2015数据集上,使用现有的模型与使用本实施例提供的方法训练出的图像匹配模型进行双目图像对齐的测试结果,从图7可见,本实施例提供的基于单目图像的模型训练方法训练出的图像匹配模型(“our+proxy+ft”项)的识别能力明显优于其他项现有最先进的无监督方法。
[0072]
请参照图8,本实施例还提供一种基于单目图像的模型训练装置110,所述装置包括图像获取模块111、第一光流预测模块112及第二光流预测模块113。
[0073]
所述图像获取单元111用于获取单目图像采集装置在不同时间点采集的第一训练图和第二训练图。
[0074]
所述第一光流预测模块112用于根据所述第一训练图及第二训练图之间的光度损失,获得从所述第一训练图到第二训练图的第一光流预测结果;
[0075]
所述第二光流预测模块113用于将所述第一光流预测结果作为代理标记,使用所述第一训练图和第二训练图进行光流预测的代理学习。
[0076]
综上所述,本申请提供的基于单目图像的模型训练方法、装置及图像处理设备,通过将双目图像匹配看作光流预测的特例,采用代理学习的方式,将不同时间点采集的两个单目图像作为训练样本得到的第一光流预测结果作为代理标记,用于指导模型进行再次光流预测的学习。如此,可以在不依赖校正好的双目图像样本的情况下双目图像立体匹配的自监督学习,使用同一个模型进行预测光流和立体匹配。
[0077]
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0078]
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0079]
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计
算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,randomaccess memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0080]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个......”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。