CN111583345A - 一种相机参数的获取方法、装置、设备及存储介质 - Google Patents
一种相机参数的获取方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111583345A CN111583345A CN202010387692.5A CN202010387692A CN111583345A CN 111583345 A CN111583345 A CN 111583345A CN 202010387692 A CN202010387692 A CN 202010387692A CN 111583345 A CN111583345 A CN 111583345A
- Authority
- CN
- China
- Prior art keywords
- model
- camera
- depthnet
- motionnet
- image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C25/00—Manufacturing, calibrating, cleaning, or repairing instruments or devices referred to in the other groups of this subclass
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Manufacturing & Machinery (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Image Analysis (AREA)
Abstract
本申请公开了一种相机参数的获取方法、装置、设备及存储介质,包括:收集单目相机拍摄的原始连续帧图像;构建DepthNet模型和MotionNet模型;DepthNet模型包括用于输出单通道深度图的网络;MotionNet模型包括用于相机运动预测和给出像素置信度掩码的主干网络和用于相机内参预测的支线网络;将原始连续帧图像经预处理后输入至构建的模型中,并通过联合损失函数对其进行无监督训练,及进行超参数的调优;通过训练好的模型对待测图像进行处理,输出每帧图像的深度图,相机运动,相机内参和包含场景运动信息的像素置信度掩码。这样无需对相机进行标定,直接输入视频,即可获取相机内参、相机运动及每一帧的深度图。
Description
技术领域
本发明涉及计算机视觉和摄影测量领域,特别是涉及一种相机参数的获取方法、装置、设备及存储介质。
背景技术
作为计算机视觉的主要工具之一,相机以及围绕相机的各种算法具有重要的地位。其中摄影测量学主要研究相机的成像原理,并关注如何从相机拍摄的图片中获取真实世界信息。对于计算机视觉和摄影测量的各种应用,例如工业控制、自动驾驶、机器人导航寻路等场景,相机内参、相机运动和景深都具有重要的价值,大量涉及到摄影测量以及相机成像性质的计算过程都需要以这三种信息作为输入。
相机的内参包含相机的焦距等信息,相机的自我运动也称ego-motion,包含了相机本身的位置变换信息,而景深表达了相机视野中每一点与相机光学中心的距离,通常用深度图表示。一般把获取相机内参和外参的过程称为相机标定(Camera Calibrate),获取ego-motion的过程称为视觉里程计(Visual Odometry,VO)。
对于相机内参、ego-motion和景深信息,基于非深度学习的现有方法通常使用独立的技术分别获取。用于获取内参的方法需要使用相机拍摄数张(通常需要20张左右)不同角度的标定板图像,在相机需要进行频繁调整的时候,不得不频繁的进行标定,而对于相机设备不可访问的应用场景,这种标定方法是不可用的。用于获取ego-motion和景深信息的方法具有相似的缺陷:这些方法的正常工作需要一些假设(即场景静态假设,场景一致性假设和朗伯面假设),任何破坏这些假设的工况均会影响相应方法的正常工作。基于深度学习的技术可以不同程度的摆脱对于前置假设的依赖,并且能同步获取ego-motion和景深信息,使用便利性有所提升。但是仍然需要输入相机的内参,因此不能完全摆脱相机标定方法所带来的不便性。
因此,如何解决现有方案需要进行相机标定以及需要大量监督学习数据等限制的问题,是本领域技术人员亟待解决的技术问题。
发明内容
有鉴于此,本发明的目的在于提供一种相机参数的获取方法、装置、设备及存储介质,可以无监督学习,无需对相机进行标定,以单目相机拍摄的连续帧为输入,输出每一帧的深度图、拍摄过程中相机的运动和相机的内参。
其具体方案如下:
一种相机参数的获取方法,包括:
收集单目相机拍摄的原始连续帧图像;
构建DepthNet模型和MotionNet模型;所述DepthNet模型包括用于输出单通道深度图的网络;所述MotionNet模型包括用于相机运动预测和给出像素置信度掩码的主干网络和用于相机内参预测的支线网络;
将所述原始连续帧图像经预处理后分别输入至构建的所述DepthNet模型和所述MotionNet模型中,并通过联合损失函数对所述DepthNet模型和所述MotionNet模型进行无监督训练,以及进行超参数的调优;
通过训练好的所述DepthNet模型和所述MotionNet模型对待测图像进行处理,输出每帧所述待测图像的深度图,相机的运动,相机的内参和包含场景运动信息的像素置信度掩码。
优选地,在本发明实施例提供的上述相机参数的获取方法中,所述DepthNet模型由第一编码器和第一解码器构成;
将所述原始连续帧图像经预处理后输入至所述DepthNet模型中进行训练,具体包括:
通过所述第一编码器获取预处理后的三通道图像,并将所述三通道图像逐次编码为多种粒度的特征;
使用所述第一解码器联合不同粒度的特征进行解码;
通过所述第一解码器输出尺寸与输入的所述三通道图像尺寸相同的单通道深度图。
优选地,在本发明实施例提供的上述相机参数的获取方法中,通过所述第一编码器将所述三通道图像逐次编码为多种粒度的特征,使用所述第一解码器联合不同粒度的特征进行解码,具体包括:
在所述第一编码器中,通过一个卷积核大小为7×7的2D卷积,经过批标准化和线性整流单元后,形成第一级特征编码;
连接一个最大池化层和两个第一残差模块,形成第二级特征编码;
交替连接第二残差模块和所述第一残差模块,分别形成第三级特征编码、第四级特征编码和第五级特征编码;
将所述第一级特征编码、所述第二级特征编码、所述第三级特征编码、所述第四级特征编码和所述第五级特征编码输入至所述第一解码器;
在所述第一解码器中,交替使用2D转置卷积和2D卷积,并逐级地组合五个层级的特征编码,在输出层采用softplus激活函数进行输出。
优选地,在本发明实施例提供的上述相机参数的获取方法中,所述主干网络由第二编码器和第二解码器构成;
将所述原始连续帧图像经预处理后输入至所述MotionNet模型中进行训练,具体包括:
通过所述第二编码器获取预处理后的相邻两帧图像;
在所述第二编码器中,使用7个级联3×3的2D卷积层,在瓶颈部分连接一个1×1的卷积层,将输出通道数压缩到六个,前三个通道输出相机的平移,后三个通道输出相机的旋转;
在所述第二解码器中,采用两条并列的卷积通路并使用short-cut连接,将卷积输出和双线性插值的输出组合,形成Refine模块的输出,输出一个像素级置信度掩码,用于在联合损失函数计算时确定每个像素是否参与计算,同时对所述像素级置信度掩码增加一个惩罚函数,用于防止训练退化;
通过连接在所述主干网络的最底层编码器上的所述支线网络输出相机的内参矩阵。
优选地,在本发明实施例提供的上述相机参数的获取方法中,输出相机的内参矩阵,具体包括:
在所述支线网络中,将网络预测值乘以图像的宽和高为实际焦距;
将网络预测值加上0.5,并乘以图像的宽和高,获得主点的像素坐标;
将焦距对角化为2×2的对角矩阵,连接主点坐标构成的列向量,再添加行向量,构成3×3内参矩阵。
优选地,在本发明实施例提供的上述相机参数的获取方法中,对所述原始连续帧图像预处理,包括:
对所述原始连续帧图像进行分辨率的调整,并进行排列和拼接,以拼接为多张三联帧图像;
当每张所述三联帧图像输入至所述DepthNet模型中,输出每一帧图像的深度图;
当每张所述三联帧图像输入至所述MotionNet模型中,输出四次每相邻两帧图像之间的相机运动,相机的内参和像素置信度掩码。
优选地,在本发明实施例提供的上述相机参数的获取方法中,所述联合损失函数采用下述公式进行计算:
本发明实施例还提供了一种相机参数的获取装置,包括:
图像收集模块,用于收集单目相机拍摄的原始连续帧图像;
模型构建模块,用于构建DepthNet模型和MotionNet模型;所述DepthNet模型包括用于输出单通道深度图的网络;所述MotionNet模型包括用于相机运动预测和给出像素置信度掩码的主干网络和用于相机内参预测的支线网络;
模型训练模块,用于将所述原始连续帧图像经预处理后分别输入至构建的所述DepthNet模型和所述MotionNet模型中,并通过联合损失函数对所述DepthNet模型和所述MotionNet模型进行无监督训练,以及进行超参数的调优;
模型预测模块,用于通过训练好的所述DepthNet模型和所述MotionNet模型对待测图像进行处理,输出每帧所述待测图像的深度图,相机的运动,相机的内参和包含场景运动信息的像素置信度掩码。
本发明实施例还提供了一种相机参数的获取设备,包括处理器和存储器,其中,所述处理器执行所述存储器中保存的计算机程序时实现如本发明实施例提供的上述相机参数的获取方法。
本发明实施例还提供了一种计算机可读存储介质,用于存储计算机程序,其中,所述计算机程序被处理器执行时实现如本发明实施例提供的上述相机参数的获取方法。
从上述技术方案可以看出,本发明所提供的一种相机参数的获取方法、装置、设备及存储介质,包括:收集单目相机拍摄的原始连续帧图像;构建DepthNet模型和MotionNet模型;DepthNet模型包括用于输出单通道深度图的网络;MotionNet模型包括用于相机运动预测和给出像素置信度掩码的主干网络和用于相机内参预测的支线网络;将原始连续帧图像经预处理后分别输入至构建的DepthNet模型和MotionNet模型中,并通过联合损失函数对DepthNet模型和MotionNet模型进行无监督训练,以及进行超参数的调优;通过训练好的DepthNet模型和MotionNet模型对待测图像进行处理,输出每帧待测图像的深度图,相机的运动,相机的内参和包含场景运动信息的像素置信度掩码。
本发明不需要对相机进行标定,对使用场景没有额外的限制,直接输入单目相机拍摄的任意视频,即可获取拍摄期间的相机运动轨迹、每一帧的深度图以及相机的内参,并且在相机内参未知的情况下,使用联合损失函数进行无监督学习,可以保证训练正常进行;另外,为需要相机内参、相机运动和深度图的计算机视觉应用提供了一种约束较少的前端解决方案,具有良好的应用价值。
附图说明
为了更清楚地说明本发明实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的相机参数的获取方法的流程图;
图2为本发明实施例提供的DepthNet模型中第一编码器的结构示意图;
图3为本发明实施例提供的第一编码器中第一残差模块的结构示意图;
图4为本发明实施例提供的第一编码器中第二残差模块的结构示意图;
图5为本发明实施例提供的DepthNet模型中第一解码器的结构示意图;
图6为本发明实施例提供的MotionNet模型中主干网络的结构示意图;
图7为本发明实施例提供的主干网络中Refine模块的结构示意图;
图8为本发明实施例提供的MotionNet模型中支线网络的结构示意图;
图9为本发明实施例提供的训练数据的排列方式示意图;
图10为本发明实施例提供的相机参数的获取装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供一种相机参数的获取方法,如图1所示,包括以下步骤:
S101、收集单目相机拍摄的原始连续帧图像;需要说明的是,收集的原始连续帧图像可以从KITTI数据集中抽取出;
S102、构建DepthNet模型和MotionNet模型;DepthNet模型包括用于输出单通道深度图的网络;MotionNet模型包括用于相机运动预测和给出像素置信度掩码的主干网络和用于相机内参预测的支线网络;需要说明的是,内参预测的功能使得本发明能够从未知来源的任意视频中提取精确的相机运动和景深信息而无需进行相机标定;
S103、将原始连续帧图像经预处理后分别输入至构建的DepthNet模型和MotionNet模型中,并通过联合损失函数对DepthNet模型和MotionNet模型进行无监督训练,以及进行超参数的调优;需要说明的是,联合损失函数是由重投影误差、深度平滑损失和像素置信度掩码的正则化惩罚函数构成,联合损失函数使用单目相机拍摄的连续帧之间的关系作为监督信号的来源,为深度模型提供训练动力,是实现无监督学习的关键;另外,本发明提出的模型中主要含有学习率、损失函数权重,batch size这些超参数,为了获得最佳的组合,需要对其进行调优;
S104、通过训练好的DepthNet模型和MotionNet模型对待测图像进行处理,输出每帧待测图像的深度图,相机的运动,相机的内参和包含场景运动信息的像素置信度掩码。
在本发明实施例提供的上述相机参数的获取方法中,DepthNet模型和MotionNet模型是无监督深度学习模型,不需要对相机进行标定,对使用场景没有额外的限制,直接输入单目相机拍摄的任意视频,即可获取拍摄期间的相机运动轨迹、每一帧的深度图以及相机的内参,并且在相机内参未知的情况下,使用联合损失函数进行无监督学习,可以保证训练正常进行;另外,为需要相机内参、相机运动和深度图的计算机视觉应用提供了一种约束较少的前端解决方案,具有良好的应用价值。
在实际应用中,上述模型可以使用PyTorch实现,训练使用一台深度学习工作站,CPU为两块Intel Xeon E5 2678v3,64GB主存,4块NVIDIA GeForce GTX 1080Ti,每块显卡具有12GB的显存。本发明将这台机器进行了并行优化,具体将epochs设置为4的倍数,数据的读取阶段,两块CPU各自加载一半的数据,存储到各自对应的主存中,由于该机型的四块显卡为每块CPU通过PCI-E通道直接连接两块显卡,因此本发明这种两块CPU分别加载数据的方式能够最大限度的利用各条PCI-E通道的带宽,有助于减少数据传输的时间。数据由主存传输到显存之后,四块显卡分别开始各自的梯度过程,当四块显卡各自耗尽这一批数据后,到达程序的同步点,将各自的梯度信息汇报给CPU,由CPU进行梯度汇总和模型的更新,然后进入下一次的循环。最终实现的效果是GPU进行梯度运算时,CPU在进行数据的读取和准备,从而尽可能地减少GPU的停机时间,提升总体的运行效率。
在具体实施时,在本发明实施例提供的上述相机参数的获取方法中,DepthNet模型可以由第一编码器和第一解码器构成;DepthNet模型的输入是一张单目相机拍摄的三通道图片,通过编码器-解码器结构,输出一张尺寸与输入相同的单通道深度图。这相当于对输入图像的每一个像素进行了编码。此外,由于模型的复杂度较大,为了确保梯度的有效传递,使深层网络也能接受良好的训练,模型采用了大量的残差模块(Residual BuildingBlocks)。
上述步骤S103将原始连续帧图像经预处理后输入至DepthNet模型中进行训练,具体可以包括:首先,通过第一编码器获取预处理后的三通道图像,并将三通道图像逐次编码为多种粒度的特征;然后,使用第一解码器联合不同粒度的特征进行解码;最后,通过第一解码器输出尺寸与输入的三通道图像尺寸相同的单通道深度图。如图2所示,第一编码器可以输出五种粒度的特征。
进一步地,在具体实施时,上述步骤中通过第一编码器将三通道图像逐次编码为多种粒度的特征,使用第一解码器联合不同粒度的特征进行解码,具体可以包括:在第一编码器中,首先通过一个卷积核大小为7×7的2D卷积,经过批标准化(Batch Normalize)和线性整流单元后,形成第一级特征编码;随后连接一个最大池化层和两个第一残差模块(residual_block_A),形成第二级特征编码;最后交替连接第二残差模块(residual_block_B)和第一残差模块,分别形成第三级特征编码、第四级特征编码和第五级特征编码;接下来,将第一级特征编码、第二级特征编码、第三级特征编码、第四级特征编码和第五级特征编码输入至第一解码器;在第一解码器中,交替使用2D转置卷积和2D卷积,并逐级地组合五个层级的特征编码,在输出层采用softplus激活函数进行输出。
需要说明的是,在第一编码器中含有两种残差模块,residual_block_A和residual_block_B。其中,如图3所示,residual_block_A主要由两个3×3卷积层构成,这两个卷积层的输出通道数取值于该残差模块的输入通道数,因此residual_block_A不会改变张量的通道数。残差模块中两个连续的卷积层这一部分称为主分支,而从输入端直接连通到主分支的输出端的分支路径称为short-cut。residual_block_B的主分支与residual_block_A类似,但是short-cut的形式中含有一些条件判断逻辑;如图4所示,当输入通道数和输出通道数不相等时,short-cut在输入张量的基础上进行一个1×1卷积,并且通过这层卷积将输入和输出通道数调整到一致;当输入通道数和输出通道数相等时,进一步判断步长的大小。当步长为1时,short-cut为输入张量,而步长不为1时,输出张量的维度将与输入张量的维度不相等,为了补偿维度差异,在输入张量上增加一个最大池化层。如图2所示,out_channels和stride由该模块外部输入,三个out分别表示三种情况下的输出。
另外,需要说明的是,如图5所示,第一解码器是以第一编码器的五级特征编码为输入,通过2D转置卷积和2D卷积的交替使用,并逐级地组合五个层级的特征编码,在输出层采用softplus激活函数,最终输出一张尺寸与编码器的输入相等的单通道深度图。图5中的concat_and_pad是一个复合操作,首先将来自2D转置卷积的输出与下一级编码器输出在第三个维度上连接,然后再执行一次延拓,将结果输入到后续的2D卷积中。最终输出的深度图尺寸为[B,h,w,1],其中B代表batch size,h和w代表图片的高和宽,1代表深度图的通道数为1。
在具体实施时,在本发明实施例提供的上述相机参数的获取方法中,MotionNet模型中的主干网络可以由第二编码器和第二解码器构成。
上述步骤S103将原始连续帧图像经预处理后输入至MotionNet模型中进行训练,具体可以包括:首先,通过第二编码器获取预处理后的相邻两帧图像;然后,如图6所示,在第二编码器中,使用7个级联的卷积核大小为3×3的2D卷积层,在第二编码器的瓶颈部分连接一个1×1的卷积层,将输出通道数压缩到六个,前三个通道输出相机的平移,后三个通道输出相机的旋转;之后,在第二解码器中,采用两条并列的卷积通路并使用类似残差模块的short-cut连接,将卷积输出和双线性插值的输出组合,形成Refine模块的输出,输出一个像素级置信度掩码,用于在联合损失函数计算时确定每个像素是否参与计算,被排除掉的像素由于场景的平移、旋转、遮挡等因素不能参与重投影损失的计算,同时对像素级置信度掩码增加一个惩罚函数,用于防止训练退化;最后,通过连接在主干网络的最底层编码器上的支线网络输出相机的内参矩阵。
需要了解的是,在MotionNet的主干网络中,第二解码器是由Refine模块组成,如图7所示,conv_input代表解码器侧输入,Refine_input代表前一级Refine的输出。为了解决分辨率的不同,本发明使用双线性插值对前一级Refine的输出调整尺寸。
在具体实施时,在本发明实施例提供的上述相机参数的获取方法中,输出相机的内参矩阵,具体包括:在支线网络中,将网络预测值乘以图像的宽和高为实际焦距;将网络预测值加上0.5,并乘以图像的宽和高,获得主点的像素坐标;将焦距对角化为2×2的对角矩阵,连接主点坐标构成的列向量,再添加行向量,构成3×3内参矩阵。
具体地,如图8所示,左侧的“bottleneck”代表主干网络的编码器输出的最底层特征,其大小为[B,1,1,1024],B代表batch size,并列的两个1×1卷积分别用来预测内参矩阵中的焦距fx、fy和主点坐标cx、cy,为了方便网络学习,实际上两路卷积预测的都是一个较小的数字。对于焦距来讲,此处预测实际焦距与图像宽度和高度的比值,因此本发明将网络预测值乘以图像的宽和高。对于主点坐标来讲,此处预测坐标值占图像宽和高的比值,由于主点位置趋向于图像的中心,因此,本发明将网络预测值加上0.5,然后再乘以宽度和高度以获得主点的像素坐标。最后,将焦距对角化为2×2的对角矩阵,连接主点坐标构成的列向量,再添加行向量[0,0,1],最终构成3×3内参矩阵。
在具体实施时,在本发明实施例提供的上述相机参数的获取方法中,步骤S103中对原始连续帧图像预处理,可以包括:对原始连续帧图像进行分辨率的调整,并进行排列和拼接,以拼接为多张三联帧图像;当每张三联帧图像输入至DepthNet模型中,输出每一帧图像的深度图;当每张三联帧图像输入至MotionNet模型中,输出四次每相邻两帧图像之间的相机运动,相机的内参和像素置信度掩码。
需要了解的是,根据本发明采用的模型和训练方法,DepthNet模型的每一次训练需要一张单目彩色图像(即三通道图像),MotionNet模型的每一次训练需要时间上连续的两张图像(即相邻两帧图像),为了提高数据的读取效率,本发明需要对原始连续帧图像进行预处理,如图9所示,将每连续的三张图像拼接成一张,(a)代表数据集中的原始连续帧图像,(b)代表预处理后拼接在一起的三联帧图像,经过这样的处理后,每取一张三联帧图像,可以获得两对相邻的图片。为了降低运算压力,在拼接的同时,对原图进行等比缩小,最终所有图像的分辨率可以统一为416×128,单张三联帧图像的分辨率可以为1248×128。
具体地,训练过程以三联帧为单位进行。每读出一张三联帧,首先使用DepthNet模型生成每一帧的深度图,然后使用MotionNet模型生成第1帧到第2帧的相机运动、像素置信度掩码和相机内参,同理再生成第2帧到第3帧、第3帧到第2帧、第2帧到第1帧,这样就获得了四次相机内参的预测,对这四次内参值取平均数,作为这一组三联关联的内参。然后,每两个相邻帧之间可以使用一次联合损失函数,所以一共能使用四次(即1-2、2-3、3-2、2-1),累加这四次损失函数值,作为这一组三联帧关联的损失函数值。在实际训练时,每次读取数据会得到batch size个三联帧,这些帧会进行并行计算,然后进行反向传播,对模型进行更新。
在具体实施时,在本发明实施例提供的上述相机参数的获取方法中,联合损失函数可以采用下述公式进行计算:
其中,Ltotal为联合损失函数,LR为重投影误差函数,a为重投影误差函数的权值,为深度平滑损失(也称深度值的L1范数,深度图的离群点和尖锐点越多,平滑损失越大),b为深度平滑损失的权值,Λ为像素置信度掩码的正则化惩罚函数,c为惩罚函数的权值。
式(1)中LR为:
式(1)中的重投影方法为:
其中,K为相机内参,R为相机旋转矩阵,t为相机平移向量,ps为重投影之后的像素坐标,pt为投影前的像素坐标,Ds(ps)为像素坐标ps处对应的重投影之后的深度值,Dt(pt)为重投影之前的像素坐标pt所对应的深度值。
式(1)中的Λ为:
其含义为对所有的H(i,j)取平均值。H(i,j)的定义为:
H(i,j)=-∑i,jM(i,j)log(s(i,j)) (5)
其含义为对S(i,j)取交叉熵,S(i,j)的定义为:
惩罚函数Λ可以避免网络将所有的像素置信度掩码都预测为“不可信”(即对于每个像素位置(i,j),都取0,这种情况下损失函数的最主要部分LR会直接为0,因为深度学习倾向于使损失函数尽量小,在不采用惩罚函数的情况下,很容易陷入这种“全部不可信”的情况,这时虽然损失函数很小,但是却没有实际任何意义)。惩罚函数Λ会在置信度掩码中“不可信像素”越多的时候取得越大的值。
基于同一发明构思,本发明实施例还提供了一种相机参数的获取装置,由于该相机参数的获取装置解决问题的原理与前述一种相机参数的获取方法相似,因此该相机参数的获取装置的实施可以参见相机参数的获取方法的实施,重复之处不再赘述。
在具体实施时,本发明实施例提供的相机参数的获取装置,如图10所示,具体包括:
图像收集模块11,用于收集单目相机拍摄的原始连续帧图像;
模型构建模块12,用于构建DepthNet模型和MotionNet模型;所述DepthNet模型包括用于输出单通道深度图的网络;所述MotionNet模型包括用于相机运动预测和给出像素置信度掩码的主干网络和用于相机内参预测的支线网络;
模型训练模块13,用于将所述原始连续帧图像经预处理后分别输入至构建的所述DepthNet模型和所述MotionNet模型中,并通过联合损失函数对所述DepthNet模型和所述MotionNet模型进行无监督训练,以及进行超参数的调优;
模型预测模块14,用于通过训练好的所述DepthNet模型和所述MotionNet模型对待测图像进行处理,输出每帧所述待测图像的深度图,相机的运动,相机的内参和包含场景运动信息的像素置信度掩码。
在本发明实施例提供的上述相机参数的获取装置中,可以通过上述四个模块的相互作用,不需要对相机进行标定,不需要使用全局信息的优点,仅需要在相机具有平移和旋转运动时进行视频录制,即可获得包括相机内参和深度图等在内的重要数据,可以作为其他计算机视觉应用的前置算法,使用场景限制小,应用方便。
关于上述各个模块更加具体的工作过程可以参考前述实施例公开的相应内容,在此不再进行赘述。
相应的,本发明实施例还公开了一种相机参数的获取设备,包括处理器和存储器;其中,处理器执行存储器中保存的计算机程序时实现前述实施例公开的相机参数的获取方法。
关于上述方法更加具体的过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
进一步的,本发明还公开了一种计算机可读存储介质,用于存储计算机程序;计算机程序被处理器执行时实现前述公开的相机参数的获取方法。
关于上述方法更加具体的过程可以参考前述实施例中公开的相应内容,在此不再进行赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置、设备、存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
综上,本发明实施例提供的一种相机参数的获取方法、装置、设备及存储介质,包括:收集单目相机拍摄的原始连续帧图像;构建DepthNet模型和MotionNet模型;DepthNet模型包括用于输出单通道深度图的网络;MotionNet模型包括用于相机运动预测和给出像素置信度掩码的主干网络和用于相机内参预测的支线网络;将原始连续帧图像经预处理后分别输入至构建的DepthNet模型和MotionNet模型中,并通过联合损失函数对DepthNet模型和MotionNet模型进行无监督训练,以及进行超参数的调优;通过训练好的DepthNet模型和MotionNet模型对待测图像进行处理,输出每帧待测图像的深度图,相机的运动,相机的内参和包含场景运动信息的像素置信度掩码。本发明不需要对相机进行标定,对使用场景没有额外的限制,直接输入单目相机拍摄的任意视频,即可获取拍摄期间的相机运动轨迹、每一帧的深度图以及相机的内参,并且在相机内参未知的情况下,使用联合损失函数进行无监督学习,可以保证训练正常进行;另外,为需要相机内参、相机运动和深度图的计算机视觉应用提供了一种约束较少的前端解决方案,具有良好的应用价值。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的相机参数的获取方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种相机参数的获取方法,其特征在于,包括:
收集单目相机拍摄的原始连续帧图像;
构建DepthNet模型和MotionNet模型;所述DepthNet模型包括用于输出单通道深度图的网络;所述MotionNet模型包括用于相机运动预测和给出像素置信度掩码的主干网络和用于相机内参预测的支线网络;
将所述原始连续帧图像经预处理后分别输入至构建的所述DepthNet模型和所述MotionNet模型中,并通过联合损失函数对所述DepthNet模型和所述MotionNet模型进行无监督训练,以及进行超参数的调优;
通过训练好的所述DepthNet模型和所述MotionNet模型对待测图像进行处理,输出每帧所述待测图像的深度图,相机的运动,相机的内参和包含场景运动信息的像素置信度掩码。
2.根据权利要求1所述的相机参数的获取方法,其特征在于,所述DepthNet模型由第一编码器和第一解码器构成;
将所述原始连续帧图像经预处理后输入至所述DepthNet模型中进行训练,具体包括:
通过所述第一编码器获取预处理后的三通道图像,并将所述三通道图像逐次编码为多种粒度的特征;
使用所述第一解码器联合不同粒度的特征进行解码;
通过所述第一解码器输出尺寸与输入的所述三通道图像尺寸相同的单通道深度图。
3.根据权利要求2所述的相机参数的获取方法,其特征在于,通过所述第一编码器将所述三通道图像逐次编码为多种粒度的特征,使用所述第一解码器联合不同粒度的特征进行解码,具体包括:
在所述第一编码器中,通过一个卷积核大小为7×7的2D卷积,经过批标准化和线性整流单元后,形成第一级特征编码;
连接一个最大池化层和两个第一残差模块,形成第二级特征编码;
交替连接第二残差模块和所述第一残差模块,分别形成第三级特征编码、第四级特征编码和第五级特征编码;
将所述第一级特征编码、所述第二级特征编码、所述第三级特征编码、所述第四级特征编码和所述第五级特征编码输入至所述第一解码器;
在所述第一解码器中,交替使用2D转置卷积和2D卷积,并逐级地组合五个层级的特征编码,在输出层采用softplus激活函数进行输出。
4.根据权利要求3所述的相机参数的获取方法,其特征在于,所述主干网络由第二编码器和第二解码器构成;
将所述原始连续帧图像经预处理后输入至所述MotionNet模型中进行训练,具体包括:
通过所述第二编码器获取预处理后的相邻两帧图像;
在所述第二编码器中,使用7个级联3×3的2D卷积层,在瓶颈部分连接一个1×1的卷积层,将输出通道数压缩到六个,前三个通道输出相机的平移,后三个通道输出相机的旋转;
在所述第二解码器中,采用两条并列的卷积通路并使用short-cut连接,将卷积输出和双线性插值的输出组合,形成Refine模块的输出,输出一个像素级置信度掩码,用于在联合损失函数计算时确定每个像素是否参与计算,同时对所述像素级置信度掩码增加一个惩罚函数,用于防止训练退化;
通过连接在所述主干网络的最底层编码器上的所述支线网络输出相机的内参矩阵。
5.根据权利要求4所述的相机参数的获取方法,其特征在于,输出相机的内参矩阵,具体包括:
在所述支线网络中,将网络预测值乘以图像的宽和高为实际焦距;
将网络预测值加上0.5,并乘以图像的宽和高,获得主点的像素坐标;
将焦距对角化为2×2的对角矩阵,连接主点坐标构成的列向量,再添加行向量,构成3×3内参矩阵。
6.根据权利要求1所述的相机参数的获取方法,其特征在于,对所述原始连续帧图像预处理,包括:
对所述原始连续帧图像进行分辨率的调整,并进行排列和拼接,以拼接为多张三联帧图像;
当每张所述三联帧图像输入至所述DepthNet模型中,输出每一帧图像的深度图;
当每张所述三联帧图像输入至所述MotionNet模型中,输出四次每相邻两帧图像之间的相机运动,相机的内参和像素置信度掩码。
8.一种相机参数的获取装置,其特征在于,包括:
图像收集模块,用于收集单目相机拍摄的原始连续帧图像;
模型构建模块,用于构建DepthNet模型和MotionNet模型;所述DepthNet模型包括用于输出单通道深度图的网络;所述MotionNet模型包括用于相机运动预测和给出像素置信度掩码的主干网络和用于相机内参预测的支线网络;
模型训练模块,用于将所述原始连续帧图像经预处理后分别输入至构建的所述DepthNet模型和所述MotionNet模型中,并通过联合损失函数对所述DepthNet模型和所述MotionNet模型进行无监督训练,以及进行超参数的调优;
模型预测模块,用于通过训练好的所述DepthNet模型和所述MotionNet模型对待测图像进行处理,输出每帧所述待测图像的深度图,相机的运动,相机的内参和包含场景运动信息的像素置信度掩码。
9.一种相机参数的获取设备,其特征在于,包括处理器和存储器,其中,所述处理器执行所述存储器中保存的计算机程序时实现如权利要求1至7任一项所述的相机参数的获取方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的相机参数的获取方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010387692.5A CN111583345B (zh) | 2020-05-09 | 2020-05-09 | 一种相机参数的获取方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010387692.5A CN111583345B (zh) | 2020-05-09 | 2020-05-09 | 一种相机参数的获取方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111583345A true CN111583345A (zh) | 2020-08-25 |
CN111583345B CN111583345B (zh) | 2022-09-27 |
Family
ID=72117146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010387692.5A Active CN111583345B (zh) | 2020-05-09 | 2020-05-09 | 一种相机参数的获取方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111583345B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112606000A (zh) * | 2020-12-22 | 2021-04-06 | 上海有个机器人有限公司 | 一种自动化标定机器人传感器参数的方法、标定房、设备以及计算机介质 |
CN114531580A (zh) * | 2020-11-23 | 2022-05-24 | 北京四维图新科技股份有限公司 | 图像处理方法及装置 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180231871A1 (en) * | 2016-06-27 | 2018-08-16 | Zhejiang Gongshang University | Depth estimation method for monocular image based on multi-scale CNN and continuous CRF |
CN108665496A (zh) * | 2018-03-21 | 2018-10-16 | 浙江大学 | 一种基于深度学习的端到端的语义即时定位与建图方法 |
US20180336704A1 (en) * | 2016-02-03 | 2018-11-22 | Sportlogiq Inc. | Systems and Methods for Automated Camera Calibration |
CN109191491A (zh) * | 2018-08-03 | 2019-01-11 | 华中科技大学 | 基于多层特征融合的全卷积孪生网络的目标跟踪方法及*** |
CN110009674A (zh) * | 2019-04-01 | 2019-07-12 | 厦门大学 | 基于无监督深度学习的单目图像景深实时计算方法 |
CN110148179A (zh) * | 2019-04-19 | 2019-08-20 | 北京地平线机器人技术研发有限公司 | 一种训练用于估计图像视差图的神经网络模型方法、装置及介质 |
CN110503680A (zh) * | 2019-08-29 | 2019-11-26 | 大连海事大学 | 一种基于非监督的卷积神经网络单目场景深度估计方法 |
CN110738697A (zh) * | 2019-10-10 | 2020-01-31 | 福州大学 | 基于深度学习的单目深度估计方法 |
-
2020
- 2020-05-09 CN CN202010387692.5A patent/CN111583345B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180336704A1 (en) * | 2016-02-03 | 2018-11-22 | Sportlogiq Inc. | Systems and Methods for Automated Camera Calibration |
US20180231871A1 (en) * | 2016-06-27 | 2018-08-16 | Zhejiang Gongshang University | Depth estimation method for monocular image based on multi-scale CNN and continuous CRF |
CN108665496A (zh) * | 2018-03-21 | 2018-10-16 | 浙江大学 | 一种基于深度学习的端到端的语义即时定位与建图方法 |
CN109191491A (zh) * | 2018-08-03 | 2019-01-11 | 华中科技大学 | 基于多层特征融合的全卷积孪生网络的目标跟踪方法及*** |
CN110009674A (zh) * | 2019-04-01 | 2019-07-12 | 厦门大学 | 基于无监督深度学习的单目图像景深实时计算方法 |
CN110148179A (zh) * | 2019-04-19 | 2019-08-20 | 北京地平线机器人技术研发有限公司 | 一种训练用于估计图像视差图的神经网络模型方法、装置及介质 |
CN110503680A (zh) * | 2019-08-29 | 2019-11-26 | 大连海事大学 | 一种基于非监督的卷积神经网络单目场景深度估计方法 |
CN110738697A (zh) * | 2019-10-10 | 2020-01-31 | 福州大学 | 基于深度学习的单目深度估计方法 |
Non-Patent Citations (4)
Title |
---|
吴炎桐: "基于无监督学习的相机位姿估计算法研究", 《中国优秀硕士学位论文全文数据库 (信息科技辑)》 * |
张春萍等: "光场相机成像模型及参数标定方法综述", 《中国激光》 * |
肖进胜等: "基于生成对抗网络的雾霾场景图像转换算法", 《计算机学报》 * |
路昊等: "基于深度学习的动态场景相机姿态估计方法", 《高技术通讯》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114531580A (zh) * | 2020-11-23 | 2022-05-24 | 北京四维图新科技股份有限公司 | 图像处理方法及装置 |
CN114531580B (zh) * | 2020-11-23 | 2023-11-21 | 北京四维图新科技股份有限公司 | 图像处理方法及装置 |
CN112606000A (zh) * | 2020-12-22 | 2021-04-06 | 上海有个机器人有限公司 | 一种自动化标定机器人传感器参数的方法、标定房、设备以及计算机介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111583345B (zh) | 2022-09-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111047516B (zh) | 图像处理方法、装置、计算机设备和存储介质 | |
CN111402130B (zh) | 数据处理方法和数据处理装置 | |
CN112308200B (zh) | 神经网络的搜索方法及装置 | |
CN112819910B (zh) | 基于双鬼注意力机制网络的高光谱图像重建方法 | |
CN110751649B (zh) | 视频质量评估方法、装置、电子设备及存储介质 | |
EP3872747B1 (en) | Video super resolution method | |
CN111192226B (zh) | 一种图像融合去噪方法及装置、*** | |
CN111583345B (zh) | 一种相机参数的获取方法、装置、设备及存储介质 | |
US20220414838A1 (en) | Image dehazing method and system based on cyclegan | |
CN112862689A (zh) | 一种图像超分辨率重建方法及*** | |
CN113850231A (zh) | 一种红外图像的转换训练方法、装置、设备及存储介质 | |
CN115115540A (zh) | 基于光照信息引导的无监督低光图像增强方法及装置 | |
CN114842400A (zh) | 基于残差块和特征金字塔的视频帧生成方法及*** | |
CN115546162A (zh) | 一种虚拟现实图像质量评估方法及*** | |
CN115565039A (zh) | 基于自注意力机制的单目输入动态场景新视图合成方法 | |
CN115661403A (zh) | 显式辐射场的处理方法、设备和存储介质 | |
CN111726621B (zh) | 一种视频转换方法及装置 | |
Yang et al. | Blind VQA on 360° video via progressively learning from pixels, frames, and video | |
CN112541972A (zh) | 一种视点图像处理方法及相关设备 | |
CN115209150A (zh) | 一种视频编码参数获取方法、装置、网络模型及电子设备 | |
CN115035173A (zh) | 基于帧间相关性的单目深度估计方法及*** | |
Nottebaum et al. | Efficient Feature Extraction for High-resolution Video Frame Interpolation | |
TWI472231B (zh) | 用於移動估計的視訊前處理方法與裝置 | |
CN117635478B (zh) | 一种基于空间通道注意力的低光照图像增强方法 | |
US20230377321A1 (en) | Low-power change-based neural network inference for image processing |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |