一种图像深度数据集自动标注方法及系统与流程

文档序号:29128549发布日期:2022-03-05 00:52阅读:238来源:国知局
一种图像深度数据集自动标注方法及系统与流程

1.本发明属于深度学习与图像处理技术领域,具体涉及一种图像深度数据集自动标注方法及系统。


背景技术:

2.自动驾驶等人工智能领域有着广泛的应用。在部分领域中单独依赖图像的二维信息就足够了。但是在自动驾驶等领域中,期望将图像的二维信息转化为三维信息,与真实世界能够从空间上直接关联起来,进行环境感知与定位。图像深度数据是指图像中每个像素对应到真实世界里,距离相机拍摄点的距离值,是图像由二维转换为三维数据的关键桥梁。
3.现在常用的技术手段包括单纯使用相机进行单目深度估计或者双目深度估计,或使用深度相机。伴随近些年深度学习方法的快速发展,涌现出多个基于深度学习的深度估计网络。但由于深度数据集制作难度较大,大多数网络只能依赖少量的开源深度数据集来进行训练,实际的应用能力受到限制,阻碍了相关技术的进步。
4.现有的深度获取的手段包括使用深度相机,使用激光雷达加相机分别获取三维点云和图像。深度相机从精度、分辨率,还有应用场景的范围来看都没有办法做到最大的平衡,而且容易受环境光干扰,特别是太阳光影响问题。激光雷达加相机的形式获取数据的手段更加健壮,在室内室外均适用,但是激光雷达和相机数据的全自动配准融合仍然是领域内的难点。


技术实现要素:

