CN107230225B - 三维重建的方法和装置 - Google Patents
三维重建的方法和装置 Download PDFInfo
- Publication number
- CN107230225B CN107230225B CN201710279146.8A CN201710279146A CN107230225B CN 107230225 B CN107230225 B CN 107230225B CN 201710279146 A CN201710279146 A CN 201710279146A CN 107230225 B CN107230225 B CN 107230225B
- Authority
- CN
- China
- Prior art keywords
- dimensional point
- dimensional
- point
- point cloud
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 91
- 230000009466 transformation Effects 0.000 claims abstract description 201
- 238000007499 fusion processing Methods 0.000 claims abstract description 34
- 239000011159 matrix material Substances 0.000 claims description 107
- 230000006870 function Effects 0.000 claims description 54
- 238000012545 processing Methods 0.000 claims description 39
- 239000013598 vector Substances 0.000 claims description 38
- 230000009467 reduction Effects 0.000 claims description 13
- 238000006073 displacement reaction Methods 0.000 claims description 8
- 230000004927 fusion Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 description 33
- 238000004364 calculation method Methods 0.000 description 23
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 9
- 125000004122 cyclic group Chemical group 0.000 description 9
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000003384 imaging method Methods 0.000 description 3
- 230000001131 transforming effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
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
- G06T7/55—Depth or shape recovery from multiple images
-
- 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
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10028—Range image; Depth image; 3D point clouds
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Processing (AREA)
Abstract
本申请提供了一种三维重建的方法和装置,该方法包括:获取与第一图像对应的第一三维点云和与第二图像对应的第二三维点云,该第一图像成像于第一坐标系中,该第二图像成像于第二坐标系中;对第一三维点云进行第一射影变换,得到第一索引图,该第一索引图中的每个坐标点对应于第一三维点云中的一个三维点,并指示所对应的三维点在第一三维点云中的索引;对第二三维点云进行第二射影变换,得到第二索引图,该第二索引图中的每个坐标点对应于第二三维点云中的一个三维点,并指示所对应的三维点在第二三维点云中的索引;从第一索引图和第二索引图中确定至少一个目标点,并对该至少一个目标点所指示的第一三维点和第二三维点进行融合处理。
Description
技术领域
本申请涉及图像处理领域,并且更具体地,涉及一种三维重建的方法和装置。
背景技术
随着彩色和深度(red green blue and depth,RGBD)相机的兴起,利用彩色图像和深度图像获得场景的三维重建成为可能。目前,已知一种三维重建的方法,能够充分利用RGBD传感器中的深度信息进行三维重建。具体地,在进行图像处理之前,首先需要获取三维物体(即,被拍摄物)的二维图像(即,拍摄得到的照片),可以理解,该三维模型对应的二维图像可以为多个。其后,根据二维图像中每个像素的像素点坐标和深度坐标,通过相机的内参数,求解出二维图像中每个像素点的三维空间坐标(即,三维点云)。其后,找出同一物理三维点在两幅不同图像中对应的成像点,并将对应的成像点进行融合,以获得与该二维图像对应的三维模型。
但是,在进行三维重建的过程中,找出同一物理三维点在不同图像中对应的成像点的过程需要通过比较复杂的空间坐标转换来实现,即,需要将参考三维点云和当前三维点云转换到同一个空间坐标系(例如,转换到当前三维点云的空间坐标系)来进行比较和计算,以获得对应点。而三维点云往往需要占用较大的存储空间,对三维点云的移动操作则需要花费较长的时间处理来实现,由此大大影响了三维重建的处理效率。
发明内容
本申请提供一种三维重建的方法和装置,能够提高计算效率。
第一方面,提供了一种三维重建的方法,包括:
获取与第一图像对应的第一三维点云和与第二图像对应的第二三维点云,所述第一图像成像于第一坐标系中,所述第二图像成像于第二坐标系中,所述第一图像和所述第二图像为终端设备拍摄到的两幅图像,且所述第一图像和所述第二图像具有至少一对对应点;
对所述第一三维点云进行第一射影变换,得到所述第一坐标系中的第一索引图,所述第一索引图中的每个坐标点对应于所述第一三维点云中的一个三维点,每个坐标点用于指示所对应的三维点在所述第一三维点云中的索引;
对所述第二三维点云进行第二射影变换,得到所述第一坐标系中的第二索引图,所述第二索引图中的每个坐标点对应于所述第二三维点云中的一个三维点,每个坐标点用于指示所对应的三维点在所述第二三维点云中的索引;
从所述第一索引图和所述第二索引图中确定具有相同二维坐标的至少一个目标点,并确定每个目标点所指示的所述第一三维点云中的第一三维点和所述第二三维点云中的第二三维点;
对所述至少一个目标点所指示的第一三维点和第二三维点进行融合处理,得到三维模型中的至少一个三维点。
可选地,所述对所述第一三维点云进行第一射影变换,得到所述第一坐标系中的第一索引图,包括:
根据第一射影变换函数对所述第一三维点云中的每个三维点进行射影变换,得到所述第一索引图;
所述对所述第二三维点云进行第二射影变换,得到所述第一坐标系中的第二索引图,包括:
确定目标变换矩阵,所述目标变换矩阵用于将第二坐标系中的图像转换为第一坐标系中的图像;
根据所述目标变换矩阵,对所述第一射影变换函数进行坐标系变换,得到第二射影变换函数;
根据所述第二射影变换函数对所述第二三维点云中的每个三维点进行射影变换,得到所述第二索引图。
通过将对第二三维点云中每个三维点的坐标系变换转移到了对第一射影变换函数上,以避免了对第二三维点云的移动操作,也就是避免了空间变换操作,不需要做内存操作,减小了内存开销,有利于提高计算效率。
可选地,所述确定目标变换矩阵,包括:
在[1,N]内对i遍历取值,以循环执行以下操作,并将确定的用于第N+1次操作的变换矩阵确定为所述目标变换矩阵:
根据第i次确定的变换矩阵,对所述第一射影变换函数进行第i次坐标系变换,得到经所述第i次坐标系变换后的第三射影变换函数;
根据经所述第i次坐标系变换得到的第三射影变换函数,对所述第二三维点云中的每个三维点进行第i次射影变换,得到经所述第i次射影变换后的第三索引图;
从所述第一索引图和所述第i次射影变换后的第三索引图中确定具有相同二维坐标的至少一个目标点,并确定每个目标点所指示的所述第一三维点云中的第一三维点和所述第二三维点云中的第三三维点;
确定所述至少一个目标点所指示的第一三维点和第三三维点的距离加权值;
根据所述距离加权值,确定用于第i+1次操作的变换矩阵;
其中,N为预先设定的循环操作次数,N>1,i、N均为自然数。
通过多次循环操作,使得得到的变换矩阵更加准确,从而使得用于重建三维模型的、待融合的对应点(即,第一三维点和第二三维点)不仅距离上接近,并且法向量也接近。
可选地,在N次循环操作的第i次循环操作中,从所述第一索引图和所述第三索引图中确定的所述至少一个目标点中任意一个目标点满足以下至少一个条件:
所指示的第一三维点和第三三维点的距离小于或等于第一预设门限;
所指示的第一三维点的曲率和第三三维点的曲率均小于或等于第二预设门限;
所指示的第一三维点与第三三维点的曲率比值大于或等于第三预设门限,且小于或等于第四预设门限,所述第三预设门限小于所述第四预设门限;
所指示的第一三维点与邻域三维点所构成的拟合平面的法向量与所指示的第三三维点与邻域三维点所构成的拟合平面的法向量的夹角小于或等于第五预设门限。
通过上述条件的限制,可以进一步减少对应点的数量,使得循环操作过程中当前三维点云和参考三维点云中的对应点的数量减小,即减少了计算量,节省内存开销。
可选地,所述确定所述至少一个目标点所指示的第一三维点和第三三维点的距离加权值,包括:
根据每个目标点所指示的第一三维点的邻域三维点,拟合所述第一三维点在所述第一坐标系中的拟合平面,并确定所述拟合平面的法向量;
所述第一三维点与邻域三维点的距离,以及所述拟合平面的法向量,确定信息矩阵,所述信息矩阵定义了所述至少一个目标点在用于计算所述距离加权值时每个目标点的权重;
根据每个目标点所指示的第一三维点的三维坐标和第三三维点的三维坐标、所述目标变换矩阵,以及所述信息矩阵,确定所述至少一个目标点所指示的第一三维点和第三三维点的距离加权值。
由于在对对应点求解距离加权值时考虑了对应点距离以及法向量的影响,因此可以减小三维点所受到的噪声影响,鲁棒性更好。
可选地,所述第一三维点云为当前三维点云,所述第二三维点云为参考三维点云。
可选地,所述获取与第一图像对应的第一三维点云和与第二图像对应的第二三维点云,包括:
分别对所述第一图像和所述第二图像进行降噪处理,使得所述第一图像或所述第二图像中的任意一个像素点与相邻的任意一个像素点的深度值之差小于或等于第六预设门限;
获取经所述降噪处理后的所述第一图像对应的第一三维点云和经所述降噪处理后的所述第二图像对应的第二三维点云。
可选地,所述对所述至少一个目标点所指示的第一三维点和第二三维点进行融合处理,得到三维模型中的至少一个三维点,包括:
对所述至少一个目标点所指示的第一三维点和第二三维点进行约点处理;
对经所述约点处理之后的第一三维点和第二三维点进行融合处理,得到三维模型中的至少一个三维点。
通过上述约点处理,可以降低该空间中的三维点的冗余度,有利于降低内存消耗,提高后续图像的处理速度。
可选地,在所述对所述至少一个对应点所指示的第一三维点和第二三维点进行融合处理,得到三维模型中的至少一个三维点之后,所述方法还包括:
将融合处理得到的所述三维模型中的至少一个三维点确定为用于下一帧三维重建的参考三维点云。
可选地,所述方法还包括:
在所述终端设备的移动轨迹满足以下至少一个条件时,清空内存中的参考三维点云:
所述终端设备的位移大于第七预设门限;或者
所述终端设备的旋转角度大于第八预设门限。
为了进一步减小三维点云的空间占用量,可以在连续拍摄到的两帧图像无对应点的时候,将两帧图像中的上一帧图像从内存中清除。终端设备可以通过位移或者旋转角度等具体的数值来确定连续拍摄到的两针图像无对应点。在终端设备的位移大于第七预设门限或者旋转角度大于第八预设门限的情况下,确定两帧图像无对应点,直接将两帧图像中的上一帧图像从内存中清除。
第二方面,提供了一种三维重建的装置,包括用于执行第一方面或第一方面任一种可能实现方式中的三维重建的方法的各个单元。
第三方面,提供了一种三维重建的设备,包括处理器和存储器,该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,使得该三维重建的设备执行第一方面或第一方面任一种可能实现方式中的方法。
第四方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码被用于数据传输的装置运行时,使得所述三维重建的装置或三维重建的设备执行第一方面或第一方面任一种可能实现方式中的方法。
第五方面,提供了一种计算机可读介质,所述计算机可读介质存储有程序代码,所述程序代码包括用于执行第一方面或第一方面任一种可能实现方式中的方法的指令。
本申请可以通过根据索引图来确定三维点云中的对应点,从而可以减少计算过程中三维点云对存储空间的占用,减少三维点云的移动操作,减小内存开销,有利于提高计算效率。
附图说明
图1是根据本发明实施例的三维重建的方法的示意性流程图。
图2是积分图的示意图。
图3是根据本发明实施例的三维重建的装置的示意性框图。
图4是根据本发明实施例的三维重建的设备的示意性框图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
应理解,在本发明实施例中,三维重建的装置可以为处理器,例如可以为中央处理单元(central processing unit,CPU),该处理器可以配置于终端设备中。可选地,该终端设备还包括存储器,用于提供计算空间和存储空间。可选地,该终端设备还安装有RGBD相机,例如,该RGBD相机可以配置于该终端设备中,或者通过数据线等连接线外部连接在该终端设备上。
以下,为方便说明,以终端设备作为该方法的执行主体来说明本发明实施例,该终端设备可以至少配置有处理器、存储器和RGBD相机。
由RGBD相机拍摄到的照片所呈现的二维图像中的每个像素点都包含红(red)、绿(green)、蓝(blue)、深度(depth)的信息。在成像的二维图像中,每个点都是以在该图像中的行、列来区分的,每个像素点(u,v)用于指示该像素点在该二维图像中的第u行第v列,同时,该像素点还携带了深度信息d,该深度信息指示该像素点与相机的距离。
需要说明的是,本发明实施例的三维重建的方法,可以用于实时地进行三维重建,例如,当终端设备拍摄到两张照片(为便于区分和说明,记作第一图像和第二图像)后,通过对第一图像和第二图像进行三维变换的处理,可以得到与该第一图像对应的三维点的集合和与第二图像对应的三维点的集合。
其中,每个图像所对应的三维点的集合可以称为一个三维点云。根据RGBD相机拍摄到的图像经三维变换处理后得到的三维点云中的每个三维点(x,y,z)则指示该三维点在空间中的位置。故,与该第一图像和第二图像分别对应的三维点云可以记作第一三维点云和第二三维点云。然后将该第一三维点云和第二三维点云中的对应点进行融合处理,便可以得到与该第一图像和第二图像对应的三维模型。
若该第一图像和第二图像为该终端设备最先拍摄到的两张照片,则按照拍摄的时间先后顺序,将当前时刻(例如,可以记作第二帧)拍摄得到的图像(例如,上述第二图像)称为当前图像,其对应的三维点云即为当前三维点云;与之对应地,前一时刻(例如,可以记作第一帧)拍摄得到的图像(例如,上述第一图像)称为参考图像,其对应的三维点云即为参考三维点云。
其后,当终端设备在下一时刻(例如,可以记作第三帧)拍摄到又一张照片时(为便于区分和说明,记作第三图像),该终端设备可以将该第三图像进行三维变换处理,得到第三三维点云,该第三三维点云可以与上述第一三维点云和第二三维点云融合得到的三维点云进行融合。在此过程中,该第三三维点云可以作为当前三维点云,上述第一三维点云和第二三维点云融合得到的三维点云可以作为该第三三维点云的参考三维点云。
换句话说,在对三维点云的第i次(i≥1,且i为自然数)融合处理中,当前三维点云可以理解为当前拍摄到的照片经三维变换处理后得到的三维点云,是未经处理的二维图像所对应的三维点云,同时也是没有经过与其他三维点云的融合处理的三维点云。参考三维点云可以理解为是在获取到当前三维点云之前得到的三维点云,它有可能未经过融合处理(即,该终端设备拍摄到的第一张照片经三维变换处理得到的三维点云,此时没有更多的历史照片与该照片进行融合,或者说,该第i次融合处理为第一次融合处理,i=1),也可能经过了融合处理(即,该第i次融合处理为第一次融合处理之后的任意次融合处理,i>1)。该参考三维点云用于与当前三维点云进行融合处理,得到新的三维点云。而在第i+1次融合处理中,第i次融合处理得到的三维点云则成为了参考三维点云。
可以理解的是,终端设备在拍摄两张照片的时候,相机的位姿是不同的,也就是对应了不同的相机坐标系为便于区分和说明,可以假设上述第一图像成像于第一坐标系,第二图像成像于第二坐标系,该第一坐标系和第二坐标系为不同的相机坐标系。因此,该第一图像对应的第一三维点云对应于第一坐标系,第二图像对应的第二三维点云对应于第二坐标系。
当终端设备在拍摄到的两张照片(例如,上述第一图像和第二图像)存在重叠区域的时候,可以认为该第一图像和第二图像中存在至少一对对应点。其中,对应点可以理解为世界坐标系中一个点(为便于区分和说明,记作目标点)分别在第一图像和第二图像中对应的像素点。由于该第一图像和第二图像经过三维变换处理后,可以得到第一三维点云和第二三维点云,故,对应点也可以理解为世界坐标系中的一个点分别在第一三维点云和第二三维点云中对应的三维点。相对于对应点,将世界坐标系中的点记作目标点。即,目标点是实际存在的拍摄物上的点,对应点是图像(包括二维图像和三维点云)中存在的点。
下面结合附图详细说明本发明实施例的三维重建的方法。
图1是根据本发明实施例的三维重建的方法100的示意性流程图。如图1所示,该方法包括:
S110,获取第一图像和第二图像,并对该第一图像和第二图像分别进行降噪处理。
这里,假设该第一图像和第二图像为该终端设备拍摄到的两张照片,其中,该第一图像成像于第一坐标系中,第二图像成像于第二坐标系中。该第一图像和第二图像可以为该终端设备连续拍摄得到的两张照片,也可以为非连续拍摄的两张照片,该两张照片中包含有至少一对对应点。
在对该第一图像和第二图像进行三维变换处理之前,需要剔除掉一些孤立噪声点和测量不准确的点(为便于说明,以下简称为噪声点)。在本发明实施例中,可以根据以下公式剔除噪声点:
|D(r,c)-D(r,(c+1))|>Dt;或者,|D((r+1),c)-D(r,c)|>Dt。
其中,以二维图像的左上角为坐标原点,(r,c)表示该二维图像中的任意一个像素点,(r,(c+1))表示像素点(r,c)的纵向相邻点,((r+1),c)表示像素点(r,c)的横向相邻点,D(r,c)表示(r,c)的深度值,Dt表示深度值的预设门限值(为便于理解和区分,记作第六预设门限)。
此公式表示:在任意一个像素点(r,c)和与之相邻的像素点满足上述公式中的任意一个时,则认为该两个像素点的深度值超出第六预设门限,可以认为该两个像素点为噪声点,并将该两个像素点从该二维图像中剔除。
应理解,剔除噪声点的方法并不仅限于上述举例,也可以通过现有技术中的其他方法来实现,为了简洁,这里不再一一列举和详述剔除噪声点的方法和具体过程。
S120,对降噪处理后的第一图像和第二图像分别进行三维变换处理,得到第一三维点云和第二三维点云。
经过S110步骤进行了降噪处理之后,分别对降噪处理后的第一图像和第二图像进行三维变换处理。对于二维图像中的任意一个点(u,v),可以获得与之对应的深度值d,每个点(u,v,d),利用已知的相机内参数K,利用下式可以得到相机坐标系下的三维点p的三维坐标:
可以理解的是,对于一个相机而言,其相机内参数K是一定的,因此,可以根据每一个点的二维坐标和深度值,确定对应的三维坐标,进而得到与二维图像对应的三维点云。
应理解,根据相机内参数确定与二维图像对应的三维点云的具体方法可以与现有技术相同,为了简洁,这里不再赘述。
若上述第一图像为当前时刻(例如,第二帧)拍摄到的图像,第二图像为上一时刻(例如,第一帧)拍摄到的图像,则该第一图像所对应的第一三维点云可以为当前三维点云,该第二图像所对应的第二三维点云可以为参考三维点云。
S130,对该第一三维点云进行第一射影变换,得到第一坐标系中的第一索引图。
具体地,索引图可以理解为一个二维图,该二维图中的每个坐标点通过与原点坐标的距离来定义,该距离的单位可以为像素点。例如,(u,v)表示从二维点的原点坐标出发的横向第u个、纵向第v个像素点,该像素点中保存了一个三维坐标点的索引,因此,索引图中的任意一个坐标点,可以对应一个三维坐标点。
换句话说,在第一索引图中包括多个坐标点,在第一三维点云中包括多个三维点,该多个坐标点与多个三维点一一对应,每个坐标点用于指示所对应的三维点的索引。
在本发明实施例中,该第一索引图是对该第一三维点云进行射影变换得到的。由于该第一图像成像于第一坐标系中,对该第一三维点云进行射影变换得到的第一索引图即为第一坐标系中的索引图。该第一索引图中的每个坐标点对应于第一三维点云中的一个三维点,每个坐标点指示所对应的三维点的索引,根据该三维点的索引,可以确定该三维点的三维坐标。
其中,射影变换可以通过函数π来表示,索引图可以通过函数I表示。例如,π(pi)=(u,v),并且Iuv=pi,表示通过射影变换函数π对三维点pi计算可以得到对应在索引图中的一个坐标点(u,v),该坐标点(u,v)中保存该三维点的索引i。为了便于与后文中提及的对第二三维点云的处理,将对该第一三维点云的射影变换处理所使用的变换函数记作第一射影变换函数。
可选地,S130具体包括:
根据第一射影变换函数对该第一三维点云中的每个三维点进行射影变换,得到第一索引图。
因此,通过将三维点云(包括上述第一三维点云和后文提及的第二三维点云)转换为索引图(包括第一索引图和后文提及的第二索引图),可以大大减小三维点云对计算空间的占用,减小了空间存储的需求,也就是减小了内存开销,有利于提高计算效率。
需要说明的是,在射影变换过程中,由于是将三维点云中的三维点投影到二维图像中,有可能出现多个三维点重叠投影到同一个二维点的情况,或者,由于三维点云的分辨率大于索引图的分辨率,有可能出现多个邻近的三维点投影到同一个二维点的情况,在上述情况下,可以选择距离相机光心最近且法方向指向光心的三维点,而将其他的三维点清除。
S140,对第二三维点云进行第二射影变换,得到第一坐标系中的第二索引图。
与S130对应地,第二三维点云同样需要通过变换处理,获取第一坐标系中的第二索引图。但是,与第一三维点云所不同的是,由于第二图像是成像于第二坐标系中的图像,其对应的第二三维点云对应于第二坐标系。因此,若需要寻找第一三维点云和第二三维点云的对应点,则需要将该第二三维点云进行坐标系变换,以得到与第一坐标系对应的三维点云。
换句话说,在第二索引图中包括多个坐标点,在第二三维点云中包括多个三维点,该多个坐标点与多个三维点一一对应,每个坐标点用于指示所对应的三维点的索引。
通常情况下,可以根据变换矩阵对第二三维点云中的所有三维点进行移动操作,以使移动操作后的第二三维点云与第一坐标系对应。本申请提出了一种对第二三维点云的处理方法,可以避免对第二三维点云的移动操作。
具体地,S140包括:
确定目标变换矩阵,该目标变换矩阵用于将第二坐标系中的图像转换为第一坐标系中的图像;
根据目标变换矩阵,对第一射影变换函数进行坐标系变换,得到第二射影变换函数;
根据该第二射影变换函数对该第二三维点云中的每个三维点进行射影变换,得到第二索引图。
也就是说,本发明实施例中,将对第二三维点云中每个三维点的坐标系变换转移到了对第一射影变换函数上,以避免了对第二三维点云的移动操作,也就是避免了空间变换操作,不需要做内存操作,减小了内存开销,有利于提高计算效率。
需要说明的是,上述示例的对第一三维点云进行第一射影变换处理、对第二三维点云进行第二射影变换处理,以得到第一坐标系中的第一索引图和第二索引图的过程仅为示例性说明,而不应对本发明实施例构成任何限定。例如,也可以通过对第一三维点云进行第三射影变换处理(为便于与上文中的基于第一坐标系的第一射影变换处理和第二射影变换处理区分,将基于第二坐标系进行的射影变换处理记作第三射影变换处理)、对第二三维点云进行第四射影变换处理(为便于与第三射影变换处理区分,记作第四射影变换处理),以得到第二坐标系中的第一索引图和第二索引图。换句话说,对第一三维点云和第二三维点云进行的变换处理,是为了使这两个三维点云所对应的索引图转换至同一个坐标系中,以便于在S150中确定对应点。
S150,从该第一索引图和第二索引图中确定具有相同二维坐标的至少一个目标点,并确定每个目标点所指示的第一三维点云中的第一三维点和第二三维点云中的第二三维点。
具体地,当将两个三维点云统一到同一个坐标系中之后,世界坐标系中的同一个目标点在两个三维点云所对应的索引图中对应的坐标必然是相同的,因此,可以根据第一索引图和第二索引图中具有相同二维坐标的至少一个目标点,确定第一三维点云和第二三维点云中的至少一对对应点。
通过上文描述可知,索引图中的每个点指示一个三维点在三维点云中的索引,根据该索引,便可以确定该三维点,进而在S160中进行融合处理。
S160,对该至少一个目标点所指示的第一三维点和第二三维点进行融合处理,得到三维模型中的至少一个三维点。
在S150中确定了第一三维点云和第二三维点云中的对应点之后,便可以将第二三维点云中的对应点移动至第一三维点云中进行融合处理。因此,在整个三维模型的重建过程中,只需要对第二三维点云中的对应点作内存操作,将第二三维点云中的对应点移动至第一三维点云中去。
由上文描述可以知道,第二三维点云中的对应点的数量已经远远小于该第二三维点云中的点的数量,相比于对整个第二三维点云的移动操作来说,对对应点的移动操作所带来的内存开销大大减小,有利于提高计算效率。
进一步地,为了提高变换矩阵的准确性,以使得用于重建三维模型的、待融合的对应点(即,第一三维点和第二三维点)不仅距离上接近,并且法向量也接近,因此,可以通过循环迭代的方式确定目标变换矩阵。
具体地,所述确定目标变换矩阵,包括:
在[1,N]内对i遍历取值,以循环执行以下操作,并将确定出的用于第N+1次操作的变换矩阵确定为目标变换矩阵:
根据第i次确定的变换矩阵,对该第一射影变换函数进行第i次坐标系变换,得到经该第i次坐标系变换后的第三射影变换函数;
根据经该第i次坐标系变换得到的第三射影变换函数,对该第二三维点云中的每个三维点进行第i次射影变换,得到经第i次射影变换后的第三索引图;
从该第一索引图和该第i次射影变换后的第三索引图中确定具有相同二维坐标的至少一个目标点,并确定每个目标点所指示的该第一三维点云中的第一三维点和该第二三维点云中的第三三维点;
确定该至少一个目标点所指示的第一三维点和第三三维点的距离加权值;
根据该距离加权值,确定用于第i+1次操作的变换矩阵;
其中,N为预先设定的循环操作次数,为大于1的自然数。
也就是说,通过预设初始的变换矩阵,经多次循环操作,根据每一次所确定的变换矩阵,确定第一三维点云和第二三维点云中的对应点的距离加权值,在根据该距离加权值,对本次操作使用的变换矩阵进行修正,得到用于下一次操作的变换矩阵。
其中,第三索引图包括多个坐标点,该第三索引图中的多个坐标点与第二三维点云中的多个三维点一一对应,每个坐标点用于指示所对应的三维点的索引。
可选地,从该第一索引图和该第三索引图中确定的该至少一个目标点中任意一个目标点满足以下至少一个条件:
条件一:所指示的第一三维点和第二三维点的距离小于或等于第一预设门限,即,
条件二:所指示的第一三维点的曲率和第二三维点的曲率均小于或等于第二预设门限,即,
条件三:所指示的第一三维点与第二三维点的曲率比值大于或等于第三预设门限,且小于或等于第四预设门限,该第三预设门限小于该第四预设门限,即,
条件四:所指示的第一三维点与邻域三维点所构成的拟合平面的法向量与所指示的第二三维点与邻域三维点所构成的拟合平面的法向量的夹角小于或等于第五预设门限,即,
因此,通过上述条件的限制,可以进一步减少对应点的数量,使得循环操作过程中当前三维点云和参考三维点云中的对应点的数量减小,即减少了计算量,节省内存开销。
其中,为了与由目标变换矩阵确定的第二索引图、第二三维点区分,将循环操作中与第二图像对应的索引图和三维点分别称为第三索引图和第三三维点,其中由变换矩阵得到的射影变换函数记作第三射影变换函数。可以理解,第二索引图和第三索引图都是由第二图像变换得到的,第二三维点、第三三维点都分别是第二索引图、第三索引图中某个坐标点所指示的三维点,由于变换过程中所使用的变换矩阵和射影变换函数不同,所得到的索引图也不同。
在本发明实施例中,为了便于区分,由目标变换矩阵确定的射影变换函数记作第二射影变换函数,根据目标变换矩阵和第二射影变换函数确定的、与第二图像对应的索引图记作第二索引图。而在目标变换矩阵的确定过程中,多次循环操作所得到的与第二图像对应的索引图可以记作第三索引图,可以理解,由于每一次循环所使用的变换矩阵由上一次循环确定,因此,任意两次循环操作所使用的变换矩阵有可能是变化的,第三射影变换函数也随之变化,由变换处理得到的第三索引图在每次循环操作中都可能发生变换,任意两次操作得到的索引图都可能是不同的。
可选地,循环操作的次数N可以根据预先设定的距离加权值的门限值来确定。
为了准确地确定出目标变换矩阵,希望能够通过多次循环操作以使得两个三维点云中的对应点的距离加权值达到最小,将最近一次操作所使用的变换矩阵确定为目标变换矩阵。
即,如公式中所示:
其中,T*表示目标变换矩阵,argmin表示使得函数取值最小时的变量值,表示某个目标点所指示的参考(reference)点云中的三维点,表示同一目标点所指示的当前(current)点云中的三维点,可以理解,同一个目标点在参考点云中对应的三维点和在当前点云中对应的三维点构成一对对应点。Ωij表示信息矩阵,用于指示每对对应点(或者说,每个目标点)在用于计算距离加权值时每对对应点的权重,后文中会详细说明确定信息矩阵的具体过程。
然而,本领域的技术人员可以理解,在实际操作中,若要满足上述公式(1),循环操作的次数可能会很大,造成计算量非常大,计算时间很长,通常的做法可以是给定一个预先设定的距离加权值的门限值(为便于区分和说明,记作预设门限#A),即距离加权值S表示预设门限#A,或者,预先设定循环操作次数的门限值(为便于区分和说明,记作预设门限#B),这样可以在一定程度上可避免多次循环带来的计算时间长、计算效率降低的问题。
换句话说,确定目标变换矩阵,具体包括:
重复执行以下操作,直到满足预设条件时,将最近一次确定的变换矩阵确定为目标变换矩阵:
根据最近一次确定的变换矩阵,对第一射影变换函数进行坐标系变换,得到第三射影变换函数;
根据第三射影变换函数对该第二三维点云中的每个三维点进行射影变换,得到第三索引图;
从第一索引图和第三索引图中确定具有相同二维坐标的至少一个目标点,并确定每个目标点所指示的第一三维点云中的第一三维点和第二三维点云中的第三三维点;
确定该至少一个目标点所指示的第一三维点和第三三维点的距离加权值;
根据最近一次确定距离加权值,确定用于下一次操作的变换矩阵。
其中,预设条件可以包括:
预设条件一:从第一索引图和第三索引图中确定的至少一个目标点所指示的第一三维点和第二三维点的距离加权值小于预设门限(即,预设门限#A);或者,
预设条件二:循环操作的次数小于预设门限(为便于区分和说明,记作预设门限#B)。
也就是说,若在循环操作多次后首先满足预设条件一,则可以停止循环,将本次操作所使用的变换矩阵确定为目标变换矩阵;若在循环操作的次数超出预设门限#B时仍未满足预设条件一,则也可以停止循环,将本次操作确定的用于下一次循环操作的变换矩阵确定为目标变换矩阵。
可选地,所述确定该至少一个目标点所指示的第一三维点和第三三维点的距离加权值,包括:
根据每个目标点所指示的第一三维点的邻域三维点,拟合该第一三维点在该第一坐标系中的拟合平面,并确定该拟合平面的法向量;
该第一三维点与邻域三维点的距离,以及该拟合平面的法向量,确定信息矩阵,该信息矩阵定义了该至少一个目标点在用于计算该距离加权值时每个目标点的权重;
根据每个目标点所指示的第一三维点的三维坐标和第三三维点的三维坐标、该目标变换矩阵,以及该信息矩阵,确定该至少一个目标点所指示的第一三维点和第三三维点的距离加权值。
也就是说,在确定了第一三维点云和第二三维点云中的至少一对对应点之后,可以根据信息矩阵计算该至少一对对应点的距离加权值。其后,根据计算得到的本次循环操作的距离加权值,确定用于下一次循环操作的变换矩阵。
(H+λI)·ΔT=b (2)
其中,ΔT=(ΔtxΔtyΔtzΔqxΔqyΔqz)T,Δt是平移向量,Δq是旋转矩阵R的归一化四元数的虚部,是近似的海森矩阵,是残差,表示当前三维点云中的点pj与参考三维点云中的点pi的距离,表示信息矩阵,其中,表示该三维点的六维向量,该六维向量考虑到该三维点的三维坐标以及法向量分别对应的六维向量,变换矩阵为一个六维向量,其中,R表示一个3×3的旋转矩阵,t表示一个3×1的平移向量,故该变换矩阵为一个6×7的矩阵,表示当前三维点云的三维点信息矩阵,表示当前三维点云的法向量信息矩阵。
从公式(2)可以确定ΔT,通过ΔT迭代更新当前使用的变换矩阵:
即,通过第i次循环操作确定的距离加权值,确定出ΔT,进而确定用于第i+1次循环操作使用的变换矩阵。
再进一步地,与现有技术相比,本发明实施例在计算对应点的距离时还考虑了当前三维点云中各三维点与邻域三维点所拟合的平面的法向量。当某个三维点与邻域三维点所拟合的平面较好时,所对应的法向量比较稳定,此时可以给该三维点较高的权值,反之。因为考虑了对应点距离以及法向量的影响,可以减小三维点所受到的噪声影响,鲁棒性更好。
下面详细说明确定信息矩阵的具体过程。
其中,μi表示Vi的质心,Σi表示协方差矩阵,|Vi|表示该圆球内相邻三维点的数量。
上述μi和Σi可以通过积分图来计算。
需要说明的是,积分图中的任意一点(i,j)的值是指从深度图的左上角与当前点(i,j)所围成的矩形区域内所有像素点深度值之和。在本发明实施例中,积分图可以用一个二元组(Pij,Sij)来表示,其中,
其中,pkl表示深度图中(k,l)对应的三维空间点的坐标。
也就是说,深度图中的每个点可以通过上述二元组来表征,每个点(i,j)对应一组二元组,每个二元组包括两个数值(Pij,Sij),即,JD(i,j)→(Pij,Sij)。
通过对深度图的一次性遍历,可以构建每个三维点的邻域矩形区域。通过下式:
S(JD,m,n,r)=JD(m+r,n+r)-JD(m-r-1,n+r)-JD(m+r,n-r-1)+JD(m-r-1,n-r-1)
可以得到以(m-r-1,n-r-1)为左上角、2r为边长的矩形区域。图2是积分图的示意图。具体地,图2示出了通过上述计算得到的矩形区域的积分图,由图可以看到,JD(m+r,n+r)表示以(0,0)、(m+r,n+r)为顶点的矩形区域的积分图,JD(m-r-1,n+r)表示以(0,0)、(m-r-1,n+r)为顶点的矩形区域的积分图,JD(m+r,n-r-1)表示以(0,0)、(m+r,n-r-1)为顶点的矩形区域的积分图,JD(m-r-1,n-r-1)表示以(0,0)、(m-r-1,n-r-1)为顶点的矩形区域的积分图。因此,S(JD,m,n,r)表示的矩形区域的顶点坐标分别(m-r-1,n-r-1)、(m+r,n-r-1)、(m+r,n+r)、(m-r-1,n+r),其积分图对应于一个二元组。通过上文中(3)、(4)、(5)和(6)的公式可以看到,计算出二元组(Pij,Sij),便可以计算μi和Σi。
在计算出协方差矩阵Σi之后,可以进行特征值分解如下:
其中,R为特征向量,λ1、λ2、λ3分别为特征值,且λ1<λ2<λ3。
用曲率σi=λ1/(λ1+λ2+λ3),用于衡量该邻域三维点集合能否使用一个平面进行拟合。其中,每个特征值λ对应一个特征向量n。其中,曲率σi的值越小,说明该邻域三维点集合所拟合的平面越好,对应的法向量ni越稳定,因此在用于计算距离加权值,可以给该点较高的权值。
因此,可以根据σi的值,按照下式分别计算协方差矩阵Σi:
在σi<σT的情况下,ε1=0.001;否则,ε1=0.1,其中,σT为预设的门限值。
通过上述计算,每个三维点pi都包含一个属性向量(μi,Σi,σi,ni),同时针对三维坐标点和法向量,可以分别构造信息矩阵如下:
在σi<σT的情况下,ε1=0.001;否则,ε1=0.1。
其中,与三维坐标对应的信息矩阵和与法向量对应的信息矩阵可以为相同的两个矩阵。然而,应理解,对和的定义、对ε1的取值,以及对σT的取值仅为示例性说明,而不应对本发明实施例构成任何限定。但是可以理解的是,本发明实施例对于信息矩阵的定义不仅考虑到三维点之间的距离,同时考虑到法向量的影响,这样可以减小三维点所受到的噪声影响,鲁棒性更好。
通过上文描述求得了信息矩阵,便可以进行距离加权值的计算,进而确定出用于下一次循环的变换矩阵。在根据上文中所描述的循环截止的预设条件,便可以得到目标变换矩阵。
在得到目标变换矩阵之后,可以根据目标变换矩阵按照上文中描述的从第一索引图和第三索引图中确定至少一个目标点,进而确定第一三维点云和第二三维点云的至少一对对应点的方法,从第一索引图和第二索引图中确定至少一个目标点,进而确定第一三维点云和第二三维点云的至少一对对应点。
具体地,根据目标变换矩阵,对第一射影变换函数进行变换得到第二射影变换函数,然后根据第二射影变换函数对第二三维点云进行射影变换,得到第一坐标系中的第二索引图。从第一索引图和第二索引图中确定至少一个目标点,该至少一个目标点指示第一三维点云和第二三维点云中的至少一对对应点,随后对该至少一对对应点进行融合处理,便可以得到三维模型中的至少一个三维点,融合处理得到的三维模型也就是第一图像和第二图像融合后得到的三维模型。
可选地,S160具体包括:
对所述至少一个目标点所指示的至少一对对应点进行约点处理;
对经所述约点处理之后的至少一对对应点进行融合处理,得到三维模型中的至少一个三维点。
具体地,可以采用现有技术中的图像处理方法(例如,体元栅格(voxel grid)法)将转移到第一坐标系中的至少一个第二三维点和原第一坐标系中的至少一个第一三维点进行约点处理。在使用voxel grid法处理时,首先可以将空间中的三维点用voxel进行划分,落在每一个体元(voxel)中的多个三维点,选取里相机距离最近的点,而将其他三维点去除。去除了冗余点之后的对应点的数量得以减少,将约点处理之后的对应点进行融合处理,便可以得到三维模型中。因此,通过上述约点处理,可以降低该空间中的三维点的冗余度,有利于降低内存消耗,提高后续图像的处理速度。
应理解,上述列举的voxel grid法仅为图像处理的一种可能的实现方式,但不应对本发明实施例构成任何限定,其他用于消除冗余点的方法也可以用于本发明实施例,以境地空间三维点的冗余度,从而降低内存消耗。
可选地,在S160之后,该方法100还包括:
将融合处理得到的该三维模型中的至少一个三维点确定为用于下一帧三维重建的参考三维点云。
具体地,在对第一三维点云和第二三维点云进行融合处理后得到的至少一个三维点构成了三维模型的一部分,该至少一个三维点可以用于与下一帧图像所对应的三维点云(例如,第三三维点云)进行融合处理。在此情况下,在S160中得到的至少一个三维点构成了用于下一帧三维重建的参考三维点云,而该第三三维点云成为了当前三维点云。
对参考三维点云和当前三维点云进行对应点融合的方法可以参考上述S110~S160的具体过程,换句话说,三维重建的过程可以理解为对参考三维点云和当前三维点云进行对应点融合的循环操作,最近一次的融合处理后得到的三维点云可以作为用于下一次融合处理的参考三维点云,由此,实现了实时三维重建的目的。
可选地,该方法100还包括:
在该终端设备的移动轨迹满足以下至少一个条件时,清空内存中的参考三维点云:
该终端设备的位移大于第七预设门限;或者
该终端设备的旋转角度大于第八预设门限。
为了进一步减小三维点云的空间占用量,可以在连续拍摄到的两帧图像无对应点的时候,将两帧图像中的上一帧图像从内存中清除。终端设备可以通过位移或者旋转角度等具体的数值来确定连续拍摄到的两针图像无对应点。在终端设备的位移大于第七预设门限或者旋转角度大于第八预设门限的情况下,确定两帧图像无对应点,直接将两帧图像中的上一帧图像从内存中清除。
因此,本发明实施例可以通过索引图来确定两个三维点云中的对应点,进而进行三维点融合,可以大大减小内存操作,提高计算效率;并且,在确定目标变变换矩阵时,根据三维点的加权距离值来确定,兼顾了三维点距离和法向量的影响,使得三维点受到噪声的影响较小,同时,通过积分图来确定法向量,快速简单,可以进一步提高计算效率;再一方面,通过有效地清除内存中不需要的三维点云,减小了对内存空间的占用,进一步有利于提高计算效率。
图3是根据本发明实施例的三维重建的装置300的示意性框图。如图3所示,该装置300包括:获取单元310、射影变换单元320、确定单元330和融合单元340。可选地,该装置300还包括:拍摄单元,该拍摄单元用于拍摄RGBD照片。可选地,该拍摄单元可以配置于该装置300中,或者通过数据线等连接线外部连接在该装置300上。
具体地,该装置300可对应于根据本发明实施例的三维重建的方法400中的终端设备,该装置30可以包括用于执行图1中三维重建的方法100的终端设备执行的方法的单元。并且,该装置30中的各单元和上述其他操作和/或功能分别为了实现图1中数据传输的方法100的相应流程,为了简洁,在此不再赘述。
图4是根据本发明实施例的三维重建的设备400的示意性框图。如图4所示,该设备400包括:处理器410和存储器420。其中,该处理器410和存储器420之间通过内部连接通路互相通信,传递控制和/或数据信号,该存储器420用于存储计算机程序,该处理器410用于从该存储器420中调用并运行该计算机程序。其中,存储器420可以配置于处理器410中,也可以独立于处理器410。
可选地,该设备400还包括收发器430,该收发器420可用于从外部连接的相机接收RGBD照片,并通过内部连接通路将照片发送给存储器420,以便于处理器410从存储器420中获取照片进行三维重建。
可选地,该设备400还包括至少一个摄像头440,该摄像头440能够拍摄RGBD照片,并通过内部连接通路将照片发送给存储器420,以便于处理器410从存储器420中获取照片进行三维重建。
具体地,该设备400可对应于根据本发明实施例的三维重建的方法100中的终端设备,该设备400可以包括用于执行图1中方法100的终端设备执行的方法的单元。并且,该设备400中的各单元和上述其他操作和/或功能分别为了实现图1中方法100的相应流程,为了简洁,在此不再赘述。
应理解,本发明实施例中,该处理器可以为中央处理单元(central processingunit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
还应理解,本发明实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random accessmemory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (20)
1.一种三维重建的方法,其特征在于,包括:
获取与第一图像对应的第一三维点云和与第二图像对应的第二三维点云,所述第一图像成像于第一坐标系中,所述第二图像成像于第二坐标系中,所述第一图像和所述第二图像为终端设备拍摄到的两幅图像,且所述第一图像和所述第二图像具有至少一对对应点;
对所述第一三维点云进行第一射影变换,得到所述第一坐标系中的第一索引图,所述第一索引图中的每个坐标点对应于所述第一三维点云中的一个三维点,每个坐标点用于指示所对应的三维点在所述第一三维点云中的索引;
对所述第二三维点云进行第二射影变换,得到所述第一坐标系中的第二索引图,所述第二索引图中的每个坐标点对应于所述第二三维点云中的一个三维点,每个坐标点用于指示所对应的三维点在所述第二三维点云中的索引;
从所述第一索引图和所述第二索引图中确定具有相同二维坐标的至少一个目标点,并确定每个目标点所指示的所述第一三维点云中的第一三维点和所述第二三维点云中的第二三维点;
对所述至少一个目标点所指示的第一三维点和第二三维点进行融合处理,得到三维模型中的至少一个三维点。
2.根据权利要求1所述的方法,其特征在于,所述对所述第一三维点云进行第一射影变换,得到所述第一坐标系中的第一索引图,包括:
根据第一射影变换函数对所述第一三维点云中的每个三维点进行射影变换,得到所述第一坐标系中的第一索引图;
所述对所述第二三维点云进行第二射影变换,得到所述第一坐标系中的第二索引图,包括:
确定目标变换矩阵,所述目标变换矩阵用于将第二坐标系中的图像转换为第一坐标系中的图像;
根据所述目标变换矩阵,对所述第一射影变换函数进行坐标系变换,得到第二射影变换函数;
根据所述第二射影变换函数对所述第二三维点云中的每个三维点进行射影变换,得到所述第一坐标系中的第二索引图。
3.根据权利要求2所述的方法,其特征在于,所述确定目标变换矩阵,包括:
在[1,N]内对i遍历取值,以循环执行以下操作,并将确定的用于第N+1次操作的变换矩阵确定为所述目标变换矩阵:
根据第i次确定的变换矩阵,对所述第一射影变换函数进行第i次坐标系变换,得到经所述第i次坐标系变换后的第三射影变换函数;
根据经所述第i次坐标系变换得到的第三射影变换函数,对所述第二三维点云中的每个三维点进行第i次射影变换,得到经所述第i次射影变换后的第三索引图;
从所述第一索引图和所述第i次射影变换后的第三索引图中确定具有相同二维坐标的至少一个目标点,并确定每个目标点所指示的所述第一三维点云中的第一三维点和所述第二三维点云中的第三三维点;
确定所述至少一个目标点所指示的第一三维点和第三三维点的距离加权值;
根据所述距离加权值,确定用于第i+1次操作的变换矩阵;
其中,N为预先设定的循环操作次数,N>1,i、N均为自然数。
4.根据权利要求3所述的方法,其特征在于,在N次循环操作的第i次循环操作中,从所述第一索引图和所述第三索引图中确定的所述至少一个目标点中任意一个目标点满足以下至少一个条件:
所指示的第一三维点和第三三维点的距离小于或等于第一预设门限;
所指示的第一三维点的曲率和第三三维点的曲率均小于或等于第二预设门限;
所指示的第一三维点与第三三维点的曲率比值大于或等于第三预设门限,且小于或等于第四预设门限,所述第三预设门限小于所述第四预设门限;
所指示的第一三维点与邻域三维点所构成的拟合平面的法向量与所指示的第三三维点与邻域三维点所构成的拟合平面的法向量的夹角小于或等于第五预设门限。
5.根据权利要求3或4所述的方法,其特征在于,所述确定所述至少一个目标点所指示的第一三维点和第三三维点的距离加权值,包括:
根据每个目标点所指示的第一三维点的邻域三维点,拟合所述第一三维点在所述第一坐标系中的拟合平面,并确定所述拟合平面的法向量;
所述第一三维点与邻域三维点的距离,以及所述拟合平面的法向量,确定信息矩阵,所述信息矩阵定义了所述至少一个目标点在用于计算所述距离加权值时每个目标点的权重;
根据每个目标点所指示的第一三维点的三维坐标和第三三维点的三维坐标、所述目标变换矩阵,以及所述信息矩阵,确定所述至少一个目标点所指示的第一三维点和第三三维点的距离加权值。
6.根据权利要求1所述的方法,其特征在于,所述第一三维点云为当前三维点云,所述第二三维点云为参考三维点云。
7.根据权利要求1所述的方法,其特征在于,所述获取与第一图像对应的第一三维点云和与第二图像对应的第二三维点云,包括:
分别对所述第一图像和所述第二图像进行降噪处理,使得所述第一图像或所述第二图像中的任意一个像素点与相邻的任意一个像素点的深度值之差小于或等于第六预设门限;
获取经所述降噪处理后的所述第一图像对应的第一三维点云和经所述降噪处理后的所述第二图像对应的第二三维点云。
8.根据权利要求1所述的方法,其特征在于,所述对所述至少一个目标点所指示的第一三维点和第二三维点进行融合处理,得到三维模型中的至少一个三维点,包括:
对所述至少一个目标点所指示的第一三维点和第二三维点进行约点处理;
对经所述约点处理之后的第一三维点和第二三维点进行融合处理,得到三维模型中的至少一个三维点。
9.根据权利要求1所述的方法,其特征在于,在所述对所述至少一个对应点所指示的第一三维点和第二三维点进行融合处理,得到三维模型中的至少一个三维点之后,所述方法还包括:
将融合处理得到的所述三维模型中的至少一个三维点确定为用于下一帧三维重建的参考三维点云。
10.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述终端设备的移动轨迹满足以下至少一个条件时,清空内存中的参考三维点云:
所述终端设备的位移大于第七预设门限;或者
所述终端设备的旋转角度大于第八预设门限。
11.一种三维重建的装置,其特征在于,包括:
获取单元,用于获取与第一图像对应的第一三维点云和与第二图像对应的第二三维点云,所述第一图像成像于第一坐标系中,所述第二图像成像于第二坐标系中,所述第一图像和所述第二图像为终端设备拍摄到的两幅图像,且所述第一图像和所述第二图像具有至少一对对应点;
射影变换单元,用于对所述第一三维点云进行第一射影变换,得到所述第一坐标系中的第一索引图,所述第一索引图中的每个坐标点对应于所述第一三维点云中的一个三维点,每个坐标点用于指示所对应的三维点在所述第一三维点云中的索引;还用于对所述第二三维点云进行第二射影变换,得到所述第一坐标系中的第二索引图,所述第二索引图中的每个坐标点对应于所述第二三维点云中的一个三维点,每个坐标点用于指示所对应的三维点在所述第二三维点云中的索引;
确定单元,用于从所述第一索引图和所述第二索引图中确定具有相同二维坐标的至少一个对应点,并确定每个对应点所指示的所述第一三维点云中的第一三维点和所述第二三维点云中的第二三维点;
融合单元,用于对所述至少一个对应点所指示的第一三维点和第二三维点进行融合处理,得到三维模型中的至少一个三维点。
12.根据权利要求11所述的装置,其特征在于,所述射影变换单元具体用于根据第一射影变换函数对所述第一三维点云中的每个三维点进行射影变换,得到所述第一索引图;
所述确定单元还用于确定目标变换矩阵,所述目标变换矩阵用于将第二坐标系中的图像转换为第一坐标系中的图像;
所述射影变换单元具体用于根据所述目标变换矩阵,对所述第一射影变换函数进行坐标系变换,得到第二射影变换函数;并根据所述第二射影变换函数对所述第二三维点云中的每个三维点进行射影变换,得到所述第二索引图。
13.根据权利要求12所述的装置,其特征在于,所述确定单元具体用于:
在[1,N]内对i遍历取值,以循环执行以下操作,并将第N次确定的变换矩阵确定为所述目标变换矩阵:
根据第i次确定的变换矩阵,对所述第一射影变换函数进行第i次坐标系变换,得到经所述第i次坐标系变换后的第三射影变换函数;
根据经所述第i次坐标系变换得到的第三射影变换函数,对所述第二三维点云中的每个三维点进行第i次射影变换,得到经所述第i次射影变换后的第三索引图,所述第三索引图为所述第一坐标系中的索引图;
从所述第一索引图和所述第i次射影变换后的第三索引图中确定具有相同二维坐标的至少一个对应点,并确定每个对应点所指示的所述第一三维点云中的第一三维点的三维坐标和所述第二三维点云中的第三三维点的三维坐标;
确定所述至少一个对应点所指示的第一三维点和第三三维点的距离加权值;
根据所述距离加权值,确定用于第i+1次操作的变换矩阵;
其中,N为预先设定的循环操作次数,N>1,i、N均为自然数。
14.根据权利要求13所述的装置,其特征在于,在N次循环操作的第i次循环操作中,从所述第一索引图和所述第三索引图中确定的所述至少一个目标点中任意一个目标点满足以下至少一个条件:
所指示的第一三维点和第三三维点的距离小于或等于第一预设门限;
所指示的第一三维点的曲率和第三三维点的曲率均小于或等于第二预设门限;
所指示的第一三维点与第三三维点的曲率比值大于或等于第三预设门限,且小于或等于第四预设门限,所述第三预设门限小于所述第四预设门限;
所指示的第一三维点与邻域三维点所构成的拟合平面的法向量与所指示的第三三维点与邻域三维点所构成的拟合平面的法向量的夹角小于或等于第五预设门限。
15.根据权利要求13或14所述的装置,其特征在于,所述确定单元具体用于:
根据每个对应点所指示的第一三维点的邻域三维点,拟合所述第一三维点在所述第一坐标系中的拟合平面,并确定每个对应点的拟合平面的法向量;
所述第一三维点与邻域三维点的距离,以及所述拟合平面的法向量,确定信息矩阵,所述信息矩阵定义了所述至少一个对应点在用于计算距离加权值时每个对应点的权重;
根据每个对应点所指示的第一三维点的三维坐标和第三三维点的三维坐标,以及所述信息矩阵,确定所述至少一个对应点所指示的第一三维点和第三三维点的距离加权值。
16.根据权利要求11所述的装置,其特征在于,所述第一三维点云为当前三维点云,所述第二三维点云为参考三维点云。
17.根据权利要求11所述的装置,其特征在于,所述获取单元具体用于:
分别对所述第一图像和所述第二图像进行降噪处理,使得所述第一图像或所述第二图像中的任意一个像素点与相邻的任意一个像素点的深度值之差小于或等于第六预设门限;
获取经所述降噪处理后的所述第一图像对应的第一三维点云和经所述降噪处理后的所述第二图像对应的第二三维点云。
18.根据权利要求11所述的装置,其特征在于,所述融合单元具体用于:
对所述至少一个目标点所指示的第一三维点和第二三维点进行约点处理;
对经所述约点处理之后的第一三维点和第二三维点进行融合处理,得到三维模型中的至少一个三维点。
19.根据权利要求11所述的装置,其特征在于,所述确定单元还用于将融合处理得到的所述三维模型中的至少一个三维点确定为用于下一帧三维重建的参考三维点云。
20.根据权利要求11所述的装置,其特征在于,所述装置还包括:内存管理单元,用于在所述终端设备的移动轨迹满足以下至少一个条件时,清空内存中的参考三维点云:
所述终端设备的位移大于第七预设门限;或者
所述终端设备的旋转角度大于第八预设门限。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710279146.8A CN107230225B (zh) | 2017-04-25 | 2017-04-25 | 三维重建的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710279146.8A CN107230225B (zh) | 2017-04-25 | 2017-04-25 | 三维重建的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107230225A CN107230225A (zh) | 2017-10-03 |
CN107230225B true CN107230225B (zh) | 2020-06-09 |
Family
ID=59934035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710279146.8A Active CN107230225B (zh) | 2017-04-25 | 2017-04-25 | 三维重建的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107230225B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021078065A1 (zh) * | 2019-10-22 | 2021-04-29 | 深圳瀚维智能医疗科技有限公司 | 乳房三维点云重建方法、装置、存储介质及计算机设备 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019084804A1 (zh) * | 2017-10-31 | 2019-05-09 | 深圳市大疆创新科技有限公司 | 一种视觉里程计及其实现方法 |
CN110049323B (zh) | 2018-01-17 | 2021-09-07 | 华为技术有限公司 | 编码方法、解码方法和装置 |
AU2019208552B2 (en) | 2018-01-19 | 2024-02-08 | Interdigital Vc Holdings, Inc. | Processing a point cloud |
CN108564617B (zh) * | 2018-03-22 | 2021-01-29 | 影石创新科技股份有限公司 | 多目相机的三维重建方法、装置、vr相机和全景相机 |
EP3818700A4 (en) * | 2018-07-17 | 2021-05-12 | Huawei Technologies Co., Ltd. | PREDICTION TYPE SIGNALING AND TEMPORAL SIGNALING IN POINT CLOUD CODING (PCC) |
CN112530024B (zh) * | 2018-10-15 | 2024-09-17 | 华为技术有限公司 | 用于虚拟场景的数据处理方法以及设备 |
CN109685911B (zh) * | 2018-12-13 | 2023-10-24 | 谷东科技有限公司 | 一种可实现虚拟试衣的ar眼镜及其实现方法 |
US10346998B1 (en) * | 2019-02-25 | 2019-07-09 | Nurulize, Inc. | Method of merging point clouds that identifies and retains preferred points |
CN111815683B (zh) * | 2019-04-12 | 2024-05-17 | 北京京东乾石科技有限公司 | 目标定位方法及装置、电子设备和计算机可读介质 |
CN111866484B (zh) * | 2019-04-30 | 2023-06-20 | 华为技术有限公司 | 点云编码方法、点云解码方法、装置及存储介质 |
CN110956066B (zh) * | 2019-05-11 | 2022-06-14 | 魔门塔(苏州)科技有限公司 | 一种人脸部位测距方法、装置及车载终端 |
CN112052345B (zh) * | 2019-06-06 | 2023-08-25 | 北京合众鼎新信息技术有限公司 | 一种数据存储方法、数据处理方法及装置 |
CN111507982B (zh) * | 2019-06-28 | 2022-04-26 | 浙江大学 | 一种基于深度学习的点云语义分割方法 |
CN112106112A (zh) * | 2019-09-16 | 2020-12-18 | 深圳市大疆创新科技有限公司 | 一种点云融合方法、设备、系统及存储介质 |
CN110706332B (zh) * | 2019-09-25 | 2022-05-17 | 北京计算机技术及应用研究所 | 一种基于噪声点云的场景重建方法 |
CN111199579B (zh) | 2020-01-02 | 2023-01-24 | 腾讯科技(深圳)有限公司 | 一种目标物的三维模型构建方法、装置、设备及介质 |
CN112767233B (zh) * | 2021-01-07 | 2023-02-03 | 中电云脑(天津)科技有限公司 | 基于Dicom3d播放器的病灶三维成像方法、系统 |
CN113362446B (zh) * | 2021-05-25 | 2023-04-07 | 上海奥视达智能科技有限公司 | 基于点云数据重建对象的方法及装置 |
CN113506211B (zh) * | 2021-09-10 | 2022-01-07 | 深圳市信润富联数字科技有限公司 | 轮毂肋窗的打磨方法、装置、终端设备以及存储介质 |
CN116704125B (zh) * | 2023-06-02 | 2024-05-17 | 深圳市宗匠科技有限公司 | 一种基于三维点云的映射方法、装置、芯片及模组设备 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101226638B (zh) * | 2007-01-18 | 2010-05-19 | 中国科学院自动化研究所 | 一种对多相机系统的标定方法及装置 |
CN101706957B (zh) * | 2009-10-30 | 2012-06-06 | 无锡景象数字技术有限公司 | 一种双目立体视觉装置的自标定方法 |
CN101877143B (zh) * | 2009-12-09 | 2012-07-04 | 中国科学院自动化研究所 | 一种二维图像组的三维场景重建方法 |
US9462263B2 (en) * | 2011-11-07 | 2016-10-04 | Intel Corporation | Calibrating a one-dimensional coded light 3D acquisition system |
CN103745498B (zh) * | 2014-01-16 | 2017-01-04 | 中国科学院自动化研究所 | 一种基于图像的快速定位方法 |
CN106204731A (zh) * | 2016-07-18 | 2016-12-07 | 华南理工大学 | 一种基于双目立体视觉系统的多视角三维重建方法 |
-
2017
- 2017-04-25 CN CN201710279146.8A patent/CN107230225B/zh active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021078065A1 (zh) * | 2019-10-22 | 2021-04-29 | 深圳瀚维智能医疗科技有限公司 | 乳房三维点云重建方法、装置、存储介质及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN107230225A (zh) | 2017-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107230225B (zh) | 三维重建的方法和装置 | |
CN107705333B (zh) | 基于双目相机的空间定位方法及装置 | |
US11010924B2 (en) | Method and device for determining external parameter of stereoscopic camera | |
US10872432B2 (en) | Disparity estimation device, disparity estimation method, and program | |
US10311595B2 (en) | Image processing device and its control method, imaging apparatus, and storage medium | |
CN110135455A (zh) | 影像匹配方法、装置及计算机可读存储介质 | |
WO2019102442A1 (en) | Systems and methods for 3d facial modeling | |
WO2015135323A1 (zh) | 一种摄像机跟踪方法及装置 | |
CN109523581A (zh) | 一种三维点云对齐的方法和装置 | |
WO2021052283A1 (zh) | 处理三维点云数据的方法和计算设备 | |
CN109640066B (zh) | 高精度稠密深度图像的生成方法和装置 | |
CN113689578B (zh) | 一种人体数据集生成方法及装置 | |
JP7116262B2 (ja) | 画像深度推定方法および装置、電子機器、ならびに記憶媒体 | |
CN109740659B (zh) | 一种图像匹配方法及装置、电子设备、存储介质 | |
US9865061B2 (en) | Constructing a 3D structure | |
CN111325828B (zh) | 一种基于三目相机的三维人脸采集方法及装置 | |
US20160232420A1 (en) | Method and apparatus for processing signal data | |
JP6429466B2 (ja) | 画像処理装置およびその制御方法、撮像装置、プログラム | |
CN111582013A (zh) | 一种基于灰度共生矩阵特征船只检索方法及装置 | |
WO2021051382A1 (zh) | 白平衡处理方法和设备、可移动平台、相机 | |
CN117726747A (zh) | 补全弱纹理场景的三维重建方法、装置、存储介质和设备 | |
CN117409149A (zh) | 基于立体约束的光束法平差方程的三维建模方法及系统 | |
US20180330514A1 (en) | Selective 3d registration | |
JP6843552B2 (ja) | 画像処理装置、画像処理方法およびプログラム。 | |
CN116266356A (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 |