CN111612728A - 一种基于双目rgb图像的3d点云稠密化方法和装置 - Google Patents
一种基于双目rgb图像的3d点云稠密化方法和装置 Download PDFInfo
- Publication number
- CN111612728A CN111612728A CN202010449147.4A CN202010449147A CN111612728A CN 111612728 A CN111612728 A CN 111612728A CN 202010449147 A CN202010449147 A CN 202010449147A CN 111612728 A CN111612728 A CN 111612728A
- Authority
- CN
- China
- Prior art keywords
- point
- point cloud
- ground
- points
- lidar
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/50—Image enhancement or restoration by the use of more than one image, e.g. averaging, subtraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
- G06T2207/10012—Stereo images
Abstract
本发明实施例提供了一种基于双目RGB图像的3D点云稠密化方法和装置。所述方法包括:步骤1,由双目RGB图像生成深度图像;根据所述深度图像的深度信息,估计所述深度图像的每个像素点在LiDAR坐标系下的大致三维坐标点;步骤2,使用循环RANSAC算法进行点云的地面分割,并提取非地面点云;步骤3,将提取的所述非地面点云插入KDTree,根据所述每个像素点在LiDAR坐标系下的大致三维坐标点,在KDTree中搜索预定数量的近邻点,利用所述近邻点进行曲面重建;步骤4,根据曲面重建结果和LiDAR与相机的标定参数,由计算几何方法导出所述大致三维坐标点的精确坐标点,并将所述精确坐标点与原始LiDAR点云进行融合,得到稠密化点云。
Description
技术领域
本发明涉及图像处理领域,尤其涉及一种基于双目RGB图像的3D点云稠密化方法和装置。
背景技术
随着科技的不断发展,无人驾驶车辆领域的研究也取得了大幅进步。在无人驾驶车辆领域,对前方道路上的物体进行检测识别是其重要任务之一。激光雷达(LiDAR,LightDetection And Ranging)和相机作为支撑物体检测任务的两大传感器,在无人驾驶车辆的配置中必不可少。
LiDAR提供准确的三维距离信息,故被广泛地应用。但LiDAR的成本随着发射线束的数量增加而提高,因此车辆上配备的LiDAR的激光线束数量通常较少,一台VelodyneHDL-64E价格约为一辆家用普通轿车的4倍,这让自动驾驶汽车在硬件上承受了较大成本。而较少的激光线束会使得扫描到的点云相对稀疏,不利于物体识别。另一方面,虽然相机作为价格较低的传感器,被广泛用于物体检测,但由于二维图像数据缺失距离信息,使其通常不能良好地完成三维空间中的物体检测任务。
为了更好的利用图像,Chang Jiaren等人提出了PSMNet网络,利用双目RGB图像估计视差图,从而生成深度图像,这使得二维图像拥有了距离信息,称作RGB-D图像。但由于基于图像的深度估计误差较大,基于RGB-D的3D目标检测性能不佳。
Wang Y等人发现相机和激光雷达在3D目标检测上有如此大的差距并不完全是因为两种传感器的深度数据在质量方面有差距,而很大一部分原因是由于数据的表示形式。Wang Y等人将RGB-D图像生成伪LiDAR点云,并利用现有3D点云目标检测方法进行检测,大幅提升了图像在3D目标检测上的精度。这表明将数据表示在3D空间中进行检测是更好的选择。但即使伪点云较先前基于图像的3D目标检测精度有所提升,但与基于LiDAR点云的3D目标检测精度仍有较大差距。
也就是说,激光雷达在自动驾驶中扮演着重要的角色,即使价格昂贵,但配备的激光线束数量仍较少,造成采集的点云密度较稀疏。而相机作为另一个被广泛用于物体检测的传感器,虽然价格较低,但由于二维图像数据缺失距离信息,通常不能良好地完成三维空间中的物体检测任务。
发明内容
本发明的实施例提供了一种基于双目RGB图像的3D点云稠密化方法,提升3D目标检测效果。
一种基于双目RGB图像的3D点云稠密化方法,包括:
步骤1,由双目RGB图像生成深度图像;根据所述深度图像的深度信息,估计所述深度图像的每个像素点在LiDAR坐标系下的大致三维坐标点;
步骤2,使用循环RANSAC算法进行点云的地面分割,并提取非地面点云;
步骤3,将提取的所述非地面点云插入KDTree,根据所述每个像素点在LiDAR坐标系下的大致三维坐标点,在KDTree中搜索预定数量的近邻点,利用所述近邻点进行曲面重建;
步骤4,根据曲面重建结果和LiDAR与相机的标定参数,由计算几何方法导出所述大致三维坐标点的精确坐标点,并将所述精确坐标点与原始LiDAR点云进行融合,得到稠密化点云。
一种基于双目RGB图像的3D点云稠密化装置,包括:
估计单元,由双目RGB图像生成深度图像;根据所述深度图像的深度信息,估计所述深度图像的每个像素点在LiDAR坐标系下的大致三维坐标点;
提取单元,使用循环RANSAC算法进行点云的地面分割,并提取非地面点云;
重建单元,将提取的所述非地面点云插入KDTree,根据所述每个像素点在LiDAR坐标系下的大致三维坐标点,在KDTree中搜索预定数量的近邻点,利用所述近邻点进行曲面重建;
融合单元,根据曲面重建结果和LiDAR与相机的标定参数,由计算几何方法导出所述大致三维坐标点的精确坐标点,并将所述精确坐标点与原始LiDAR点云进行融合,得到稠密化点云。
由上述本发明的实施例提供的技术方案可以看出,本发明实施例中,提出了一种新型的基于RGB图像的3D点云稠密化算法,具有良好的可解释性和进一步优化的可能性,以激光雷达点云和深度图像作为输入,采用曲面重建和本文所设计的计算几何方法对点云实现稠密化。稠密化过后点云中的物体具有更加完整的形状和轮廓,物体特征也更加明显,能够提升3D目标检测效果。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所述的一种基于双目RGB图像的3D点云稠密化方法的流程示意图;
图2为本发明应用场景所述的点云稠密化算法的流程图;
图3(a)、图3(b)、图3(c)为本发明应用场景所述的深度图像生成示例示意图;
图4为本发明应用场景中循环RANSAC算法流程示意图;
图5为本发明应用场景中地面分割效果对比图;
图6为本发明应用场景几何关系示意图;
图7为本发明应用场景中点云稠密化效果示意图。
具体实施方式
下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
为便于对本发明实施例的理解,下面将结合附图以几个具体实施例为例做进一步的解释说明,且各个实施例并不构成对本发明实施例的限定。
如图1所示,为本发明所述一种基于双目RGB图像的3D点云稠密化方法,包括:
步骤1,由双目RGB图像生成深度图像;根据所述深度图像的深度信息,估计所述深度图像的每个像素点在LiDAR坐标系下的大致三维坐标点;
步骤2,使用循环RANSAC算法进行点云的地面分割,并提取非地面点云;
步骤3,将提取的所述非地面点云插入KDTree,根据所述每个像素点在LiDAR坐标系下的大致三维坐标点,在KDTree中搜索预定数量的近邻点,利用所述近邻点进行曲面重建;
步骤4,根据曲面重建结果和LiDAR与相机的标定参数,由计算几何方法导出所述大致三维坐标点的精确坐标点,并将所述精确坐标点与原始LiDAR点云进行融合,得到稠密化点云。
所述的方法,还包括:
步骤5,使用AVOD和AVOD-FPN在所述稠密化点云上进行3D目标检测。
其中,所述步骤1包括:
由一对基线距离为b的相机所拍摄到的左右两幅图像Il和Ir作为输入,应用DeepPruner算法进行视差估计;
生成的视差图Y以左侧相机图像Il为参考,记录右侧相机图像Ir相对于左侧相机图像Il在水平方向上的视差,对应的深度图像由公式(1)计算得到;
其中D(u,v)和Y(u,v)分别代表Ir图像坐标系下像素(u,v)的深度和视差,fU为相机在水平方向上的像素焦距;
基于深度信息,由公式(3)(4)(5)计算出Il中每个像素(u,v)在参考相机畸变矫正后的世界坐标系下的大致三维坐标点(x(u,v),y(u,v),z(u,v)),记作g(u,v);
g(u,v)=(x(u,v),y(u,v),z(u,v)) (2)
z(u,v)=D(u,v) (5)
其中(cU,cV)代表光心在图像上投影的像素坐标,fU和fV分别为水平和竖直像素焦距,bx和by分别为左侧相机相对于参考相机的水平基线距离和竖直基线距离;
根据LiDAR和相机的标定参数,利用公式(7)将每个像素在畸变矫正后参考相机坐标系下的大致坐标g(u,v)转化为LiDAR坐标系下的大致三维坐标点(X(u,v),Y(u,v),Z(u,v)),记作G(u,v);
G(u,v)=(X(u,v),Y(u,v),Z(u,v)) (6)
其中,所述步骤2包括:
输入要进行地面分割的点云input_pc,并设置参考法向量将input_pc复制到object_pc中,然后清空planar_object_pc点云;planar_object_pc中记录的是在循环过程中被RANSAC提取的非地面的平面形物体点云;
循环运行RANSAC算法;ground_pc是单次循环过程中从object_pc中提取出的平面点云,是平面的单位法向量;threshold_PointNumber是点数阈值,表示一个平面若为地面其最少应包含的点数;若ground_pc的点数小于点数阈值,则认为object_pc中已不存在地面,退出循环并将object_pc和planar_object_pc相加作为非地面点云返回值;否则将ground_pc从object_pc中剔除;
eps是角度阈值,条件表明与所在两直线的夹角在一预定范围内;若满足,则认为此平面可能是地面,否则以此平面与水平面的倾角过大作为理由认为其不是地面;threshold_GroundHeight是地面高度阈值,若所提取平面的高度高于地面高度,则认为此平面是非地面物体;
根据上一步的判断结果,若ground_pc不是地面,则将ground_pc加入到平面物体点云planar_object_pc中;然后进入下一次循环,直至提取的ground_pc点数小于threshold_PointNumber后退出循环。
其中,所述步骤3包括:
设和分别是原始点云和去除地面后的点云,nO和nP分别为两幅点云中的点数;将插入三维KDTree,对于Il中像素(u,v)对应的激光雷达坐标系下的大致坐标点G(u,v),在KDTree中搜索中距离G(u,v)半径为r范围内至多Max_neighbors个近邻点,设搜索结果为其中nQ是搜索到的近邻点的个数;
启用OpenMP并行计算,将Il中像素(u,v)按行坐标分配给多线程执行近邻点搜索和曲面重建步骤;
在每一线程中,若点G(u,v)与本线程上次曲面重建的中心点G′(u′,v′)的距离小于KDTree搜索半径r,则不需再次进行近邻点搜索和曲面重建,直接将上次曲面重建所得三角形作为点G(u,v)附近曲面重建的计算结果。
其中,所述步骤4包括:
根据公式(2)(3)(4)(5)(6)(7),分别选取深度值D(u,v)为第一预定值和第二预定值,计算出雷达坐标系下对应的两个坐标点A和B,则在雷达坐标系下,A、B两点所在直线与相平面中像素(u,v)和光心的连线重合;直线AB和的交点中距原点距离最近的交点即为Gexact(u,v);
计算直线AB和三角形Tk的交点C;计算直线AB和三角形Tk所在平面的交点C;验证C是否位于三角形Tk内部;
判断点C是否在三角形Tk内部;对于三角形平面内任意一点F,用式(9)表示;
若点F落于三角形内,则需满足如下三个条件:
f1≥0 (10)
f2≥0 (11)
f1+f2≤1 (12)
e3=f1*e1+f2*e2 (13)
将式(13)左右两边分别点乘e1或点乘e2,得到以下两个等式:
e3*e1=(f1*e1+f2*e2)*e1 (14)
e3*e2=(f1*e1+f2*e2)*e2 (15)
取Eij=ei*ej,联立式(14)、式(15),解得:
由柯西不等式得:
e0 2*e1 2≥(e0*e1)2 (18)
又因e0和e1不共线,所以等号不成立,即:
e0 2*e1 2>(e0*e1)2 (19)
即f1和f2的分母均大于零;
则式(10)(11)(12)分别等价于以下三式:
E11*E02-E01*E12≥0 (20)
E00*E12-E01*E02≥0 (21)
(E11*E02-E01*E12)+(E00*E12-E01*E02)≤E00*E11-E01*E01 (22)
遍历(u,v),通过以上计算方法导出精确坐标点集{Gexact(u,v)};
以下描述本发明的实施方式。
图2为本发明应用场景所述的点云稠密化算法的流程图;图3(a)、图3(b)、图3(c)为本发明应用场景所述的深度图像生成示例示意图;图4为本发明应用场景中循环RANSAC算法流程示意图;图5为本发明应用场景中地面分割效果对比图;图6为本发明应用场景几何关系示意图;图7为本发明应用场景中点云稠密化效果示意图。以下结合各图描述。
为了更好地感知周围环境,本发明提出了一种基于双目RGB图像的3D点云稠密化处理方法,能够对激光雷达数据增强处理,实现点云的稠密化。
利用双目RGB图像生成深度图像,根据先验的相机参数计算出每个像素点在雷达坐标系下的大致三维坐标。为了更好的分割地面,本发明设计了循环RANSAC算法,改进了地面分割效果。再将原始点云进行地面分割后插入k-dimensional tree(KDTree),在KDTree中搜索大致三维坐标点的若干近邻点,基于这些近邻点进行曲面重建,并设计一种计算几何方法导出各像素对应的激光雷达坐标系下的精确坐标点,最后将这些生成的点与原点云融合得到稠密化点云。
LiDAR点云的深度信息是稀疏且精确的,图像的深度估计是稠密且精度较低的,在三维空间中将数据表示为点云形式并进行检测是可行的。基于以上三点考虑,应充分利用图像深度稠密这一性质对LiDAR点云进行稠密化并用稠密化后的点云做3D目标检测,以此来进一步提升3D目标检测的精度。
实验结果表明,经过本发明提出的算法稠密化后的点云在视觉上具有较好的质量,并且在KITTI数据集上提升了3D目标检测精度。在使用该数据增强方法后,AVOD的AP3D-Easy提升了8.25%,AVOD-FPN的APBEV-Hard提升了7.14%。
本发明设计了一种基于视觉的激光雷达数据增强算法,其不针对特定的3D目标检测网络结构,而是一种通用的点云稠密化方法,实验证明稠密后点云可以有效提高3D目标检测精度。
本发明算法流程框架为:
本发明提出的算法是为解决车载激光雷达点云稀疏问题所设计的稠密化算法,可提升3D物体检测精度。利用双目RGB图像生成深度图像,根据先验的相机参数计算出每个像素点在雷达坐标系下的大致三维坐标。为了更好的分割地面,本文设计了循环RANSAC算法,改进了地面分割效果。将原始点云进行地面分割后插入k-dimensional tree(KDTree),在KDTree中搜索大致三维坐标点的若干近邻点,基于这些近邻点进行曲面重建,并由计算几何方法导出各像素对应的激光雷达坐标系下的精确坐标点。最后将这些生成的点与原点云融合得到稠密化点云。最后通过3D目标检测的精度提升验证算法有效性。算法简要流程图如图2所示,具体的计算方法详见下文。
该算法主要流程可分为四部分:
Step1:由双目RGB图像生成深度图像,根据深度信息估计每个像素点在LiDAR坐标系下的三维大致坐标;
Step2:使用本发明提出的循环RANSAC算法进行点云的地面分割,并提取非地面点云;
Step3:将步骤2中提取的非地面点云插入KDTree,对步骤1中的每个大致三维坐标点在KDTree中搜索其若干近邻点,利用这些近邻点进行曲面重建;
Step4:根据曲面重建结果和LiDAR与相机的标定参数,由计算几何方法导出大致坐标点的精确坐标,并将这些精确坐标点与原始LiDAR点云进行融合,得到稠密化点云。
1.1.深度图生成和大致坐标估计
任何一种深度图像估计方法都可以应用于此步骤中,例如单目视觉深度估计的DORN算法和双目视觉深度估计的PSMNET算法。为了提高最终稠密化点云的精度,实验中采用了精度相对较高的双目视觉RGB深度估计方法DeepPruner。
首先由一对基线距离为b的相机(KITTI数据集中2号、3号相机)所拍摄到的左右两幅图像Il和Ir作为输入,应用DeepPruner对其进行视差估计。
生成的视差图Y以左侧相机图像Il为参考,记录了右侧相机图像Ir相对于Il在水平方向上的视差,对应的深度图像可由公式(1)计算得到。其中D(u,v)和Y(u,v)分别代表Ir图像坐标系下像素(u,v)的深度和视差,fU为相机在水平方向上的像素焦距。
基于深度信息,由公式(3)(4)(5)计算出Il中每个像素(u,v)在参考相机(KITTI数据集中的0号相机)畸变矫正后的世界坐标系下的三维坐标(x(u,v),y(u,v),z(u,v)),记作g(u,v)。由于深度估计是不精确的,因此计算出的坐标是大致坐标。
g(u,v)=(x(u,v),y(u,v),z(u,v)) (2)
z(u,v)=D(u,v) (5)
其中(cU,cV)代表光心在图像上投影的像素坐标,fU和fV分别为水平和竖直像素焦距,bx和by分别为左侧相机(2号相机)相对于参考相机(0号相机)的水平基线距离和竖直基线距离。
根据LiDAR和相机的标定参数,利用公式(7)将每个像素在畸变矫正后参考相机坐标系下的大致坐标g(u,v)转化为LiDAR坐标系下的坐标(X(u,v),Y(u,v),Z(u,v)),记作G(u,v)。
G(u,v)=(X(u,v),Y(u,v),Z(u,v)) (6)
至此,图像Ir中每个像素(u,v)对应的激光雷达坐标系下的大致坐标点G(u,v)已经确定。
1.2.循环RANSAC地面分割
地面点云的存在会影响后续对物体的曲面重建,因此需要对地面点云进行分割和去除。由于普通的RANSAC检测算法适用于较为平整的路面,在以下两种情况下会失效:
(1)点云中墙壁点数较多、距离LiDAR较近的货车侧面点数较多时,由于这些平面上的点数大于地面点数,RANSAC算法会将墙壁或货车侧面误检测为地面;
(2)地面有坡度变化或道路两旁有大面积人行道时,由于多段地面的存在,RANSAC算法不能完美检测出所有地面。
因此,本文设计了循环RANSAC算法,使以上两种情况复杂情况下地面点云也能够被完美分割,并返回非地面点云。循环RANSAC算法流程图如图4所示。
首先,输入要进行地面分割的点云input_pc,并设置参考法向量 将input_pc复制到object_pc中,然后清空planar_object_pc点云,planar_object_pc中记录的是在循环过程中被RANSAC提取的非地面的平面形物体点云。
之后,循环运行RANSAC算法。ground_pc是单次循环过程中从object_pc中提取出的平面点云,是平面的单位法向量。threshold_PointNumber是点数阈值,表示一个平面若为地面其最少应包含的点数,若ground_pc的点数小于此值,则认为object_pc中已不存在地面,退出循环并将object_pc和planar_object_pc相加作为非地面点云返回值;否则将ground_pc从object_pc中剔除。
eps是角度阈值,条件表明与所在两直线的夹角在某一较小范围内,若满足则认为此平面可能是地面,否则以此平面与水平面的倾角过大作为理由认为其不是地面。threshold_GroundHeight是地面高度阈值,若所提取平面的高度高于此值,则认为此平面是非地面物体。
根据上一步的判断结果,若ground_pc不是地面,则将ground_pc加入到平面物体点云planar_object_pc中。然后进入下一次循环,直至某次循环中提取的ground_pc点数小于threshold_PointNumber后退出循环。
在上文提到的目前地面分割算法失效的两种情况的实验结果如图5所示:在图5(a)中由于墙面点数大于地面点数,普通RANSAC算法将其误检测为地面;在图5(c)中由于右侧路肩即将进入匝道而与左侧路面坡度不一致,普通RANSAC算法无法检测到两段坡度不一致的地面;而使用循环RANSAC算法则正常检测到地面,如图5(b)和图5(d)所示。
本发明所设计的循环RANSAC算法引入了一个分离非地面平面形物体点云的暂存器planar_object_pc,使得下一轮RANSAC对地面的检测不受其干扰;同时RANSAC的多次循环能够检测到不同倾角的多段地面。以上设计改进了平面形物体点数多于地面的情况下和存在多段地面情况下的检测准确率,证明了所设计的循环RANSAC算法的有效性。
1.3.近邻点的搜索和曲面重建
KDTree(k-dimensional tree)是一种用于组织和检索k维空间数据点的基于空间划分的数据结构。点云曲面重建是指将由三维物体表面U采集的散乱点集用三角形网格进行表示,使得所获得的曲面S能够较好的逼近原曲面U。本文使用KDTree进行快速近邻点搜索,从而得到以点G(u,v)为中心的若干近邻点。然后使用被公认为可以形成最优三角网的Delaunay三角剖分曲面重建方法,对搜索到的点进行局部曲面重建。在此过程中,使用OpenMP并行编程加快计算速度。
设和分别是原始点云和去除地面后的点云,nO和nP分别为两幅点云中的点数。将插入三维KDTree,对于Il中像素(u,v)对应的激光雷达坐标系下的大致坐标点G(u,v),在KDTree中搜索中距离G(u,v)半径为r范围内至多Max_neighbors个近邻点,设搜索结果为其中nQ是搜索到的近邻点的个数。
在此过程中,KDTree搜索和Delaunay三角曲面重建为主要计算步骤,为了加快运算速度,采用如下方案:(1)启用OpenMP并行计算,将Il中像素(u,v)按行坐标分配给多线程执行近邻点搜索和曲面重建步骤;(2)在每一线程中,若点G(u,v)与本线程上次曲面重建的中心点G′(u′,v′)的距离小于KDTree搜索半径r,则不需再次进行近邻点搜索和曲面重建,可直接将上次曲面重建所得三角形作为点G(u,v)附近曲面重建的计算结果。伪代码如下。
1.4.计算几何方法导出精确坐标
根据公式(2)(3)(4)(5)(6)(7),分别选取深度值D(u,v)为5m和100m,计算出雷达坐标系下对应的两个坐标点A和B,则在雷达坐标系下,A、B两点所在直线与相平面中像素(u,v)和光心的连线重合。由此可见,直线AB和的交点中距原点距离最近的交点即为Gexact(u,v)。
计算直线AB和三角形Tk的交点可分为以下两步:(1)计算直线AB和三角形Tk所在平面的交点C;(2)验证C是否位于三角形Tk内部。
然后判断点C是否在三角形Tk内部。对于三角形平面内任意一点F,都可以用式(9)表示。
若点F落于三角形内,则需满足如下三个条件:
f1≥0 (10)
f2≥0 (11)
f1+f2≤1 (12)
e3=f1*e1+f2*e2 (13)
将式(13)左右两边分别点乘e1或点乘e2,得到以下两个等式:
e3*e1=(f1*e1+f2*e2)*e1 (14)
e3*e2=(f1*e1+f2*e2)*e2 (15)
取Eij=ei*ej,联立式(14)、式(15),解得:
为了避免因除法而引起精度误差,做如下分析变换。由柯西不等式得:
e0 2*e1 2≥(e0*e1)2 (18)
又因e0和e1不共线,所以等号不成立,即:
e0 2*e1 2>(e0*e1)2 (19)
即f1和f2的分母均大于零。
则式(10)(11)(12)分别等价于以下三式:
E11*E02-E01*E12≥0 (20)
E00*E12-E01*E02≥0 (21)
(E11*E02-E01*E12)+(E00*E12-E01*E02)≤E00*E11-E01*E01 (22)
将KITTI数据集的双目RGB图像和LiDAR点云作为输入,使用本文设计的点云稠密化算法,实验结果如图7所示。其中图7(a)为{Gexact(u,v)}点云,图7(b)为原始点云和{Gexact(u,v)}融合后的稠密化点云。将KITTI数据集使用本文算法进行数据增强,得到如图7(b)所示的稠密化点云,可以看到,稠密化过后点云中的物体在视觉上具有更加完整的形状和轮廓。
1.5.3D目标检测
使用AVOD和AVOD-FPN在稠密化点云上进行3D目标检测。
由于AVOD和AVOD-FPN的原作者没有提供在KITTI数据集Validation set上的AP(Average Precision),因此本文首先在与原作者相同的实验环境下进行了训练,得到AVOD和AVOD-FPN在Validation set上且IoU=0.7时的AP,如Table 1所示。在同样的训练集和验证集下,本文方法与原方法的对比结果如Table 1所示。
Table 1 AP on validation set
观察实验结果发现,由于本文数据增强方法增加了点云的密度,完善了点云的形状和轮廓,使物体特征更加明显,因此导致了3D目标检测算法AP的显著提升。其中AVOD的AP3D-Easy提升了8.25%,AVOD-FPN的APBEV-Hard提升了7.14%。由于AVOD和AVOD-FPN模型在训练的最后阶段时,AP在一固定值上下存在少量波动,因此AVOD的AP3D-Easy略低于原方法。
本发明具有以下有益效果:
(1)设计了循环RANSAC地面分割算法,改进了普通RANSAC算法在复杂场景下失效的状况。在某些平面上的点数多于地面点数,或存在多段地面的情况下,该算法仍能良好地分割地面。
(2)提出了一种新型的基于RGB图像的3D点云稠密化算法,具有良好的可解释性和进一步优化的可能性。以激光雷达点云和深度图像作为输入,采用曲面重建和本文所设计的计算几何方法对点云实现稠密化。稠密化过后点云中的物体具有更加完整的形状和轮廓,物体特征也更加明显。
(3)此稠密化算法不针对特定的3D目标检测网络,是一种通用的数据增强方法。实验表明,使用此数据增强方法后,在KITTI数据集上提升了3D目标检测效果,其中AVOD的AP3D-Easy提升了8.25%,AVOD-FPN的APBEV-Hard提升了7.14%。
本发明还提供一种基于双目RGB图像的3D点云稠密化装置,包括:
估计单元,由双目RGB图像生成深度图像;根据所述深度图像的深度信息,估计所述深度图像的每个像素点在LiDAR坐标系下的大致三维坐标点;
提取单元,使用循环RANSAC算法进行点云的地面分割,并提取非地面点云;
重建单元,将提取的所述非地面点云插入KDTree,根据所述每个像素点在LiDAR坐标系下的大致三维坐标点,在KDTree中搜索预定数量的近邻点,利用所述近邻点进行曲面重建;
融合单元,根据曲面重建结果和LiDAR与相机的标定参数,由计算几何方法导出所述大致三维坐标点的精确坐标点,并将所述精确坐标点与原始LiDAR点云进行融合,得到稠密化点云。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。
Claims (7)
1.一种基于双目RGB图像的3D点云稠密化方法,其特征在于,包括:
步骤1,由双目RGB图像生成深度图像;根据所述深度图像的深度信息,估计所述深度图像的每个像素点在LiDAR坐标系下的大致三维坐标点;
步骤2,使用循环RANSAC算法进行点云的地面分割,并提取非地面点云;
步骤3,将提取的所述非地面点云插入KDTree,根据所述每个像素点在LiDAR坐标系下的大致三维坐标点,在KDTree中搜索预定数量的近邻点,利用所述近邻点进行曲面重建;
步骤4,根据曲面重建结果和LiDAR与相机的标定参数,由计算几何方法导出所述大致三维坐标点的精确坐标点,并将所述精确坐标点与原始LiDAR点云进行融合,得到稠密化点云。
2.根据权利要求1所述的方法,其特征在于,还包括:
步骤5,使用AVOD和AVOD-FPN,在所述稠密化点云上进行3D目标检测。
3.根据权利要求2所述的方法,其特征在于,所述步骤1包括:
由一对基线距离为b的相机所拍摄到的左右两幅图像Il和Ir作为输入,应用DeepPruner算法进行视差估计;
生成的视差图Y以左侧相机图像Il为参考,记录右侧相机图像Ir相对于左侧相机图像Il在水平方向上的视差,对应的深度图像由公式(1)计算得到;
其中D(u,v)和Y(u,v)分别代表Ir图像坐标系下像素(u,v)的深度和视差,fU为相机在水平方向上的像素焦距;
基于深度信息,由公式(3)(4)(5)计算出I1中每个像素(u,v)在参考相机畸变矫正后的世界坐标系下的大致三维坐标点(x(u,v),y(u,v),z(u,v)),记作g(u,v);
g(u,v)=(x(u,v),y(u,v),z(u,v)) (2)
z(u,v)=D(u,v) (5)
其中(cU,cV)代表光心在图像上投影的像素坐标,fU和fV分别为水平和竖直像素焦距,bx和by分别为左侧相机相对于参考相机的水平基线距离和竖直基线距离;
根据LiDAR和相机的标定参数,利用公式(7)将每个像素在畸变矫正后参考相机坐标系下的大致坐标g(u,v)转化为LiDAR坐标系下的大致三维坐标点(X(u,v),Y(u,v),Z(u,v)),记作G(u,v);
G(u,v)=(X(u,v),Y(u,v),Z(u,v)) (6)
4.根据权利要求3所述的方法,其特征在于,所述步骤2包括:
输入要进行地面分割的点云input_pc,并设置参考法向量将input_pc复制到object_pc中,然后清空planar_object_pc点云;planar_object_pc中记录的是在循环过程中被RANSAC提取的非地面的平面形物体点云;
循环运行RANSAC算法;ground_pc是单次循环过程中从object_pc中提取出的平面点云,是平面的单位法向量;threshold_PointNumber是点数阈值,表示一个平面若为地面其最少应包含的点数;若ground_pc的点数小于点数阈值,则认为object_pc中已不存在地面,退出循环并将object_pc和planar_object_pc相加作为非地面点云返回值;否则将ground_pc从object_pc中剔除;
eps是角度阈值,条件表明与所在两直线的夹角在一预定范围内;若满足,则认为此平面可能是地面,否则以此平面与水平面的倾角过大作为理由认为其不是地面;threshold_GroundHeight是地面高度阈值,若所提取平面的高度高于地面高度,则认为此平面是非地面物体;
根据上一步的判断结果,若ground_pc不是地面,则将ground_pc加入到平面物体点云planar_object_pc中;然后进入下一次循环,直至提取的ground_pc点数小于threshold_PointNumber后退出循环。
5.根据权利要求4所述的方法,其特征在于,所述步骤3包括:
设和分别是原始点云和去除地面后的点云,nO和nP分别为两幅点云中的点数;将插入三维KDTree,对于Il中像素(u,v)对应的激光雷达坐标系下的大致坐标点G(u,v),在KDTree中搜索中距离G(u,v)半径为r范围内至多Max_neighbors个近邻点,设搜索结果为其中nQ是搜索到的近邻点的个数;
启用OpenMP并行计算,将Il中像素(u,v)按行坐标分配给多线程执行近邻点搜索和曲面重建步骤;
6.根据权利要求5所述的方法,其特征在于,所述步骤4包括:
根据公式(2)(3)(4)(5)(6)(7),分别选取深度值D(u,v)为第一预定值和第二预定值,计算出雷达坐标系下对应的两个坐标点A和B,则在雷达坐标系下,A、B两点所在直线与相平面中像素(u,v)和光心的连线重合;直线AB和的交点中距原点距离最近的交点即为Gexact(u,v);
计算直线AB和三角形Tk的交点C;计算直线AB和三角形Tk所在平面的交点C;验证C是否位于三角形Tk内部;
判断点C是否在三角形Tk内部;对于三角形平面内任意一点F,用式(9)表示;
若点F落于三角形内,则需满足如下三个条件:
f1≥0 (10)
f2≥0 (11)
f1+f2≤1 (12)
e3=f1*e1+f2*e2 (13)
将式(13)左右两边分别点乘e1或点乘e2,得到以下两个等式:
e3*e1=(f1*e1+f2*e2)*e1 (14)
e3*e2=(f1*e1+f2*e2)*e2 (15)
取Eij=ei*ej,联立式(14)、式(15),解得:
由柯西不等式得:
e0 2*e1 2≥(e0*e1)2 (18)
又因e0和e1不共线,所以等号不成立,即:
e0 2*e1 2>(e0*e1)2 (19)
即f1和f2的分母均大于零;
则式(10)(11)(12)分别等价于以下三式:
E11*E02-E01*E12≥0 (20)
E00*E12-E01*E02≥0 (21)
(E11*E02-E01*E12)+(E00*E12-E01*E02)≤E00*E11-E01*E01 (22)
遍历(u,v),通过以上计算方法导出精确坐标点集{Gexact(u,v)};
7.一种基于双目RGB图像的3D点云稠密化装置,其特征在于,包括:
估计单元,由双目RGB图像生成深度图像;根据所述深度图像的深度信息,估计所述深度图像的每个像素点在LiDAR坐标系下的大致三维坐标点;
提取单元,使用循环RANSAC算法进行点云的地面分割,并提取非地面点云;
重建单元,将提取的所述非地面点云插入KDTree,根据所述每个像素点在LiDAR坐标系下的大致三维坐标点,在KDTree中搜索预定数量的近邻点,利用所述近邻点进行曲面重建;
融合单元,根据曲面重建结果和LiDAR与相机的标定参数,由计算几何方法导出所述大致三维坐标点的精确坐标点,并将所述精确坐标点与原始LiDAR点云进行融合,得到稠密化点云。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010449147.4A CN111612728B (zh) | 2020-05-25 | 2020-05-25 | 一种基于双目rgb图像的3d点云稠密化方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010449147.4A CN111612728B (zh) | 2020-05-25 | 2020-05-25 | 一种基于双目rgb图像的3d点云稠密化方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111612728A true CN111612728A (zh) | 2020-09-01 |
CN111612728B CN111612728B (zh) | 2023-07-25 |
Family
ID=72200825
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010449147.4A Active CN111612728B (zh) | 2020-05-25 | 2020-05-25 | 一种基于双目rgb图像的3d点云稠密化方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111612728B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112381908A (zh) * | 2020-11-27 | 2021-02-19 | 三峡大学 | 一种地形扫描点云边界线提取方法 |
CN112634152A (zh) * | 2020-12-16 | 2021-04-09 | 中科海微(北京)科技有限公司 | 基于图像深度信息的人脸样本数据增强方法及系统 |
CN112991550A (zh) * | 2021-03-31 | 2021-06-18 | 东软睿驰汽车技术(沈阳)有限公司 | 基于伪点云的障碍物位置检测方法、装置和电子设备 |
CN113340201A (zh) * | 2021-06-25 | 2021-09-03 | 上海应用技术大学 | 一种基于rgbd相机的三维测量方法 |
CN113408584A (zh) * | 2021-05-19 | 2021-09-17 | 成都理工大学 | Rgb-d多模态特征融合3d目标检测方法 |
EP4027299A3 (en) * | 2021-03-25 | 2022-09-21 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method and apparatus for generating depth map, and storage medium |
CN115578522A (zh) * | 2022-11-17 | 2023-01-06 | 武汉光庭信息技术股份有限公司 | 一种基于图像的彩色稠密化点云生成方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018039871A1 (zh) * | 2016-08-29 | 2018-03-08 | 北京清影机器视觉技术有限公司 | 三维视觉测量数据的处理方法和装置 |
CN108267141A (zh) * | 2016-12-30 | 2018-07-10 | 乐视汽车(北京)有限公司 | 道路点云数据处理系统 |
WO2019100933A1 (zh) * | 2017-11-21 | 2019-05-31 | 蒋晶 | 用于三维测量的方法、装置以及系统 |
CN109960402A (zh) * | 2018-12-18 | 2019-07-02 | 重庆邮电大学 | 一种基于点云和视觉特征融合的虚实注册方法 |
JP2019191991A (ja) * | 2018-04-26 | 2019-10-31 | Kddi株式会社 | 点群から対象の向きを推定する対象情報推定装置、プログラム及び方法 |
-
2020
- 2020-05-25 CN CN202010449147.4A patent/CN111612728B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018039871A1 (zh) * | 2016-08-29 | 2018-03-08 | 北京清影机器视觉技术有限公司 | 三维视觉测量数据的处理方法和装置 |
CN108267141A (zh) * | 2016-12-30 | 2018-07-10 | 乐视汽车(北京)有限公司 | 道路点云数据处理系统 |
WO2019100933A1 (zh) * | 2017-11-21 | 2019-05-31 | 蒋晶 | 用于三维测量的方法、装置以及系统 |
JP2019191991A (ja) * | 2018-04-26 | 2019-10-31 | Kddi株式会社 | 点群から対象の向きを推定する対象情報推定装置、プログラム及び方法 |
CN109960402A (zh) * | 2018-12-18 | 2019-07-02 | 重庆邮电大学 | 一种基于点云和视觉特征融合的虚实注册方法 |
Non-Patent Citations (2)
Title |
---|
CONG HAN等: "Three Dimensional Target Object Extraction based on Binocular Stereo Vision" * |
冯春;花省;王树磊;尹飞鸿;江炜;: "基于RGB-D相机的球体三维重建及定位方法研究" * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112381908A (zh) * | 2020-11-27 | 2021-02-19 | 三峡大学 | 一种地形扫描点云边界线提取方法 |
CN112381908B (zh) * | 2020-11-27 | 2022-05-17 | 三峡大学 | 一种地形扫描点云边界线提取方法 |
CN112634152A (zh) * | 2020-12-16 | 2021-04-09 | 中科海微(北京)科技有限公司 | 基于图像深度信息的人脸样本数据增强方法及系统 |
EP4027299A3 (en) * | 2021-03-25 | 2022-09-21 | Beijing Baidu Netcom Science Technology Co., Ltd. | Method and apparatus for generating depth map, and storage medium |
CN112991550A (zh) * | 2021-03-31 | 2021-06-18 | 东软睿驰汽车技术(沈阳)有限公司 | 基于伪点云的障碍物位置检测方法、装置和电子设备 |
CN113408584A (zh) * | 2021-05-19 | 2021-09-17 | 成都理工大学 | Rgb-d多模态特征融合3d目标检测方法 |
CN113408584B (zh) * | 2021-05-19 | 2022-07-26 | 成都理工大学 | Rgb-d多模态特征融合3d目标检测方法 |
CN113340201A (zh) * | 2021-06-25 | 2021-09-03 | 上海应用技术大学 | 一种基于rgbd相机的三维测量方法 |
CN113340201B (zh) * | 2021-06-25 | 2023-08-01 | 上海应用技术大学 | 一种基于rgbd相机的三维测量方法 |
CN115578522A (zh) * | 2022-11-17 | 2023-01-06 | 武汉光庭信息技术股份有限公司 | 一种基于图像的彩色稠密化点云生成方法及装置 |
CN115578522B (zh) * | 2022-11-17 | 2023-03-10 | 武汉光庭信息技术股份有限公司 | 一种基于图像的彩色稠密化点云生成方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111612728B (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111612728B (zh) | 一种基于双目rgb图像的3d点云稠密化方法和装置 | |
CN106599108B (zh) | 一种三维环境中多模态环境地图构建方法 | |
CN110807350B (zh) | 用于面向扫描匹配的视觉slam的系统和方法 | |
Königshof et al. | Realtime 3d object detection for automated driving using stereo vision and semantic information | |
EP2430588B1 (en) | Object recognition method, object recognition apparatus, and autonomous mobile robot | |
US8199977B2 (en) | System and method for extraction of features from a 3-D point cloud | |
Kang et al. | Automatic targetless camera–lidar calibration by aligning edge with gaussian mixture model | |
Wu et al. | A triangulation-based hierarchical image matching method for wide-baseline images | |
EP2887315B1 (en) | Camera calibration device, method for implementing calibration, program and camera for movable body | |
CN107862735B (zh) | 一种基于结构信息的rgbd三维场景重建方法 | |
CN112613378B (zh) | 3d目标检测方法、系统、介质及终端 | |
CN111046776A (zh) | 基于深度相机的移动机器人行进路径障碍物检测的方法 | |
Li et al. | Exploring intermediate representation for monocular vehicle pose estimation | |
CN108305277B (zh) | 一种基于直线段的异源图像匹配方法 | |
CN107818598B (zh) | 一种基于视觉矫正的三维点云地图融合方法 | |
CN115049700A (zh) | 一种目标检测方法及装置 | |
Tao et al. | Stereo priori RCNN based car detection on point level for autonomous driving | |
CN111998862B (zh) | 一种基于bnn的稠密双目slam方法 | |
CN113160068A (zh) | 基于图像的点云补全方法及系统 | |
CN113989758A (zh) | 一种用于自动驾驶的锚引导3d目标检测方法及装置 | |
CN116468786A (zh) | 一种面向动态环境的基于点线联合的语义slam方法 | |
CN111736167B (zh) | 一种获取激光点云密度的方法和装置 | |
Xiong et al. | Road-Model-Based road boundary extraction for high definition map via LIDAR | |
Yao et al. | DepthSSC: Depth-Spatial Alignment and Dynamic Voxel Resolution for Monocular 3D Semantic Scene Completion | |
Yong-guo et al. | The navigation of mobile robot based on stereo vision |
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 |