CN117501314A - 一种获取深度真值的方法及相关装置 - Google Patents
一种获取深度真值的方法及相关装置 Download PDFInfo
- Publication number
- CN117501314A CN117501314A CN202180099315.4A CN202180099315A CN117501314A CN 117501314 A CN117501314 A CN 117501314A CN 202180099315 A CN202180099315 A CN 202180099315A CN 117501314 A CN117501314 A CN 117501314A
- Authority
- CN
- China
- Prior art keywords
- camera
- depth
- data
- image sequence
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 107
- 230000009466 transformation Effects 0.000 claims abstract description 91
- 230000008569 process Effects 0.000 claims description 31
- 238000012545 processing Methods 0.000 claims description 20
- 230000007547 defect Effects 0.000 abstract description 8
- 238000004891 communication Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 12
- 238000013528 artificial neural network Methods 0.000 description 9
- 239000013598 vector Substances 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000011160 research Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000012937 correction Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000001914 filtration Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000002310 reflectometry Methods 0.000 description 3
- 239000003086 colorant Substances 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003062 neural network model Methods 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000009897 systematic effect Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000003628 erosive effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- 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
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Image Processing (AREA)
Abstract
本申请实施例公开了一种获取深度真值的方法及相关装置,用于弥补结构光相机只能通过拍摄较近的物体来得到被研究的深度相机的深度真值的缺陷。该方法包括:获取由第一相机采集到的第一图像序列的数据以及由第二相机采集到的第二图像序列,其中,第一图像序列的数据包括目标场景的M帧目标图像的数据,第二图像序列包括目标场景的M帧深度图像;然后再根据第二图像序列获取目标场景的网格模型的数据;由于在采集对应的目标图像的数据和第二图像序列中的深度图像时,第二相机的坐标系和第一相机的坐标系满足第一变换关系,所以最后根据网格模型的数据、第一变换关系以及第一图像序列的数据,获取每帧目标图像中像素的深度真值。
Description
本申请实施例涉及计算机技术领域,尤其涉及一种获取深度真值的方法及相关装置。
深度相机是近几年兴起的新技术,相比较传统的相机,深度相机在功能上添加了一个深度测量,从而更方便准确的感知周围的环境及变化。
在运用深度相机的过程中,通常需要获取深度相机拍摄的深度图像中像素的深度真值,该深度真值具有很多使用价值;例如,可以将该深度真值与深度相机输出的像素的深度值比较,来评估深度相机的精度;再例如,由于深度相机存在误差,所以可以将像素的深度真值作为标签,然后训练一个神经网络,使得深度相机输出的像素的深度值在经过该神经网络的处理后,会接近作为标签的深度真值。
目前,获取深度真值的方法是通过机械臂绑定结构光相机和被研究的深度相机,然后控制这两个相机一起拍照,然后将结构光相机拍摄的深度图像投影到被研究的深度相机,从而得到被研究的深度相机拍摄的图像中像素的深度真值。
然而,对于距离较远的物体,结构光相机拍摄的深度图像的精度较差,所以只能通过拍摄较近的物体来得到被研究的深度相机的深度真值。
发明内容
本申请实施例提供了一种获取深度真值的方法及相关装置,该方法能够弥补结构光相机只能通过拍摄较近的物体来得到被研究的深度相机的深度真值的缺陷。
第一方面,本申请提供了一种获取深度真值的方法,包括:获取由第一相机采集到的第一图像序列的数据,第一图像序列的数据包括目标场景的M帧目标图像的数据,M为大于1的正整数;第一相机可以是深度相机,也可以是RGB相机,目标图像的数据可以是目标图像本身,也可以是第一相机输出的用于生成目标图像的原始信号;获取由第二相机采集到的第二图像序列,第二图像序列包括目标场景的M帧深度图像,M帧深度图像与M帧目标图像的数据一一对应,且在采集对应的目标图像的数据和第二图像序列中的深度图像时,第二相机的坐标系和第一相机的坐标系满足第一变换关系,本申请对第一变换关系不做具体限定,其中,第二相机可以是深度相机,也可以是由深度相机和RGB相机构成的RGBD相机;根据第二图像序列获取目标场景的网格模型的数据,网格模型的数据包括网格模型中的顶点在目标坐标系下的点云数据,以及网格模型中的三角面片与顶点的关系,其中,三角面片与顶点的关系指示了每个三角面片是由哪三个顶点组成;目标坐标系可以根据实际需要进行调整,例如,目标坐标系可以是采集某一帧深度图像时第二相机的坐标系;得到网格模型的方法有多种,本申请对此不做具体限定,例如,可以采用MarchingCubes算法提取网格模型;根据网格模型的数据、第一变换关系以及第一图像序列的数据,获取每帧目标图像中像素的深度真值,根据网格模型的数据获取像素的深度真值的过程可以理解为将网格模型投影到第一相机的过程。
由于第二图像序列包含多张深度图像,多张深度图像可以相互参照,不仅可以弥补结构光相机拍摄距离较远的单张深度图像的精度较差的缺陷,还可以弥补视角较小等原因导致的单张深度图像存在的拍摄不全的缺陷;所以根据第二图像序列对目标场景进行场景重建,能够得到较准确的网格模型,从而能够得到较准确的第一相机拍摄的图像中像素的深度真值,避免结构光相机只能通过拍摄较近的物体来得到被研究的深度相机对应的深度真值的情况。
作为一种可实现的方式,第一图像序列的数据是第一相机在多个位置采集到的,第二图像序列是第二相机在多个位置采集到的。
第二图像序列都是在多个位置采集到的,所以第二图像序列可以包含更多视角的目标场景的图像;并且,位置的改变也意味着第二相机到被拍摄物体间距离的改变,所以第二图像序列是第二相机在远距离和近距离等多种距离采集到的,能够弥补结构光相机拍摄距离较远的单张深度图像的精度较差的缺陷,从而可以更完整地完成目标场景的重建,得到精度更高的网格模型,进而得到更加准确的深度真值,进而可以提高得到的深度真值的准确度。
作为一种可实现的方式,第二相机是由RGB相机和深度相机构成的RGBD相机;第二图像序列中的M帧深度图像是由深度相机采集的,第二图像序列还包括由RGB相机采集的目标场景的M帧RGB图像。
当第二相机为RGBD相机时,第二序列不仅包括深度图像,还包括了RGB图像,使得场景重建不仅参照深度图像,还可以参照RGB图像,提高了场景重建得到的网格模型的精度,从而提高根据网格模型得到的像素的深度真值的准确度。
作为一种可实现的方式,在根据第二图像序列获取目标场景的网格模型的数据之前,方法还包括:对第二图像序列中的M帧深度图像和M帧RGB图像进行对齐处理,其中,对齐处理可以理解为,根据第二相机拍摄的深度图像中每个像素的深度值与RGB图像中每个像素关联。
对第二图像序列中的M帧深度图像和M帧RGB图像进行对齐处理,从而得到RGB图像中每个像素的像素真值,为场景重建得到网格模型做了准备。
作为一种可实现的方式,方法还包括:
获取由第二相机采集到的第三图像序列,第三图像序列包括目标场景的深度图像和/或RGB图像,采集第三图像序列中的图像时第二相机的坐标系,与采集目标图像的数据时第一相机的坐标系不满足第一变换关系;相应地,根据第二图像序列获取目标场景的网格模型的数据包括:根据第二图像序列和第三图像序列,获取目标场景的网格模型的数据。
由于采集第三图像序列中的图像时第二相机的坐标系,与采集目标图像的数据时第一相机的坐标系不满足第一变换关系,所以第三图像序列中包含了第二图像序列中不包含的图像,即第三图像序列包含了从更多位置和视角采集到的目标场景的图像,从而可以更完整地完成目标场景的重建,得到精度更高的网格模型,进而得到更加精确的深度真值。
作为一种可实现的方式,根据第二图像序列获取目标场景的网格模型的数据包括:根据第二图像序列获取,在采集第二图像序列中的每帧深度图像时,第二相机在目标坐标系 下的位姿数据,其中,位姿数据可以包括旋转向量和平移向量,得到第二相机在目标坐标系中的位姿数据的方法有多种,本申请对此不做具体限定,例如,可以采用KinectFusio、ElasticFusion、BundleFusion等算法计算第二相机在目标坐标系中的位姿数据;可以理解的是,第二图像序列中每帧深度图像中的数据是对于采集该帧深度图像时第二相机的坐标系来说的,而得到的位姿数据是对于目标坐标系来说的,所以本步骤完成坐标系的转换;根据第二图像序列以及第二相机在目标坐标系下的位姿数据,获取目标场景的网格模型的数据。
作为一种可实现的方式,根据网格模型的数据、第一变换关系以及第一图像序列的数据,获取每帧目标图像中像素的深度真值包括:根据第二相机在目标坐标系下的位姿数据,确定目标坐标系与采集每帧深度图像时第二相机的坐标系间的第二变换关系,可以理解的是,深度图像中的数据是对于该深度图像对应的第二相机的坐标系来说的,基于此,由于第二相机在目标坐标系下的位姿数据是根据第二相机采集到的深度图像中的数据计算得到的,所以根据第二相机在目标坐标系下的位姿数据能够反向推导出目标坐标系与采集每帧深度图像时第二相机的坐标系间的第二变换关系;根据第二变换关系和第一变换关系,确定目标坐标系与采集每帧目标图像的数据时第一相机的坐标系间的第三变换关系,可以理解的是,根据第二变换关系可以从目标坐标系变换到采集深度图像时第二相机的坐标系,再根据第一变换关系可以从采集深度图像时第二相机的坐标系变换到采集每帧目标图像的数据时第一相机的坐标系,所以根据第一变换关系和第二变换关系可以确定目标坐标系与采集每帧目标图像的数据时第一相机的坐标系间的第三变换关系;根据网格模型的数据、三变换关系以及第一图像序列的数据,获取每帧目标图像中像素的深度真值,该操作可以理解为将网格模型投影到第一相机中,以得到第一相机拍摄的每帧目标图像中像素的深度真值。
根据第二相机在目标坐标系下的位姿数据,确定目标坐标系与采集每帧深度图像时第二相机的坐标系间的第二变换关系,根据第二变换关系和第一变换关系,确定目标坐标系与采集每帧目标图像的数据时第一相机的坐标系间的第三变换关系,使得可以根据该第三关系将网格模型投影到第一相机中,以得到第一相机拍摄的每帧目标图像中像素的深度真值。
作为一种可实现的方式,根据网格模型的数据、三变换关系以及第一图像序列的数据,获取每帧目标图像中像素的深度真值包括:根据网格模型中的顶点在目标坐标系下的点云数据以及第三变换关系,获取网格模型的顶点在采集每帧目标图像的数据时第一相机的坐标系下的点云数据,其中,点云数据是指在一个三维坐标***中的一组向量的集合;根据网格模型的顶点在采集每帧目标图像的数据时第一相机的坐标系下的点云数据,第一图像序列的数据以及网格模型中的三角面片与顶点的关系,确定每帧目标图像中像素对应的三个顶点,具体地,对于目标图像中的像素,若像素的中心位于第一相机的坐标系下一个三角面片中,则该像素对应的三个顶点可以是组成该三角面片的三个顶点;根据每帧目标图像中像素对应的三个顶点的点云数据,获取每帧目标图像中像素的深度真值。
根据网格模型的顶点在采集每帧目标图像的数据时第一相机的坐标系下的点云数据, 第一图像序列的数据以及网格模型中的三角面片与顶点的关系,确定每帧目标图像中像素对应的三个顶点,然后根据每帧目标图像中像素对应的三个顶点的点云数据,获取每帧目标图像中像素的深度真值,实现了通过投影网格模型计算像素的深度真值。
作为一种可实现的方式,在根据第二图像序列获取目标场景的网格模型的数据之前,方法还包括:确定第二图像序列中深度图像上的无效的像素,无效的像素是指在获取目标场景的网格模型的数据的过程中不使用的像素;确定无效的像素的方法有多种,本申请对此不做具体限定,例如,当像素的深度值小于某一阈值(例如0)时,可以人为该像素的深度值明显错误,因此可以将深度值小于某一阈值的像素确定为无效的像素,该阈值可以根据实际情况进行设定;再例如,对于两个物体的交界面处,或者深度真值有突然跳变的区域,深度值的精度较低,所以可以将两个物体的交界面处的像素,和深度值有突然跳变的区域的像素确定为无效的像素;对于物体表面的黑色区域,或者物体法向量和相机光轴的夹角较大的区域(也可以理解为物体表面与拍摄视角几乎平行的区域),深度值的精度通常较低,所以还可以将物体表面的黑色区域的像素,或者物体法向量和相机光轴的夹角较大的区域的像素确定为无效的像素;无效的像素有多种表示方式,本申请实施例对此不做具体限定,例如,可以像素的深度值置为0。
本申请确定第二图像序列中深度图像上的无效的像素,使得在场景重建的过程中,则可以避免使用这些无效的像素,以提高场景重建得到的网格模型的精度。
作为一种可实现的方式,无效的像素包括:深度值大于阈值的像素,其中,该阈值可以根据实际情况进行设定,当第二相机是结构光相机或包括结构光相机的GRBD相机时,由于当结构光相机与被拍摄的目标场景间的距离超出一定距离后,像素的深度值的精度较低,所以可以根据结构光相机的类型确定该阈值。
由于受限于相机的尺寸,当结构光相机与被拍摄的目标场景间的距离超出一定距离后,像素的深度值的精度较低,所以本申请将深度值大于阈值的像素确定为无效的像素,可以避免使用结构光相机采集到的精度较低的像素值进行场景重建,从而提高场景重建得到的网格模型的精度,进而提高得到的像素的深度真值的准确度。
第二方面,本申请提供了一种获取深度真值的装置,包括:第一获取单元,用于获取由第一相机采集到的第一图像序列的数据,第一图像序列的数据包括目标场景的M帧目标图像的数据,M为大于1的正整数;第一获取单元,用于获取由第二相机采集到的第二图像序列,第二图像序列包括目标场景的M帧深度图像,M帧深度图像与M帧目标图像的数据一一对应,且在采集对应的目标图像的数据和第二图像序列中的深度图像时,第二相机的坐标系和第一相机的坐标系满足第一变换关系;重建单元,用于根据第二图像序列获取目标场景的网格模型的数据,网格模型的数据包括网格模型中的顶点在目标坐标系下的点云数据,以及网格模型中的三角面片与顶点的关系;第二获取单元,用于根据网格模型的数据、第一变换关系以及第一图像序列的数据,获取每帧目标图像中像素的深度真值。
作为一种可实现的方式,第一图像序列的数据是第一相机在多个位置采集到的,第二图像序列是第二相机在多个位置采集到的。
作为一种可实现的方式,第二相机是由RGB相机和深度相机构成的RGBD相机;第二图 像序列中的M帧深度图像是由深度相机采集的,第二图像序列还包括由RGB相机采集的目标场景的M帧RGB图像。
作为一种可实现的方式,该装置还包括:预处理单元,用于对第二图像序列中的M帧深度图像和M帧RGB图像进行对齐处理。
作为一种可实现的方式,第一获取单元,还用于获取由第二相机采集到的第三图像序列,第三图像序列包括目标场景的深度图像和/或RGB图像,采集第三图像序列中的图像时第二相机的坐标系,与采集目标图像的数据时第一相机的坐标系不满足第一变换关系;重建单元,用于根据第二图像序列和第三图像序列,获取目标场景的网格模型的数据。
作为一种可实现的方式,重建单元,用于根据第二图像序列获取,在采集第二图像序列中的每帧深度图像时,第二相机在目标坐标系下的位姿数据;根据第二图像序列以及第二相机在目标坐标系下的位姿数据,获取目标场景的网格模型的数据。
作为一种可实现的方式,该装置还包括无效像素确定单元,用于确定第二图像序列中深度图像上的无效的像素,无效的像素是指在获取目标场景的网格模型的数据的过程中不使用的像素,且包括深度值大于阈值的像素。
其中,以上各单元的具体实现、相关说明以及技术效果请参考本申请实施例第一方面的描述。
本申请实施例第三方面提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器用于存储计算机可读指令(或者称之为计算机程序),所述处理器用于读取所述计算机可读指令以实现前述任意实现方式提供的方法。
本申请实施例第四方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得所述计算机执行如前述任一方面以及各种可能的实现方式中任一项所述的方法。
本申请实施例第五方面提供了一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得计算机执行如上述第一方面以及各种可能的实现方式中任一项所述的方法。
本申请实施例第六方面提供了一种芯片,包括一个或多个处理器。所述处理器中的部分或全部用于读取并执行存储器中存储的计算机程序,以执行上述第一方面任意可能的实现方式中的方法。
可选地,该芯片该包括存储器,该存储器与该处理器通过电路或电线与存储器连接。进一步可选地,该芯片还包括通信接口,处理器与该通信接口连接。通信接口用于接收需要处理的数据和/或信息,处理器从该通信接口获取该数据和/或信息,并对该数据和/或信息进行处理,并通过该通信接口输出处理结果。该通信接口可以是输入输出接口。
在一些实现方式中,所述一个或多个处理器中还可以有部分处理器是通过专用硬件的方式来实现以上方法中的部分步骤,例如涉及神经网络模型的处理可以由专用神经网络处理器或图形处理器来实现。
本申请实施例提供的方法可以由一个芯片实现,也可以由多个芯片协同实现。
图1为本申请实施例中相机研究***的架构示意图;
图2为本申请提供的获取深度真值的方法的一个实施例的示意图;
图3为本申请实施例中室内场景的示意图;
图4为本申请实施例中第一相机和第二相机的相对位置示意图;
图5为本申请实施例中投影过程的第一实施例示意图;
图6为本申请实施例中场景重建的过程的示意图;
图7为本申请实施例中深度真值的获取过程的第一实施例示意图;
图8为本申请实施例中深度真值的获取过程的第二实施例示意图;
图9为本申请实施例中投影过程的第二实施例示意图;
图10为本申请提供的获取深度真值的方法的另个实施例的示意图;
图11为本申请实施例中场景重建的结果示意图;
图12为根据图11的结果得到的深度真值的示意图;
图13为本申请提供的获取深度真值的装置的一个实施例的示意图;
图14为本申请实施例提供的计算机设备的一种结构示意图。
本申请实施例可以应用于图1所示的相机研究***,该***包括被研究的相机和计算机设备。
本申请实施例对被研究的相机的种类不做具体限定,例如,被研究的相机可以是深度相机,也可以非深度相机;本申请实施例对深度相机的种类也不做具体限定,例如,深度相机可以是结构光相机、间接飞行时间测量(Indirect Time of Flight,ITOF)相机、直接飞行时间测量(Direct Time of Flight,DTOF)相机;本申请实施例对非深度相机的种类不做具体限定,例如,非深度相机可以是RGB相机。
ITOF相机的原理:发射调幅的连续波信号,通过测量返回波与出射波之间的相位差来间接获得光在相机和物体之间往返的飞行时间,从而计算出物体的距离。
DTOF相机的原理:直接测量发射信号和接收信号之间的时间差;通常采用SPAD(单光子雪崩二极管)在捕获到一定光信号后触发二极管雪崩产生电子的特性,来判断是否接收到收反射信号及其时间。
计算机设备用于对被研究的相机输出的数据进行处理,以实现对相机的研究。
例如,当被研究的相机是彩色相机(也可以称为RGB相机)时,服务器可以根据RGB相机输出的RGB图像和像素的深度真值对神经网络进行训练,使得经过训练的神经网络可以根据RGB相机输出的RGB图像估计RGB图像中每个像素的深度值;利用RGB图像估计RGB图像中每个像素的深度值的技术可以应用于机器人三维环境的感知、三维建模等多种场景。
例如,当被研究的研究为深度相机时,服务器可以根据深度相机输出的深度图像中像素的深度值和像素的深度真值,来评估深度相机的精度特性(包括绝对精度、相对精度、重复度、精度相对测量距离的变化曲线以及重复度相对测量距离的变化曲线等)。
再例如,由于深度相机存在误差,所以当被研究的相机为深度相机时,可以将深度相 机输出的未经处理RAW信号(用于计算像素的深度值)和像素的深度真值作为训练对,服务器可以利用该训练对对神经网络进行训练,使得经过训练的神经网络可以根据深度相机输出的RAW信号来准确地估计像素的深度值,以降低深度相机的误差影响。
其中,影响ITOF相机的误差因素可分为拍摄环境引起的误差、***误差和随机误差三类;拍摄环境引起的误差与拍摄条件、场景有关,例如拍摄环境引起的误差与背景光(背景光导致信噪比低,噪声大,引起干扰)、物体的反射率(低反射率物体返回的信噪比低,噪声大)、物体的几何形状(通常会导致多径干扰等)有关;***误差是指由物理器件、工艺等导致的偏差,一般可以在传感器被固定后,通过标定的方法进行标定;随机误差是器件或物理过程的产生的一些随机噪声,部分随机误差可以通过标定解决。
影响DTOF相机的误差因素主要是:噪声或背景光会导致SPAD误触发。
在上述相机研究***中,计算机设备可以是终端,也可以是服务器;当需要利用神经网络时,计算机设备通常是服务器。
基于上述说明可知,像素的深度真值对相机研究来说至关重要,所以在相机研究的过程中,需要获取相机拍摄的图像中像素的深度真值。
虽然,通过机械臂绑定结构光相机和被研究的深度相机,并将结构光相机拍摄的深度图像投影到被研究的深度相机,能够得到被研究的相机拍摄的图像的深度真值;但是,对于距离较远的物体,结构光相机拍摄的深度图像的精度较差,所以会影响深度真值的准确度。
基于此,本申请提供了一种获取深度真值的方法,该方法是利用第二相机与第一相机(可以理解为被研究的相机)一起对目标场景进行拍摄,然后利用第二相机拍摄的包含多张深度图像的第二图像序列对目标场景进行场景重建,以得到重建的目标场景的网格Mesh模型,然后再将该网格模型投影到第一相机中,从而得到第一相机拍摄的图像中像素的深度真值;其中,将网格模型投影到第一相机,可以理解为根据网格模型计算第一相机拍摄的图像中像素的深度真值。
由于第二图像序列包含多张深度图像,多张深度图像可以相互参照,不仅可以弥补结构光相机拍摄距离较远的单张深度图像的精度较差的缺陷,还可以弥补视角较小等原因导致的单张深度图像存在的拍摄不全的缺陷;所以根据第二图像序列对目标场景进行场景重建,能够得到较准确的网格模型,从而能够得到较准确的第一相机拍摄的图像中像素的深度真值,避免结构光相机只能通过拍摄较近的物体来得到被研究的深度相机对应的深度真值的情况。
基于前述说明可知,本申请实施例提供的方法需要第二相机与被研究的第一相机一起对目标场景进行拍摄,所以下面先对第一相机和第二相机进行说明。
第一相机也可以理解为被研究的相机,具体可参阅图1中被研究的相机的相关说明进行理解,下文会以第一相机为深度相机为例对本申请实施例提供的方法进行说明。
第二相机是指能够拍摄深度图像的相机,具体可以为多种深度相机;例如,第二相机可以是结构光相机,也可以是彩色深度(RGB-depth,RGBD)相机,其中,RGBD相机是指由结构光相机和RGB相机构成的相机,RGBD相机中的结构光相机和RGB相机可以理解为 RGBD相机中不同的拍摄模组;为了提高深度图像的精度,结构光相机可以选择无多径干扰的结构光相机。
可以理解的是,在拍摄前,需要对第一相机的内参和外参,以及第二相机的内参和外参进行标定,本申请实施例对第一相机和第二相机的标定方法不做具体限定。
示例性地,对于第一相机的内参和外参,以及第二相机的内参和外参,可以采用张氏标定法或基于立体的标定法进行标定;具体地,可以采用上述两种标定法对应的特定的标定工具(例如kinect2_calibration)进行标定。
下面以第一相机为TOF相机(ITOF相机或DTOF相机)、第二相机为RGBD相机为例,对第一相机和第二相机的标定过程进行说明。
在该实施例中,RGBD相机中RGB相机的内参采用K
RGBD_C表示,RGBD相机中深度相机的内参采用K
RGBD_D表示,RGBD相机中RGB相机和深度相机之间的外参采用T
RGBD_C_2D和T
RGBD_D_2C表示,其中,T
RGBD_C_2D表示RGBD相机中RGB相机的坐标系到深度相机的坐标系间的变换关系,T
RGBD_D_2CRGBD相机中深度相机的坐标系到RGB相机的坐标系间的变换关系。
TOF相机的内参采用K
TOF表示,TOF相机与RGBD相机间的外参采用T
TOF_2RGBD_C、T
TOF_2RGBD_D、T
RGBD_D_2TOF以及T
RGBD_C_2TOF表示,其中,T
TOF_2RGBD_C表示TOF相机的坐标系到RGBD相机中RGB相机的坐标系间的变换关系,T
TOF_2RGBD_D表示TOF相机的坐标系到RGBD相机中深度相机的坐标系间的变换关系,T
RGBD_D_2TOF表示RGBD相机中深度相机的坐标系到TOF相机的坐标系间的变换关系,T
RGBD_C_2TOF表示RGBD相机中RGB相机的坐标系到TOF相机的坐标系间的变换关系。
TOF相机的内参的标定方法如下:通过拍摄棋盘格获得幅值图(灰度图像),然后利用该幅值图并采用特定的标定工具(例如kinect2_calibration)对TOF相机的进行标定。
RGBD相机中RGB相机与深度相机的内参的标定方法与TOF相机的内参的标定方法类似,此处不做赘述。
TOF相机和RGBD相机中的RGB相机间的外参的标定方法如下:将TOF相机和RGBD相机固定,然后移动多个位置对标定板进行拍摄,然后根据TOF相机拍摄的深度图像和RGB相机拍摄的RGB图像,并采用特定的标定工具(例如kinect2_calibration)进行标定。
TOF相机和RGBD相机中的深度相机间的外参的标定法如下。
首先,构建一个凸型的立体标定板,该立体标定板避免使用较低反射率的材料和颜色,本申请实施例采用白色的纸贴到立体标定板上;并且,将该立体标定板设置空旷的室内,由于室内无背景光干扰,且空旷无干扰物,所以TOF相机不会产生多径干扰,拍摄的深度图像的质量很高。
然后,使用TOF相机的内参计算TOF相机拍摄的深度图像到3D点云图像变换系数Π
TOF,变换系数Π
TOF可以理解为深度图像中像素坐标及深度值到3D点云数据的变换系数;其中,3D点云图像中每个像素的3D点云数据一般采用(x,y,z)表示,Π
TOF可以表示为当每个像素的z=1时,x,和y对应的坐标。
具体地,TOF相机的内参具体可以表示为
cx,cy,fx,fy,K1,K2,P1,P2,其中,K1和K2表示径向畸变参数,P1,和P2表示切向畸变参数,(cx,cy)表示主点,(fx,fy)表示焦距。
对于像素坐标(u,v),在不考虑畸变和缩放的情况下,相机坐标系下的x,y坐标为:X=(u-cx)/fx,Y=(v-cy)/fy。
畸变补偿包括:r2=X^2+Y^2,a=1+K1*r2+K2*r2^2,X=X/a,Y=Y/a,x=X-(Y^2+3*X^2)*P2-2*X*Y*P1,y=Y-(X^2+3*X^2)*P1-2*X*Y*P2。
因此,在考虑畸变的情况下,每个像素的变换系数Π
TOF=(x
e=x,y
e=y)
TOF相机拍摄的一帧深度图像对应的点云数据可以表示为Ρ
TOF,RGBD相机中的深度相机拍摄的一帧深度图像对应的点云数据可以表示Ρ
RGBD。
以TOF相机拍摄的深度图像为例,已知像素坐标(u,v),对应的深度值为z,那么根据变换系数Π
TOF便可以计算3D点云数据Ρ
TOF:(x,y,z)=(x
e*z,y
e*z,z)。
同样地,根据RGBD相机中的深度相机的内参,计算深度相机拍摄的深度图像到3D点云图像的变换系数Π
RGBD。
采用与TOF相机相同的方法,也可以计算RGBD相机拍摄的深度图像中每个像素对应的3D点云数据Ρ
RGBD。
然后对3D点云数据Ρ
TOF和3D点云数据Ρ
RGBD进行配准,即可获得两个深度相机之间的位姿变换关系:T
TOF_2RGBD_C和T
TOF_2RGBD_D。
具体地,先利用3D点云数据Ρ
TOF和3D点云数据Ρ
RGBD,并通过全局配准算法计算初始位姿然后再用迭代最近点(Iterative Closest Point,ICP)算法进行精确配准,获得更高精度的配准结果及相对位姿,则初始位姿*精确匹配位姿就是两个相机之间的变换矩阵;其中,全局配准算法和ICP精配准算法来提高计算结果的精度和鲁棒性。
在对第一相机和第二相机进行标定后,便可以利用本申请实施例提供的方法获取深度真值。
下面对本申请实施例提供的方法进行介绍。
如图2所示,本申请提供了一种获取深度真值的方法的一个实施例,该实施例包括:
步骤101,获取由第一相机采集到的第一图像序列的数据,第一图像序列的数据包括目标场景的M帧目标图像的数据,M为大于1的正整数。
基于前文说明可知,第一相机可以为多种相机,相应地,目标图像的数据也可以是多种图像的数据;例如,当第一相机为深度相机时,目标图像则为深度图像的数据;再例如,当第一相机为RGB相机时,目标图像则为RGB图像的数据。
目标场景可以理解为某一空间场景,该空间场景中设置有某些物体;例如,该空间场景可以是室内场景,图3示出了室内场景的一个示例。
目标图像的数据可以是目标图像本身,也可以是第一相机输出的用于生成目标图像的原始信号。
步骤102,获取由第二相机采集到的第二图像序列,第二图像序列包括目标场景的M帧深度图像,M帧深度图像与M帧目标图像的数据一一对应,且在采集对应的目标图像的数据和第二图像序列中的深度图像时,第二相机的坐标系和第一相机的坐标系满足第一变换关系。
其中,M帧深度图像之间可以存在重叠区域。
基于前文说明可知,第二相机也可以为多种相机,例如,第二相机可以是由RGB相机和深度相机构成的RGBD相机,也可以是结构光相机或其他种类的深度相机。
当第二相机为RGBD相机时,第二图像序列中的M帧深度图像是由深度相机拍摄的,相应地,第二图像序列还可以包括由RGB相机拍摄的目标场景的M帧RGB图像。
M帧RGB图像与M帧深度图像一一对应,在采集对应的RGB图像和深度图像时,第二相机的位于同一位置。
需要说明的是,当第二相机为RGBD相机时,由于RGBD相机内的RGB相机和深度相机之间的位姿关系是不变的,相应地,RGBD相机内的RGB相机的坐标系与RGBD相机内的深度相机的坐标系间的变换关系是不变的;所以若第二相机的坐标系和第一相机的坐标系满足第一变换关系,则RGBD相机内的RGB相机的坐标系和第一相机的坐标系也满足一种固定的变换关系,RGBD相机内的深度相机的坐标系和第一相机的坐标系则满足另一种固定的变换关系。
所以,当第二相机为RGBD相机时,第二相机的坐标系和第一相机的坐标系满足第一变换关系可以采用RGBD相机内的RGB相机的坐标系和第一相机的坐标系间的变换关系表示,也可以采用RGBD相机内的深度相机的坐标系和第一相机的坐标系间的变换关系表示。
其中,第一变换关系可以有多种,本申请实施例对此不做具体限定。
下面通过具体的示例对第一相机的坐标系和第二相机的坐标系间的第一变换关系进行具体说明。
例如,第一图像序列的数据包括目标图像A的数据、目标图像B的数据、目标图像C的数据和目标图像D的数据,第二图像序列包括深度图像a、深度图像b、深度图像c和深度图像d;在采集目标图像A的数据和深度图像a时,第二相机的坐标系和第一相机的坐标系满足第一变换关系,在采集目标图像B的数据和深度图像b时,第二相机的坐标系和第一相机的坐标系满足第一变换关系,以此类推。
需要说明的是,可以通过多种方法保证第二相机的坐标系和第一相机的坐标系满足第一变换关系。
例如,如图4所示,通过固定件将第一相机和第二相机固定在一起,控制第一相机和第二相机同步运动;每当到达一个位置,就控制第一相机和第二相机分别进行拍摄,从而能够保证在采集对应的目标图像的数据和深度图像时,第二相机的坐标系和第一相机的坐标系始终满足第一变换关系。
基于前文说明可知,第二相机拍摄的第二图像序列是用于进行场景重建,为了保证重建的场景更加准确,可以通过不断移动第一相机和第二相机进行拍摄,以得到从不同位置拍摄的目标场景的图像。
因此,作为一种可实现的方式,第一图像序列的数据是第一相机在多个位置采集到的,第二图像序列是第二相机在多个位置采集到的。
在该实施例中,第二图像序列都是在多个位置采集到的,所以第二图像序列可以包含更多视角的目标场景的图像;并且,位置的改变也意味着第二相机到被拍摄物体间距离的改变,所以第二图像序列是第二相机在远距离和近距离等多种距离采集到的,能够弥补结构光相机拍摄距离较远的单张深度图像的精度较差的缺陷,从而可以更完整地完成目标场景的重建,得到精度更高的网格模型,进而得到更加准确的深度真值,进而可以提高得到的深度真值的准确度。
步骤103,获取由第二相机采集到的第三图像序列,第三图像序列包括目标场景的深度图像和/或RGB图像,采集第三图像序列中的图像时第二相机的坐标系,与采集目标图像的数据时第一相机的坐标系不满足第一变换关系。
基于步骤102的说明可知,第二相机可以是结构光相机,相应地,第三图像序列则可以包括深度图像;第二相机也可以为RGBD相机,相应地,第三图像序列除了包括深度图像外,还可以包括RGB图像;另外需要说明的是,当第二相机为RGBD相机时,也可以仅选择RGBD相机拍摄的RGB图像组成第三图像序列。
另外,基于步骤102的说明可知,在采集对应的目标对象和深度图像时,第二相机的坐标系和第一相机的坐标系满足第一变换关系;可以理解的是,由于第二相机的坐标系和第一相机的坐标系满足第一变换关系,所以第二相机的采集位置和视角受到了限制,可能导致采集到的目标场景的深度图像不够充足;为此,本申请实施例在第二相机的坐标系与第一相机的坐标系不满足第一变换关系的情况下,控制第二相机采集第三图像序列,以得到从更多位置和视角采集到的目标场景的图像。
在实际采集过程中,可以先控制第一相机和第二相机同步运动,以采集第一图像序列和第二图像序列;在第一图像序列和第二图像序列采集完成后,再单独控制第二相机对目标场景进行采集,以得到第三图像序列。
在该实施例中,由于采集第三图像序列中的图像时第二相机的坐标系,与采集目标图像的数据时第一相机的坐标系不满足第一变换关系,所以第三图像序列中包含了第二图像序列中不包含的图像,即第三图像序列包含了从更多位置和视角采集到的目标场景的图像,从而可以更完整地完成目标场景的重建,得到精度更高的网格模型,进而得到更加精确的深度真值。
需要说明的是,在本申请实施例中,可以仅根据第二图像序列进行场景重建,所以步骤103是可选的。
步骤104,确定第二图像序列中深度图像上的无效的像素,无效的像素是指在获取目标场景的网格模型的数据的过程中不使用的像素。
可以理解的是,多种原因可能导致第二相机拍摄的深度图像中像素的深度值不准确;例如,当第二相机是结构光相机或包括结构光相机的GRBD相机时,受限于相机的尺寸,当第二相机与被拍摄的目标场景间的距离位于一定范围内时,像素的深度值的精度较高,当第二相机与被拍摄的目标场景间的距离超出该范围时,像素的深度值的精度较低。
为此,本申请实施例通过步骤104确定深度图像上无效的像素,在场景重建的过程中,则可以避免使用这些无效的像素,以提高场景重建得到的网格模型的精度。
由于导致像素的深度值不准确的因素有多种,相应地,确定无效像素的方法也有多种。
例如,当第二相机是结构光相机或包括结构光相机的GRBD相机时,可以将深度值大于阈值的像素确定为无效的像素,即无效的像素包括深度值大于阈值的像素,从而避免使用精度较低的深度值进行场景重建。
其中,该阈值可以根据结构光相机的种类进行调整;例如,对于奥比中光结构相机来说,该阈值一般取1.8m。
除此之外,还可以将深度值小于另一阈值(例如0)的像素确定为无效的像素,这类无效的像素属于深度值明显错误的像素。
另外,对于两个物体的交界面处,或者深度真值有突然跳变的区域,深度值的精度较低,所以可以将两个物体的交界面处的像素,和深度值有突然跳变的区域的像素确定为无效的像素;对于物体表面的黑色区域,或者物体法向量和相机光轴的夹角较大的区域(也可以理解为物体表面与拍摄视角几乎平行的区域),深度值的精度通常较低,所以还可以将物体表面的黑色区域的像素,或者物体法向量和相机光轴的夹角较大的区域的像素确定为无效的像素。
需要说明的是,通过上述方法确定的无效的像素周围的像素的深度值,可能也存在精度较低的问题,为此,可以采用图像腐蚀的方法将通过上述方法确定的无效的像素周围的像素也确定为无效的像素。
无效的像素有多种表示方式,本申请实施例对此不做具体限定,例如,可以像素的深度值置为0。
为了提高场景重建的准确性,还可以选择高斯滤波对第二图像序列中的深度图像进行去噪处理。
步骤105,根据第二图像序列获取目标场景的网格模型的数据,网格模型的数据包括网格模型中的顶点在目标坐标系下的点云数据,以及网格模型中的三角面片与顶点的关系。
其中,目标坐标系可以是任意坐标系,通常情况下,目标坐标系是第二相机采集第二图像序列中的某一帧图像时的坐标系;当第二相机为RGBD相机时,目标坐标系可以是RGBD相机中深度相机采集某一帧深度图像时的坐标系,也可以是RGBD相机中RGB相机采集某一RGB图像时的坐标系。
具体地,根据第二图像序列对目标场景进行重建,得到重建结果,其中,重建结果可以理解为目标场景中物体表面的大量离散的点,这些离散的点可以表示目标场景中物体的外部轮廓;根据重建结果便可以提取网格模型,网格模型是由顶点、边和三角面片构成。
需要说明的是,根据重建结果提取网格模型的方法有多种,本申请实施例对此不做具体限定,例如,可以采用MarchingCubes算法提取网格模型。
在重建过程中,除了利用第二图像序列,还需要利用第二相机的位姿数据,因此,作为一种可实现的方式,步骤105包括:
根据第二图像序列获取,在采集第二图像序列中的每帧深度图像时,第二相机在目标 坐标系下的位姿数据;
根据第二图像序列以及第二相机在目标坐标系下的位姿数据,获取目标场景的网格模型的数据。
其中,位姿数据可以包括旋转向量和平移向量。
具体地,根据第二图像序列,以及在采集第二图像序列中每帧图像时第二相机的位姿数据对目标场景进行重建,得到重建结果;然后根据重建结果提取网格模型。
需要说明的是,根据第二图像序列获取第二相机的位姿数据的方法有多种,本申请实施例对此不做具体限定;例如,可以采用KinectFusio、ElasticFusion、BundleFusion等算法计算第二相机的位姿数据。
基于前文说明可知,第二图像序列可以同时包含M帧深度图像和M帧RGB图像;当第二图像序列同时包含M帧深度图像和M帧RGB图像时,在执行步骤105之前,可以先对第二图像序列中的M帧深度图像和M帧RGB图像进行对齐处理,然后利用对齐后的第二图像序列获取目标场景的网格模型的数据。
其中,对齐处理可以理解为,根据第二相机拍摄的深度图像中每个像素的深度值与RGB图像中每个像素关联。
由于相机拍摄出的物体的图像相对于物体本身来说是存在畸变的,例如,相机拍摄出的图像中的像素是偏移的;为此,在对齐过程中可以对M帧深度图像和M帧RGB图像进行畸变矫正处理。
下面先对畸变矫正处理进行说明。
没有畸变的图像的像素坐标可以表示为(u,v),根据第二相机的内参可以计算畸变图像中的像素坐标(u_d,v_d),由于(u_d,v_d)可能不在像素中心,所以可以采用插值的方式获得像素坐标(u_d,v_d)的像素值;其中,对于RGB图像,像素值是颜色,对于深度图像,像素值是深度。
以第二相机中的RGB相机为例,内参为
[X,Y,Zc]=inv(K
RGBD_C)*[u v 1]';
r2=X^2+Y^2;
x=x.*(1+k1*r2+k2*r2.^2)+2*p1.*x.*y+p2*(r2+2*x.^2);
y=y.*(1+k1*r2+k2*r2.^2)+2*p2.*x.*y+p1*(r2+2*y.^2);
u_d=fx*x+cx
v_d=fy*y+cy
对于没有畸变的图像的像素坐标(u,v),通过上述公式可以计算出(畸变图像中的像素坐标(u_d,v_d),然后采用插值的方法计算像素坐标(u_d,v_d)的像素值,即使用像素坐标(u_d,v_d)周围的像素的像素值计算像素坐标(u_d,v_d)的像素值。
下面对对齐处理进行说明。
具体地,可以先根据深度相机的内参将深度图像中像素的深度值转换成像素在深度相 机的坐标系中的点云数据,在转换过程中执行了上述畸变矫正处理。
然后根据RGB相机和深度相机之间的外参,将像素在深度相机的坐标系中的点云数据变换到像素在RGB相机的坐标系中的点云数据,该变换过程可以表示为
其中,
为深度相机坐标系下的点云数据(x,y,z),
为RGB相机坐标系下的点云数据(x,y,z)。
最后,根据RGB相机的内参,将深度图像投影到RGB图像上,以得到RGB图像上每个像素的深度值,该投影过程可以表示为
在投影过程中可以考虑畸变的影响。
下面结合图5对上述投影过程进行具体介绍。
对于深度图像上相邻的2*2像素的区域,将这4个像素的中心点投影到RGB图像上;在RGB图像上,投影后的4个点组成的区域中每个像素的深度值,都可以根据这4个点的深度值,并按距离权重进行加权得到。
具体地,在深度图像上由T1、T2、T3、T4组成的四边形,可以拆成2个三角形,即由T1、T2、T3三个点构成的三角形以及由T3、T4、T1三个点构成的三角形;经过投影后,T1、T2、T3、T4的位置如图4中RGB图像所示,其中,t点位于T1、T2、T3、T4在RGB图像上组成的区域内,并且,t点在由T1、T2、T3三个点构成的三角形内部,则T点的深度值可以将T1、T2、T3三个点的深度值按权重进行加权得到;以T3点为例,T3点的权重可以表示为(S(T1,T2,T3)-S(T1,T,T2))/(S(T1,T2,T3),其中,S(T1,T2,T3)表示由T1、T2、T3三个点构成的三角形的面积,S(T1,t,T2)表示由T1、t、T2三个点构成的三角形的面积。
基于前述说明可知,除了获取第二相机拍摄的第二图像序列外,还可以获取第二相机拍摄的第三图像序列;在获取了第二图像序列和第三图像序列后,步骤106可以包括:根据第二图像序列和第三图像序列,获取目标场景的网格模型的数据。
需要说明的是,根据第二图像序列和第三图像序列获取网格模型的数据的方法,与根据第二图像序列获取网格模型的数据的方法类似,不同的是,在该实施例中,在场景重建过程中除了使用第二图像序列外,还使用了第三图像序列,具体可参阅前文的相关说明进行理解。
基于上述说明可知,场景重建的过程可以如图6所示,对于包含RGB图像和深度图像的第二图像序列,先将RGB图像和深度图像对齐,在对齐的过程中对RGB图像和深度图像进行畸变矫正处理;此后,对于深度图像,通过剔除深度图像中无效的像素来得到可靠的高质量的深度图像,然后对得到的深度图像进行去噪处理(即滤波处理);对于RGB图像,先提取每帧RGB图像中的关键点,由于相邻多帧RGB图像中可能包含目标场景中相同的位置,因此可以对多帧RGB图像中相同的关键点进行匹配(可以理解为确定出两帧RGB图像中相同位置对应的关键点);然后再对匹配后的关键点进行校验与过滤,校验可以理解为校验匹配的关键点是否正确,过滤可以理解为剔除连个关键点的错误的匹配关系;接着,分层估计RGBD相机的位姿,具体可以理解为计算每一帧RGB图像对应的RGBD的位姿;最后,根据分层估计出的RGBD相机的位姿和经过去噪处理的深度图像进行场景重建,以得到 重建后的目标场景的网格模型。步骤106,根据网格模型的数据、第二变换关系以及第一图像序列的数据,获取每帧目标图像中像素的深度真值。
具体地,在获得采集第二图像序列中每帧深度图像时第二相机的位姿数据的情况下,步骤106可以包括:根据在采集第二图像序列中每帧深度图像时第二相机的位姿数据、网格模型的数据、第一变换关系以及第一图像序列的数据,获取每帧目标图像中像素的深度真值。
下面对深度真值的获取过程进行具体介绍。
作为一种可实现的方式,如图7所示,步骤106包括:
步骤201,根据第二相机在目标坐标系下的位姿数据,确定目标坐标系与采集每帧深度图像时第二相机的坐标系间的第二变换关系。
基于前文说明可知,第二相机可以是RGBD相机;当第二相机为RGBD相机时,第二图形序列包括深度图像和RGB图像,且通常情况下,RGBD相机时同时采集深度图像和RGB图像;因此,在该实施例中,可以将RGBD相机中的深度相机的坐标系看成是第二相机的坐标系,也可以将RGBD相机中的RGB相机的坐标系看成是第二相机的坐标系。
可以理解的是,深度图像中的数据是对于该深度图像对应的第二相机的坐标系来说的,基于此,由于第二相机在目标坐标系下的位姿数据是根据第二相机采集到的深度图像中的数据计算得到的,所以根据第二相机在目标坐标系下的位姿数据能够反向推导出目标坐标系与采集每帧深度图像时第二相机的坐标系间的第二变换关系。
步骤202,根据第二变换关系和第一变换关系,确定目标坐标系与采集每帧目标图像的数据时第一相机的坐标系间的第三变换关系。
可以理解的是,根据第二变换关系可以从目标坐标系变换到采集深度图像时第二相机的坐标系,再根据第一变换关系可以从采集深度图像时第二相机的坐标系变换到采集每帧目标图像的数据时第一相机的坐标系,所以根据第一变换关系和第二变换关系可以确定目标坐标系与采集每帧目标图像的数据时第一相机的坐标系间的第三变换关系。
步骤203,根据网格模型的数据、第三变换关系以及第一图像序列的数据,获取每帧目标图像中像素的深度真值。
其中,步骤203也可以理解为,将网格模型投影到第一相机中,以得到第一相机拍摄的每帧目标图像中像素的深度真值。
下面对步骤203的具体实现进行介绍。
作为一种可实现的方式,如图8所示,步骤203包括:
步骤301,根据网格模型中的顶点在目标坐标系下的点云数据以及第三变换关系,获取网格模型的顶点在采集每帧目标图像的数据时第一相机的坐标系下的点云数据。
步骤302,根据网格模型的顶点在采集每帧目标图像的数据时第一相机的坐标系下的点云数据,第一图像序列的数据以及网格模型中的三角面片与顶点的关系,确定每帧目标图像中像素对应的三个顶点。
具体地,对于目标图像中的像素,若像素的中心位于第一相机的坐标系下一个三角面片中,则该像素对应的三个顶点可以是组成该三角面片的三个顶点。
步骤303,根据每帧目标图像中像素对应的三个顶点的点云数据,获取每帧目标图像中像素的深度真值。
下面通过具体的示例对步骤201至步骤203、步骤301至步骤303进行说明。
在该示例中,第一相机为TOF相机,第二相机为RGBD相机。
相应地,第一图像序列的数据包括5帧目标图像的数据,第二图像序列包括5帧深度图像和5帧RGB图像,这5帧深度图像和5帧RGB图像一一对应,且对应的深度图像和RGB图像是RGBD在同一位置拍摄的;由于对应的深度图像和RGB图像是RGBD在同一位置拍摄的,所以可以将RGBD相机中的RGB相机的坐标系看成是第二相机的坐标系。
以第1帧深度图像,则步骤201可以包括:根据采集第1帧深度图像时第二相机在目标坐标系下的位姿数据,确定目标坐标系与采集第1帧深度图像时第二相机的坐标系间的第二变换关系。
具体地,采集第i帧深度图像时第二相机的位姿可以表示为
其中,i取1;相应地,目标坐标系与采集第1帧深度图像时第二相机的坐标系间的第二变换关系可以表示为
表示
的逆。
步骤202可以包括:根据第一变换关系以及第二变换关系,确定目标坐标系与采集每帧目标图像的数据时第一相机的坐标系间的第三变换关系;其中,RGB相机的坐标系到TOF相机的坐标系的第一变换关系可以表示为T
RGBD_C_2TOF,则第三变换关系可以表示为
相应地,步骤301可以包括:通过公式
获取网格模型的顶点在采集每帧目标图像的数据时第一相机的坐标系下的点云数据,其中,
表示网格模型的顶点在每帧目标图像对应的第一相机的坐标系间下的点云数据,
表示网格模型的顶点在目标坐标系下的点云数据以及变换关系。
步骤302可以包括:根据网格模型的顶点在每帧目标图像对应的第一相机的坐标系间下的点云数据
第一图像序列的数据以及网格模型中的三角面片与顶点的关系,确定每帧目标图像中像素对应的三个顶点。
例如,如图9所示,网格模型包括由H1、H2和H3组成的三角面片,将该三角面片投影到第一相机的坐标系下;在第一相机的坐标系下,h位于由H1、H2和H3组成三角区域内,所以h点的深度值可以利用H1、H2和H3三点的深度值进行差值得到。
其中,H1、H2和H3三点的深度值可以根据顶点的点云数据计算得到。
差值的方法可以表示为,Zh=W
1Z
H1+W
2Z
H2+W
3Z
H3,其中W
1、W
2和W
3是大于或等于0的权重,且W
1+W
2+W
3=1,Z
H1、Z
H2和Z
H3分别表示H1、H2和H3三点的深度值。
以H3为例,W3可以表示为S(H1,H2,H3)-S(H1,h,H2))/(S(H1,H2,H3),其中,S(H1,H2,H3)为三角形H1,H2,H3的面积,S(H1,h,H2)为三角形H1,h,H2的面积。
上文是对本申请实施例提供的方法的介绍,由此可见,如图10所示,本申请实施例提供的方法可以概括如下:
利用采集装置(可以是将第一相机和第二相机绑定在一起的装置)同步采集图像,采集到的图像包括第一图像序列的数据和第二图像序列,其中,第一图像序列的数据包括多 张目标图像的数据;然后对第二图像序列中的RGB图像和深度图像进行畸变矫正处理和对齐处理,再根据经过上述处理后的第二图像序列计算RGBD的位姿,此后,根据RGBD的位姿以及第二图像序列进行3D场景重建,以得到3D场景的网格模型;在3D场景重建后,先获得3D场景的网格模型所在的目标坐标系到每帧目标图像对应的第一相机的坐标系的变换关系,最后根据该变换关系将3D场景的网格模型投影到每帧目标图像对应的第一相机的坐标系中,从而得到每帧目标图像中像素的深度真值。
下面通过一示例对本申请实施例的方法的效果进行说明。
在该示例中,目标场景如图3所示,使用本申请实施例提供的方法进行场景重建,场景重建的结果如图11所示,最后得到的该目标场景的像素的深度真值如图12所示,在图12中,颜色的深浅表示深度真值的大小;对比图3和图12可知,图3中反光较弱的区域(例如黑色区域)、视角较小的位置以及远距离的区域,在图13中均呈现出了较准确的深度真值。
如图13所示,本申请提供了一种获取深度真值的装置,包括:第一获取单元401,用于获取由第一相机采集到的第一图像序列的数据,第一图像序列的数据包括目标场景的M帧目标图像的数据,M为大于1的正整数;第一获取单元401,用于获取由第二相机采集到的第二图像序列,第二图像序列包括目标场景的M帧深度图像,M帧深度图像与M帧目标图像的数据一一对应,且在采集对应的目标图像的数据和第二图像序列中的深度图像时,第二相机的坐标系和第一相机的坐标系满足第一变换关系;重建单元402,用于根据第二图像序列获取目标场景的网格模型的数据,网格模型的数据包括网格模型中的顶点在目标坐标系下的点云数据,以及网格模型中的三角面片与顶点的关系;第二获取单元403,用于根据网格模型的数据、第一变换关系以及第一图像序列的数据,获取每帧目标图像中像素的深度真值。
作为一种可实现的方式,第一图像序列的数据是第一相机在多个位置采集到的,第二图像序列是第二相机在多个位置采集到的。
作为一种可实现的方式,第二相机是由RGB相机和深度相机构成的RGBD相机;第二图像序列中的M帧深度图像是由深度相机采集的,第二图像序列还包括由RGB相机采集的目标场景的M帧RGB图像。
作为一种可实现的方式,该装置还包括:预处理单元404,用于对第二图像序列中的M帧深度图像和M帧RGB图像进行对齐处理。
作为一种可实现的方式,第一获取单元401,还用于获取由第二相机采集到的第三图像序列,第三图像序列包括目标场景的深度图像和/或RGB图像,采集第三图像序列中的图像时第二相机的坐标系,与采集目标图像的数据时第一相机的坐标系不满足第一变换关系;重建单元402,用于根据第二图像序列和第三图像序列,获取目标场景的网格模型的数据。
作为一种可实现的方式,重建单元402,用于根据第二图像序列获取,在采集第二图像序列中的每帧深度图像时,第二相机在目标坐标系下的位姿数据;根据第二图像序列以及第二相机在目标坐标系下的位姿数据,获取目标场景的网格模型的数据。
作为一种可实现的方式,该装置还包括无效像素确定单元405,用于确定第二图像序 列中深度图像上的无效的像素,无效的像素是指在获取目标场景的网格模型的数据的过程中不使用的像素,且包括深度值大于阈值的像素。
其中,以上各单元的具体实现、相关说明以及技术效果请参考本申请实施例方法部分的描述。任一单元可以软件、硬件或二者混合实现,本实施例对此不限定。
请参阅图14,图14为本申请实施例提供的计算机设备的一种结构示意图,用于实现图13对应实施例中获取深度真值的装置的功能,计算机设备1800可因配置或性能不同而产生比较大的差异,可以包括一个或一个以***处理器(central processing units,CPU)1822(例如,一个或一个以上处理器)和存储器1832,一个或一个以上存储应用程序1842或数据1844的存储介质1830(例如一个或一个以上海量存储设备)。其中,存储器1832和存储介质1830可以是短暂存储或持久存储。存储在存储介质1830的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对计算机设备中的一系列指令操作。更进一步地,中央处理器1822可以设置为与存储介质1830通信,在计算机设备1800上执行存储介质1830中的一系列指令操作。
计算机设备1800还可以包括一个或一个以上电源1826,一个或一个以上有线或无线网络接口1850,一个或一个以上输入输出接口1858,和/或,一个或一个以上操作***1841,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
本申请实施例中,中央处理器1822,可以用于执行图13对应实施例中获取深度真值的装置执行的获取深度真值的方法。具体的,中央处理器1822,可以用于:
通过运行在第一核心上的第一线程运行第一代码段,以执行以下第一操作:
获取由第一相机采集到的第一图像序列的数据,第一图像序列的数据包括目标场景的M帧目标图像的数据,M为大于1的正整数;
获取由第二相机采集到的第二图像序列,第二图像序列包括目标场景的M帧深度图像,M帧深度图像与M帧目标图像的数据一一对应,且在采集对应的目标图像的数据和第二图像序列中的深度图像时,第二相机的坐标系和第一相机的坐标系满足第一变换关系;
根据第二图像序列获取目标场景的网格模型的数据,网格模型的数据包括网格模型中的顶点在目标坐标系下的点云数据,以及网格模型中的三角面片与顶点的关系;
根据网格模型的数据、第一变换关系以及第一图像序列的数据,获取每帧目标图像中像素的深度真值。
本申请实施例还提供一种芯片,包括一个或多个处理器。所述处理器中的部分或全部用于读取并执行存储器中存储的计算机程序,以执行前述各实施例的方法。
可选地,该芯片该包括存储器,该存储器与该处理器通过电路或电线与存储器连接。进一步可选地,该芯片还包括通信接口,处理器与该通信接口连接。通信接口用于接收需要处理的数据和/或信息,处理器从该通信接口获取该数据和/或信息,并对该数据和/或信息进行处理,并通过该通信接口输出处理结果。该通信接口可以是输入输出接口。
在一些实现方式中,所述一个或多个处理器中还可以有部分处理器是通过专用硬件的方式来实现以上方法中的部分步骤,例如涉及神经网络模型的处理可以由专用神经网络处理器或图形处理器来实现。
本申请实施例提供的方法可以由一个芯片实现,也可以由多个芯片协同实现。
本申请实施例还提供了一种计算机存储介质,该计算机存储介质用于储存为上述计算机设备所用的计算机软件指令,其包括用于执行为计算机设备所设计的程序。
该计算机设备可以如前述图13对应实施例中获取深度真值的装置。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品包括计算机软件指令,该计算机软件指令可通过处理器进行加载来实现前述各个实施例所示的方法中的流程。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网格单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网格设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (10)
- 一种获取深度真值的方法,其特征在于,包括:获取由第一相机采集到的第一图像序列的数据,所述第一图像序列的数据包括目标场景的M帧目标图像的数据,M为大于1的正整数;获取由第二相机采集到的第二图像序列,所述第二图像序列包括所述目标场景的M帧深度图像,所述M帧深度图像与所述M帧目标图像的数据一一对应,且在采集对应的所述目标图像的数据和所述第二图像序列中的所述深度图像时,所述第二相机的坐标系和所述第一相机的坐标系满足第一变换关系;根据所述第二图像序列获取所述目标场景的网格模型的数据,所述网格模型的数据包括所述网格模型中的顶点在目标坐标系下的点云数据,以及所述网格模型中的三角面片与所述顶点的关系;根据所述网格模型的数据、所述第一变换关系以及所述第一图像序列的数据,获取每帧所述目标图像中像素的深度真值。
- 根据权利要求1所述的方法,其特征在于,所述第一图像序列的数据是所述第一相机在多个位置采集到的,所述第二图像序列是所述第二相机在多个位置采集到的。
- 根据权利要求1或2所述的方法,其特征在于,所述第二相机是由RGB相机和深度相机构成的RGBD相机;所述第二图像序列中的M帧深度图像是由所述深度相机采集的,所述第二图像序列还包括由所述RGB相机采集的所述目标场景的M帧RGB图像。
- 根据权利要求3所述的方法,其特征在于,在所述根据所述第二图像序列获取所述目标场景的网格模型的数据之前,所述方法还包括:对所述第二图像序列中的M帧深度图像和M帧RGB图像进行对齐处理。
- 根据权利要求1至4中任意一项所述的方法,所述方法还包括:获取由所述第二相机采集到的第三图像序列,所述第三图像序列包括所述目标场景的深度图像和/或RGB图像,采集所述第三图像序列中的图像时所述第二相机的坐标系,与采集所述目标图像的数据时所述第一相机的坐标系不满足所述第一变换关系;所述根据所述第二图像序列获取所述目标场景的网格模型的数据包括:根据所述第二图像序列和所述第三图像序列,获取所述目标场景的网格模型的数据。
- 根据权利要求1至5中任意一项所述的方法,其特征在于,所述根据所述第二图像序列获取所述目标场景的网格模型的数据包括:根据所述第二图像序列获取,在采集所述第二图像序列中的每帧深度图像时,所述第二相机在目标坐标系下的位姿数据;根据所述第二图像序列以及所述第二相机在目标坐标系下的位姿数据,获取所述目标场景的网格模型的数据。
- 根据权利要求1至6中任意一项所述的方法,其特征在于,在所述根据所述第二图像序列获取所述目标场景的网格模型的数据之前,所述方法还包括:确定所述第二图像序列中深度图像上的无效的像素,所述无效的像素是指在获取所述目标场景的网格模型的数据的过程中不使用的像素,且包括深度值大于阈值的像素。
- 一种获取深度真值的装置,其特征在于,包括:第一获取单元,用于获取由第一相机采集到的第一图像序列的数据,所述第一图像序列的数据包括目标场景的M帧目标图像的数据,M为大于1的正整数;所述第一获取单元,用于获取由第二相机采集到的第二图像序列,所述第二图像序列包括所述目标场景的M帧深度图像,所述M帧深度图像与所述M帧目标图像的数据一一对应,且在采集对应的所述目标图像的数据和所述第二图像序列中的所述深度图像时,所述第二相机的坐标系和所述第一相机的坐标系满足第一变换关系;重建单元,用于根据所述第二图像序列获取所述目标场景的网格模型的数据,所述网格模型的数据包括所述网格模型中的顶点在目标坐标系下的点云数据,以及所述网格模型中的三角面片与所述顶点的关系;第二获取单元,用于根据所述网格模型的数据、所述第一变换关系以及所述第一图像序列的数据,获取每帧所述目标图像中像素的深度真值。
- 一种计算机设备,其特征在于,包括:存储器和处理器,其中,所述存储器用于存储计算机可读指令;所述处理器用于读取所述计算机可读指令并实现如权利要求1-7任意一项所述的方法。
- 一种计算机存储介质,其特征在于,存储有计算机可读指令,且所述计算机可读指令在被处理器执行时实现如权利要求1-7任意一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/127578 WO2023070555A1 (zh) | 2021-10-29 | 2021-10-29 | 一种获取深度真值的方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117501314A true CN117501314A (zh) | 2024-02-02 |
Family
ID=86158898
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180099315.4A Pending CN117501314A (zh) | 2021-10-29 | 2021-10-29 | 一种获取深度真值的方法及相关装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117501314A (zh) |
WO (1) | WO2023070555A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150172637A1 (en) * | 2013-12-12 | 2015-06-18 | Electronics And Telecommunications Research Institute | Apparatus and method for generating three-dimensional output data |
CN111739146A (zh) * | 2019-03-25 | 2020-10-02 | 华为技术有限公司 | 物体三维模型重建方法及装置 |
CN113052890A (zh) * | 2021-03-31 | 2021-06-29 | 奥比中光科技集团股份有限公司 | 一种深度真值获取方法、装置、***及深度相机 |
-
2021
- 2021-10-29 WO PCT/CN2021/127578 patent/WO2023070555A1/zh active Application Filing
- 2021-10-29 CN CN202180099315.4A patent/CN117501314A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023070555A1 (zh) | 2023-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111145238B (zh) | 单目内窥镜图像的三维重建方法、装置及终端设备 | |
WO2021140886A1 (ja) | 三次元モデル生成方法、情報処理装置およびプログラム | |
US10059002B2 (en) | Image processing apparatus, image processing method, and non-transitory computer-readable medium | |
Strecha et al. | On benchmarking camera calibration and multi-view stereo for high resolution imagery | |
CN107533763B (zh) | 图像处理装置、图像处理方法及程序 | |
US9426444B2 (en) | Depth measurement quality enhancement | |
US9525862B2 (en) | Method for estimating a camera motion and for determining a three-dimensional model of a real environment | |
US9183631B2 (en) | Method for registering points and planes of 3D data in multiple coordinate systems | |
US11568516B2 (en) | Depth-based image stitching for handling parallax | |
US20160379370A1 (en) | Information processing apparatus, information processing method, and storage medium | |
US20210044787A1 (en) | Three-dimensional reconstruction method, three-dimensional reconstruction device, and computer | |
JP2020515931A (ja) | シーンのセグメンテーションと3d再構築を組み合わせるための方法及び装置 | |
CN112184811B (zh) | 单目空间结构光***结构校准方法及装置 | |
WO2018216341A1 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
JP2017117386A (ja) | 自己運動推定システム、自己運動推定システムの制御方法及びプログラム | |
CN111383264B (zh) | 一种定位方法、装置、终端及计算机存储介质 | |
CN110825079A (zh) | 一种地图构建方法及装置 | |
CN115345942A (zh) | 空间标定方法、装置、计算机设备和存储介质 | |
CN117197333A (zh) | 基于多目视觉的空间目标重构与位姿估计方法及*** | |
CN110021035B (zh) | Kinect深度相机的标记物及基于该标记物的虚拟标记物跟踪方法 | |
CN104200456A (zh) | 一种用于线结构光三维测量的解码方法 | |
CN110969650B (zh) | 一种基于中心投影的强度图像与纹理序列间的配准方法 | |
CN116912417A (zh) | 基于人脸三维重建的纹理贴图方法、装置、设备和存储介质 | |
KR101673144B1 (ko) | 부분 선형화 기반의 3차원 영상 정합 방법 | |
CN111126508A (zh) | 一种基于hopc改进的异源图像匹配方法 |
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 |