5.为解决激光雷达和相机数据的自动配准的问题,在本发明的第一方面提供了一种图像深度数据集自动标注方法,包括:分别对相机和激光雷达的内外参进行标定;其中,所述相机用于拍摄待标注的一张或多张图像,所述激光雷达用于拍摄每张待标注图像对应的激光点云;将所述激光点云投影到图像坐标系中,得到一张或多张投影图像;通过特征匹配收集每张所述投影图像和待标注图像的同名点集,并根据其解算相机的位姿;根据所述相机的位姿将激光点云重新投影成图像,并计算每张待标注图像对应在重投影后的图像中每个像素的深度。
6.在本发明的一些实施例中,所述将所述激光点云投影到图像坐标系中,得到一张或多张投影图像包括:利用激光雷达的外参对激光点云进行平移和旋转变换;利用相机的内参和外参对转换后的激光点云进行投影变换,投影到图像坐标系;记录激光点云中每个点与图像坐标系的对应关系。
7.在本发明的一些实施例中,所述通过特征匹配收集每张所述投影图像和待标注图像的同名点集包括:提取每张相机图像中的一个或多个特征点kpi,以及每张投影图像中的一个或多个特征点kpp;利用欧式距离和brute-force方法匹配特征点kpi和特征点kpp,得到匹配点对集合matches。
8.进一步的,还包括:根据用ransac随机拟合的方法和变换矩阵fundamentalmat,对
所述匹配点对集合matches进行校正。
9.在本发明的一些实施例中,所述解算相机的位姿包括:根据同名点集和激光点云中每个点与图像坐标系的对应关系,检索待标注图像中的同名点对应的激光点云;利用opencv中的solvepnp方法,求解图像中的每个同名点与对应的激光点云的变换关系。
10.在上述的实施例中,所述分别对相机和激光雷达的内外参进行标定包括:利用张正友棋盘格标定法,标定相机内参;测量相机和激光雷达之间的平移量。
11.本发明的第二方面,提供了一种图像深度数据集自动标注系统,包括:标定模块,用于分别对相机和激光雷达的内外参进行标定;投影模块,用于将所述激光点云投影到图像坐标系中,得到一张或多张投影图像;匹配模块,用于通过特征匹配收集每张所述投影图像和待标注图像的同名点集,并根据其解算相机的位姿;计算模块,用于根据所述相机的位姿将激光点云重新投影成图像,并计算每张待标注图像对应在重投影后的图像中每个像素的深度。
12.在本发明的一些实施例中,所述投影模块包括第一变换单元、第二变换单元和记录单元,所述第一变换单元,用于利用激光雷达的外参对激光点云进行平移和旋转变换;所述第二变换单元,用于利用相机的内参和外参对转换后的激光点云进行投影变换,投影到图像坐标系;所述记录单元,用于记录激光点云中每个点与图像坐标系的对应关系。
13.本发明的第三方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明在第一方面提供的图像深度数据集自动标注方法。
14.本发明的第四方面,提供了一种计算机可读介质,其上存储有计算机程序,其中,所述计算机程序被处理器执行时实现本发明在第一方面提供的图像深度数据集自动标注方法。
15.本发明的有益效果是:
16.1.本发明过标定获得相机内参以及相机和激光雷达的外参初始值,再通过特征匹配收集三维点云和二维图像的同名点集,解算同名点集的位姿变换参数,实现图像和三维点云的对齐,为每个像素值赋予深度信息,自动标注深度数据集;
17.2.本发明基于图像与激光点云配准实现图像深度数据集自动标注的方法。现有的移动测量设备,例如高精度移动测量车,可以同时采集图像和激光点云数据;将图像和激光点云基于特征匹配实现自动配准对齐,打通了三维数据和二维数据的空间连接通道,可以获取到每个像素对应的三维激光扫描点;由于三维激光扫描点相对于扫描仪的距离和角度是可以直接获取的,故而每个像素就有了深度信息。
附图说明
18.图1为本发明的一些实施例中的图像深度数据集自动标注方法的基本流程示意图;
19.图2为本发明的一些实施例中的配准后点云投影到图像上的叠加示意图;
20.图3为本发明的一些实施例中的配准后点云获取图像rgb信息进行着色的前视示意图;
21.图4为本发明的一些实施例中的配准后点云获取图像rgb信息进行着色的俯视示
意图;
22.图5为本发明的一些实施例中的图像深度数据集自动标注系统的结构示意图;
23.图6为本发明的一些实施例中的电子设备的结构示意图。
具体实施方式
24.以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
25.参考图1,在本发明的第一方面,提供了一种图像深度数据集自动标注方法,包括:s100.分别对相机和激光雷达的内外参进行标定;其中,所述相机用于拍摄待标注的一张或多张图像,所述激光雷达用于拍摄每张待标注图像对应的激光点云;s200.将所述激光点云投影到图像坐标系中,得到一张或多张投影图像;s300.通过特征匹配收集每张所述投影图像和待标注图像的同名点集,并根据其解算相机的位姿;s400.根据所述相机的位姿将激光点云重新投影成图像,并计算每张待标注图像对应在重投影后的图像中每个像素的深度。可以理解,上述待标注图像和对应的激光点云,可以通过高精度移动测量车,同时采集图像和激光点云数据。
26.参考图2,在本发明的一些实施例的步骤s200中,所述将所述激光点云投影到图像坐标系中,得到一张或多张投影图像包括:s201.利用激光雷达的外参对激光点云进行平移和旋转变换;s202.利用相机的内参和外参对转换后的激光点云进行投影变换,投影到图像坐标系;s203.记录激光点云中每个点与图像坐标系的对应关系。
27.具体地,s201.使用公式(1)对激光点云进行平移和旋转变换:
[0028][0029]
其中,r表示旋转矩阵,t表示平移矩阵;x、y、z分别表示变换前的激光点云的坐标(世界坐标系),xc、yc、zc分别表示经旋转变换和平移变换后的坐标(车身局部坐标系);
[0030]
s202:使用公式(2)对激光点云进行投影变换:
[0031][0032]
其中u、v表示在图像坐标系(由u轴与v轴构成的平面坐标系)中的坐标,cx、cy表示相机主像点在图像坐标系uv的坐标,fx、fy分别表示相对相机在横轴和竖轴方向的焦距,xc、yc、zc分别表示激光点云在车身局部坐标系的x轴、y轴、z轴的坐标;
[0033]
s203:记录激光点云中每一个点(xc,yc,zc)投影到图像坐标(u,v)(像素坐标系)的对应关系ref。
[0034]
可以理解,相机内参数以矩阵形式排列,可以方便地以紧凑的方式表示针孔相机模型的属性。内参矩阵表示了外部世界的点在经过外参矩阵变换之后,是如何继续经过摄像机的镜头、并通过针孔成像和电子转化而成为像素点的。
[0035]
在本发明的一些实施例的步骤s300中,所述通过特征匹配收集每张所述投影图像和待标注图像的同名点集包括:s301.提取每张相机图像中的一个或多个特征点kpi,以及每张投影图像中的一个或多个特征点kpp;s302.利用欧式距离和brute-force方法匹配特征点kpi和特征点kpp,得到匹配点对集合matches。
[0036]
具体地,s301:将相机图像记为i,对图像i使用kaze特征检测,提取特征点kpi;对投影图像p使用kaze特征检测,提取特征点kpp;s302:采用欧式距离作为标准,使用brute-force方法匹配关键点(特征点)kpi和kpp,得到匹配点对集合matches。可选的,还可采用akaze等特征检测方法提取特征点。
[0037]
进一步的,上述步骤中的匹配点对集合matches可能存在误匹配,因此需要对matches进行校正,故步骤s300还包括:s303.根据用ransac(randomsample consensus,随机抽样一致)随机拟合的方法和变换矩阵fundamentalmat,对所述匹配点对集合matches进行校正。具体地,采用ransac随机拟合的方法,求解匹配点对之间的基础变换矩阵opencv中的fundamentalmat和更为准确的匹配点对集合ransac_matches。可选的,采用求解homography矩阵来校正匹配点对集合matches。
[0038]
在本发明的一些实施例的步骤s300中,所述解算相机的位姿包括:s304.根据同名点集和激光点云中每个点与图像坐标系的对应关系,检索待标注图像中的同名点对应的激光点云;具体地,将ransac_matches对应的原始匹配点对记为kpi0(u,v)和kpp0。将kpp0根据s23中的对应关系ref,检索到对应的激光点云点(xc,yc,zc);
[0039]
s305.利用opencv中的solvepnp方法,求解图像中的每个同名点与对应的激光点云的变换关系。具体地,使用opencv中的solvepnp方法,求解(xc,yc,zc)点集和(u,v)点集之间的变换关系rg和tg。
[0040]
参考图3或图4,在本发明的一些实施例的步骤s400中,根据所述相机的位姿将激光点云重新投影成图像,并计算每张待标注图像对应在重投影后的图像中每个像素的深度包括:
[0041]
s401.根据步骤s200中的变换对激光点云进行平移tg和旋转rg变换,然后对激光点云进行投影变换,记录点云转换为像素的对应关系ref1;
[0042]
s402.对相机图像i中的每一个像素,取ref1中对应的点云点(xc,yc,zc),则该像素到激光扫描仪的深度:
[0043]
dl=sqrt(xc^2+yc^2+zc^2);
[0044]
s403.根据点(xc,yc,zc)、相机拍摄中心点、激光雷达扫描仪中心点三个点构成了三角形,计算该像素到相机拍摄中心的距离dc:
[0045]
在上述的实施例的步骤s100中,所述分别对相机和激光雷达的内外参进行标定包括:利用张正友棋盘格标定法,标定相机内参;测量相机和激光雷达之间的平移量。
[0046]
具体地,s101:使用张正友棋盘格标定法,标定相机内参,包括像主点坐标(cx,cy)、焦距(fx,fy);
[0047]
s102:使用皮尺或其他测量工具测量相机与激光雷达之间的平移量,记录平移量t(dx,dy,dz)。
[0048]
实施例2
[0049]
参考图5,本发明的第二方面,提供了一种图像深度数据集自动标注系统1,包括:
标定模块11,用于分别对相机和激光雷达的内外参进行标定;投影模块12,用于将所述激光点云投影到图像坐标系中,得到一张或多张投影图像;匹配模块13,用于通过特征匹配收集每张所述投影图像和待标注图像的同名点集,并根据其解算相机的位姿;计算模块14,用于根据所述相机的位姿将激光点云重新投影成图像,并计算每张待标注图像对应在重投影后的图像中每个像素的深度。
[0050]
在本发明的一些实施例中,所述投影模块12包括第一变换单元、第二变换单元和记录单元,所述第一变换单元,用于利用激光雷达的外参对激光点云进行平移和旋转变换;所述第二变换单元,用于利用相机的内参和外参对转换后的激光点云进行投影变换,投影到图像坐标系;所述记录单元,用于记录激光点云中每个点与图像坐标系的对应关系。
[0051]
实施例3
[0052]
参考图6,本发明的第三方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明在第一方面的方法。
[0053]
电子设备500可以包括处理装置(例如中央处理器、图形处理器等)501,其可以根据存储在只读存储器(rom)502中的程序或者从存储装置508加载到随机访问存储器(ram)503中的程序而执行各种适当的动作和处理。在ram503中,还存储有电子设备500操作所需的各种程序和数据。处理装置501、rom 502以及ram 503通过总线504彼此相连。输入/输出(i/o)接口505也连接至总线504。
[0054]
通常以下装置可以连接至i/o接口505:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置506;包括例如液晶显示器(lcd)、扬声器、振动器等的输出装置507;包括例如硬盘等的存储装置508;以及通信装置509。通信装置509可以允许电子设备500与其他设备进行无线或有线通信以交换数据。虽然图6示出了具有各种装置的电子设备500,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图6中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
[0055]
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置509从网络上被下载和安装,或者从存储装置508被安装,或者从rom502被安装。在该计算机程序被处理装置501执行时,执行本公开的实施例的方法中限定的上述功能。需要说明的是,本公开的实施例所描述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括
在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、rf(射频)等等,或者上述的任意合适的组合。
[0056]
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个计算机程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:
[0057]
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的实施例的操作的计算机程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++、python,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(lan)或广域网(wan)——连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0058]
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0059]
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1