CN116245928A - 一种基于双目立体匹配的三维重建方法 - Google Patents
一种基于双目立体匹配的三维重建方法 Download PDFInfo
- Publication number
- CN116245928A CN116245928A CN202310234415.4A CN202310234415A CN116245928A CN 116245928 A CN116245928 A CN 116245928A CN 202310234415 A CN202310234415 A CN 202310234415A CN 116245928 A CN116245928 A CN 116245928A
- Authority
- CN
- China
- Prior art keywords
- image
- value
- parallax
- pixel
- point
- 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 69
- 238000012937 correction Methods 0.000 claims abstract description 15
- 238000013507 mapping Methods 0.000 claims abstract description 7
- 238000004364 calculation method Methods 0.000 claims description 26
- 238000001914 filtration Methods 0.000 claims description 26
- 238000004220 aggregation Methods 0.000 claims description 13
- 230000002776 aggregation Effects 0.000 claims description 13
- 238000005457 optimization Methods 0.000 claims description 12
- 230000004927 fusion Effects 0.000 claims description 10
- 238000007781 pre-processing Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 claims description 9
- 238000009499 grossing Methods 0.000 claims description 8
- 230000011218 segmentation Effects 0.000 claims description 8
- 238000003707 image sharpening Methods 0.000 claims description 5
- 238000012966 insertion method Methods 0.000 claims description 4
- 230000003044 adaptive effect Effects 0.000 claims description 3
- 230000008030 elimination Effects 0.000 claims description 3
- 238000003379 elimination reaction Methods 0.000 claims description 3
- 230000001629 suppression Effects 0.000 claims description 3
- 238000010606 normalization Methods 0.000 claims description 2
- 238000012546 transfer Methods 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 4
- 238000006243 chemical reaction Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 12
- 230000000694 effects Effects 0.000 description 10
- 238000005286 illumination Methods 0.000 description 4
- 238000002474 experimental method Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000010276 construction Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000002224 dissection Methods 0.000 description 1
- 238000003709 image segmentation Methods 0.000 description 1
- 230000036039 immunity Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000000053 physical method Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 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
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
- G06T7/85—Stereo camera calibration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/75—Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/08—Indexing scheme for image data processing or generation, in general involving all processing steps from image acquisition to 3D model generation
-
- 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
-
- 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/30—Subject of image; Context of image processing
- G06T2207/30204—Marker
- G06T2207/30208—Marker matrix
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
- Image Processing (AREA)
Abstract
本发明提供一种基于双目立体匹配的三维重建方法,涉及双目立体视觉技术领域。该方法将双目立体匹配算法、三角剖分算法以及表面纹理贴图相结合,能够实现对不同环境下场景物体的表面重建。通过对双目相机进行立体标定,得到双目相机的内外参数后进行立体校正,随后根据优化的半全局立体匹配算法生成对应场景物体的图像视差图,在得到视差信息后根据三角剖分算法,对物体视差转换的点云信息进行表面的三角化,最后通过纹理贴图技术实现对物体的三维表面重建。本发明能够降低视差图生成过程即半全局立体匹配算法中噪声带来的影响,提高视差信息的准确性,在牺牲较小时间性能的情况下完成物体的三维表面重建任务。
Description
技术领域
本发明涉及双目立体视觉技术领域,尤其涉及一种基于双目立体匹配的三维重建方法。
背景技术
三维重建技术是针对实际生活中存在的三维物体或场景,将其重新在计算机环境下搭建出能够被分析和处理的精准数字模型。该技术生成模型的准确度是保证模型能够在计算机环境中被进一步的处理和交互的基础,尤其是在进行虚拟世界的建立过程中是不可或缺的重要部分。目前虚拟环境中模型的建立基本依赖于建模软件,周期长且人力成本较大。如果能解决基于图像重建精度的问题,基于图像的重建技术会成为推动虚拟环境建立的主要手段。利用视频或图像来进行三维重建是借助计算机生成三维模型方法中的一大分支,该方法主要是指根据三维模型或场景的单视图或者多视图图像,结合拍摄相机的参数信息与对应的算法在计算机中进一步重组得出物体的三维信息。
在测量方面对双目立体视觉的应用也比较广泛,该方法在效率,精度,成本等方面都优于其余方法。当今社会中,元宇宙以及虚拟现实概念的迅速发展离不开虚拟环境的搭建,作为搭建获取三维模型的重要手段,基于双目视觉的三维模型重建算法必须倾注更多的精力。基于双目视觉进行三维重建主要的问题是左右图像的匹配问题,匹配得到的视差图精度直接影响重建模型的结果。对双目视觉的三维重建的算法不断的进行研究并通过改进当前算法在精度方面存在的问题来进一步提高模型的重建效果,能够为未来的工业产品设计制造以及其他产业的应用提供更多新的可能。
发明内容
本发明要解决的技术问题是针对上述现有技术的不足,提供一种基于双目立体匹配的三维重建方法,针对双目视觉中的立体匹配技术与重建相关的三角剖分算法中存在的问题进行解决,然后结合纹理贴图技术,完成不同场景中模型三维表面重建,能够提高立体匹配过程的抗噪性,减少三角剖分算法中非法三角形的生成,从而进一步提高三维重建的精度和效果。
为解决上述技术问题,本发明所采取的技术方案是:
一种基于双目立体匹配的三维重建方法,包括以下步骤:
步骤1:通过双目相机采集程序对左右摄像头拍摄标定板不同角度的图片,对左右图像分割后通过Matlab中基于张正友标定法的标定工具箱完成双目相机的立体标定;
步骤2:对已经标定好的双目相机,进行极线校正,使得左右图像经过校正之后能够实现共面并且行对准;
步骤3:利用标定校正完成的双目相机进行实际场景的图片拍摄,并针对图像拍摄质量进行不同的图像预处理;
步骤4:对处理后的图像进行立体校正,随后选择半全局立体匹配算法对图像进行立体匹配获取图像的视差信息,通过左右相机的视差图生成得到物体中各点的实际视差值,并根据视差值计算出对应点的三维空间坐标,得到对应场景的点云数据;
步骤5:经过分割和滤波得到优化后的点云数据,然后运用三角剖分算法对由视差图得到的点云信息进行三角表面化;
步骤6:对表面化的结果进行纹理贴图,还原待重建物体的纹理信息,得到重建结果。
进一步地,所述步骤3中图像预处理包括以下步骤:
步骤3-1:灰度化;
针对室内场景模型数据,选用OpenCV自带的灰度化方法进行图像灰度化;对于室外场景,选择平均值法进行图像灰度化,对应像素点的灰度值直接用RGB三个通道的值平均来表示;
步骤3-2:滤波;
选择3*3卷积核作为室外场景模型均值滤波阶段的模板对灰度化图像进行滤波操作;选择5*5卷积核作为室内场景模型中值滤波阶段的模板对灰度化图像进行滤波操作;
步骤3-3:图像锐化;
为了弥补经过中值和均值滤波后造成的图像边界和轮廓变得模糊的影响,需要利用图像锐化使边界变得清晰;选择Log算子进行锐化操作,先采用高斯滤波器对图像进行锐化处理,然后对滤波结果进行拉普拉斯运算;将经过边缘处理得到的图像信息应用到初始图像中,使得原图像的边缘信息得到增强;
步骤3-4:自适应直方图均衡化;
自适应直方图均衡化通过计算图像的局部直方图,重新分配亮度来改变图像的对比度;针对实际数据集中的场景调整过亮或过暗的区域,用来增强局部细节。
进一步地,所述步骤4中半全局立体匹配算法的具体流程如下:
步骤4-1:使用多路邻域最小误差灰度均值算法来进行Census代价计算;
步骤4-2:将AD代价和改进后的Census算法进行融合,进行匹配代价的计算;
步骤4-3:进行代价聚合,建立相邻像素间的联系;
步骤4-4:进行视差计算和视差优化;
步骤4-5:将视差图借助深度图中转,转换为点云数据。
进一步地,步骤4-1在进行Census代价计算时包括如下步骤:
步骤4-1-1:以中心点灰度值为起点,分别在选取的Census区域内从8条路径向外发散,路径编号用0-7表示;
步骤4-1-2:对区域内各路径下的像素点与中心点像素灰度值的误差平方和进行计算,从小到大排序后选取误差平方和最小四路径,并取该对应路径下各像素灰度均值来代替原中心点的灰度值;
步骤4-1-3:获取中心点像素的Census值,将匹配像素点邻域内像素灰度值与中心像素点的比较结果转换为01比特串,如果邻域当前像素点的灰度值大于中心点像素灰度值,则将该点记为1,反之将该点的值记为0;假设选取的中心点像素邻域窗口大小为n*m,则最后的比较结果会得到一个不含中心点的(n*m-1)的比特串,不含中心点,该比特串代表当前中心点的Census值;
步骤4-1-4:将对应点间的Census值进行汉明距离的求解,得到的值表示为该点对应的Census代价值。
进一步地,步骤4-2中在进行两种代价融合计算时,对两种代价结果进行归一化处理,归一化之后结果相加,得到的代价范围是[0,2];
融合代价的计算公式如式(1)所示;
C(p,d)=ρ(Ccensus(p,d),λcnesus)+ρ(CAD(p,d),λAD) (1)
进一步地,步骤4-3在代价聚合部分的能量函数如式(2)所示;
上式中第一项表示数据项,指的是当视差图为d时所有像素点的匹配代价的和;Np表示像素p的周围领域内像素;后两项为平滑项,分别为像素p的周围邻域内其余像素点在视差连续区域(|Dp-Dq|=1)与非连续区域(|Dp-Dq|>1)对应的惩罚项,惩罚系数P1较小,P2较大,并且P2需要根据相邻像素亮度差进行调整;T[]表示满足括号内条件的邻域像素点;
通过动态规划的方法对每个路径方向上的能量值进行求解,求解如式(3)所示:
其中,第一项表示像素点p在视差值为d时候的初始匹配代价值;第二项和第三项为平滑项;第二项平滑项的惩罚代价包括路径上的视差为d的不做惩罚,连续区域内的做P1惩罚,以及所处不连续区域的做P2惩罚,取三者中的最小代价值作为第二项的惩罚项;第三项平滑项是通过限制保证新路径代价值Lr不超过一定的上限;
Lr(p-r,d)为前一个像素点p-r的视差取值为d时的最小的代价值;
Lr(p-r,d-1)为前一个像素点p-r的视差取值为d-1时的最小的代价值;
Lr(p-r,d+1)为前一个像素点p-r的视差取值为d+1时的最小的代价值;
在求得各单路径的路径代价后,选择合适的多路径进行代价值累加,如式(4)所示;
像素点p的最终视差值是对每个路径累加的代价最少的视差值;对图像中的所有像素点进行运算后,得到整个图像的视差值。
进一步地,步骤4-4中,视差计算阶段采用赢家通吃算法,针对单个像素,选取该像素聚合后的最小代价值对应的视差作为该点的最优视差;视差优化阶段选用错误匹配剔除和噪声抑制的方法进行优化。
进一步地,步骤4-5中视差图像依据式(5)转换成的深度图像,图像中的深度信息经过坐标运算得到对应的点云数据;
其中,D为深度,d为视差,B为基线的长度,f为焦距,X0l、X0r分别表示左、右视图中主点的列坐标。
进一步地,步骤5中所述三角剖分算法采用的是基于逐点插入法的Lawson算法做出的改进算法,基于Lawson算法做出的改进后的算法步骤包括:
步骤5-1:建立一个包含点集中全部数据点的大三角形;
步骤5-2:向其中插入一点并将该点与三角形的三个顶点相连,形成新的三个三角形;
步骤5-3:对新生成的三角形分别进行空外接圆检测,同时运用LOP进行局部优化;
步骤5-4:将点集中的点依次进行插入,重复步骤5-2和步骤5-3,直到所有数据点都插入完毕;
步骤5-5:删除初始构建的大三角形;
步骤5-6:在对Lawson算法的应用过程中,通过限制剖分网络三角形边的最大长度,对三角网中形成的非法无意义的三角形进行移除,对剖分结果进一步优化。
采用上述技术方案所产生的有益效果在于:本发明提供的基于双目立体匹配的三维重建方法,在图像采集阶段,针对不同场景下的模型,室内和室外不同的光照条件和拍摄得到的图像信息,采用不同的预处理手段;在双目立体匹配阶段,放弃传统的基于互信息的半全局立体匹配算法,通过改进的Census算法和AD代价相融合的方式来提高半全局算法抗干扰能力弱且在重复纹理区域表现较差的问题,其次在经过立体匹配得到视差信息之后,在重建的三角剖分阶段,为了减少对点云数据进行三角剖分结果中容易产生非法三角形过多的问题,在剖分过程中,加入限制条件,优化了剖分结果。最后经过对三步优化算法的结果进行材质贴图操作,有效还原了待重建的物体细节。经过实验表明,本发明能够在优化重建各模块的情况下,对利用双目进行三维重建方法获得的模型整体重建结果有一定程度的提升。
附图说明
图1为本发明具体实施方式提供的基于双目立体匹配的三维重建方法的流程图;
图2为本发明具体实施方式提供的用于三维表面重建搭建的图像采集平台实物图;
图3为本发明具体实施方式提供的棋盘格标定板实物图;
图4为本发明具体实施方式提供的双目相机采集的不同角度标定板实物图;其中,图(4a)为左侧相机拍摄得到的标定板图像,图(4b)为右侧相机拍摄得到的标定板图像;
图5为本发明具体实施方式提供的相机左右摄像头对同一个标定板的图像角点搜索图;
图6为本发明具体实施方式提供的双目相机与标定板相对位置示意图;其中,图(6a)为位置关系侧面角度示意图,图(6b)为相对位置俯视图;
图7为本发明具体实施方式提供的双目标定重投影误差直方图;
图8为本发明具体实施方式提供的双目校正后的左右图像;
图9为本发明具体实施方式提供的各算子作用下的图像锐化结果图;其中,图(9a)为原图像,图(9b)为Roberts锐化结果图,图(9c)为Prewitt锐化结果图,图(9d)为Sobel锐化结果图,图(9e)为Laplacian锐化结果图,图(9f)为Canny锐化结果图,图(9g)为LOG锐化的结果图;
图10为本发明具体实施方式提供的点云分割滤波后结果图;其中,图(10a)为未进行点云分割结果图,图(10b)为分割无用背景和滤波后结果图;
图11为本发明具体实施方式提供的是否添加限制条件的剖分结果对比图;其中,图(11a)为未添加约束条件的剖分结果图,图(11b)为添加约束条件的剖分结果图;
图12为本发明具体实施方式提供的双目三维重建结果图;其中,图(12a)为室内场景的重建模型片,图(12b)为室外场景的重建模型片。
具体实施方式
下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。
如图1所示,本实施例的一种基于双目立体匹配的三维重建方法包括以下步骤:
步骤1:通过双目相机采集程序对左右摄像头拍摄标定板不同角度的图片,对左右图像分割后通过Matlab中基于张正友标定法的标定工具箱完成双目相机的立体标定。
基于双目摄像头的三维重建的最终目的是通过立体匹配得到视差图后通过三角原理求得物体表面各点距摄像头的相对位置,从而得到物体的三维点云数据,并运用剖分算法进行处理,重建出物体的表面立体信息。但这是在双目相机处于理想情况下得到。而通常双目相机会存在两种不同形式的畸变包括径向畸变和切向畸变,因此在使用双目相机之前需要对双目相机进行立体标定与校正,使得双目相机能够在理想状态下工作。
本实施例的方法以张正友标定法为理论依据,利用MATLAB对双目相机实现离线标定,选用两组参数相同的摄像头,并借助支架搭建双目平行光轴结构,两台相机平行且基线长度固定(物理测量距离约为176mm),分辨率均为640*480,相机俯仰角度可调节,如图2所示。选用有7*10的棋盘格标定板,为避免标定过程中受外界因素的影响导致棋盘格物理变形,将其固定在一个牢固的平面上。每个棋盘格大小测量为30mm*30mm,如图3所示。
本实施例通过固定双目相机的位置,然后多次调整标定板的角度与距离,由VS2019结合OpenCV编写的图像采集程序进行标定板图像的拍摄。根据标定理论,标定图像过少或者过多都会对标定的结果带来不好的影响,为了使标定结果更准确,本实施例总共拍摄左右图像19组,后续可以对造成误差过大的图像进行剔除。
在得到双目相机拍摄完成的图片后,由于该图片同时包含标定棋盘格的左右图像,需要对采集到的目标左图和右图分别进行截取。截取步骤如下:图像采集程序按帧读取相机画面时,通过按键进行当前图像保存,获取相机画面的宽高,用自定义矩形框进行左右图像分割。自定义截取矩形框坐标从像素坐标系的(0,0)点,即图像的左上角开始,大小为相机画面宽度的一半,高度的全部,将包含左右图像的同一张图像划分为对应的左右图。然后将分割后的图像按规则命名并进行存储到对应的左图与右图文件夹内,如图4所示。
在MATLAB中选择双目相机标定程序,将分割后的左右图像文件夹添加到程序指定位置,由于本实施例标定板的棋盘格物理尺寸为30*30,手动设置标定棋盘格的尺寸为30mm。运行标定程序,选择其中任意一幅图片,可以观察到棋盘格上黑白棋盘格交界的角点均被检测到,且检测到的角点与图像的真实角点重合,如图5所示。在标定时如果出现误差较大,可以去掉部分偏差较大的图片,从而提高标定的效果。标定完成后会得到双目相机的内外参数,相机与多张标定图像的相对位置如图6所示。
标定过程中各图像对应的重投影误差如图7所示,得到标定实验的平均重投影误差为0.11个像素,误差在合理范围内,能够实现后续实验。如果实际标定过程中,出现重投影误差过大的情况,可以将导致误差过大的图像对移除,再重新标定。导致重投影误差过大的原因除硬件设备的影响外,一定程度上是在利用相机进行拍摄时,相机角度与标定物之间的角度过大,通常拍摄角度范围在0~45°效果较好。
通过MATLAB软件里的工具箱标定后会得到双目相机的左右相机内参,以及摄像机的旋转矩阵与平移矩阵,双目相机的参数如表1所示。
表1双目相机的参数
步骤2:对已经标定好的双目相机,进行极线校正,使得左右图像经过校正之后能够实现共面并且行对准。
经过标定获得双目相机的内参与旋转、平移矩阵后,标定完成后,需要利用标定得到的相机参数对图片进行极线校正,这样是为了后续立体匹配过程中减少搜索时间,提高匹配效率。本实施例借助VS2019结合OpenCV编写了图像校正程序,使得左右图像经过校正之后能够实现共面并且行对准。校正图像采用相机标定时使用的棋盘格左图和右图。如图8所示,可以观察到,校正之前图像中对应的匹配点并不符合极线约束条件,校正之后的图像匹配点都位于同一直线上。
步骤3:利用标定校正完成的双目相机进行实际场景的图片拍摄,并针对图像拍摄质量进行不同的图像预处理操作。
在对实际三维场景模型进行重建时需要运用相机标定过程中用到的采集与分割程序,获取场景左右图像后为了获得更好的重建效果,需要进行预处理操作。为了针对不同环境下的模型数据重建,本实施例分别选取室内与室外的模型进行采集并完成重建。在图像预处理阶段,针对不同的数据集,设计不同的预处理流程。
步骤3-1:灰度化:本实施例选择不同的灰度化方法。针对室内的模型数据,光照相对均匀,选用OpenCV自带的灰度化方法进行图像灰度化;对于室外场景,光照差异较大,为了尽可能的平衡亮度信息,选择平均值法进行图像灰度化,对应像素点的灰度值直接用RGB三个通道的值平均来表示。
步骤3-2:滤波手段:选择3*3卷积核作为室外场景模型均值滤波阶段的模板对灰度化图像进行滤波操作;选择5*5卷积核作为室内场景模型中值滤波阶段的模板对灰度化图像进行滤波操作。
步骤3-3:图像锐化:为了弥补经过中值和均值滤波后造成的图像边界和轮廓变得模糊的影响,需要利用图像锐化使边界变得清晰。将经过边缘处理得到的图像信息应用到初始图像中,可以使得原图像的边缘信息得到锐化,本实施例针对场景进行多种锐化效果选择,用来锐化的算子包括Roberts、Prewitt、Sobel、Laplacian、Canny以及LoG算子等。Log算子的特点是先采用高斯滤波器对图像进行锐化处理,然后对滤波结果进行拉普拉斯运算。以室内图像为例,分别采用上述提到的锐化方式进行图像预处理,得到的图像边缘结果如图9所示,可以观察到在多种算子的处理下,Log算子保留了图像边缘信息并且图像的其余信息没有过多的噪声点,方便后续与原图像的叠加。
步骤3-4:直方图均衡化主要是用来进行图像增强,如果图像中包含过亮或者过暗的区域,传统均衡化方法提升的效果有限。自适应直方图均衡化通过计算图像的局部直方图,重新分配亮度来改变图像的对比度。在本实施例中是针对实际数据集中的场景调整过亮或过暗的区域,用来增强局部细节。
步骤4:对处理后的图像进行立体校正,随后选择半全局立体匹配算法SGBM获取图像的视差信息,通过左右相机的视差图生成得到物体中各点的实际视差值,并根据视差值计算出对应点的三维空间坐标,得到对应场景的点云数据。
步骤4-1:针对传统Census的过于依赖中心点像素灰度值的问题,在立体匹配的代价计算阶段,对传统Census方法进行优化处理,使用多路邻域最小误差灰度均值算法来进行Census代价计算,降低噪声的干扰。具体方法如下:
以中心点灰度值为起点,分别在选取的Census区域内从8条路径向外发散,路径编号用0-7表示。对区域内各路径下的像素点与中心点像素灰度值的误差平方和进行计算,从小到大排序后选取误差平方和最小四路径,并取该对应路径下各像素灰度均值来代替原中心点的灰度值。获取中心点像素的Census值,将匹配像素点邻域内像素灰度值与中心像素点的比较结果转换为01比特串,如果邻域当前像素点的灰度值大于中心点像素灰度值,则将该点记为1,反之将该点的值记为0;假设选取的中心点像素邻域窗口大小为n*m,则最后的比较结果会得到一个不含中心点的(n*m-1)的比特串,不含中心点,该比特串代表当前中心点的Census值。将对应点间的Census值进行汉明距离的求解,得到的值表示为该点对应的Census代价值。
步骤4-2:本实施例选择将AD代价和改进后的Census算法进行融合,进行匹配代价的计算。AD代价计算方法能够保留图像的细节与纹理信息,Census又能够弥补单纯使用AD代价受噪声和光照的影响。在代价计算阶段,提高方法在重复纹理区域的表现。
在进行两种代价融合计算的时候,由于两个算法结果的尺度不同,AD代计算结果表示的是亮度差,范围在[0,255],Census计算得到的是对应Census值生成比特串位值不同的个数。所以要对两种代价结果进行归一化处理,归一化之后结果相加,得到的代价范围应该是[0,2]。
融合代价的计算公式如公式(1)所示。
C(p,d)=ρ(Ccensus(p,d),λcnesus)+p(CAD(p,d),λAD) (1)
步骤4-3:在代价计算阶段尽管使用了多种代价融合的计算方法,但是只考虑了局部的相关性,如果直接利用代价计算得到的初始视差生成视差图,并不能够获得良好的匹配效果。因此需要对得到的初始视差值进行聚合,代价聚合实际上是建立相邻像素间的联系,聚合代价值能更精准的表示同名像素间的相关性。
半全局立体匹配(SGBM)算法利用全局算法的优化方法进行视差估计。全局能量函数的定义包括数据项和平滑项:数据项指是视差图对应视差的总体匹配代价,平滑项指的是需要对相邻像素视差不连续的情况进行惩罚,通常是为了借助惩罚项加大能量值。SGBM算法在代价聚合部分的能量函数如式(2)所示。
公式中第一项表示数据项,指的是当视差图为d时所有像素点的匹配代价的和,后两项为平滑项,分别为像素p的周围邻域Np内其余像素点在视差连续区域与非连续区域对应的惩罚项,惩罚系数P1比较小,P2较大,这样可以对实际场景中视差的非连续区域进行较好的保留,并且P2需要根据相邻像素亮度差进行调整。T[]表示满足括号内条件的邻域像素点。
该优化函数的求最优解是一个NP完全问题,而在SGBM中,采用扫描线也叫单方向动态规划法进行对应问题求解,该方法利用多条一维路径聚合的方式来近似的求解二维最优,将像素在视差范围内下的匹配代价进行各路径下一维的聚合,并且将得到的代价值累加之后记为该像素的聚合代价值。
求解像素p沿单条路径r的路径代价,即单路径下的能量值,求解如式(3)所示:
其中,第一项表示像素点p在视差值为d时候的初始匹配代价值;第二项和第三项为平滑项,其中第二项的惩罚代价包含路径上的视差为d的不做惩罚,连续区域内的做P1惩罚,以及所处不连续区域的做P2惩罚,取三者中的最小代价值作为第二项的惩罚项;第三项是通过限制保证新路径代价值Lr不超过一定的上限。
在求得各单路径的路径代价后,选择合适的多路径进行代价值累加。通常路径聚合方式有4路径,8路径,16路径三种聚合方式,路径数越大,聚合的结果越接近二维最优,相应的参与运算路径数越多意味着运算耗时也会变长。在实际场景重建时需要按照重建需求进行路径选择。本实施例出于对重建准确度和运算效率综合考虑,在真实场景数据集中选择采取8路径聚合,如式(4)所示。
像素点p的最终视差值是对每个路径累加的代价最少的视差值;对图像中的所有像素点进行运算后,得到整个图像的视差值。
步骤4-4:视差计算阶段采用赢家通吃算法,针对单个像素,选取该像素聚合后的最小代价值对应的视差作为该点的最优视差。初始视差图生成之后,需要利用各类约束条件对初始视差图进行优化处理。针对视差求解过程中图像由于噪声、遮挡、弱纹理或重复纹理等影响造成的各类错误匹配点,或者对一些视差空洞以及误匹配点进行处理,剔除错误视差,提高匹配精度,本实施例选用错误匹配剔除和噪声抑制的方法进行优化,生成效果较好的优化视差图。
步骤4-5:视差指的是物体在左右图像中的同名点对在左视图的像素列坐标减去对应像素在右视图的列坐标,通常用d表示。而深度D指的是像素在当前视图相机坐标系中Z坐标的值,是空间单位。点云数据指的是三维空间下物体三维点的集合。视差图像依据公式(5)转换成的深度图像,图像中的深度信息经过坐标运算可以得到对应的点云数据。
其中,D为深度,d为视差,B为基线的长度,f为焦距,X0l和X0r分别是左右视图中主点的列坐标。
步骤5:运用三角剖分算法对由视差图得到的点云信息进行三角表面化。
步骤5-1:初始点云中需要对两类数据进行分别处理:一类是场景中的无用信息,例如左右图像不重叠的部分,或者在针对场景模型进行重建的过程中无用的背景信息,针对这一类数据,后续并不需要进行三角剖分及重建,出于性能考虑,可以在点云处理阶段将其与目标区域的点云进行分割。另外一类是噪声点信息,由于重建过程中各类误差的影响,场景模型的关键位置点云数据中会包含一些噪声点需要进行处理,包括离群点、或是异常的突起以及凹陷。如果不对这样的点进行处理,在后续剖分及表面重建的时候会出现导致模型表面出现破面或表面不平滑等问题。针对这一类型的噪声数据可选择的点云处理手段是滤波去噪,对不规则的点云部分进行平滑滤波。本实施例以数据集Adirondack为例,分割前后点云图如图10所示。
步骤5-2:经过分割和滤波得到优化后的点云数据后,可以利用三角剖分算法对三维模型进行表面重建。三角剖分需要将离散的点云数据连接成多个三角形来达到模型面化的目的。
本实施例选取逐点插入法进行三角剖分,逐点插入法中Lawson算法实现简单,步骤如下:
(1)建立一个包含点集中全部数据点的大三角形。
(2)向其中插入一点并将该点与三角形的三个顶点相连,形成新的三个三角形。
(3)对新生成的三角形分别进行空外接圆检测,同时运用LOP进行局部优化。
(4)将点集中的点依次进行插入,重复第(2)步和第(3)步,直到所有数据点都插入完毕。
(5)删除初始构建的大三角形。
运用Lawson算法进行构建三角网的时候,如果点云数据存在内环,形成的三角网络会包含非法的三角形。本文在对Lawson算法的应用过程中,通过限制剖分网络三角形边的最大长度,对三角网中的非法无意义的非法三角形进行移除,对剖分结果有进一步的优化作用。添加约束条件前后的对比如图11所示。
步骤6:对表面化的结果进行纹理贴图,还原待重建物体的纹理信息,得到重建结果。为了更多的展示模型细节,实现模型更好的视觉效果,本方法对三角剖分的结果进行网格数据的可视化,借助PCL开源库中自带的点云数据可视化功能,对处理过后的点云数据的剖分结果进行展示。最终得到的三维重建的结果如图12所示,可以看出对室内和室外场景的内容进行了重建,且重建出的模型局部核心内容较为完整。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明权利要求所限定的范围。
Claims (9)
1.一种基于双目立体匹配的三维重建方法,其特征在于:该方法包括以下步骤:
步骤1:通过双目相机采集程序对左右摄像头拍摄标定板不同角度的图片,对左右图像分割后通过Matlab中基于张正友标定法的标定工具箱完成双目相机的立体标定;
步骤2:对已经标定好的双目相机,进行极线校正,使得左右图像经过校正之后能够实现共面并且行对准;
步骤3:利用标定校正完成的双目相机进行实际场景的图片拍摄,并针对图像拍摄质量进行不同的图像预处理;
步骤4:对处理后的图像进行立体校正,随后选择半全局立体匹配算法对图像进行立体匹配获取图像的视差信息,通过左右相机的视差图生成得到物体中各点的实际视差值,并根据视差值计算出对应点的三维空间坐标,得到对应场景的点云数据;
步骤5:经过分割和滤波得到优化后的点云数据,然后运用三角剖分算法对由视差图得到的点云信息进行三角表面化;
步骤6:对表面化的结果进行纹理贴图,还原待重建物体的纹理信息,得到重建结果。
2.根据权利要求1所述的基于双目立体匹配的三维重建方法,其特征在于:所述步骤3中图像预处理包括以下步骤:
步骤3-1:灰度化;
针对室内场景模型数据,选用OpenCV自带的灰度化方法进行图像灰度化;对于室外场景,选择平均值法进行图像灰度化,对应像素点的灰度值直接用RGB三个通道的值平均来表示;
步骤3-2:滤波;
选择3*3卷积核作为室外场景模型均值滤波阶段的模板对灰度化图像进行滤波操作;选择5*5卷积核作为室内场景模型中值滤波阶段的模板对灰度化图像进行滤波操作;
步骤3-3:图像锐化;
为了弥补经过中值和均值滤波后造成的图像边界和轮廓变得模糊的影响,需要利用图像锐化使边界变得清晰;选择Log算子进行锐化操作,先采用高斯滤波器对图像进行锐化处理,然后对滤波结果进行拉普拉斯运算;将经过边缘处理得到的图像信息应用到初始图像中,使得原图像的边缘信息得到增强;
步骤3-4:自适应直方图均衡化;
自适应直方图均衡化通过计算图像的局部直方图,重新分配亮度来改变图像的对比度;针对实际数据集中的场景调整过亮或过暗的区域,用来增强局部细节。
3.根据权利要求1所述的基于双目立体匹配的三维重建方法,其特征在于:所述步骤4中半全局立体匹配算法的具体流程如下:
步骤4-1:使用多路邻域最小误差灰度均值算法来进行Census代价计算;
步骤4-2:将AD代价和改进后的Census算法进行融合,进行匹配代价的计算;
步骤4-3:进行代价聚合,建立相邻像素间的联系;
步骤4-4:进行视差计算和视差优化;
步骤4-5:将视差图借助深度图中转,转换为点云数据。
4.根据权利要求3所述的基于双目立体匹配的三维重建方法,其特征在于:所述步骤4-1在进行Census代价计算时包括如下步骤:
步骤4-1-1:以中心点灰度值为起点,分别在选取的Census区域内从8条路径向外发散,路径编号用0-7表示;
步骤4-1-2:对区域内各路径下的像素点与中心点像素灰度值的误差平方和进行计算,从小到大排序后选取误差平方和最小四路径,并取该对应路径下各像素灰度均值来代替原中心点的灰度值;
步骤4-1-3:获取中心点像素的Census值,将匹配像素点邻域内像素灰度值与中心像素点的比较结果转换为01比特串,如果邻域当前像素点的灰度值大于中心点像素灰度值,则将该点记为1,反之将该点的值记为0;假设选取的中心点像素邻域窗口大小为n*m,则最后的比较结果会得到一个不含中心点的(n*m-1)的比特串,不含中心点,该比特串代表当前中心点的Census值;
步骤4-1-4:将对应点间的Census值进行汉明距离的求解,得到的值表示为该点对应的Census代价值。
6.根据权利要求3所述的基于双目立体匹配的三维重建方法,其特征在于:所述步骤4-3在代价聚合部分的能量函数如式(2)所示;
上式中第一项表示数据项,指的是当视差图为d时所有像素点的匹配代价的和;Np表示像素p的周围领域内像素;后两项为平滑项,分别为像素p的周围邻域内其余像素点在视差连续区域与非连续区域对应的惩罚项,惩罚系数P1较小,P2较大,并且P2需要根据相邻像素亮度差进行调整;T[]表示满足括号内条件的邻域像素点;
通过动态规划的方法对每个路径方向上的能量值进行求解,求解如式(3)所示:
其中,第一项表示像素点p在视差值为d时候的初始匹配代价值;第二项和第三项为平滑项;第二项平滑项的惩罚代价包括路径上的视差为d的不做惩罚,连续区域内的做P1惩罚,以及所处不连续区域的做P2惩罚,取三者中的最小代价值作为第二项的惩罚项;第三项平滑项是通过限制保证新路径代价值Lr不超过一定的上限;
Lr(p-r,d)为前一个像素点p-r的视差取值为d时的最小的代价值;
Lr(p-r,d-1)为前一个像素点p-r的视差取值为d-1时的最小的代价值;
Lr(p-r,d+1)为前一个像素点p-r的视差取值为d+1时的最小的代价值;
在求得各单路径的路径代价后,选择合适的多路径进行代价值累加,如式(4)所示;
像素点p的最终视差值是对每个路径累加的代价最少的视差值;对图像中的所有像素点进行运算后,得到整个图像的视差值。
7.根据权利要求3所述的基于双目立体匹配的三维重建方法,其特征在于:所述步骤4-4中,视差计算阶段采用赢家通吃算法,针对单个像素,选取该像素聚合后的最小代价值对应的视差作为该点的最优视差;视差优化阶段选用错误匹配剔除和噪声抑制的方法进行优化。
9.根据权利要求1所述的基于双目立体匹配的三维重建方法,其特征在于:所述步骤5中所述三角剖分算法采用的是基于逐点插入法的Lawson算法做出的改进算法,基于Lawson算法做出的改进后的算法步骤包括:
步骤5-1:建立一个包含点集中全部数据点的大三角形;
步骤5-2:向其中插入一点并将该点与三角形的三个顶点相连,形成新的三个三角形;
步骤5-3:对新生成的三角形分别进行空外接圆检测,同时运用LOP进行局部优化;
步骤5-4:将点集中的点依次进行插入,重复步骤5-2和步骤5-3,直到所有数据点都插入完毕;
步骤5-5:删除初始构建的大三角形;
步骤5-6:在对Lawson算法的应用过程中,通过限制剖分网络三角形边的最大长度,对三角网中形成的非法无意义的三角形进行移除,对剖分结果进一步优化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310234415.4A CN116245928A (zh) | 2023-03-13 | 2023-03-13 | 一种基于双目立体匹配的三维重建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310234415.4A CN116245928A (zh) | 2023-03-13 | 2023-03-13 | 一种基于双目立体匹配的三维重建方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116245928A true CN116245928A (zh) | 2023-06-09 |
Family
ID=86625895
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310234415.4A Pending CN116245928A (zh) | 2023-03-13 | 2023-03-13 | 一种基于双目立体匹配的三维重建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116245928A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117315003A (zh) * | 2023-12-01 | 2023-12-29 | 常州微亿智造科技有限公司 | 基于双目光栅投影的三维测量方法、系统、设备及其介质 |
CN118314289A (zh) * | 2024-06-07 | 2024-07-09 | 浙江大学 | 基于双目红外图像的高炉料面三维重建方法及装置 |
-
2023
- 2023-03-13 CN CN202310234415.4A patent/CN116245928A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117315003A (zh) * | 2023-12-01 | 2023-12-29 | 常州微亿智造科技有限公司 | 基于双目光栅投影的三维测量方法、系统、设备及其介质 |
CN118314289A (zh) * | 2024-06-07 | 2024-07-09 | 浙江大学 | 基于双目红外图像的高炉料面三维重建方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110363858B (zh) | 一种三维人脸重建方法及系统 | |
CN106709947B (zh) | 一种基于rgbd相机的三维人体快速建模系统 | |
Wolff et al. | Point cloud noise and outlier removal for image-based 3D reconstruction | |
CN107945267B (zh) | 一种用于人脸三维模型纹理融合的方法和设备 | |
Shen | Accurate multiple view 3d reconstruction using patch-based stereo for large-scale scenes | |
CN112053432B (zh) | 一种基于结构光与偏振的双目视觉三维重建方法 | |
CN108335352B (zh) | 一种面向多视图大规模三维重建场景的纹理映射方法 | |
Furukawa et al. | Accurate camera calibration from multi-view stereo and bundle adjustment | |
JP5442111B2 (ja) | 画像から高速に立体構築を行なう方法 | |
CN116245928A (zh) | 一种基于双目立体匹配的三维重建方法 | |
CN106780590A (zh) | 一种深度图的获取方法及系统 | |
CN113192179B (zh) | 一种基于双目立体视觉的三维重建方法 | |
CN111028295A (zh) | 一种基于编码结构光和双目的3d成像方法 | |
CN107369204B (zh) | 一种从单幅照片恢复出场景基本三维结构的方法 | |
US9147279B1 (en) | Systems and methods for merging textures | |
CN110517348B (zh) | 基于图像前景分割的目标物体三维点云重建方法 | |
JP5561786B2 (ja) | 3次元形状モデル高精度化方法およびプログラム | |
Pacheco et al. | Reconstruction of high resolution 3D objects from incomplete images and 3D information | |
CN116883590A (zh) | 一种三维人脸点云优化方法、介质及系统 | |
CN114612412A (zh) | 三维点云数据的处理方法及其用途、电子设备、存储介质 | |
CN118247429A (zh) | 一种空地协同快速三维建模方法及系统 | |
CN117671159A (zh) | 三维模型的生成方法及装置、设备、存储介质 | |
CN110969650B (zh) | 一种基于中心投影的强度图像与纹理序列间的配准方法 | |
CN116402904A (zh) | 一种基于激光雷达间和单目相机的联合标定方法 | |
CN116596987A (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 |