CN112258565A - 图像处理方法以及装置 - Google Patents
图像处理方法以及装置 Download PDFInfo
- Publication number
- CN112258565A CN112258565A CN201910663308.7A CN201910663308A CN112258565A CN 112258565 A CN112258565 A CN 112258565A CN 201910663308 A CN201910663308 A CN 201910663308A CN 112258565 A CN112258565 A CN 112258565A
- Authority
- CN
- China
- Prior art keywords
- image
- depth
- normal vector
- points
- normal
- 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/50—Depth or shape recovery
-
- 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
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/006—Mixed reality
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Life Sciences & Earth Sciences (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Computer Graphics (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computer Hardware Design (AREA)
- Geometry (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Analysis (AREA)
Abstract
本申请公开了人工智能领域中计算机视觉领域的一种图像处理方法及装置。其中,该图像处理方法,包括:获取待处理图像;根据目标单目深度估计网络对待处理图像进行深度预测处理,得到待处理图像的目标深度图像,该目标单目深度估计网络的参数是根据该目标单目深度估计网络对样本图像进行深度预测处理的图像损失确定的,该图像损失包括法向损失值,法向损失值是根据第一法向向量与第二法向向量之间的差异确定的;基于目标深度图像,预测待处理图像的深度值。本申请的技术方案能够提高单目深度估计网络预测图像深度的准确性。
Description
技术领域
本申请涉人工智能领域,更具体地,涉及计算机视觉领域中的图像处理方法以及装置。
背景技术
单目深度估计是计算机视觉领域中的重要问题,单目深度估计主要是指通过一张图像预测该图像中的每个像素点的深度,其中,由每个像素点的深度值组成的图片又可以称为深度图。单目深度估计对于自送驾驶领域中的障碍物检测、三维场景重建以及场景立体分析具有重要的意义。此外,单目深度估计还可以间接地提高计算机视觉任务的性能,比如,物体检测、目标跟踪以及目标识别。
目前,用于单目深度估计的网络模型即单目深度估计网络需要使用大量标记的样本图像进行训练。但是,目前对单目深度估计网络进行训练时训练图像受噪声影响较大,从而导致单目深度估计网络进行图像深度预测时的准确性较低。
发明内容
本申请提供一种图像处理方法以及装置,能够提高单目深度估计网络预测图像深度的准确性。
第一方面,提供了一种图像处理方法,包括:获取待处理图像;根据目标单目深度估计网络对该待处理图像进行深度预测处理,得到该待处理图像的目标深度图像,其中,该目标单目深度估计网络的参数是根据该目标单目深度估计网络对样本图像进行深度预测处理的图像损失确定的,该图像损失包括法向损失值,该图像损失在预设取值范围内,该法向损失值是根据第一法向向量与第二法向向量之间的差异确定的;该第一法向向量是指通过该样本图像的预测深度图像中的第一点集构建平面得到的法向向量,该第二法向向量是指通过样本深度图像中的第二点集构建平面得到的法向向量,该第一点集和该第二点集均为三维点的集合且对应该样本图像中的相同像素点,该第一点集和该第二点集的各个点集中任意两个点之间的距离大于或等于预设阈值,使得当该第一点集或该第二点集存中的点存在扰动时,该第一法向向量和该第二法向向量的偏差均在允许范围内;基于该目标深度图像,预测该待处理图像的深度值。
其中,样本图像的预测深度图像是指样本图像通过目标深度估计网络进行深度预测处理后得到的预测深度图像。
上述待处理图像可以是上述电子设备通过摄像头拍摄到的图像,或者,该待处理图像还可以是从电子设备内部获得的图像。
应理解,上述第一点集中的点存在扰动可以是指第一点集中用于构建第一平面的三维点的坐标存在扰动;第一点集中的点存在扰动可以是指第二点集中用于构建第二平面的三维点的坐标存在扰动。
例如,可以是指获取三维点时受到噪声的影响使得三维点的坐标产生一个扰动,可以假设第一点集中用于构建第一平面的三个点为(PA,PB,PC),由于噪声的影响使得PC点的坐标引入一个误差导致PC点扰动到PC1点,例如,可以是PC点的坐标在某一维度产生了0.05米的误差。
应理解,本申请实施例中构成第一平面的第一点集中的任意两个点之间的距离大于预设阈值,使得当构建第一平面的任意一个点由于引入噪声并不影响其第一平面的法向向量,即当获取点坐标引入误差时,构建最新平面的法向向量与不存在误差的点坐标构建的平面的法向向量之间的夹角在很小在误差允许范围内,即认为该法向向量对噪声影响具有鲁棒性。
基于本申请的技术方案,可以通过目标单目深度估计网络对待处理图像进行预测深度处理,得到待处理图像对应的目标深度图像,其中,目标单目深度估计网络可以是通过图像损失不断调整待训练单目深度估计网络的模型参数得到的,图像损失可以包括法向损失值,法向损失值可以是指样本图像对应的预测深度图像中大于或等于预设阈值的第一点集构建的第一平面的第一法向向量与样本图像对应的样本深度图像中大于或等于预设阈值的第二点集构建的第二平面的第二法向向量之间的角度偏差,本申请实施例的目标单目深度估计网络是基于图像全局几何结构的法向向量的数据训练得到的,即当第一点集或第二点集存中的点存在扰动时,第一法向向量和第二法向向量的偏差均在允许范围内,从而使得该目标单目深度估计网络进行预测深度处理时受噪声影响较小,能够提高目标单目深度估计网络预测图像深度的准确性。
结合第一方面,在第一方面的某些实现方式中,该第一点集和该第二点集的各个点集中任意三个点均不在同一条直线上。
在一种可能的实现方式中,该第一点集和该第二点集的各个点集中任意两个点构成的向量之间的夹角在第二预设范围中,其中,第二预设范围可以是根据目标神经网络对法向向量偏差的允许范围设定的。
结合第一方面,在第一方面的某些实现方式中,该第一点集和该第二点集的各个点集中任意两个点构成的向量之间的夹角大于或等于30度且小于或等于120度。
基于本申请的技术方案,为了进一步确保使得当第一点集或第二点集存中的点存在扰动时,第一法向向量和第二法向向量的偏差均在允许范围内,则可以对第一点集和第二点集中的点进行角度约束,从而确保通过第一点集和第二点集构建的平面的稳定性,即确保构建平面的法向向量的稳定性,进而保证通过法向损失训练后得到的目标单目深度估计网络预测深度的准确性。
在一种可能的实现方式中,第一点集可以满足距离约束和角度约束,其中,距离约束是指第一点集中任意两个点之间的距离大于或等于预设阈值;角度约束是指第一点集任意两个点构成的向量之间的夹角在第二预设取值范围内;同理,第二点集也可以满足上述距离约束和角度约束。
应理解,在本申请中只要第一点集和第二点集的各个点集中三维点的选取满足当第一点集或第二点集存中的点存在扰动时,第一法向向量和第二法向向量的偏差均在允许范围内,则均能够实现本申请实施的方案确保通过第一点集和第二点集构建的平面的稳定性,即确保构建平面的法向向量的稳定性,进而保证通过法向损失训练后得到的目标单目深度估计网络预测深度的准确性。
结合第一方面,在第一方面的某些实现方式中,该法向损失值是指该第一法向向量和该第二法向向量之间夹角的角度值;或者,该法向损失值是指该第一法向向量和该第二法向向量之间夹角的函数值,或者,该法向损失值是指该第一法向向量和该第二法向向量之差的函数值。在一种可能的实现方式中,法向损失值可以是指第一法向向量和第二法向向量之间夹角的正弦值。
在一种可能的实现方式中,法向损失值可以是指1与第一角度的余弦值的差值,第一角度可以是指第一法向向量和第二法向向量之间夹角。
在一种可能的实现方式中,法向损失值可以是指第一法向向量n1(x1,y1,z1)和第二法向向量n2(x2,y2,z2)之间坐标差异的函数值。
例如,上述函数值可以是指L1,其中,L1=|x1-x2|+|y1-y2|+|z1-z2|。
例如,上述函数值可以是指L2,其中,L2=|x1-x2|2+|y1-y2|2+|z1-z2|2。
结合第一方面,在第一方面的某些实现方式中,该预测图像的第一点集是根据该预测深度图像中像素点的二维坐标和该样本图像对应的相机参数得到的。
结合第一方面,在第一方面的某些实现方式中,该法向损失值是根据以下等式得到的:
其中,LN表示该法向损失值,N可以表示获取的第一点集的数量,第一点集与第二点集的数量相等,表示由该预测深度图像中的第i个该第一点集构建平面的法向向量,表示由该样本深度图像中第i个该第二点集构建平面的法向向量,,||||表示度量所述第一法向向量与所述第二法向向量之间差异的函数,PAi、PBi、PCi表示第i个该第一点集或者第i个该第二点集中包括的任意三个点。
结合第一方面,在第一方面的某些实现方式中,该图像损失还包括深度损失值,该深度损失值是指该预测深度图像的深度值相对于该样本深度图像的深度值的损失。
在一种可能的实现方式中,图像损失是通过对法向损失值和深度损失值加权处理得到的。
在一种可能的实现方式中,法向损失值可以对应第一权重值,深度损失值可以对应第二权重值,其中,法向损失值乘以第一权重值与深度损失值乘以第二权重值后可以处于相同的数量级。
基于本申请的技术方案,目标单目深度估计网络可以均衡考虑深度损失值和法向损失值两方面的损失,从而在对待处理图像进行预测深度时,不仅考虑了深度值损失同时也考虑了基于图像上的点构建平面的法向损失,从而提高了单目深度估计网络预测图像深度值的准确性。
结合第一方面,在第一方面的某些实现方式中,该目标单目深度估计网络的参数是基于该法向损失值和该深度损失值通过反向传播算法多次迭代得到的。
在一种可能的实现方式中,该预设阈值可以是根据目标神经网络对法向向量偏差的允许范围设定的。
结合第一方面,在第一方面的某些实现方式中,该预设阈值为0.6。
第二方面,提供了一种单目深度估计网络的训练方法,包括:获取训练图像,该训练图像中包括样本图像和样本图像对应的样本深度图像;将该样本图像输入至待训练的单目深度估计网络,得到该样本图像的预测深度图像;根据该预测深度图像和该样本深度图像之间的图像损失对单目深度估计网络进行训练,得到目标单目深度估计网络,其中,该目标单目深度估计网络用于预测待处理图像的深度值,其中,该目标单目深度估计网络的图像损失在预设取值范围内,该图像损失可以包括法向损失值,该法向损失值是根据第一法向向量与第二法向向量之间的差异确定的;该第一法向向量是指通过该样本图像的预测深度图像中的第一点集构建平面得到的法向向量,该第二法向向量是指通过样本深度图像中的第二点集构建平面得到的法向向量,该第一点集和该第二点集均为三维点的集合且对应该样本图像中的相同像素点,该第一点集和该第二点集的各个点集中任意两个点之间的距离大于或等于预设阈值,使得当该第一点集或该第二点集存中的点存在扰动时,该第一法向向量和该第二法向向量的偏差均在允许范围内。
应理解,通过图像损失对待训练的单目深度估计网络进行训练,使得待训练的单目深度估计网络得到的预测深度图像和样本深度图像之间的图像损失在预设取值范围内时,得到完成训练的目标深度估计网络。
其中,训练图像可以是上述电子设备通过摄像头拍摄到的图像,或者,该训练图像还可以是从电子设备内部获得的图像。
应理解,上述第一点集中的点存在扰动可以是指第一点集中用于构建第一平面的三维点的坐标存在扰动;第二点集中的点存在扰动可以是指第二点集中用于构建第二平面的三维点的坐标存在扰动。
例如,可以是指获取三维点时受到噪声的影响使得三维点的坐标产生一个扰动,可以假设第一点集中用于构建第一平面的三个点为(PA,PB,PC),由于噪声的影响使得PC点的坐标引入一个误差导致PC点扰动到PC1点,例如,可以是PC点的坐标在某一维度产生了0.05米的误差。
应理解,本申请实施例中构成第一平面的第一点集中的任意两个点之间的距离大于预设阈值,使得当构建第一平面的任意一个点由于引入噪声并不影响其第一平面的法向向量,即当获取点坐标引入误差时,构建最新平面的法向向量与不存在误差的点坐标构建的平面的法向向量之间的夹角在很小在误差允许范围内,即认为该法向向量对噪声影响具有鲁棒性。
基于本申请的技术方案,目标单目深度估计网络可以是通过图像损失不断调整待训练单目深度估计网络的模型参数得到的,图像损失可以包括法向损失值,法向损失值可以是指样本图像对应的样本深度图像中大于或等于预设阈值的第一点集构建的第一平面的第一法向向量与样本图像对应的预测深度图像中大于或等于预设阈值的第二点集构建的第二平面的第二法向向量之间的角度偏差,本申请实施例的目标单目深度估计网络是基于图像全局几何结构的法向向量的数据训练得到的,即当第一点集或第二点集存中的点存在扰动时,第一法向向量和第二法向向量的偏差均在允许范围内,从而使得该目标单目深度估计网络进行预测深度处理时受噪声影响较小,能够提高目标单目深度估计网络预测深度处理的准确率。
结合第二方面,在第二方面的某些实现方式中,该第一点集和该第二点集的各个点集中任意三个点均不在同一条直线上。
在一种可能的实现方式中,该第一点集和该第二点集的各个点集中任意两个点构成的向量之间的夹角在第二预设范围中,其中,第二预设范围可以是根据目标神经网络对法向向量偏差的允许范围设定的。
结合第二方面,在第二方面的某些实现方式中,该第一点集和该第二点集的各个点集中任意两个点构成的向量之间的夹角大于或等于30度且小于或等于120度。
基于本申请的技术方案,为了进一步确保使得当第一点集或第二点集存中的点存在扰动时,第一法向向量和第二法向向量的偏差均在允许范围内,则可以对第一点集和第二点集中的点进行角度约束,从而确保通过第一点集和第二点集构建的平面的稳定性,即确保构建平面的法向向量的稳定性,进而保证通过法向损失训练后得到的目标单目深度估计网络预测深度的准确性。
在一种可能的实现方式中,第一点集可以满足距离约束和角度约束,其中,距离约束可以是指第一点集中任意两个点之间的距离大于或等于预设阈值;角度约束可以是指第一点集任意两个点构成的向量之间的夹角在第二预设取值范围内;同理,第二点集也可以满足上述距离约束和角度约束。
应理解,在本申请中只要第一点集和第二点集的各个点集中三维点的选取满足当第一点集或第二点集存中的点存在扰动时,第一法向向量和第二法向向量的偏差均在允许范围内,则均能够实现本申请实施的方案确保通过第一点集和第二点集构建的平面的稳定性,即确保构建平面的法向向量的稳定性,进而保证通过法向损失训练后得到的目标单目深度估计网络预测深度的准确性。
结合第二方面,在第二方面的某些实现方式中,该法向损失值是指该第一法向向量和该第二法向向量之间夹角的角度值;或者,该法向损失值是指该第一法向向量和该第二法向向量之间夹角的函数值,或者,该法向损失值是指该第一法向向量和该第二法向向量之差的函数值。在一种可能的实现方式中,法向损失值可以是指第一法向向量和第二法向向量之间夹角的正弦值。
在一种可能的实现方式中,法向损失值可以是指1与第一角度的余弦值的差值,第一角度可以是指第一法向向量和第二法向向量之间夹角。结合第二方面,在第二方面的某些实现方式中,该预测图像的第一点集是根据该预测深度图像中像素点的二维坐标和该样本图像对应的相机参数得到的。
在一种可能的实现方式中,法向损失值可以是指第一法向向量n1(x1,y1,z1)和第二法向向量n2(x2,y2,z2)之间坐标差异的函数值。例如,上述函数值可以是指L1,其中,L1=|x1-x2|+|y1-y2|+|z1-z2|。
例如,上述函数值可以是指L2,其中,L2=|x1-x2|2+|y1-y2|2+|z1-z2|2。
结合第二方面,在第二方面的某些实现方式中,该法向损失值是根据以下等式得到的:
其中,LN表示该法向损失值,N可以表示获取的第一点集的数量,第一点集与第二点集的数量相等,表示由该预测深度图像中的第i个该第一点集构建平面的法向向量,表示由该样本深度图像中第i个该第二点集构建平面的法向向量,||||表示度量所述第一法向向量与所述第二法向向量之间差异的函数,PAi、PBi、PCi表示第i个该第一点集或者第i个该第二点集中包括的任意三个点。
结合第二方面,在第二方面的某些实现方式中,该图像损失还包括深度损失值,该深度损失值是指该预测深度图像的深度值相对于该样本深度图像的深度值的损失。
在一种可能的实现方式中,图像损失是通过对法向损失值和深度损失值加权处理得到的。
在一种可能的实现方式中,法向损失值可以对应第一权重值,深度损失值可以对应第二权重值,其中,法向损失值乘以第一权重值与深度损失值乘以第二权重值后可以处于相同的数量级。
基于本申请的技术方案,目标单目深度估计网络可以均衡考虑深度损失值和法向损失值两方面的损失,从而在对待处理图像进行预测深度时,不仅考虑了深度值损失同时也考虑了基于图像上的点构建的平面的法向的损失,从而提高了单目图像深度估计网络对深度值预测的准确性。
结合第二方面,在第二方面的某些实现方式中,该根据该预测深度图像和该样本深度图像之间的图像损失对该单目深度估计网络进行训练,得到该目标单目深度估计网络,包括:
根据该法向损失值和该深度损失值通过反向传播算法多次迭代训练该单目深度估计网络,得到该目标单目深度估计网络的参数。
在一种可能的实现方式中,该预设阈值可以是根据目标神经网络对法向向量偏差的允许范围设定的。
结合第二方面,在第二方面的某些实现方式中,该预设阈值为0.6。
第三方面,提供了一种图像处理方法,该方法包括:获取道路画面;根据目标单目深度评估网络对该道路画面进行预测深度处理,得到该道路画面的深度图像;根据该道路画面的深度图像,预测获取该道路画面的位置到该道路画面中的障碍物的距离信息。
其中,上述目标单目深度评估网络是根据第一方面或第二方面以及上述任意一种实现方式得到的神经网络。
在一种可能的实现方式中,上述图像处理方法可以应用于自动驾驶领域,例如,可以应用于自动驾驶车辆的导航系统中,通过上述图像处理方法可以使得自动驾驶车辆在道路行驶的导航过程中,快速地定位自动驾驶车辆与障碍物之间的距离并在驾驶过程中避开障碍物,从而实现自动驾驶车辆的安全性。
第四方面,提供了一种图像处理方法,应用于具有显示屏和摄像头的电子设备,该方法包括:检测到用户用于打开相机的第一操作;响应于该第一操作,在该显示屏上显示拍摄界面,该拍摄界面上包括取景框,该取景框内包括第一图像;检测到该用户指示相机的第二操作;响应于该第二操作,在该取景框内显示第二图像,该第二图像是指根据该第一图像对应的深度图像进行虚化处理后得到的目标虚化图像,其中,目标单目深度评估网络应用于对该第一图像进行预测深度处理得到该第一图像对应的深度图像。
其中,上述目标单目深度评估网络是根据第一方面或第二方面以及上述任意一种实现方式得到的神经网络。
在一种可能的实现方式中,上述图像处理方法可以应用于智能终端的拍照领域,例如,为了使得智能终端的相机实现单反相机级别的虚化效果,让虚化有渐进的层次感,可以通过上述目标单目深度评估网络预测摄像头获取图像的深度信息,从而根据图像中的深度信息实现渐进虚化效果,即图像中与摄像头距离远的物体的虚化程度强,与摄像头距离近的物体的虚化程度弱,实现单反相机级别的虚化效果。
第五方面,提供一种图像处理方法,该方法包括:获取二维影视图像;根据目标单目深度评估网络对二维影视图像进行预测深度处理,得到该二维影视图像的深度图像;根据该二维影视图像和该二维影视图像的深度图像,得到三维影视图像。
其中,上述目标单目深度评估网络是根据第一方面或第二方面以及上述任意一种实现方式得到的神经网络。
在一种可能的实现方式中,上述图像处理方法可以应用于在三维视频领域,随着人们对三维观影需求的提升,对三维影视资源的需求急剧增加,上述目标单目深度估计网络可以通过预测深度处理将海量的二维影视资源转换成三维影视资源。
在一种可能的实现方式中,上述图像处理方法可以应用于增强现实(augmentedreality,AR)领域,使用上述目标单目深度估计网络进行AR引擎进行三维(3dimensions,3D)建模,3D物体识别,3D场景分割等,为AR引擎赋能更强的环境感知能力。
应理解,在上述第一方面和第二方面中对相关内容的扩展、限定、解释和说明也适用于第三方面、第四方面和第五方面中相同的内容。
第六方面,提供了一种图像处理装置,包括用于实现第一方面以及第一方面中的任意一种实现方式中的方法的模块。
第七方面,提供了一种目标单目深度估计网络训练装置,包括用于实现第二方面以及第二方面中的任意一种实现方式中的方法的模块。
第八方面,提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行第一方面以及第一方面中的任意一种实现方式中的方法。
第九方面,提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行第二方面以及第二方面中的任意一种实现方式中的方法。
第十方面,提供一种芯片,该芯片包括处理器与数据接口,该处理器通过该数据接口读取存储器上存储的指令,执行上述第一方面以及第一方面中的任意一种实现方式中的方法。
可选地,作为一种实现方式,该芯片还可以包括存储器,该存储器中存储有指令,处理器用于执行存储器上存储的指令,当指令被执行时,处理器用于执行第一方面以及第一方面中的任意一种实现方式中的方法。
第十一方面,提供一种芯片,该芯片包括处理器与数据接口,该处理器通过该数据接口读取存储器上存储的指令,执行上述第二方面以及第二方面中的任意一种实现方式中的方法。
可选地,作为一种实现方式,该芯片还可以包括存储器,该存储器中存储有指令,该处理器用于执行该存储器上存储的指令,当该指令被执行时,该处理器用于执行第二方面以及第二方面中的任意一种实现方式中的方法。
附图说明
图1是本申请实施例提供的一种人工智能主体框架示意图;
图2是本申请实施例提供的一种应用场景的示意图;
图3是本申请实施例提供的另一种应用场景的示意图;
图4是本申请实施例提供的自动驾驶应用场景的示意图;
图5是本申请实施例提供的三维视频领域应用场景的示意图;
图6是本申请实施例提供的AR领域应用场景的示意图;
图7是本申请实施例提供的系统架构的结构示意图;
图8是本申请实施例提供的一种卷积神经网络结构示意图;
图9是本申请实施例提供的一种芯片硬件结构示意图;
图10是本申请实施例提供的一种图像处理方法的示意图;
图11是本申请实施例提供的目标单目深度估计网络训练方法的示意图;
图12是本申请实施例提供的目标单目深度估计网络架构的示意图;
图13是本申请实施例提供的虚拟法向对深度噪声的鲁棒性的示意图;
图14是本申请实施例提供的获取虚拟法向损失值的示意图;
图15是本申请实施例提供的一种装置的示意性框图;
图16是本申请实施例提供的另一种装置的示意性框图;
图17是本申请实施例提供的另一种装置的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1示出一种人工智能主体框架示意图,该主体框架描述了人工智能系统总体工作流程,适用于通用的人工智能领域需求。
下面从“智能信息链”(水平轴)和“信息技术(information technology,IT)价值链”(垂直轴)两个维度对上述人工智能主题框架100进行详细的阐述。
“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中,数据经历了“数据—信息—知识—智慧”的凝练过程。
“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施110
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平台实现支撑。
基础设施可以通过传感器与外部沟通,基础设施的计算能力可以由智能芯片提供。
这里的智能芯片可以是中央处理器(central processing unit,CPU)、神经网络处理器(neural-network processing unit,NPU)、图形处理器(graphics processingunit,GPU)、专门应用的集成电路(application specific integrated circuit,ASIC)以及现场可编程门阵列(field programmable gate array,FPGA)等硬件加速芯片。
基础设施的基础平台可以包括分布式计算框架及网络等相关的平台保障和支持,可以包括云存储和计算、互联互通网络等。
例如,对于基础设施来说,可以通过传感器和外部沟通获取数据,然后将这些数据提供给基础平台提供的分布式计算系统中的智能芯片进行计算。
(2)数据120
基础设施的上一层的数据用于表示人工智能领域的数据来源。该数据涉及到图形、图像、语音、文本,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及力、位移、液位、温度、湿度等感知数据。
(3)数据处理130
上述数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等处理方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、预处理、训练等。
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力140
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
(5)智能产品及行业应用150
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市,智能终端等。
本申请实施例提出的图像处理方法中的单目深度估计技术可以广泛应用于智能手机拍照,无人驾驶,二维视频转换至三维视频,增强现实(augmented reality,AR)引擎等领域。
场景一:智能终端拍照领域
本申请实施例提出的图像处理方法可以应用于智能终端的拍照领域。例如,为了使得智能终端的相机实现单反相机级别的虚化效果,让虚化有渐进的层次感,可以通过上述目标单目深度评估网络预测摄像头获取图像的深度信息,从而根据图像中的深度信息实现渐进虚化效果,即图像中与摄像头距离远的物体的虚化程度强,与摄像头距离近的物体的虚化程度弱,实现单反相机级别的虚化效果。示例性地,本申请提供了一种图像处理方法,应用于具有显示屏和摄像头的电子设备,该方法包括:检测到用户用于打开相机的第一操作;响应于所述第一操作,在所述显示屏上显示拍摄界面,所述拍摄界面上包括取景框,所述取景框内包括第一图像;检测到所述用户指示相机的第二操作;响应于所述第二操作,在所述取景框内显示第二图像,所述第二图像是指根据所述第一图像对应的深度图像进行虚化处理后得到的目标虚化图像,其中,目标单目深度评估网络应用于对所述第一图像进行预测深度处理得到所述第一图像对应的深度图像。
其中,上述目标单目深度估计网络的参数是根据所述目标单目深度估计网络对样本图像进行深度预测处理的图像损失确定的,所述图像损失在预设取值范围内,所述图像损失包括法向损失值,所述法向损失值是根据第一法向向量与第二法向向量之间的差异确定的;所述第一法向向量是指通过所述样本图像的预测深度图像中的第一点集构建平面得到的法向向量,所述第二法向向量是指通过样本深度图像中的第二点集构建平面得到的法向向量,所述第一点集和所述第二点集均为三维点的集合且对应所述样本图像中的相同像素点,所述第一点集和所述第二点集的各个点集中任意两个点之间的距离大于或等于预设阈值,使得当所述第一点集或所述第二点集存中的点存在扰动时,所述第一法向向量和所述第二法向向量的偏差均在允许范围内。
在一个实施例中,当本申请的图像处理方法应用于智能终端拍照领域时,上述样本图像可以是通过深度传感器获取的图像,例如,可以是通过kinect获取的图像。
可选地,在一种可能的实现方式中,第一点集和第二点集的各个点集中任意三个点均不在同一条直线上。
可选地,在一种可能的实现方式中,第一点集和第二点集的各个点集中任意两个点构成的向量之间的夹角大于或等于30度且小于或等于120度。
可选地,在一种可能的实现方式中,法向损失值是指第一法向向量和第二法向向量之间夹角的角度值;或者,法向损失值是指第一法向向量和第二法向向量之间夹角的函数值,或者,法向损失值是指第一法向向量和第二法向向量之差的函数值。
在一种可能的实现方式中,法向损失值可以是指第一法向向量和第二法向向量之间夹角的正弦值。
在一种可能的实现方式中,法向损失值可以是指1与第一角度的余弦值的差值,第一角度可以是指第一法向向量和第二法向向量之间夹角。
在一种可能的实现方式中,该预测图像的第一点集是根据该预测深度图像中像素点的二维坐标和该样本图像对应的相机参数得到的。
在一种可能的实现方式中,法向损失值可以是指第一法向向量n1(x1,y1,z1)和第二法向向量n2(x2,y2,z2)之间坐标差异的函数值。例如,上述函数值可以是指L1,其中,L1=|x1-x2|+|y1-y2|+|z1-z2|。
例如,上述函数值可以是指L2,其中,L2=|x1-x2|2+|y1-y2|2+|z1-z2|2。
可选地,在一种可能的实现方式中,预测图像的第一点集是根据预测深度图像中像素点的二维坐标和样本图像对应的相机参数得到的。
可选地,在一种可能的实现方式中,法向损失值是根据以下等式得到的:
其中,LN表示法向损失值,N表示第一点集的数量,第一点集与第二点集的数量相等,表示由预测深度图像中的第i个第一点集构建平面的法向,表示由样本深度图像中第i个第二点集构建平面的法向,||||表示度量所述第一法向向量与所述第二法向向量之间差异的函数,PAi、PBi、PCi表示第i个第一点集或者第i个第二点集中包括的任意三个点。
可选地,在一种可能的实现方式中,图像损失还可以包括深度损失值,深度损失值是指预测深度图像的深度值相对于样本深度图像的深度值的损失。
可选地,在一种可能的实现方式中,目标单目深度估计网络的参数是基于法向损失值和深度损失值通过反向传播算法多次迭代得到的。
可选地,在一种可能的实现方式中,上述预设阈值为0.6。
需要说明的是,本申请实施例提供的应用于智能终端的拍照领域的目标单目深度估计网络同样适用于后面图10至图14中相关实施例中对目标单目深度估计网络相关内容的扩展、限定、解释和说明,此处不再赘述。
图2是根据本申请实施例应用于拍照领域得到的效果示意图。图2(a)表示输入图像、图2(b)表示得到的输入图像对应的深度图、图2(c)表示渐进虚化效果图;图2(d)表示单一虚化效果图,其中,渐进虚化效果图是根据得到的输入图像对应的深度图预测不同区域的深度值,按照与摄像头距离远的物体的虚化程度强,与摄像头距离近的物体的虚化程度弱,从而实现单反相机级别的虚化效果。如在图2(c)中,虚线框中的物体与实线框中的物体相比距离摄像头的距离较远,即虚线框中物体的深度值大于实线框中物体的深度值,根据图像中不同区域的深度值可以实现不同程度的虚化效果,如图2(c)中实线框区域的虚化程度与虚线框区域的虚化程度相比较弱。在图2(d)中为单一虚化效果图,即虚线框内的远处的背景和实线框内的近处的背景使用相同的虚化效果。
图3所示系统200可以得到如图2(c)所示的渐进虚化效果图。如图3所示,首先可以是获取原始图像,例如,可以是通过具有摄像头获取的图像或者是电子设备本地存储的图像;接着对原始图像进行深度估计处理,其中,深度估计处理可以采用本申请实施例提供的单目深度估计网络得到原始图像对应的预测深度图;进而根据原始图像对应的预测深度图中不同区域根据深度值进行不同层度的虚化;最终,再将各层虚化结果融合,得到单反级别的虚化效果。
示例性地,渐进式多层背景虚化效果如图2(c),在图2(c)中较近的背景区域可以选用较小的虚化核,较远的背景区域可以选用较大的虚化核。在图2(c)中可以看到,通过使用单目深度估计网络进行分层渐进虚化的结果和通过分割实现单一虚化效果相比,单目深度估计网络进行分层渐进虚化的图像视觉效果更佳。
场景二:自动驾驶领域
如图4所示,本申请实施例提出的图像处理方法可以应用于自动驾驶领域,例如,可以应用于自动驾驶车辆的导航系统中,通过本申请中的图像处理方法可以使得自动驾驶车辆在道路行驶的导航过程中,快速地定位自动驾驶车辆与障碍物之间的距离并在驾驶过程中避开障碍物,从而实现自动驾驶车辆的安全性。
示例性地,本申请提供了一种图像处理方法,该方法包括:获取道路画面;根据目标单目深度评估网络对该道路画面进行预测深度处理,得到该道路画面的深度图像;根据该道路画面的深度图像,预测获取该道路画面的位置到该道路画面中的障碍物的距离信息。
其中,上述目标单目深度估计网络的参数是根据所述目标单目深度估计网络对样本图像进行深度预测处理的图像损失确定的,所述图像损失在预设取值范围内,所述图像损失包括法向损失值,所述法向损失值是根据第一法向向量与第二法向向量之间的差异确定的;所述第一法向向量是指通过所述样本图像的预测深度图像中的第一点集构建平面得到的法向向量,所述第二法向向量是指通过样本深度图像中的第二点集构建平面得到的法向向量,所述第一点集和所述第二点集均为三维点的集合且对应所述样本图像中的相同像素点,所述第一点集和所述第二点集的各个点集中任意两个点之间的距离大于或等于预设阈值,使得当所述第一点集或所述第二点集存中的点存在扰动时,所述第一法向向量和所述第二法向向量的偏差均在允许范围内。
在一个实施例中,当本申请的图像处理方法应用于自动驾驶领域时,上述样本图像可以指通过自动驾驶数据集(KITTI)、城市景观数据集(Cityscapes)中获取的图像。例如,可以是通过车道上的车辆的行车记录仪拍的图像。
需要说明的是,本申请实施例提供的应用于自动驾驶领域的目标单目深度估计网络适用于后面图10至图14中相关实施例中对目标单目深度估计网络相关内容的扩展、限定、解释和说明,此处不再赘述。
场景三:三维视频领域
如图5所示,本申请实施例提出的图像处理方法可以应用于在三维视频领域,随着人们对三维观影需求的提升,对三维影视资源的需求急剧增加,上述目标单目深度估计网络可以通过预测深度处理将海量的二维影视资源转换成三维影视资源。
示例性地,本申请提供了一种图像处理方法,该方法包括:获取二维影视图像;根据目标单目深度评估网络对二维影视图像进行预测深度处理,得到所述二维影视图像的深度图像;根据所述二维影视图像和所述二维影视图像的深度图像,得到三维影视图像。
其中,上述目标单目深度估计网络的参数是根据所述目标单目深度估计网络对样本图像进行深度预测处理的图像损失确定的,所述图像损失在预设取值范围内,所述图像损失包括法向损失值,所述法向损失值是根据第一法向向量与第二法向向量之间的差异确定的;所述第一法向向量是指通过所述样本图像的预测深度图像中的第一点集构建平面得到的法向向量,所述第二法向向量是指通过样本深度图像中的第二点集构建平面得到的法向向量,所述第一点集和所述第二点集均为三维点的集合且对应所述样本图像中的相同像素点,所述第一点集和所述第二点集的各个点集中任意两个点之间的距离大于或等于预设阈值,使得当所述第一点集或所述第二点集存中的点存在扰动时,所述第一法向向量和所述第二法向向量的偏差均在允许范围内。
在一个实施例中,当本申请的图像处理方法应用于三维视频领域时,上述样本图像可以是通过3D电影/视频获取的图像。
需要说明的是,本申请实施例提供的应用三维视频领域的目标单目深度估计网络适用于后面图10至图14中相关实施例中对目标单目深度估计网络相关内容的扩展、限定、解释和说明,此处不再赘述。
场景四:AR领域
如图6所示,本申请实施例提出的图像处理方法可以应用于AR领域,使用本申请中的目标单目深度估计网络进行AR引擎进行三维3D建模,3D物体识别,3D场景分割等,为AR引擎赋能更强的环境感知能力。
示例性地,本申请提供了一种图像处理方法,该方法包括:获取二维图像;根据目标单目深度评估网络对二图像进行预测深度处理,得到所述二维图像的深度图像;根据所述二维图像和所述二维图像的深度图像,构建三维图像。
其中,上述目标单目深度估计网络的参数是根据样本图像的预测深度图像和所述样本图像对应的样本深度图像之间的图像损失确定的,所述图像损失在预设取值范围内,所述预测深度图像是通过所述目标单目深度估计网络对所述样本图像进行深度预测得到的;所述图像损失包括法向损失值,所述法向损失值在第一预设取值范围内,所述法向损失值是根据第一法向向量与第二法向向量之间的差异确定的,所述第一法向向量是指通过所述预测深度图像中的第一点集构建平面得到的法向向量,所述第二法向向量是指通过所述样本深度图像中的第二点集构建平面得到的法向向量,所述第一点集与所述第二点集对应所述样本图像中相同的像素点,所述第一点集和所述第二点集均为三维点的集合,所述第一点集和所述第二点集的各个点集中任意两个点之间的距离大于或等于预设阈值,使得当所述第一点集或所述第二点集存中的点存在扰动时,所述第一法向向量和所述第二法向向量的偏差均在允许范围内。
在一个实施例中,当本申请的图像处理方法应用于AR领域时,上述样本图像可以是通过深度传感器获取的图像。例如,通过kinect获取的图像。如图所示,图6(a)为输入图像,图6(b)为根据本申请的图像处理方法得到的预测深度图像,图6(c)为通过预测深度图像得到的3D点云。
需要说明的是,本申请实施例提供的应用于AR领域的目标单目深度估计网络适用于后面图10至图14中相关实施例中对目标单目深度估计网络相关内容的扩展、限定、解释和说明,此处不再赘述。
应理解,上述为对应用场景的举例说明,并不对本申请的应用场景作任何限定。
由于本申请实施例涉及大量神经网络的应用,为了便于理解,下面先对本申请实施例可能涉及的神经网络的相关术语和概念进行介绍。
(1)神经网络
神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以为:
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入,激活函数可以是sigmoid函数。神经网络是将多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
(2)深度神经网络
深度神经网络(deep neural network,DNN),也称多层神经网络,可以理解为具有多层隐含层的神经网络。按照不同层的位置对DNN进行划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。
虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:其中,是输入向量,是输出向量,是偏移向量,W是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量经过如此简单的操作得到输出向量由于DNN层数多,系数W和偏移向量的数量也比较多。这些参数在DNN中的定义如下所述:以系数W为例:假设在一个三层的DNN中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为上标3代表系数W所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。
需要注意的是,输入层是没有W参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。
(3)卷积神经网络
卷积神经网络(convolutional neuron network,CNN)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器,该特征抽取器可以看作是滤波器。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
(4)损失函数
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断地调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
(5)反向传播算法
神经网络可以采用误差反向传播(back propagation,BP)算法在训练过程中修正初始的神经网络模型中参数的大小,使得神经网络模型的重建误差损失越来越小。具体地,前向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的神经网络模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运动,旨在得到最优的神经网络模型的参数,例如权重矩阵。
图7示出了本申请实施例提供的一种系统架构300。在图7中,数据采集设备360用于采集训练数据。针对本申请实施例的图像处理方法来说,训练数据可以是指训练图像,训练图像包括样本图像以及样本图像对应的样本深度图像。
在采集到训练数据之后,数据采集设备360将这些训练数据存入数据库330,训练设备320基于数据库330中维护的训练数据训练得到目标模型/规则301。
下面对训练设备320基于训练数据得到目标模型/规则301进行描述,训练设备320对输入的原始图像进行处理,将输出的图像与原始图像进行对比,直到训练设备320输出的图像与原始图像的差值小于一定的阈值,从而完成目标模型/规则301的训练。
例如,在本申请提供的图像处理方法中用于进行预测深度处理的单目深度估计网络可以是通过图像损失进行训练后使得将样本图像输入至目标单目深度估计网络得到的预测深度图像与样本深度图像的差值小于一定的阈值,从而完成单目深度估计网络的训练得到目标单目深度估计网络。
在一种可能的实现方式中,可以是样本图像对应的预测深度图像与样本深度图像之间的法向损失值和深度损失值均小于一定的阈值,其中,法向损失可以是指第一法向向量与第二法向向量之间夹角的角度值,第一法向向量是指通过预测深度图像中的第一点集构建平面得到的法向向量,第二法向向量是指通过样本深度图像中的第二点集构建平面得到的法向向量,第一点集和第二点集对应样本图像中的相同像素点,深度损失值可以是指对于同一像素点在预测深度图像的深度值相对于样本深度图像的深度值的损失。
上述目标模型/规则301能够用于实现本申请实施例的图像处理方法。本申请实施例中的目标模型/规则301具体可以为神经网络。需要说明的是,在实际的应用中,所述数据库330中维护的训练数据不一定都来自于数据采集设备360的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备320也不一定完全基于数据库330维护的训练数据进行目标模型/规则301的训练,也有可能从云端或其他地方获取训练数据进行模型训练,上述描述不应该作为对本申请实施例的限定。
根据训练设备320训练得到的目标模型/规则301可以应用于不同的系统或设备中,如应用于图7所示的执行设备310,所述执行设备310可以是终端,如手机终端,平板电脑,笔记本电脑,增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR),车载终端等,还可以是服务器,或者,云端等。在图7中,执行设备310配置输入/输出(input/output,I/O)接口312,用于与外部设备进行数据交互,用户可以通过客户设备340向I/O接口312输入数据,所述输入数据在本申请实施例中可以包括:客户设备输入的待处理图像。
预处理模块313和预处理模块314用于根据I/O接口312接收到的输入数据(如待处理图像)进行预处理,在本申请实施例中,也可以没有预处理模块313和预处理模块314(也可以只有其中的一个预处理模块),而直接采用计算模块311对输入数据进行处理。
在执行设备310对输入数据进行预处理,或者在执行设备310的计算模块311执行计算等相关的处理过程中,执行设备310可以调用数据存储系统350中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统350中。
最后,I/O接口312将处理结果,如上述得到的预测深度处理后的深度图像返回给客户设备340,从而提供给用户。
值得说明的是,训练设备320可以针对不同的目标或称不同的任务,基于不同的训练数据生成相应的目标模型/规则301,该相应的目标模型/规则301即可以用于实现上述目标或完成上述任务,从而为用户提供所需的结果。
在图7中所示情况下,用户可以手动给定输入数据,该手动给定可以通过I/O接口312提供的界面进行操作。另一种情况下,客户设备340可以自动地向I/O接口312发送输入数据,如果要求客户设备340自动发送输入数据需要获得用户的授权,则用户可以在客户设备340中设置相应权限。用户可以在客户设备340查看执行设备310输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备340也可以作为数据采集端,采集如图所示输入I/O接口312的输入数据及输出I/O接口312的输出结果作为新的样本数据,并存入数据库330。当然,也可以不经过客户设备340进行采集,而是由I/O接口112直接将如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果,作为新的样本数据存入数据库330。
值得注意的是,图7仅是本申请实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图7中,数据存储系统350相对执行设备310是外部存储器,在其它情况下,也可以将数据存储系统350置于执行设备310中。
如图7所示,根据训练设备320训练得到目标模型/规则301,该目标模型/规则301在本申请实施例中可以是本申请中的神经网络,具体的,本申请实施例提供的神经网络可以是CNN,深度卷积神经网络(deep convolutional neural networks,DCNN)等。
由于CNN是一种非常常见的神经网络,下面结合图8重点对CNN的结构进行详细的介绍。如上文的基础概念介绍所述,卷积神经网络是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,CNN是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入其中的图像作出响应。
本申请实施例的图像处理方法具体采用的神经网络的结构可以如图8所示。在图8中,卷积神经网络(CNN)400可以包括输入层410,卷积层/池化层420(其中,池化层为可选的),以及神经网络层430。其中,输入层410可以获取待处理图像,并将获取到的待处理图像交由卷积层/池化层420以及后面的神经网络层430进行处理,可以得到图像的处理结果。下面对图8中的CNN 400中内部的层结构进行详细的介绍。
卷积层/池化层420
如图8所示卷积层/池化层420可以包括如示例421-426层,举例来说:在一种实现中,421层为卷积层,422层为池化层,423层为卷积层,424层为池化层,425为卷积层,426为池化层;在另一种实现方式中,421、422为卷积层,423为池化层,424、425为卷积层,426为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
下面将以卷积层421为例,介绍一层卷积层的内部工作原理。
卷积层421可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素,这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行×列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。
不同的权重矩阵可以用来提取图像中不同的特征,例如,一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行×列)相同,经过该多个尺寸相同的权重矩阵提取后的卷积特征图的尺寸也相同,再将提取到的多个尺寸相同的卷积特征图合并形成卷积运算的输出。
这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络400进行正确的预测。
当卷积神经网络400有多个卷积层的时候,初始的卷积层(例如421)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络400深度的加深,越往后的卷积层(例如426)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
池化层
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,在如图8中420所示例的421-426各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
神经网络层430
在经过卷积层/池化层420的处理后,卷积神经网络400还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层420只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络400需要利用神经网络层430来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层430中可以包括多层隐含层(如图8所示的431、432至43n)以及输出层440,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像检测以及图像超分辨率重建等等。
在申请的实施例中,该任务类型可以是对图像进行单目深度预测。
在神经网络层430中的多层隐含层之后,也就是整个卷积神经网络400的最后层为输出层440,该输出层440具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络400的前向传播(如图8由410至440方向的传播为前向传播)完成,反向传播(如图8由440至410方向的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络400的损失,及卷积神经网络400通过输出层输出的结果和理想结果之间的误差。
图9为本申请实施例提供的一种芯片的硬件结构,该芯片包括神经网络处理器50。该芯片可以被设置在如图7所示的执行设备310中,用以完成计算模块311的计算工作。该芯片也可以被设置在如图7所示的训练设备320中,用以完成训练设备320的训练工作并输出目标模型/规则301。如图8所示的卷积神经网络中各层的算法均可在如图9所示的芯片中得以实现。
神经网络处理器NPU50作为协处理器挂载到主中央处理器(central processingunit,CPU)(host CPU)上,由主CPU分配任务。NPU50的核心部分为运算电路503,控制器504控制运算电路503提取存储器(权重存储器或输入存储器)中的数据并进行运算。
在一些实现中,运算电路503内部包括多个处理单元(process engine,PE)。在一些实现中,运算电路503是二维脉动阵列。运算电路503还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路503是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路503从权重存储器502中取矩阵B相应的数据,并缓存在运算电路503中每一个PE上。运算电路503从输入存储器501中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器508(accumulator)中。
向量计算单元507可以对运算电路503的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元507可以用于神经网络中非卷积/非FC层的网络计算,如池化(pooling),批归一化(batch normalization),局部响应归一化(local response normalization)等。
在一些实现种,向量计算单元能507将经处理的输出的向量存储到统一缓存器506。例如,向量计算单元507可以将非线性函数应用到运算电路503的输出,例如累加值的向量,用以生成激活值。
在一些实现中,向量计算单元507生成归一化的值、合并值,或二者均有。
在一些实现中,处理过的输出的向量能够用作到运算电路503的激活输入,例如用于在神经网络中的后续层中的使用。
在一些实现中,统一存储器506用于存放输入数据以及输出数据。
权重数据直接通过存储单元访问控制器505(direct memory accesscontroller,DMAC)将外部存储器中的输入数据搬运到输入存储器501和/或统一存储器506、将外部存储器中的权重数据存入权重存储器502,以及将统一存储器506中的数据存入外部存储器。
总线接口单元510(bus interface unit,BIU),用于通过总线实现主CPU、DMAC和取指存储器509之间进行交互。
与控制器504连接的取指存储器509(instruction fetch buffer),用于存储控制器504使用的指令;控制器504,用于调用指存储器509中缓存的指令,实现控制该运算加速器的工作过程。
一般地,统一存储器506,输入存储器501,权重存储器502以及取指存储器509均为片上(On-Chip)存储器,外部存储器为该NPU外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic random accessmemory,DDR SDRAM)、高带宽存储器(high bandwidth memory,HBM)或其他可读可写的存储器。
其中,图8所示的卷积神经网络中各层的运算可以由运算电路503或向量计算单元507执行。
上文中介绍的图7中的执行设备310能够执行本申请实施例的图像处理方法或者图像处理方法的各个步骤,图8所示的CNN模型和图9所示的芯片也可以用于执行本申请实施例的图像处理方法的各个步骤。下面结合附图对本申请实施例的图像处理方法进行详细的介绍。
本申请实施例提供的图像处理方法可以在服务器上被执行,也可以在云端被执行,还可以在具有图像深度预测需求的电子设备上被执行。
例如,本申请实施例的技术方案可以应用于电子设备,该电子设备可以为移动的或固定的,例如该电子设备可以是具有图像处理功能的移动电话、平板个人电脑(tabletpersonal computer,TPC)、媒体播放器、智能电视、笔记本电脑(laptop computer,LC)、个人数字助理(personal digital assistant,PDA)、个人计算机(personal computer,PC)、照相机、摄像机、智能手表、可穿戴式设备(wearable device,WD)或者,自动驾驶的车辆等,本申请实施例对此不作限定。
下面先结合图10对本申请实施例的图像处理法进行详细的介绍。图10所示的方法可以由图像处理装置来执行,该图像处理装置可以是服务器,还可以是具有图像深度预测需求的电子设备。图10所示的方法包括步骤610至630,下面分别对这些步骤进行详细的描述。
步骤610、获取待处理图像。
其中,待处理图像可以是上述电子设备通过摄像头拍摄到的图像,或者,该待处理图像还可以是从电子设备内部获得的图像(例如,电子设备的相册中存储的图像,或者,电子设备从云端获取的图片)。
应理解,上述待处理图像可以是具有图像深度预测需求的图像,本申请并不对待处理图像的来源作任何限定。
步骤620、根据目标单目深度估计网络对所述待处理图像进行深度预测处理,得到待处理图像的目标深度图像,其中,目标单目深度估计网络的参数是根据目标单目深度估计网络对样本图像进行深度预测处理的图像损失确定的,图像损失在预设取值范围内,图像损失包括法向损失值,法向损失值是根据第一法向向量与第二法向向量之间的差异确定的;第一法向向量是指通过所述样本图像的预测深度图像中的第一点集构建平面得到的法向向量,第二法向向量是指通过样本深度图像中的第二点集构建平面得到的法向向量,第一点集和第二点集均为三维点的集合且对应样本图像中的相同像素点,第一点集和第二点集的各个点集中任意两个点之间的距离大于或等于预设阈值,使得当第一点集或第二点集存中的点存在扰动时,第一法向向量和第二法向向量的偏差均在允许范围内。
其中,目深度估计主要是指通过一张图片预测图片中的每个像素点的深度,其中,由每个像素点的深度值组成的图片又称为深度图。
上述样本图像的预测深度图像是指样本图像通过目标深度估计网络进行深度预测处理后得到的预测深度图像。
应理解,上述第一点集中的点存在扰动可以是指第一点集中用于构建第一平面的三维点的坐标存在扰动。例如,可以是指获取三维点时受到噪声的影响使得三维点的坐标产生一个扰动,可以假设第一点集中用于构建第一平面的三个点为(PA,PB,PC),由于噪声的影响使得PC点的坐标引入一个误差导致PC点扰动到PC1点。
还应理解,上述第一法向向量和第二法向向量的偏差均在允许范围内可以是指当获取第一点集合第二点集中的点对噪声有鲁棒性,即当构建平面的三维点坐标由于噪声影响引入一定误差时,该平面的法向向量产生的偏差是在网络模型的允许范围内的。假设,目标单目深度估计网络对法向向量的偏差的允许范围为偏差角度小于5度,则当PA、PB、PC中任意两点之间的距离满足大于预设阈值时,由三个点(PA,PB,PC)构成的平面的法向n1和三个点(PA,PB,PC1)构成的平面的法向n2之间夹角小于5度,也就是说可以近似认为当构建平面的点坐标存在扰动时该平面的法向向量不发生改变。
换而言之,本申请实施例中构成第一平面的第一点集中的任意两个点之间的距离大于预设阈值,使得当构建第一平面的任意一个点由于引入噪声并不影响其第一平面的法向向量,即当获取点坐标引入误差时,构建最新平面的法向向量与不存在误差的点坐标构建的平面的法向向量之间的夹角在很小在误差允许范围内,即认为该法向向量对噪声影响具有鲁棒性。
在本申请的实施例中,为了进一步确保使得当第一点集或第二点集存中的点存在扰动时,第一法向向量和第二法向向量的偏差均在允许范围内,则可以对第一点集和第二点集中的点进行角度约束,从而确保通过第一点集和第二点集构建的平面的稳定性,即确保构建平面的法向向量的稳定性,进而保证通过法向损失训练后得到的目标单目深度估计网络预测深度的准确性。
示例性地,第一点集中可以包括N组点,N组点中的任意一组点中可以包括三个点或者多个点,N组点中的任意一组点可以用于构建一个第一平面,通过一个第一平面可以确定一个第一法向向量;类似地,第二点集中可以包括N组点,N组点中的任意一组点中可以包括三个点或者多个点,N组点中的任意一组点可以用于构建一个第二平面,通过一个第二平面可以确定一个第二法向向量。
应理解,在本申请的实施例中,第一平面可以是指一类平面,即可以是指在预测深度图像中选取三维点构建的任意一个虚拟平面;同理,第二平面也可以是指一类平面,即可以是指样本深度图像中选取三维点构建的任意一个虚拟平面。
需要说明的是,构建一个第一平面的三维点和构建一个第二平面的三维点对应的像素点的坐标相同。由于三维坐标点是通过像素点和相机参数转换得到的,虽然像素点坐标相同,但是预测深度图像和样本深度图像对应的深度值不同,因而可以导致相同像素点对应的三维坐标不同。
示例性地,根据针孔相机模型的给定相机内参K可以直接将预测深度图像(或者,样本深度图像)中的各个像素点转换为三维空间的坐标点。假设预测深度图像中的任意一个像素点A的坐标为(ui,vi),则通过以下等式可以获取该像素点A的三维坐标点(xi,yi,zi):
其中,di是表示像素点A的深度值,fx和fy分别表示x轴方向和y轴方向的焦距,u0和v0表示相机中心。
在本申请的实施例中,可以通过目标单目深度估计网络对样本图像进行预测深度处理,得到样本图像的预测深度图像;进一步,通过同一个网络分支将得到的预测深度图像进行坐标变换,根据预测深度图像的二维像素坐标以及相机参数将像二维像素点投射至三维空间点。
可选地,在一种可能的实现方式中,预测深度图像中的第一点集是可以根据预测深度图像中像素点的二维坐标和样本图像对应的相机参数得到的;同理,样本深度图像中的第二点集是可以根据样本深度图像中像素点的二维坐标和样本图像对应的相机参数得到的。
可选地,在一种可能的实现方式中,则第一点集中任意三个点可以均不在同一条直线上;同理,第二点集中任意三个点也可以均不在同一条直线上。
进一步地,第一点集可以满足距离约束和角度约束,其中,距离约束可以是第一点集中任意两个点之间的距离要大于或等于预设阈值;角度约束可以是第一点集任意两个点构成的向量之间的夹角要在第二预设取值范围内;同理,第二点集也可以满足上述距离约束和角度约束。
例如,上述第一点集和第二点集的各个点集中任意两个点之间的距离可以是大于或等于0.6米,夹角的预设取值范围可以是大于或等于30度且小于或等于120度。
例如,上述第一点集和第二点集的各个点集中任意两个点之间的距离可以是大于或等于0.567米,夹角的预设取值范围可以是大于或等于28.2度且小于或等于123.6度。
应理解,上述预设距离和夹角的预设取值范围为举例说明,在本申请中只要第一点集和第二点集的各个点集中三维点的选取满足当第一点集或第二点集存中的点存在扰动时,第一法向向量和第二法向向量的偏差均在允许范围内,则均能够实现本申请实施的方案确保通过第一点集和第二点集构建的平面的稳定性,即确保构建平面的法向向量的稳定性,进而保证通过法向损失训练后得到的目标单目深度估计网络预测深度的准确性。在本申请的实施例中,法向损失值是根据第一法向向量与第二法向向量之间的夹角确定的,其中,第一法向向量是指第一法向向量是指通过预测深度图像中的第一点集构建平面得到的法向向量,第二法向向量是指通过所述样本深度图像中的第二点集构建平面得到的法向向量。
可选地,法向损失值可以是指第一法向向量和第二法向向量之间夹角的角度值;或者,法向损失值可以是指第一法向向量和第二法向向量之间夹角的函数值,或者,法向损失值可以是指第一法向向量和第二法向向量之差的函数值。示例性地,法向损失值可以是法向向量的角度偏差值,即法向损失值可以是指第一法向向量和第二法向向量之间夹角的角度值。
示例性地,法向损失值可以是第一法向向量和第二法向向量之间夹角的函数值。
例如,法向损失值可以是指第一法向向量和第二法向向量之间夹角的正弦值。
例如,法向损失值可以是指1与第一角度的余弦值的差值,第一角度可以是指第一法向向量和第二法向向量之间夹角。
在一种可能的实现方式中,法向损失值可以是指第一法向向量n1(x1,y1,z1)和第二法向向量n2(x2,y2,z2)之间差异的函数值。
例如,上述函数值可以是指L1,其中,L1=|x1-x2|+|y1-y2|+|z1-z2|。
例如,上述函数值可以是指L2,其中,L2=|x1-x2|2+|y1-y2|2+|z1-z2|2。
在本申请的实施例中,法向损失值可以根据以下等式得到的:
其中,LN表示法向损失值,N表示获取的第一点集的数量,第一点集与第二点集的数量相等,表示由预测深度图像中的第i个所述第一点集构成的平面的法向,表示由样本深度图像中第i个所述第二点集构成的平面的法向,||||可以表示度量所述第一法向向量与所述第二法向向量之间差异的函数,PAi、PBi、PCi表示第i个第一点集或第i个第二点集中所包括的任意三个点。
应理解,在本申请中目标单目深度估计网络可以是能够根据参数进行学习的网络或者模型,例如,目标单目深度估计网络可以是具有学习功能的神经网路。
可选地,在一种可能的实现方式中,图像损失还可以包括深度损失值,深度损失值是指对于样本图像中的像素点预测深度图像的深度值相对于样本深度图像的深度值之间的损失值。
可选地,图像损失是通过对法向损失值和深度损失值加权处理得到的。
例如,法向损失值可以对应第一权重值,深度损失值可以对应第二权重值,其中,法向损失值乘以第一权重值与深度损失值乘以第二权重值后可以处于相同的数量级。
在本申请中,目标单目深度估计网络可以均衡考虑深度损失值和法向损失值两方面的损失,从而在对待处理图像进行预测深度时,不仅考虑了深度值损失同时也考虑了基于图像上的点构建的平面的法向的损失,从而提高了单目图像深度估计网络对深度值预测的准确性。
需要说明的是,在本申请的实施例中图像损失中可以包括上述法向损失、深度损失以及其他损失。
可选地,在一种可能的实现方式中,目标单目深度估计网络的参数是基于法向损失值和深度损失值通过反向传播算法多次迭代得到的。
在本申请的实施例中,可以通过目标单目深度估计网络对待处理图像进行预测深度处理,得到待处理图像对应的目标深度图像,其中,目标单目深度估计网络可以是通过图像损失不断调整待训练单目深度估计网络的模型参数得到的,图像损失可以包括法向损失值,法向损失值可以是指样本图像对应的样本深度图像中大于或等于预设阈值的第一点集构建的第一平面的第一法向向量与样本图像对应的预测深度图像中大于或等于预设阈值的第二点集构建的第二平面的第二法向向量之间的角度偏差,本申请实施例的目标单目深度估计网络是基于图像全局几何结构的法向向量的数据训练得到的,即当第一点集或第二点集存中的点存在扰动时,第一法向向量和第二法向向量的偏差均在允许范围内,从而使得该目标单目深度估计网络进行预测深度处理时受噪声影响较小,能够提高目标单目深度估计网络预测深度处理的准确率。
下面结合图11对本申请实施例的目标单目深度估计网络的训练方法进行详细的介绍。图11所示的方法可以由目标单目深度估计网络训练装置来执行,该目标单目深度估计网络训练装置可以是服务器,还可以是具有图像深度预测需求的电子设备。其中,图11所示的目标单目深度估计网络可以是图10所示的目标单目深度估计网络。图11所示的方法包括步骤701至707,下面分别对这些步骤进行详细的描述。
步骤701、获取训练图像。
其中,训练图像中可以包括样本图像和样本图像对应的样本深度图像。
示例性地,训练图像可以是上述电子设备通过摄像头拍摄到的图像,或者,训练图像还可以是从电子设备内部获得的图像(例如,电子设备的相册中存储的图像,或者,电子设备从云端获取的图片)。
步骤702、向待训练的单目深度估计网络中输入样本图像进行深度预测处理。
例如,对输入的样本图像进行卷积操作,可以得到样本图像对应的预测的深度图像。
例如,可以通过一个编码器解码器网络的卷积操作对样本图像进行卷积操作,从而生成对应于输入样本图像的预测深度图像。
需要说明的是,待训练的单目深度估计网络可以采用现有技术中任意一种用于进行单目深度估计的网络模型,本申请对待训练的单目深度估计网络的构建方式不作任何限定。
示例性地,可以通过对原始输入图像使用编码器进行卷积操作、池化操作得到特征图,并使用解码器对得到的特征图进行解码操作得到预测深度图像。其中,编解码器网络可以采用多种架构,比如,深度残差网络(deep residual network,ResNet),ResNeXt,MobileNet网络等。根据不同的场景,以及不同准确度和速度的需求,可以选择不同的神经网络模型。
步骤703、经过上述深度预测处理得到预测深度图像,其中,该预测深度图像为样本图像经过待训练的单目深度估计网络经过卷积处理后得的样本图像对应的预测深度图像。
步骤704、对预测深度图像进行深度损失约束。
其中,深度损失(即深度损失值)约束可以是指将待训练的单目深度估计网络输出的样本图像对应的预测深度图与样本图像对应的样本深度图像进行图像对比,将预测深度图像和样本深度图像的图像差作为损失,在训练过程中可以通过深度损失对待训练的单目深度估计网络进行反向传播迭代训练,并对待训练的单目深度估计网络的参数不断进行相应调整。
示例性地,确定预测深度图像和样本深度图像的深度损失可以包括但不限于以下两种方式:
方式一:使用回归的方法直接比较预测深度图像和样本深度图像中对于相同像素点的深度差值,例如,可以使用尺度不变的平均方差。
具体地,假设预测深度图像为D1,样本深度图像为D,它们之间差值为d=D1-D,则深度损失可以根据以下等式确定:
其中,n表示选取的像素点的数量,di表示选取的第i个像素点对应的预测深度图像和样本深度图像之间的差值。
方式二:将连续的深度值进行离散化,并将深度估计问题建模成分类问题,然后使用交叉熵损失来表示预测深度图像与样本深度图像之间的差距。可以将连续的深度值离散在对数空间内的若干整数值。
具体地,假设深度的范围可以是[x1,x2],则离散策略可以通过以下等式实现:
l=round((log10(x2)-log10(x1))/q);
q=(log10(x2)-log10(x1))/M;
其中,l表示离散标签,d表示原始的连续深度值,M表示标签种类数,q表示离散桶的宽度。利用上述公式,可以将任意一个连续值的深度d转换成其对应的离散标签l。
通过这种在对数离散空间表示深度的方式,使得离相机更近的深度可以用更多的标签来表示;离相机更远的深度使用更少的标签。这样处理的优势在于,随着距离的增加用于估计深度的信息会相应减少,从而可以使用更多的标签更精确地表达近距离,然后用少数标签对远距离估计一个大概。在将深度值离散化之后,可以使用加权交叉熵损失来度量预测深度图像与样本深度图像的差:
其中,D1i∈[1,…,M]表示像素点i的真实深度标签,M是标签种类别总数。表示像素i被标注为类别D的概率。Zi,d表示网络最后一个卷积层的输出。通过使用一个对称的信息增益矩阵作为权重,该矩阵的元素定义为H(p,q)=exp(-α(p-q)2),其中α表示一个常数,通过信息增益矩阵让更接近真实深度标签的像素在更新网络参数的时候具有更大的影响。
步骤705、将预测深度图像转换为三维点云。
示例性地,根据针孔相机模型的给定相机内参K可以直接将预测深度图像中的各个像素点转换为三维空间的坐标点。假设预测深度图像中的任意一个像素点A的坐标为(ui,vi),则通过以下等式可以获取该像素点A的三维坐标点(xi,yi,zi):
其中,di表示像素点A的深度值,fx和fy分别表示x轴方向和y轴方向的焦距,u0和v0是表示相机中心。
步骤706、在三维点云中选取点集构建虚拟平面确定虚拟法向。
在本申请的实施例中,可以通过上述步骤705将深度图像(包括预测深度图像和样本深度图像)中的二维像素点的坐标投射至三维空间生成对应的三维点云。
示例性地,此处以在预测深度图像中选取第一点集构建平面确定第一法向向量为例进行举例说明,需要说明的是在样本图像中选取第二点集构建平面确定第二法向向量的过程同样适用。
通过在预测深度图像中随机采样N组三维点,每个组内可以包括至少3个三维点。这些采样的点对应的3D点可以为S={(PA,PB,PC)i|i=0…N};
在一种可能的实现方式中,从N组三维点中确定第一点集时,可以先从N组三维点中选取满足距离约束的点;进一步地,可以确定满足距离约束的点是否同时满足角度约束。
在一种可能的实现方式中,从N组三维点中确定第一点集时,可以先从N组三维点中选取满足角度约束的点;进一步地,可以确定满足角度约束的点是否同时满足距离约束。
示例性地,同一个组内的3D点满足角度约束可以是指:
其中,α=30°,β=120°。
进一步地,同一组内的3D点之间需要满足距离约束可以是指:
其中,λ=0.6米。
应理解,上述角度约束设置的取值范围以及距离约束设置的取值范围为举例说明,在本申请中可以根据目标单目深度估计网络对误差的允许范围或者实际的应用需求,设置角度约束的取值范围以及距离约束的取值范围,只要满足使得当选取构建平面的点满足大于或等于预设阈值时,构建平面的法向的差异在允许范围内均可。
例如,如图13所示的图形为例,说明上述角度约束和距离约束取值范围的确定过程。假设由于噪声影响PC点扰动至PC2点,PCPC2=a,PBPC=PCPA=x,∠PCPBPA=∠PCPAPB=30度,扰动很小a=0.05米,此时平面法向的偏差允许范围为10度,则若想要PC扰动后构建平面的法向的偏差在允许范围内,则需要满足:
根据上述公式推导得出x的取值需要大于或等于0.567米。
应理解,上述推导过程为举例说明,偏差的允许范围可以是根据需求设定为数值,当偏差的允许范围发生改变时,相对应需要满足的距离约束的取值范围也会发生变化。
同理,如图13所示的图形为例,假设由于噪声影响PC点扰动至PC2点,PCPC2=a,PBPC=PCPA=x,∠PCPBPA=∠PCPAPB=θ,扰动很小a=0.05米,x=0.6米,此时平面法向的偏差允许范围为10度,则若想要PC扰动后构建平面的法向的偏差在允许范围内,则需要满足:
根据上述公式推导得出θ的取值需要大于或等于28.2°。
应理解,上述推导过程为举例说明,偏差的允许范围可以是根据需求设定为数值,当偏差的允许范围发生改变时,相对应需要满足的角度约束的取值范围也会发生变化。
通过上述角度约束和距离约束,可以在3D空间中采样远距离的3个点构建一个平面,由于这样的平面在物理世界中并非真实的存在,因此,我们可以称这样的平面为虚拟平面,称虚拟平面的法向为虚拟法向(或者,虚拟法向向量)。虚拟法向可以用来表示3D空间中点的几何关系。其中,虚拟法向可以通过如下等式得到:
其中,L1可以表示虚拟法向,i可以表示获取的多组三维点的数量,PA,PB以及PC可以表示一组三维点中的任意三个点。
通过本申请实施例中,通过随机选取的多组满足距离约束和角度约束的点构建的虚拟平面,相对于表面法向的局部几何特性而言,本申请实施例中的得到的虚拟法向对深度噪声具有鲁棒性,由于构建虚拟平面的三维点之间的距离足够远以及进一步还可以满足角度约束,使得由于深度预测时的噪声影响对三维点引入扰动时,虚拟法向的偏差在允许范围内。
例如,如图13所示,通过在3D空间中采样3个远距离点PA,PB,PC即三个点满足上述距离约束,或者,三个点同时满足上述距离约束和上述角度约束,假设PA和PB在XY平面上,PC在Z轴上。n为(PA,PB,PC)组成的虚拟平面的法向,当PC扰动到PC1时,由(PA,PB,PC1)构成扰动后的虚拟平面,n1为(PA,PB,PC1)组成的虚拟平面的法向,当PC扰动到PC1时法向从n扰动到n1。PC2为平面(PA,PB,PC1)与Z轴的交点,通过相似三角形中可以验证n和n'的之间偏差的角度非常小:
步骤707、对预测深度图像进行法向损失约束。
例如,可以通过在样本图像对应的预测深度图像中采样大量的虚拟法向,根据这些虚拟法向与对应的样本深度图像中的虚拟法向进行比较,从而确定虚拟法向的损失值,其中,可以通过第一虚拟法向和第二虚拟法向之间的夹角确定虚拟法向的损失值,第一法向可以是指通过预测深度图像中的第一点集构建平面得到的法向,第二法向可以是指通过样本深度图像中的第二点集构建平面得到的法向,第一点集与第二点集均为三维点的集合且对应所述样本图像中相同的像素点,则可以通过以下等式确定虚拟法向的损失:
例如,如图14所示,其中,图14(a)表示样本图像对应的预测深度图像、图14(b)表示样本图像对应的样本深度图像,可以图14(a)和图14(b)的相同像素点位置采样至少3个点,分别确定预测深度图像和样本深度图像通过相同采样的像素点对应的三维点构建平面的虚拟法向n1和n2,进一步确定虚拟法向n1和n2之间的损失,如图14(e)所示。
示例性地,法向损失可以是如图14(e)所示n1和n2之间的夹角的角度值。
示例性地,法向损失可以是如图14(e)所示n1和n2之间的夹角的函数值。
示例性地,法向损失可以是如图14(e)所示n1和n2之差的函数值。
应理解,在图11中先执行深度损失约束,即步骤703和步骤704;在深度损失小于预设阈值时,即满足深度损失一致性;再执行法向损失约束,即步骤705至步骤706。可以理解,图11所示的单目深度估计网络训练的流程中,也可以先执行法向损失约束,在法向损失约束满足收敛时即可以是法向损失小于预设阈值时,再执行深度损失约束。或者,可以通过神经网络一次性执行深度损失约束和法向损失约束,即通过神经网络的处理,一次性地输出执行深度损失约束和法向损失约束的结果。上述为举例说明,并不对本申请的流程执行顺序作出任何限定。
在本申请的实施例中,如图12所示可以在一个无分支的网络中通过深度损失和法向损失对网络参数进行训练,从而解决了现有的技术方案要为了使用诸如表面法向的几何约束,通常需要引入额外的网络分支来进行估计。这就无形中增加了网络参数。本方案可以直接通过预测深度图像获得高精度的3D点云,然后从3D点云得到虚拟法向,并不需要增加额外的网络参数开销。
表1
方法 | rel | Log10 | rms | δ<sub>1</sub> | δ<sub>2</sub> | δ<sub>3</sub> |
Make3D | 0.349 | -- | 1.214 | 0.447 | 0.745 | 0.897 |
DORN | 0.115 | 0.051 | 0.509 | 0.828 | 0.965 | 0.992 |
本申请 | 0.108 | 0.048 | 0.416 | 0.875 | 0.976 | 0.994 |
表1是通过在室内场景NYUD-V2数据集上进行测试得到的测试结果。如表1所示,通过本申请中的目标深度估计网络与Make3D网络、深度序数回归网络(deep ordinalregression network,DORN)得到的预测深度估计结果进行对比。其中,rel是指平均相对误差(mean relative error)、rms是指均方根误差(root mean squared error)、δ1~δ3可以用于衡量预测深度值与真实深度值的接近程度。
例如,可以通过以下公式确定平均相对误差rel:
其中,T表示像素集合,d1表示预测深度图像的深度值,d表示样本深度图像(又称为真实深度图像)的深度值。
例如,可以通过以下公式确定Log10:
其中,T表示像素集合,d1表示预测深度图像的深度值,d表示样本深度图像的深度值。
例如,可以通过以下公式确定均方根误差rms:
其中,T表示像素集合,d1表示预测深度图像的深度值,d表示样本深度图像的深度值。
例如,可以通过以下公式确定δ:
δi<1.25i,i=1,2,3;
其中,d1表示预测深度图像的深度值,d表示样本深度图像的深度值。
例如,δ1可以表示预测深度图像与样本深度图像的比值经过归一化处理后小于1.25的百分比;δ2可以表示预测深度图像与样本深度图像的比值经过归一化处理后小于1.252的百分比;δ3可以表示预测深度图像与样本深度图像的比值经过归一化处理后小于1.253的百分比。
通常情况下,rel、Log10、rms的数值越小,δ1~δ3的数值越大,则网络预测深度的准确性越高,从表1中可以看出通过本申请实施例得到的目标深度估计网络在室内场景中进行深度预测处理时,得到的深度预测结果的准确性更高。
表2
方法 | rel | rms | rms(log) | δ<sub>1</sub> | δ<sub>2</sub> | δ<sub>3</sub> |
Make3D | 0.280 | 8.734 | 0.361 | 0.601 | 0.820 | 0.926 |
DORN | 0.072 | 2.727 | 0.120 | 0.932 | 0.984 | 0.994 |
本申请 | 0.072 | 3.258 | 0.117 | 0.938 | 0.990 | 0.998 |
表2是通过在室外场景KITTI数据集上进行测试得到的测试结果。如表2所示,通过本申请中的目标深度估计网络与Make3D网络、深度序数回归网络(deep ordinalregression network,DORN)得到的预测深度估计结果进行对比。其中,rel是指平均相对误差(mean relative error)、rms是指均方根误差(root mean squared error)、δ1~δ3可以用于衡量预测深度值与真实深度值的接近程度。
例如,可以通过以下公式确定rms(log):
其中,T表示像素集合,d1表示预测深度图像的深度值,d表示样本深度图像的深度值。
通常情况下,rel、Log10、rms的数值越小,δ1~δ3的数值越大,则网络预测深度的准确性越高,从表2中可以看出通过本申请实施例得到的目标深度估计网络在室外场景中进行深度预测处理时,得到的深度预测结果的准确性更高。
表3
方法 | mean | median | 11.2° | 22.5° | 30° |
GeoNet | 36.8 | 32.1 | 15.0 | 34.5 | 46.7 |
DORN | 36.6 | 31.1 | 15.7 | 36.5 | 49.4 |
本方案 | 24.6 | 17.9 | 34.1 | 60.7 | 71.7 |
表3是通过表面法向在NYUD-V2数据集上的性能进行测试得到的测试结果。如3所示,通过本申请中的目标深度估计网络与几何神经网络(geometric neural network,GeoNet)、深度序数回归网络(deep ordinal regression network,DORN)得到的预测深度估计结果进行对比。其中,mean可以表示预测表面法向的误差平均值,median可以表示预测表面法向的误差中值,11.2°、22.5°、30°分别表示预测表面法向偏差角度小于该角度的百分比,通常情况下,mean、median的数值越小,11.2°、22.5°、30°对应百分比的数值越大,则网络预测深度的准确性越高,从表3中可以看出通过本申请实施例得到的目标深度估计网络在室外场景中进行深度预测处理时,不仅得到的深度预测结果的准确性更高,而且得到的表面法向图的准确性也更高。
应注意,上述图11的例子仅仅是为了帮助本领域技术人员理解本申请实施例,而非要将本申请实施例限于所例示的具体场景。本领域技术人员根据所给出的图11的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本申请实施例的范围内。
在本申请的实施例中,目标单目深度估计网络是基于图像全局几何结构的法向向量的数据训练得到的,即当构建平面的点存在扰动时,该平面法向向量的偏差均在允许范围内,从而使得该目标单目深度估计网络进行预测深度处理时受噪声影响较小,能够提高目标单目深度估计网络预测深度处理的准确率。
上文结合图1至图14,详细描述了本申请实施例提供的目标深度估计网络的训练方法以及图像处理方法,下面将结合图15至图17,详细描述本申请的装置实施例。应理解,本申请实施例中的图像处理装置可以执行前述本申请实施例的各种方法,即以下各种产品的具体工作过程,可以参考前述方法实施例中的对应过程。
图15是本申请实施例提供的装置的示意图。
在一种可能的设计中,该装置800可以是图像处理装置,或者,可以是配置于图像处理装置中的芯片。该图像处理装置能够执行图10的方法中设备执行的各个步骤,为了避免重复,此处不再详述。装置800包括:获取模块810和处理模块820。
获取模块810,用于获取待处理图像;处理模块820,用于根据目标单目深度估计网络对所述待处理图像进行深度预测处理,得到所述待处理图像的目标深度图像,其中,所述目标单目深度估计网络的参数是根据所述目标单目深度估计网络对样本图像进行深度预测处理的图像损失确定的,所述图像损失在预设取值范围内,所述图像损失包括法向损失值,所述法向损失值是根据第一法向向量与第二法向向量之间的差异确定的;所述第一法向向量是指通过所述样本图像的预测深度图像中的第一点集构建平面得到的法向向量,所述第二法向向量是指通过样本深度图像中的第二点集构建平面得到的法向向量,所述第一点集和所述第二点集均为三维点的集合且对应所述样本图像中的相同像素点,所述第一点集和所述第二点集的各个点集中任意两个点之间的距离大于或等于预设阈值,使得当所述第一点集或所述第二点集存中的点存在扰动时,所述第一法向向量和所述第二法向向量的偏差均在允许范围内;基于所述目标深度图像,预测所述待处理图像的深度值。
可选地,作为一个实施例,所述第一点集和所述第二点集的各个点集中任意三个点均不在同一条直线上。
可选地,作为一个实施例,所述第一点集和所述第二点集的各个点集中任意两个点构成的向量之间的夹角大于或等于30度且小于或等于120度。
可选地,作为一个实施例,所述法向损失值是指所述第一法向向量和所述第二法向向量之间夹角的角度值;或者,所述法向损失值是指所述第一法向向量和所述第二法向向量之间夹角的函数值,或者,所述法向损失值是指第一法向向量和第二法向向量之间差异的函数值。
可选地,作为一个实施例,所述预测图像的第一点集是根据所述预测深度图像中像素点的二维坐标和所述样本图像对应的相机参数得到的。
可选地,作为一个实施例,所述法向损失值是根据以下等式得到的:
其中,LN表示所述法向损失值,N表示所述第一点集的数量,所述第一点集与所述第二点集的数量相等,表示由所述预测深度图像中的第i个所述第一点集构建平面的法向向量,表示由所述样本深度图像中第i个所述第二点集构建平面的法向向量,||||表示度量所述第一法向向量与所述第二法向向量之间差异的函数,PAi、PBi、PCi表示第i个所述第一点集或者第i个所述第二点集中包括的任意三个点。
可选地,作为一个实施例,所述图像损失还包括深度损失值,所述深度损失值是指所述预测深度图像的深度值相对于所述样本深度图像的深度值的损失。
可选地,作为一个实施例,所述目标单目深度估计网络的参数是基于所述法向损失值和所述深度损失值通过反向传播算法多次迭代得到的。
可选地,作为一个实施例,所述预设阈值为0.6。
在一种可能的设计中,该装置800可以是目标单目深度训练装置,或者,可以是配置于目标单目深度训练装置中的芯片。该图像处理装置能够执行图11的方法中设备执行的各个步骤,为了避免重复,此处不再详述。装置800包括:获取模块810和处理模块820。
获取模块810,用于获取训练图像,所述训练图像包括样本图像和所述样本图像对应的样本深度图像;处理模块820,处理模块820,用于将所述样本图像输入至待训练的单目深度估计网络,得到所述样本图像的预测深度图像;根据所述预测深度图像和所述样本深度图像之间的图像损失对所述单目深度估计网络进行训练,得到目标单目深度神经网络,其中,所述目标单目神经网络用于预测待处理图像的深度值,所述预测深度图像与所述样本深度图像之间的图像损失在预设取值范围内,所述图像损失包括法向损失值,所述法向损失值是根据第一法向向量与第二法向向量之间的差异确定的,所述第一法向向量是指通过所述预测深度图像中的第一点集构建平面得到的法向向量,所述第二法向向量是指通过所述样本深度图像中的第二点集构建平面得到的法向向量,所述第一点集与所述第二点集对应所述样本图像中相同的像素点,所述第一点集和所述第二点集均为三维点的集合,所述第一点集和所述第二点集的各个点集中任意两个点之间的距离大于或等于预设阈值,使得当所述第一点集或所述第二点集存中的点存在扰动时,所述第一法向向量和所述第二法向向量的偏差均在允许的范围内。
在一个示例中,图15中的获取模块810可以与如图16所示的获取模块910相同,处理模块820的具体实现形式可以是如图16所示的处理模块920,处理模块920中可以包括深度估计模块921和虚拟法向估计模块922,其中,深度估计模块921中可以包括卷积模块9210和深度一致性模块9211;虚拟法向估计模块922中可以包括3D点云变换模块9220、虚拟法向提取模块9221以及虚拟法向一致性模块9222。其中,卷积模块9210用于通过卷积神经网络生成对应于输入样本图像的预测深度图像;深度一致性模块9211用于将样本图像的预测深度图像与样本图像对应的样本深度图像的深度值进行比较,然后将这两幅深度图的差异作为损失的一部分对待训练的单目深度神经网络进行训练;3D点云变换模块9220用于利用相机内参将样本深度图像和预测深度图像分别转换成对应的样本深度图像3D点云和预测深度图像3D点云;虚拟法向提取模块9221用于按照预设规则,在3D点云中随机采样至少三个不在同一直线的远距离点构成一个虚拟平面,该虚拟平面的法向称为虚拟法向,其中,预设规则可以包括距离约束和角度约束中的至少一个;虚拟法向一致性模块9222用于在样本深度图像3D点云和预测深度图像3D点云中采样大量的相对应的虚拟法向,将这些虚拟法向的差异作为损失的一部分对待训练的单目深度神经网络进行训练。
可选地,作为一个实施例,所述第一点集和所述第二点集的各个点集中任意三个点均不在同一条直线上。
可选地,作为一个实施例,所述第一点集和所述第二点集的各个点集中任意两个点构成的向量之间的夹角大于或等于30度且小于或等于120度。
结合第二方面,在第二方面的某些实现方式中,所述法向损失值是指所述第一法向向量和所述第二法向向量之间夹角的角度值;或者,所述法向损失值是指所述第一法向向量和所述第二法向向量之间夹角的函数值,或者,所述法向损失值是指第一法向向量和第二法向向量之间差异的函数值。
可选地,作为一个实施例,所述预测图像的第一点集是根据所述预测深度图像中像素点的二维坐标和所述样本图像对应的相机参数得到的。
可选地,作为一个实施例,所述法向损失值是根据以下等式得到的:
其中,LN表示所述法向损失值,N表示所述第一点集的数量,所述第一点集与所述第二点集的数量相等,表示由所述预测深度图像中的第i个所述第一点集构建平面的法向,表示由所述样本深度图像中第i个所述第二点集构建平面的法向,||||表示度量所述第一法向向量与所述第二法向向量之间差异的函数,PAi、PBi、PCi表示第i个所述第一点集或者第i个所述第二点集中包括的任意三个点。
可选地,作为一个实施例,所述图像损失还包括深度损失值,所述深度损失值是指所述预测深度图像的深度值相对于所述样本深度图像的深度值的损失。
可选地,作为一个实施例,所述处理模块820具体用于:
根据所述法向损失值和所述深度损失值通过反向传播算法多次迭代训练所述单目深度估计网络,得到所述目标单目深度估计网络的参数。
可选地,作为一个实施例,所述预设阈值为0.6。
应理解,这里装置800以功能模块的形式体现。这里的术语“模块”可以通过软件和/或硬件形式实现,对此不作具体限定。例如,“单元”可以是实现上述功能的软件程序、硬件电路或二者结合。所述硬件电路可能包括应用特有集成电路(application specificintegrated circuit,ASIC)、电子电路、用于执行一个或多个软件或固件程序的处理器(例如共享处理器、专有处理器或组处理器等)和存储器、合并逻辑电路和/或其它支持所描述的功能的合适组件。因此,在本申请的实施例中描述的各示例的单元,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
图17是本申请实施例提供的装置的硬件结构示意图。
在一种可能的设计中,图17装置1000可以是图像处理装置(该装置1000具体可以是一种计算机设备)包括存储器1100、处理器1200、通信接口1300以及总线1400。其中,存储器1100、处理器1200、通信接口1300通过总线1400实现彼此之间的通信连接。
应理解,本申请实施例所示的图像处理装置可以是服务器,例如,可以是云端的服务器,或者,也可以是配置于云端的服务器中的芯片。此外,目图像处理装置还可以是具有图像深度预测的电子设备,或者,也可以是配置于电子设备中的芯片。
在一种可能的设计中,图17装置1000可以是目标单目深度预估网络训练装置(该装置1000具体可以是一种计算机设备)包括存储器1100、处理器1200、通信接口1300以及总线1400。其中,存储器1100、处理器1200、通信接口1300通过总线1400实现彼此之间的通信连接。
应理解,本申请实施例所示的目标单目深度预估网络可以是服务器,例如,可以是云端的服务器,或者,也可以是配置于云端的服务器中的芯片。此外,目标单目深度预估网络还可以是具有图像深度预测需求的电子设备,或者,也可以是配置于电子设备中的芯片。
存储器1100可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器1100可以存储程序,当存储器1100中存储的程序被处理器402执行时,处理器1200用于执行本申请实施例的图像处理方法或者目标单目深度估计网络训练方法的各个步骤。例如,可以执行图10或图11所示实施例的各个步骤。
处理器1200可以采用通用的中央处理器(central processing unit,CPU),微处理器,应用专用集成电路(application specific integrated circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请方法实施例的图像处理方法或者目标单目深度估计网络训练方法。
处理器1200还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的图像处理方法或者目标单目深度估计网络训练方法的各个步骤可以通过处理器1200中的硬件的集成逻辑电路或者软件形式的指令完成。
上述处理器1200还可以是通用处理器、数字信号处理器(digital signalprocessing,DSP)、专用集成电路(ASIC)、现成可编程门阵列(field programmable gatearray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1100,处理器1200读取存储器1100中的信息,结合其硬件完成本申请实施例中图像处理装置或者目标单目深度估计网络训练装置中包括的模块所需执行的功能,或者,执行本申请方法实施例的图像处理方法或者目标单目深度估计网络训练方法,例如,可以执行图10或者图11所示实施例的各个步骤/功能。
通信接口1300使用例如但不限于收发器一类的收发装置,来实现装置1000与其他设备或通信网络之间的通信。例如,可以通过通信接口1300获取待处理图像,或者,获取训练图像。
总线1400可包括在装置1000各个部件(例如,存储器1100、处理器1200、通信接口1300)之间传送信息的通路。
在本申请的实施例中,目标单目深度估计网络训练装置训练得到了目标单目深度估计网络之后,可以通过图像处理装置用于执行本申请实施例的图像处理方法。
应注意,尽管上述装置1000仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置1000还可以包括实现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,装置1000还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当理解,装置1000也可仅仅包括实现本申请实施例所必须的器件,而不必包括图17中所示的全部器件。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (20)
1.一种图像处理方法,其特征在于,包括:
获取待处理图像;
根据目标单目深度估计网络对所述待处理图像进行深度预测处理,得到所述待处理图像的目标深度图像,其中,所述目标单目深度估计网络的参数是根据所述目标单目深度估计网络对样本图像进行深度预测处理的图像损失确定的,所述图像损失在预设取值范围内,所述图像损失包括法向损失值,所述法向损失值是根据第一法向向量与第二法向向量之间的差异确定的;
所述第一法向向量是指通过所述样本图像的预测深度图像中的第一点集构建平面得到的法向向量,所述第二法向向量是指通过样本深度图像中的第二点集构建平面得到的法向向量,所述第一点集和所述第二点集均为三维点的集合且对应所述样本图像中的相同像素点,所述第一点集和所述第二点集的各个点集中任意两个点之间的距离大于或等于预设阈值,使得当所述第一点集或所述第二点集存中的点存在扰动时,所述第一法向向量和所述第二法向向量的偏差均在允许范围内;
基于所述目标深度图像,预测所述待处理图像的深度值。
2.如权利要求1所述的方法,其特征在于,所述第一点集和所述第二点集的各个点集中任意三个点均不在同一条直线上。
3.如权利要求1或2所述的方法,其特征在于,所述第一点集和所述第二点集的各个点集中任意两个点构成的向量之间的夹角大于或等于30度且小于或等于120度。
4.如权利要求1至3中任一项所述的方法,其特征在于,所述法向损失值是指所述第一法向向量和所述第二法向向量之间夹角的角度值;或者,
所述法向损失值是指所述第一法向向量和所述第二法向向量之间夹角的函数值;或者
所述法向损失值是指所述第一法向向量和所述第二法向向量之差的函数值。
5.如权利要求1至4中任一项所述的方法,其特征在于,所述预测深度图像中的第一点集是根据所述预测深度图像中像素点的二维坐标和所述样本图像对应的相机参数得到的。
7.如权利要求1至6中任一项所述的方法,其特征在于,所述图像损失还包括深度损失值,所述深度损失值是指所述预测深度图像的深度值相对于所述样本深度图像的深度值的损失。
8.如权利要求7所述的方法,其特征在于,所述目标单目深度估计网络的参数是基于所述法向损失值和所述深度损失值通过反向传播算法多次迭代得到的。
9.如权利要求1至8中任一项所述的方法,其特征在于,所述预设阈值为0.6。
10.一种图像处理装置,其特征在于,包括:
存储器,用于存储程序;
处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行以下过程:
获取待处理图像;
根据目标单目深度估计网络对所述待处理图像进行深度预测处理,得到所述待处理图像的目标深度图像,其中,所述目标单目深度估计网络的参数是根据所述目标单目深度估计网络对样本图像进行深度预测处理的图像损失确定的,所述图像损失在预设取值范围内,所述图像损失包括法向损失值,所述法向损失值是根据第一法向向量与第二法向向量之间的差异确定的;
所述第一法向向量是指通过所述样本图像的预测深度图像中的第一点集构建平面得到的法向向量,所述第二法向向量是指通过样本深度图像中的第二点集构建平面得到的法向向量,所述第一点集和所述第二点集均为三维点的集合且对应所述样本图像中的相同像素点,所述第一点集和所述第二点集的各个点集中任意两个点之间的距离大于或等于预设阈值,使得当所述第一点集或所述第二点集存中的点存在扰动时,所述第一法向向量和所述第二法向向量的偏差均在允许范围内;
基于所述目标深度图像,预测所述待处理图像的深度值。
11.如权利要求10所述的装置,其特征在于,所述第一点集和所述第二点集的各个点集中任意三个点均不在同一条直线上。
12.如权利要求10或11所述的装置,其特征在于,所述第一点集和所述第二点集的各个点集中任意两个点构成的向量之间的夹角大于或等于30度且小于或等于120度。
13.如权利要求10至12中任一项所述的装置,其特征在于,所述法向损失值是指所述第一法向向量和所述第二法向向量之间夹角的角度值;或者,
所述法向损失值是指所述第一法向向量和所述第二法向向量之间夹角的函数值;或者,
所述法向损失值是指所述第一法向向量和所述第二法向向量之差的函数值。
14.如权利要求10至13中任一项所述的装置,其特征在于,所述预测图像的第一点集是根据所述预测深度图像中像素点的二维坐标和所述样本图像对应的相机参数得到的。
16.如权利要求10至15中任一项所述的装置,其特征在于,所述图像损失还包括深度损失值,所述深度损失值是指所述预测深度图像的深度值相对于所述样本深度图像的深度值的损失。
17.如权利要求16所述的装置,其特征在于,所述目标单目深度估计网络的参数是基于所述法向损失值和所述深度损失值通过反向传播算法多次迭代得到的。
18.如权利要求10至17中任一项所述的装置,其特征在于,所述预设阈值为0.6。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有程序指令,当所述程序指令由处理器运行时,实现权利要求1至9中任一项所述的方法。
20.一种芯片,其特征在于,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,以执行如权利要求1至9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910663308.7A CN112258565B (zh) | 2019-07-22 | 2019-07-22 | 图像处理方法以及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910663308.7A CN112258565B (zh) | 2019-07-22 | 2019-07-22 | 图像处理方法以及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112258565A true CN112258565A (zh) | 2021-01-22 |
CN112258565B CN112258565B (zh) | 2023-03-28 |
Family
ID=74224783
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910663308.7A Active CN112258565B (zh) | 2019-07-22 | 2019-07-22 | 图像处理方法以及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112258565B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112967381A (zh) * | 2021-03-05 | 2021-06-15 | 北京百度网讯科技有限公司 | 三维重建方法、设备和介质 |
CN113126944A (zh) * | 2021-05-17 | 2021-07-16 | 北京的卢深视科技有限公司 | 深度图的显示方法、显示装置、电子设备及存储介质 |
CN113808165A (zh) * | 2021-09-14 | 2021-12-17 | 电子科技大学 | 面向三维目标跟踪模型的点扰动对抗攻击方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080137989A1 (en) * | 2006-11-22 | 2008-06-12 | Ng Andrew Y | Arrangement and method for three-dimensional depth image construction |
US20130188026A1 (en) * | 2011-10-13 | 2013-07-25 | Panasonic Corporation | Depth estimating image capture device and image sensor |
US8538175B1 (en) * | 2008-06-19 | 2013-09-17 | Joseph Alan Epstein | System and method for representing and coding still and moving images |
CN109146944A (zh) * | 2018-10-30 | 2019-01-04 | 浙江科技学院 | 一种基于深度可分卷积神经网络的视觉深度估计方法 |
CN109816709A (zh) * | 2017-11-21 | 2019-05-28 | 深圳市优必选科技有限公司 | 基于单目摄像头的深度估计方法、装置及设备 |
CN110009674A (zh) * | 2019-04-01 | 2019-07-12 | 厦门大学 | 基于无监督深度学习的单目图像景深实时计算方法 |
-
2019
- 2019-07-22 CN CN201910663308.7A patent/CN112258565B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080137989A1 (en) * | 2006-11-22 | 2008-06-12 | Ng Andrew Y | Arrangement and method for three-dimensional depth image construction |
US8538175B1 (en) * | 2008-06-19 | 2013-09-17 | Joseph Alan Epstein | System and method for representing and coding still and moving images |
US20130188026A1 (en) * | 2011-10-13 | 2013-07-25 | Panasonic Corporation | Depth estimating image capture device and image sensor |
CN109816709A (zh) * | 2017-11-21 | 2019-05-28 | 深圳市优必选科技有限公司 | 基于单目摄像头的深度估计方法、装置及设备 |
CN109146944A (zh) * | 2018-10-30 | 2019-01-04 | 浙江科技学院 | 一种基于深度可分卷积神经网络的视觉深度估计方法 |
CN110009674A (zh) * | 2019-04-01 | 2019-07-12 | 厦门大学 | 基于无监督深度学习的单目图像景深实时计算方法 |
Non-Patent Citations (1)
Title |
---|
许路 等: "基于深层卷积神经网络的单目红外图像深度估计", 《光学学报》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112967381A (zh) * | 2021-03-05 | 2021-06-15 | 北京百度网讯科技有限公司 | 三维重建方法、设备和介质 |
CN112967381B (zh) * | 2021-03-05 | 2024-01-16 | 北京百度网讯科技有限公司 | 三维重建方法、设备和介质 |
CN113126944A (zh) * | 2021-05-17 | 2021-07-16 | 北京的卢深视科技有限公司 | 深度图的显示方法、显示装置、电子设备及存储介质 |
CN113808165A (zh) * | 2021-09-14 | 2021-12-17 | 电子科技大学 | 面向三维目标跟踪模型的点扰动对抗攻击方法 |
CN113808165B (zh) * | 2021-09-14 | 2023-06-13 | 电子科技大学 | 面向三维目标跟踪模型的点扰动对抗攻击方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112258565B (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110222717B (zh) | 图像处理方法和装置 | |
CN111507378A (zh) | 训练图像处理模型的方法和装置 | |
CN112446380A (zh) | 图像处理方法和装置 | |
WO2022179581A1 (zh) | 一种图像处理方法及相关设备 | |
CN114255361A (zh) | 神经网络模型的训练方法、图像处理方法及装置 | |
CN113705769A (zh) | 一种神经网络训练方法以及装置 | |
CN112258565B (zh) | 图像处理方法以及装置 | |
CN110222718B (zh) | 图像处理的方法及装置 | |
CN111882031A (zh) | 一种神经网络蒸馏方法及装置 | |
CN111368972A (zh) | 一种卷积层量化方法及其装置 | |
CN112215332A (zh) | 神经网络结构的搜索方法、图像处理方法和装置 | |
CN113591872A (zh) | 一种数据处理系统、物体检测方法及其装置 | |
CN112257759A (zh) | 一种图像处理的方法以及装置 | |
CN113011562A (zh) | 一种模型训练方法及装置 | |
CN111340190A (zh) | 构建网络结构的方法与装置、及图像生成方法与装置 | |
US20240135174A1 (en) | Data processing method, and neural network model training method and apparatus | |
CN115222896B (zh) | 三维重建方法、装置、电子设备及计算机可读存储介质 | |
WO2022165722A1 (zh) | 单目深度估计方法、装置及设备 | |
CN111797881A (zh) | 图像分类方法及装置 | |
CN111695673A (zh) | 训练神经网络预测器的方法、图像处理方法及装置 | |
CN114219855A (zh) | 点云法向量的估计方法、装置、计算机设备和存储介质 | |
CN114359289A (zh) | 一种图像处理方法及相关装置 | |
CN113781519A (zh) | 目标跟踪方法和目标跟踪装置 | |
CN113066018A (zh) | 一种图像增强方法及相关装置 | |
CN113065575A (zh) | 一种图像处理方法及相关装置 |
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 |