CN113706596A - 一种基于单目相机进行稠密建图的方法 - Google Patents
一种基于单目相机进行稠密建图的方法 Download PDFInfo
- Publication number
- CN113706596A CN113706596A CN202110970559.7A CN202110970559A CN113706596A CN 113706596 A CN113706596 A CN 113706596A CN 202110970559 A CN202110970559 A CN 202110970559A CN 113706596 A CN113706596 A CN 113706596A
- Authority
- CN
- China
- Prior art keywords
- frame
- depth
- pixel
- pixel block
- reference frame
- 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 35
- 230000008030 elimination Effects 0.000 claims abstract description 10
- 238000003379 elimination reaction Methods 0.000 claims abstract description 10
- 238000013507 mapping Methods 0.000 claims description 9
- 230000003287 optical effect Effects 0.000 description 3
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 101100379080 Emericella variicolor andB gene Proteins 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000035515 penetration 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
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- 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/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20024—Filtering details
Landscapes
- Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Length Measuring Devices By Optical Means (AREA)
Abstract
本发明公开了一种基于单目相机进行稠密建图的方法,包括:将单目相机拍摄下的一段视频,以灰度图的形式读取每一帧图像,对参考帧进行梯度和深度剔除;用极线搜索方法查找当前帧上每个像素块与参考帧上余下像素块对应的位置,本发明用单目相机拍摄的视频,先以第一帧为参考帧,每次通过传感器读取当前相机的位姿,求出参考帧每个像素在当前帧对应的位置,通过三角化求出当前帧像素块与参考帧对应像素块所指向的空间点的深度,再以第二帧为参考帧,重复操作,直到得到单目相机拍摄视频中每一帧上用于稠密建图的像素块的空间位置,从而实现稠密建图,具有成本低、效率高、准确度高等优点。
Description
技术领域
本发明涉及计算机图像信息技术领域,具体涉及一种基于单目相机进行稠密建图的方法。
背景技术
当一个设备在空间要求具有导航和避障等功能时,它就需要用相机建立起稠密或半稠密地图,即获得视频中每个像素对应的空间点坐标。这其中最重要的就是获得点的深度(空间点到相机光心的距离)。目前主流的建图方法采用RGBD相机和双目相机。
采用双目相机进行稠密建图之前,需要对双目相机进行标定和配置,较为复杂。测量范围受基线长度影响。深度计算复杂,在特殊情况下视差图并不会生成。
采用RGBD相机进行稠密建图的原理是通过“结构光”或“飞行时间”来测量深度。RGBD相机发射红外光到物体上,红外光再被物体反射回来。“结构光”原理通过检测反射的红外光结构发生的变化来确定深度,“飞行时间”则是通过检测发送到接收的时间来计算深度,红外光会受到日光的干扰,在户外使用时,稠密地图十分粗糙以致于不能使用,另外,由于RGBD利用时间的特性和红外光穿透能力强的特性,所以不适用于对运动物体和透射材质的测量。
发明内容
本发明的目的是针对现有稠密建图中,RGBD相机易受日光干扰、视场小,双目相机标定复杂、算力消耗大、成本高的缺点,而提供一种基于单目相机进行稠密建图的方法。
为实现上述目的,本发明采用如下技术方案:
一种基于单目相机进行稠密建图的方法,包括:
第一步,将单目相机拍摄下的一段视频,以灰度图的形式读取第一帧图像,先以第一帧为参考帧,初始化深度滤波器的深度均值和深度方差;
第二步,梯度剔除;以灰度图的形式读取第二帧图像,遍历参考帧上的每个像素块,计算每个像素块的灰度梯度,如果某个像素块的梯度的2范数小于设定的阈值,则剔除该像素块;
第三步,深度剔除;遍历参考帧上经梯度剔除余下的其他像素块,读取深度滤波器存储的每个像素块的深度方差值,如果某个像素块的深度方差小于设定的最小方差或大于设定的最大方差,说明该像素块的深度已收敛或发散,则剔除该像素块;
第四步,遍历第二帧图像上的像素块,用极线搜索方法查找每个像素块与所述参考帧上经第二、第三步剔除后余下像素块对应的位置;如果查找到参考帧上某个像素块在当前第二帧对应的位置,则通过三角化方法求出参考帧上该像素块的深度均值和深度方差,并将该深度均值和深度方差存入深度滤波器中,用于更新深度滤波器,对查找到的参考帧与当前第二帧有对应位置的所有像素块重复该步骤,直到每个像素块的深度都收敛;通过传感器得到当前相机在世界坐标系的位姿TWC,通过该位姿TWC的逆乘上参考帧在世界坐标系的位姿TWR,得到参考帧到当前第二帧的位姿TCR;
第五步,以灰度图的形式读取第三帧图像,遍历参考帧上经梯度剔除余下的其他像素块,读取深度滤波器存储的每个像素块的深度方差值,如果某个像素块的深度方差小于设定的最小方差或大于设定的最大方差,说明该像素块的深度已收敛或发散,则剔除该像素块;
第六步,遍历第三帧图像上的像素块,以第四步所述方法得到第三帧与参考帧对应的所有像素块,得到参考帧到当前第三帧的位姿TCR;
重复第五和第六步,遍历第四帧及之后的每一帧,直到查找得到单目相机拍摄视频中每一帧与该参考帧对应的所有像素块,通过三角化方法求出该参考帧上这些像素块的深度;
再以第二帧为参考帧,重复上述步骤,遍历第三帧及之后的每一帧,直到查找得到单目相机拍摄视频中每一帧与该参考帧对应的所有像素块,通过三角化方法求出该参考帧上这些像素块的深度;
重复上述步骤,得到单目相机拍摄视频中每一帧上用于稠密建图的像素块的空间位置,从而实现稠密建图,具有成本低、效率高、准确度高等优点。
只有参考帧需要剔除,当前帧都是被搜索的,不需要剔除。
具体地,第四步中极线搜索方法为:假设第一帧像素块x对应第二帧像素块y,将第一帧像素块x的像素坐标转化成归一化坐标,乘上深度均值,再左乘位姿TCR,转换回像素坐标,这样就得到了深度均值点在当前帧的像素位置;将深度均值取倒数,加减三倍的深度标准差得出需要搜索的深度的最小值和最大值的倒数,深度标准差为深度方差的开方,将第一帧该像素块的像素坐标转化为归一化坐标,乘上深度最值,再左乘位姿TCR,转换回像素坐标,得到深度最值点在当前帧的像素位置。
获得深度均值点在第二帧的位置和深度最值,即深度最大值和深度最小值点在当前帧的位置,就可以确定极线的方向和搜索的范围,即要找的点P对于参考帧的深度大于深度最小值,小于深度最大值。
具体地,沿着极线以一定步长遍历像素块,求出当前帧与参考帧上两个像素块之间的去均值NCC,如果分数大于阈值,则这两个像素块匹配对应,反之说明在当前帧上找不到与参考帧匹配的像素块,即匹配失败。
进一步地,将参考帧的像素坐标转成归一化坐标,乘上当前的深度,左乘位姿,再转化成当前帧的像素坐标;对于像素块中的每个像素,累加它们的灰度值,最后取平均值,然后代入公式求出NCC分数,公式为:
其中,A为参考帧的像素块,B为当前帧的像素块,A(i,j) 为参考帧上某个像素块的像素灰度值,B(i,j)为当前帧上某个像素块的像素灰度值;为参考帧某个像素块的灰度均值,为当前帧某个像素块的灰度均值。
本发明的有益效果在于:
本发明采用单目相机,不需要复杂的标定和配置,只需要拍照即可。因为其稠密建图全部依赖于软件,利用逆深度就可以测量很远的距离;由于单目相机不需要发射光线,所以在户外条件下工作良好,可以检测透射材质。
附图说明
图1显示了极线搜索原理。
具体实施方式
一种基于单目相机进行稠密建图的方法,其特征在于,包括:
第一步,将单目相机拍摄下的一段视频,以灰度图的形式读取第一帧图像,先以第一帧为参考帧,初始化深度滤波器的深度均值和深度方差;
第二步,梯度剔除;以灰度图的形式读取第二帧图像,遍历参考帧上的每个像素块,计算每个像素块的灰度梯度,如果某个像素块的梯度的2范数小于设定的阈值,则剔除该像素块;
第三步,深度剔除;遍历参考帧上经梯度剔除余下的其他像素块,读取深度滤波器存储的每个像素块的深度方差值,如果某个像素块的深度方差小于设定的最小方差或大于设定的最大方差,说明该像素块的深度已收敛或发散,则剔除该像素块;
第四步,遍历第二帧图像上的像素块,用极线搜索方法查找每个像素块与所述参考帧上经第二、第三步剔除后余下像素块对应的位置;如果查找到参考帧上某个像素块在当前第二帧对应的位置,则通过三角化方法求出参考帧上该像素块的深度均值和深度方差,并将该深度均值和深度方差存入深度滤波器中,用于更新深度滤波器,对查找到的参考帧与当前第二帧有对应位置的所有像素块重复该步骤,直到每个像素块的深度都收敛;通过传感器得到当前相机在世界坐标系的位姿TWC,通过该位姿TWC的逆乘上参考帧在世界坐标系的位姿TWR,得到参考帧到当前第二帧的位姿TCR;
如图1所示,参考帧上的像素点p 1 对应的空间点的位置在射线O 1 p 1 上,准确来说在d标记的线段,这个线段与当前相机的光心O 2 的连线会在当前帧上投影出一条直线l 2 ,称为极线,所以空间点在当前帧上的位置只需要在极线上搜索就行。遍历极线上的每个像素块,计算它与p 1 的相似程度,沿着极线以一定步长遍历极线上的每个像素块,求出当前帧与参考帧上两个像素块之间的去均值NCC,如果分数大于阈值,则这两个像素块匹配对应,反之说明在当前帧上找不到与参考帧匹配的像素块,即匹配失败。当找到匹配对应的像素块之后,就用三角化求出该像素块深度,进而用新的深度均值和深度方差更新深度滤波器直到深度收敛。
根据对极约束的原理,在当前帧上用极线搜索查找与参考帧像素块对应的位置,假设第一帧像素块x对应第二帧像素块y,则有:
其中,s 1 为第一帧像素块x的深度,s 2 为第二帧像素块y的深度,p 1 为x在图片上的平面坐标,p 2 为y在图片上的平面坐标,P为空间中的某个点坐标,满足投影到第一帧时为x,投影到第二帧时为y,K为相机内参,R是旋转矩阵,t是平移向量。
将第一帧像素块x的像素坐标转化成归一化坐标,乘上深度均值,再左乘位姿TCR,转换回像素坐标,这样就得到了深度均值点在当前帧的像素位置。
在室外场景下,深度很多时候不满足正态分布,比如深度的分布并不对称,有些点可能会在很远的地方,解决的方法是假设深度的倒数服从正态分布,即逆深度。将深度均值取倒数,加减 3倍标准差得出需要搜索的深度的最小值和最大值的倒数,获得深度最值,将第一帧该像素块的像素坐标转化为归一化坐标,乘上深度最值,再左乘位姿TCR,转换回像素坐标,得到深度最值点在当前帧的像素位置,这样就确定了极线搜索范围。
考虑到如果相机发生旋转,则像素块也可能发生旋转,所以,在做块匹配之前,应该把参考帧到当前帧的运动加入像素块中,即做一次仿射变换。将参考帧的像素坐标转成归一化坐标,乘上当前的深度,左乘位姿,再转化成当前帧的像素坐标;对于像素块中的每个像素,累加它们的灰度值,最后取平均值,然后代入公式求出NCC分数,公式为:
如果极线搜索失败,则跳过该像素块。如果查找到参考帧上某个像素块在当前帧对应的位置,则通过三角化方法求出参考帧上该对应像素块的深度均值,进而计算深度方差,根据对极几何和针孔相机原理有,
其中x 1 为第一帧某一个像素块的归一化坐标,x 2 为第二帧某一个像素块的归一化坐标,上式推导出等式:
接下来用求得的数据更新深度滤波器的均值和方差,根据正态分布乘积公式,新值需要旧值和当前值计算得到。当前深度均值为上一步求得的s1,当前的深度方差为假设误差为一个像素下深度的差距。
最后用新值代替旧值更新深度滤波器,然后重复以上步骤直到每个像素的深度都收敛。
第五步,以灰度图的形式读取第三帧图像,遍历参考帧上经梯度剔除余下的其他像素块,读取深度滤波器存储的每个像素块的深度方差值,如果某个像素块的深度方差小于设定的最小方差或大于设定的最大方差,说明该像素块的深度已收敛或发散,则剔除该像素块;
第六步,遍历第三帧图像上的像素块,以第四步所述方法得到第三帧与参考帧对应的所有像素块,得到参考帧到当前第三帧的位姿TCR;
重复第五和第六步,遍历第四帧及之后的每一帧,直到查找得到单目相机拍摄视频中每一帧与该参考帧对应的所有像素块,通过三角化方法求出该参考帧上这些像素块的深度;
再以第二帧为参考帧,重复上述步骤,遍历第三帧及之后的每一帧,直到查找得到单目相机拍摄视频中每一帧与该参考帧对应的所有像素块,通过三角化方法求出该参考帧上这些像素块的深度;
重复上述步骤,得到单目相机拍摄视频中每一帧上用于稠密建图的像素块的空间位置。
本方法在只需要半稠密建图时,通过梯度过滤掉一部分光滑表面上的点,这样点云更加平滑,降低耗时和算力要求;使深度的倒数满足正态分布,可以很好地解决深度分布不对称和远点无法覆盖的问题;在极线搜索和块匹配时增加一次像素间的仿射变换,可以避免旋转带来的两个像素块不同的结果;克服了传统建图方法在稠密建图时耗时久、算力要求高、效率低的问题,也能够克服对于光滑表面的深度估计不理想,具有纹理依赖性,在户外场景下,较远的点无法被侦查,以及相机在发生旋转时,极线搜索和匹配不准确等问题。
Claims (4)
1.一种基于单目相机进行稠密建图的方法,其特征在于,包括:
第一步,将单目相机拍摄下的一段视频,以灰度图的形式读取第一帧图像,先以第一帧为参考帧,初始化深度滤波器的深度均值和深度方差;
第二步,梯度剔除;以灰度图的形式读取第二帧图像,遍历参考帧上的每个像素块,计算每个像素块的灰度梯度,如果某个像素块的梯度的2范数小于设定的阈值,则剔除该像素块;
第三步,深度剔除;遍历参考帧上经梯度剔除余下的其他像素块,读取深度滤波器存储的每个像素块的深度方差值,如果某个像素块的深度方差小于设定的最小方差或大于设定的最大方差,说明该像素块的深度已收敛或发散,则剔除该像素块;
第四步,遍历第二帧图像上的像素块,用极线搜索方法查找每个像素块与所述参考帧上经第二、第三步剔除后余下像素块对应的位置;如果查找到参考帧上某个像素块在当前第二帧对应的位置,则通过三角化方法求出参考帧上该像素块的深度均值和深度方差,并将该深度均值和深度方差存入深度滤波器中,用于更新深度滤波器,对查找到的参考帧与当前第二帧有对应位置的所有像素块重复该步骤,直到每个像素块的深度都收敛;通过传感器得到当前相机在世界坐标系的位姿TWC,通过该位姿TWC的逆乘上参考帧在世界坐标系的位姿TWR,得到参考帧到当前第二帧的位姿TCR;
第五步,以灰度图的形式读取第三帧图像,遍历参考帧上经梯度剔除余下的其他像素块,读取深度滤波器存储的每个像素块的深度方差值,如果某个像素块的深度方差小于设定的最小方差或大于设定的最大方差,说明该像素块的深度已收敛或发散,则剔除该像素块;
第六步,遍历第三帧图像上的像素块,以第四步所述方法得到第三帧与参考帧对应的所有像素块,得到参考帧到当前第三帧的位姿TCR;
重复第五和第六步,遍历第四帧及之后的每一帧,直到查找得到单目相机拍摄视频中每一帧与该参考帧对应的所有像素块,通过三角化方法求出该参考帧上这些像素块的深度;
再以第二帧为参考帧,重复上述步骤,遍历第三帧及之后的每一帧,直到查找得到单目相机拍摄视频中每一帧与该参考帧对应的所有像素块,通过三角化方法求出该参考帧上这些像素块的深度;
重复上述步骤,得到单目相机拍摄视频中每一帧上用于稠密建图的像素块的空间位置。
2.根据权利要求1所述的一种基于单目相机进行稠密建图的方法,其特征在于,第四步中极线搜索方法为:假设第一帧像素块x对应第二帧像素块y,将第一帧像素块x的像素坐标转化成归一化坐标,乘上深度均值,再左乘位姿TCR,转换回像素坐标,得到深度均值点在当前帧的像素位置;将深度均值取倒数,加减三倍的深度标准差得出需要搜索的深度的最小值和最大值的倒数,获得深度最值,将第一帧该像素块的像素坐标转化为归一化坐标,乘上深度最值,再左乘位姿TCR,转换回像素坐标,得到深度最值点在当前帧的像素位置。
3.根据权利要求2所述的一种基于单目相机进行稠密建图的方法,其特征在于,沿着极线以一定步长遍历像素块,求出当前帧与参考帧上两个像素块之间的去均值NCC,如果分数大于阈值,则这两个像素块匹配对应,反之说明在当前帧上找不到与参考帧匹配的像素块,即匹配失败。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110970559.7A CN113706596A (zh) | 2021-08-23 | 2021-08-23 | 一种基于单目相机进行稠密建图的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110970559.7A CN113706596A (zh) | 2021-08-23 | 2021-08-23 | 一种基于单目相机进行稠密建图的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113706596A true CN113706596A (zh) | 2021-11-26 |
Family
ID=78654190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110970559.7A Pending CN113706596A (zh) | 2021-08-23 | 2021-08-23 | 一种基于单目相机进行稠密建图的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113706596A (zh) |
-
2021
- 2021-08-23 CN CN202110970559.7A patent/CN113706596A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108717712B (zh) | 一种基于地平面假设的视觉惯导slam方法 | |
CN110070615B (zh) | 一种基于多相机协同的全景视觉slam方法 | |
CN110807809B (zh) | 基于点线特征和深度滤波器的轻量级单目视觉定位方法 | |
US10529076B2 (en) | Image processing apparatus and image processing method | |
CN109579825B (zh) | 基于双目视觉和卷积神经网络的机器人定位***及方法 | |
JP2016201117A (ja) | 深度測定の品質の向上 | |
CN111563921A (zh) | 一种基于双目相机的水下点云获取方法 | |
Muñoz-Bañón et al. | Targetless camera-LiDAR calibration in unstructured environments | |
CN108615244A (zh) | 一种基于cnn和深度滤波器的图像深度估计方法及*** | |
CN113096183B (zh) | 一种基于激光雷达与单目相机的障碍物检测与测量方法 | |
CN111735439A (zh) | 地图构建方法、装置和计算机可读存储介质 | |
CN111998862A (zh) | 一种基于bnn的稠密双目slam方法 | |
CN108362205A (zh) | 基于条纹投影的空间测距方法 | |
CN116128966A (zh) | 一种基于环境物体的语义定位方法 | |
CN115371673A (zh) | 一种未知环境中基于Bundle Adjustment的双目相机目标定位方法 | |
CN116576850A (zh) | 一种位姿确定方法、装置、计算机设备及存储介质 | |
CN117367427A (zh) | 一种适用于室内环境中的视觉辅助激光融合IMU的多模态slam方法 | |
CN113450334B (zh) | 一种水上目标检测方法、电子设备及存储介质 | |
CN113504385B (zh) | 复数相机测速方法及测速装置 | |
CN113240749B (zh) | 一种面向海上舰船平台无人机回收的远距离双目标定与测距方法 | |
Vaida et al. | Automatic extrinsic calibration of LIDAR and monocular camera images | |
CN113658260B (zh) | 机器人位姿计算方法、***、机器人及存储介质 | |
CN113706596A (zh) | 一种基于单目相机进行稠密建图的方法 | |
CN112146647B (zh) | 一种地面纹理的双目视觉定位方法及芯片 | |
Gao et al. | High-precision extrinsic calibration method of a time-of-flight IMU RGB-camera with loop closure constraints |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |