发明内容
基于此,有必要针对如何克服传统车辆测量方法难以测量大型车辆的问题,提供一种车辆三维参数测量方法及装置。
一种车辆三维参数测量方法,包括:
获取在设定空间直角坐标系下包括车辆和地面的三维点云数据;所述设定空间直角坐标包括第一坐标轴、第二坐标轴和第三坐标轴,其中,所述第一坐标轴与所述车辆的行驶方向平行,所述第二坐标轴与所述第一坐标轴垂直并平行于所述地面,所述第三坐标轴与所述地面垂直;
用第一组平面切割所述三维点云数据得到多个第一轮廓点的坐标,以计算所述车辆的高度;所述第一组平面包括多个相互平行且均与所述第三坐标轴平行的平面;
用第二组平面切割所述三维点云数据得到多个第二轮廓点的坐标,以计算所述车辆的长度;所述第二组平面包括多个相互平行且均与所述第一坐标轴平行的平面;
用第三组平面切割所述三维点云数据得到多个第三轮廓点的坐标,以计算所述车辆的宽度;所述第三组平面包括多个相互平行且均与所述第二坐标轴平行的平面。
在其中一个实施例中,用第一组平面切割所述三维点云数据得到多个第一轮廓点的坐标,以计算所述车辆的高度的步骤包括:
用第一组平面切割所述三维点云数据,得到多个第一轮廓点的坐标;
从所有所述第一轮廓点的坐标中找出地面各点的坐标和车顶各点的坐标;
根据所述地面各点的坐标和所述车顶各点的坐标计算所述车辆的高度。
在其中一个实施例中,用第二组平面切割所述三维点云数据得到多个第二轮廓点的坐标,以计算所述车辆的长度的步骤之前还包括:
将所述三维点云数据进行摆正,以使摆正后的三维点云数据中所述车辆的纵向对称平面平行于由第一坐标轴和第三坐标轴构成的第一平面;
同时,用第二组平面切割所述三维点云数据得到多个第二轮廓点的坐标,以计算所述车辆的长度的步骤为:
用第二组平面切割所述摆正后的三维点云数据得到多个第二轮廓点的坐标,以计算所述车辆的长度;
用第三组平面切割所述三维点云数据得到多个第三轮廓点的坐标,以计算所述车辆的宽度的步骤为:
用第三组平面切割所述摆正后的三维点云数据得到多个第三轮廓点的坐标,以计算所述车辆的宽度。
在其中一个实施例中,将所述三维点云数据进行摆正,以使摆正后的三维点云数据中所述车辆的纵向对称平面平行于由第一坐标轴和第三坐标轴构成的第一平面的步骤包括:
根据所述地面各点的坐标和所述车顶各点的坐标对所述三维点云数据进行滤波,以得到仅包括所述车辆的车辆点云数据;
将所述车辆点云数据投影至平行于地面且由所述第一坐标轴和第二坐标轴构成的第二平面,以得到投影结果;
将所述投影结果在所述第二平面内进行旋转直至所述投影结果中所述车辆的纵向对称平面的投影与所述第一坐标轴平行;
计算所述投影结果共经历的旋转角度;
将所述三维点云数据按所述旋转角度进行旋转,以得到摆正后的三维点云数据。
在其中一个实施例中,用第二组平面切割所述三维点云数据得到多个第二轮廓点的坐标,以计算所述车辆的长度的步骤包括:
用第二组平面切割所述三维点云数据,得到多个第二轮廓点的坐标;
以所述车辆在运行时前进的方向为前方,从所有所述第二轮廓点的坐标中找出车辆前端各轮廓点的坐标和车辆后端各轮廓点的坐标;
根据所述车辆前端各轮廓点的坐标和车辆后端各轮廓点的坐标计算所述车辆的长度。
在其中一个实施例中,用第三组平面切割所述三维点云数据得到多个第三轮廓点的坐标,以计算所述车辆的宽度的步骤包括:
用第三组平面切割所述三维点云数据,得到多个第三轮廓点的坐标;
以所述车辆在运行时前进的方向为前方,从所有所述第三轮廓点的坐标中找出车辆左侧各轮廓点的坐标和车辆右侧各轮廓点的坐标;
根据所述车辆左侧各轮廓点的坐标和所述车辆右侧各轮廓点的坐标计算所述车辆的宽度。
在其中一个实施例中,用第三组平面切割所述三维点云数据得到多个第三轮廓点的坐标,以计算所述车辆的宽度的步骤之后还包括:
在所述摆正后的三维点云数据中,将用于计算所述车辆的高度的所述第一轮廓点、用于计算所述车辆的长度的所述第二轮廓点、用于计算所述车辆的宽度的所述第三轮廓点的颜色信息分别设为第一颜色值、第二颜色值、第三颜色值;所述第一颜色值、第二颜色值、第三颜色值分别对应不同的颜色。
一种车辆三维参数测量装置,包括:
三维点云数据获取模块,用于获取在设定空间直角坐标系下包括车辆和地面的三维点云数据;所述设定空间直角坐标包括第一坐标轴、第二坐标轴和第三坐标轴,其中,所述第一坐标轴与所述车辆的行驶方向平行,所述第二坐标轴与所述第一坐标轴垂直并平行于所述地面,所述第三坐标轴与所述地面垂直;
高度计算模块,用于用第一组平面切割所述三维点云数据得到多个第一轮廓点的坐标,以计算所述车辆的高度;所述第一组平面包括多个相互平行且均与所述第三坐标轴平行的平面;
长度计算模块,用于用第二组平面切割所述三维点云数据得到多个第二轮廓点的坐标,以计算所述车辆的长度;所述第二组平面包括多个相互平行且均与所述第一坐标轴平行的平面;
宽度计算模块,用于用第三组平面切割所述三维点云数据得到多个第三轮廓点的坐标,以计算所述车辆的宽度;所述第三组平面包括多个相互平行且均与所述第二坐标轴平行的平面。
在其中一个实施例中,所述高度计算模块包括:
第一轮廓点获取单元,用于用第一组平面切割所述三维点云数据,得到多个第一轮廓点的坐标;
地面和车顶坐标获取单元,用于从所有所述第一轮廓点的坐标中找出地面各点的坐标和车顶各点的坐标;
高度获取单元,用于根据所述地面各点的坐标和所述车顶各点的坐标计算所述车辆的高度。
在其中一个实施例中,还包括:
摆正模块,用于将所述三维点云数据进行摆正,以使摆正后的三维点云数据中所述车辆的纵向对称平面平行于由第一坐标轴和第三坐标轴构成的第一平面;
同时,所述长度计算模块用于用第二组平面切割所述摆正后的三维点云数据得到多个第二轮廓点的坐标,以计算所述车辆的长度;
所述宽度计算模块用于用第三组平面切割所述摆正后的三维点云数据得到多个第三轮廓点的坐标,以计算所述车辆的宽度。
上述车辆三维参数测量方法及装置具有的有益效果为:其中,首先获取在设定空间直角坐标系下包括车辆和地面的三维点云数据;然后,用第一组平面切割上述三维点云数据得到车辆的多个第一轮廓点的坐标,以计算所述车辆的高度;用第二组平面对上述三维点云数据进行切割得到车辆的多个第二轮廓点的坐标,以计算车辆的长度;用第三组平面对上述三维点云数据进行切割得到车辆的多个第三轮廓点的坐标,以计算车辆的宽度,从而完成对车辆三维参数的测量过程。因此,该车辆三维参数测量方法及装置在获取车辆的三维点云数据后,即可利用该三维点云数据来自动计算车辆的三维参数,能够兼顾小车和大车,扩大了应用范围。
具体实施方式
为了便于理解本发明,下面将参照相关附图对本发明进行更全面的描述。附图中给出了本发明的较佳实施例。但是,本发明可以以许多不同的形式来实现,并不限于本文所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。
除非另有定义,本文所使用的所有的技术和科学术语与属于发明的技术领域的技术人员通常理解的含义相同。本文中在发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
请参考图1,一实施例提供了一种车辆三维参数测量方法,该车辆三维测量方法可以由PC(personal computer,个人计算机)或其他具备数据处理能力的设备来运行,并包括以下步骤。
步骤S100.获取在设定空间直角坐标系下包括车辆和地面的三维点云数据。该设定空间直角坐标包括第一坐标轴、第二坐标轴和第三坐标轴,其中,第一坐标轴与车辆的行驶方向平行,第二坐标轴与第一坐标轴垂直并平行于地面,第三坐标轴与地面垂直。
其中,设定空间直角坐标系的其中一种设置方式请参考图2,包括相互垂直的X轴、Y轴、Z轴,其中X轴为第一坐标轴,Y轴为第二坐标轴,Z轴为第三坐标轴。可以理解的是,在其他实施例中还可以为其他类型的空间直角坐标系。车辆的三维点云数据可以由三维激光扫描仪扫描得出,由于三维激光扫描仪是一种非接触式海量高精度数据的获取工具,因此通过利用三维激光扫描仪来获取与车辆相关的点云数据,可以实现无接触式的测量方式。
另外,若三维激光扫描仪输出的点云数据包括车辆和场景,还可以先对该点云数据进行分割,从而得到上述仅包括车辆和地面的三维点云数据。
步骤S200、用第一组平面切割上述三维点云数据得到多个第一轮廓点的坐标,以计算车辆的高度。其中,第一组平面包括多个相互平行且均与第三坐标轴平行的平面。
其中,车辆的高度是指车辆支撑平面与车辆最高突出部位相抵靠的水平面之间的距离。简单的说,车辆的高度就是指从地面到汽车最高点的距离。在图2中,车辆的高度为a,且车辆的高度由相关轮廓点Z轴坐标值的大小决定。因此,车辆的高度对应线段是指地面与车辆最高点构成的线段,并与第三坐标轴即Z轴平行,故第一组平面中的各平面均与车辆的高度对应线段平行。其中,第一组平面中的各平面例如均为与XOZ平面平行的平面,这时各平面均满足平行于Z轴的条件。
用第一组平面中的各平面对三维点云数据进行切割,相当于用第一组平面中的各平面与三维点云数据求交,从而可以得出各平面与三维点云数据之间相交的各交点的坐标,即各第一轮廓点的坐标。其中,各第一轮廓点为三维点云数据中车辆或地面的轮廓点。
以图2为例,由于第一组平面内的各平面均与Z轴平行,因此切割后得出的所有第一轮廓点中一定包括能够反映车辆轮廓Z轴坐标最大值和最小值的相应轮廓点,例如车顶与地面各点,从而能够根据这些点的坐标来计算车辆的高度。
步骤S400.用第二组平面切割三维点云数据得到多个第二轮廓点的坐标,以计算车辆的长度。其中,第二组平面包括多个相互平行且均与第一坐标轴平行的平面。
其中,车辆的长度是垂直于车辆纵向对称平面并分别抵靠在汽车前、后最外端突出部位的两垂面之间的距离。简单的说,车辆的长度就是指沿着车辆前进方向从车辆最前端到最后端的距离。在图2中,车辆的长度为b,且车辆的长度由车辆最前端的X轴坐标值与车辆最后端的X轴坐标值决定。因此,车辆的长度对应线段是指车辆最前端与最后端构成的线段,并与第一坐标轴即X轴平行,故第二组平面中的各平面均与车辆长度对应的线段平行。其中,第二组平面中的各平面例如均为与XOZ平面平行的平面,这时各平面同样均满足平行于X轴的条件。
用第二组平面中的各平面对三维点云数据进行切割,相当于用第二组平面中的各平面与三维点云数据求交,从而可以得出各平面与三维点云数据之间相交的各交点的坐标,即各第二轮廓点的坐标。其中,各第二轮廓点为三维点云数据中车辆或地面的轮廓点。
以图2为例,由于第二组平面内的各平面均与车辆的长度对应线段平行,即均与X轴平行,因此切割后得出所有第二轮廓点中一定包括能够反映车辆轮廓X轴坐标最大值和最小值的相应轮廓点,例如车辆最前端和最后端的相应轮廓点,从而能够根据这些点的坐标来计算车辆的长度。
步骤S500.用第三组平面切割上述三维点云数据得到多个第三轮廓点的坐标,以计算车辆的宽度。其中,第三组平面包括多个相互平行且均与第二坐标轴平行的平面。
其中,车辆的宽度是指平行于车辆纵向对称平面并分别抵靠车辆两侧固定突出部位的两平面之间的距离。简单的说,车辆的宽度就是指车辆最左侧到最右侧的距离。其中,两侧固定突出部位并不包括后视镜、侧面标志灯、示灯示位灯、转向指示灯、挠性挡泥板、防滑链以及轮胎与地面接触部分的变形。在图2中,车辆的宽度为c,且车辆的宽度由车辆最左侧的Y轴坐标值与车辆最右侧的Y轴坐标值决定。因此,车辆的宽度对应线段是指车辆最左侧与最右侧构成的线段,并与第二坐标轴即Y轴平行,故第三平面中的各平面均与车辆的宽度对应线段平行。其中,第三组平面中的各平面例如均为与YOZ平面平行的平面,这时各平面均满足与Y轴平行的条件。
用第三组平面中的各平面对三维点云数据进行切割,相当于用第三组平面中的各平面与三维点云数据求交,从而可以得出各平面与三维点云数据之间相交的各交点的坐标,即各第三轮廓点的坐标。其中,各第三轮廓点均为三维点云数据中车辆或地面的轮廓点。
以图2为例,由于第三组平面内的各平面均与车辆的宽度对应线段平行,即均与Y轴平行,因此切割后得出的所有第三轮廓点中一定包括能够反映车辆轮廓Y轴坐标最大值和最小值的相应轮廓点,例如车辆最左侧与车辆最右侧的相应轮廓点,从而能够根据这些点的坐标来计算车辆的宽度。
因此,上述车辆三维参数测量方法在获取了车辆的三维点云数据后,即可利用该三维点云数据来自动计算车辆的三维参数,能够兼顾小车和大车,扩大了应用范围,同时能够实现对车辆三维参数的快速自动测量,有效节省了人力、物力,提高了测量工作的效率。
需要说明的是,图1所示的车辆三维参数测量方法中各步骤的执行顺序不限于上述情况,例如步骤S400和步骤S500的顺序还可以调换。
具体的,如图3所示,上述步骤S200的其中一种具体执行方式包括以下内容。
步骤S210.用第一组平面切割上述三维点云数据,得到多个第一轮廓点的坐标。
其中,各第一轮廓点是指第一组平面中的各平面与三维点云数据相交的轮廓点。
步骤S220.从所有上述第一轮廓点的坐标中找出地面各点的坐标和车顶各点的坐标。
步骤S230.根据地面各点的坐标和车顶各点的坐标计算车辆的高度。
由于车辆的高度是指从地面到汽车最高点的距离,因此通过地面各点和车顶各点的Z轴坐标值关系即可计算出车辆的高度,例如将车顶各点中Z轴坐标的最大值减去地面各点的Z轴坐标值即可得出车辆的高度;或者若存在噪声,则先根据各点与周围其他点之间的关系滤掉噪声,然后再利用去除噪声后的车顶各点的坐标与地面各点的坐标来计算车辆的高度。
可以理解的是,步骤S200的具体执行方式不限于上述情况,只要能够根据第一轮廓点计算出车辆的高度即可。
具体的,如图6所示,上述步骤S400的其中一种具体执行方式包括以下内容。
步骤S410.用第二组平面切割上述三维点云数据,得到多个第二轮廓点的坐标。
其中,第二轮廓点是指第二组平面中的各平面与三维点云数据相交的轮廓点。
步骤S420.以车辆在运行时前进的方向为前方,从所有上述第二轮廓点的坐标中找出车辆前端各轮廓点的坐标和车辆后端各轮廓点的坐标。
其中,车辆前端位于车头,车辆后端位于车尾。
步骤S430.根据上述车辆前端各轮廓点的坐标和车辆后端各轮廓点的坐标计算车辆的长度。
由于车辆的长度是指沿着车辆前进方向从车辆最前端到最后端的距离,因此通过上述车辆前端各轮廓点和车辆后端各轮廓点的X轴坐标值关系即可计算出车辆的长度,例如,假设车辆的前进方向与X轴的箭头所指方向相同,则可以将车辆前端各轮廓点中X轴坐标的最大值减去车辆后端各轮廓点中X轴坐标的最小值即可得出车辆的长度;或者若存在噪声,则先根据各轮廓点与周围其他轮廓点之间的关系滤除噪声点,然后再利用去除噪声后的车辆前端各轮廓点的坐标和车辆后端各轮廓点的坐标来计算车辆的长度。
可以理解的是,步骤S400的具体执行方式不限于上述情况,只要能够根据各第二轮廓点计算出车辆的长度即可。
具体的,如图7所示,上述步骤S500的其中一种具体执行方式包括以下内容。
步骤S510.用第三组平面切割上述三维点云数据,得到多个第三轮廓点的坐标。
其中,第三轮廓点是指第三组平面中的各平面与三维点云数据相交的各轮廓点。
步骤S520.以车辆在运行时前进的方向为前方,从所有上述第三轮廓点的坐标中找出车辆左侧各轮廓点的坐标和车辆右侧各轮廓点的坐标。
在图2中,假设车辆的前进方向与X轴的箭头所指方向相同,那么车辆的左侧为远离X轴的一侧,车辆的右侧为靠近X轴的一侧。
步骤S530.根据上述车辆左侧各轮廓点的坐标和车辆右侧各轮廓点的坐标计算车辆的宽度。
由于车辆的宽度是指沿着车辆前进方向从车辆最左端到最右端的距离,因此通过上述车辆左侧各轮廓点和车辆右侧各轮廓点的Y轴坐标值关系即可计算出车辆的宽度,例如,假设车辆的前进方向与X轴的箭头所指方向相同,则可以将车辆左侧各轮廓点中Y轴坐标的最大值减去车辆右侧各轮廓点中Y轴坐标的最小值即可得出车辆的宽度;或者若存在噪声,则先根据各轮廓点与周围其他轮廓点之间的关系滤除噪声点,然后再利用去除噪声后的车辆左侧各轮廓点的坐标和车辆右侧各轮廓点的坐标来计算车辆的宽度。
可以理解的是,步骤S500的具体执行方式不限于上述情况,只要能够根据各第三轮廓点计算出车辆的宽度即可。
进一步的,请参考图4,上述车辆三维参数测量方法的其中一种具体执行方式包括以下内容。
在步骤S400之前还包括:
步骤S300.将上述三维点云数据进行摆正,以使摆正后的三维点云数据中车辆的纵向对称平面平行于由第一坐标轴和第三坐标轴构成的第一平面。
如图2所示,第一坐标轴为X轴,第三坐标轴为Z轴。车辆的纵向对称平面平行于由第一坐标轴和第三坐标轴构成的第一平面,相当于车辆的长度对应线段、宽度对应线段分别与X轴、Y轴平行,图2中车辆的状态即为摆正后的状态。
以设定空间直角坐标系为基准,车辆的实际前进方向可能会相对于原来设定的前进方向发生倾斜,从而影响测量的精确度。例如,图2中设定车辆的前进方向与X轴平行,而在实际情况下,车辆可能会相对于X轴倾斜行驶,从而使得扫描得出的三维点云数据也相应发生了倾斜。因此,图4提供的车辆三维参数测量方法将三维点云数据进行摆正后,可以使摆正后的三维点云数据中车辆的长度对应线段、宽度对应线段依然能够分别与X轴、Y轴平行,进而便于后续测量车辆的长度和宽度。
同时,上述步骤S400为:用第二组平面切割上述摆正后的三维点云数据得到多个第二轮廓点的坐标,以计算车辆的长度。
由于第二组平面中的各平面均与第一坐标轴平行,因此若车辆的前进方向发生倾斜,这时车辆的长度所在线段与X轴之间则会具有一定角度,那么在利用第二组平面中的各平面对三维点云数据进行切割并计算长度时,X轴坐标值最小的第二轮廓点与X轴坐标值最大的第二轮廓点的差值就不是实际车辆的车长,从而影响了计算的精确度。因此,步骤S300先对三维点云数据进行摆正,可以提高测量车辆长度的精确性。
上述步骤S500为:用第三组平面切割上述摆正后的三维点云数据得到多个第三轮廓点的坐标,以计算车辆的宽度。
由于第三组平面中的各平面均与第二坐标轴平行,因此若车辆的前进方向发生倾斜,车辆的宽度所在线段与Y轴之间则会具有一定角度,那么在利用第三组平面中的各平面对三维点云数据进行切割并计算宽度时,Y轴坐标值最小的第三轮廓点与Y轴坐标值最大的第三轮廓点的差值就不是实际车辆的车宽,从而影响了计算的精确度。因此,步骤S300先对三维点云数据进行摆正,可以提高测量车辆宽度的精确性。
具体的,步骤S300的其中一种具体执行方式包括以下内容,请参考图5。
步骤S310.根据图3中步骤S220得出的地面各点的坐标和车顶各点的坐标对三维点云数据进行滤波,以得到仅包括车辆的车辆点云数据。
具体的,该步骤通过地面各点的坐标和车顶各点的坐标可以滤除三维点云数据中的地面各点及其他孤立的点云,其中,孤立的点云例如包括噪声和车身外的杂物等,从而得出仅包括车辆自身的车辆点云数据。
步骤S320.将上述车辆点云数据投影至平行于地面且由第一坐标轴和第二坐标轴构成的第二平面,以得到投影结果。
以图2为例,上述第二平面即为XOY平面。投影结果为二维数据。
步骤S330.将上述投影结果在上述第二平面内进行旋转直至该投影结果中车辆的纵向对称平面的投影与第一坐标轴平行。
其中,车辆的纵向对称平面在第二平面内的投影为直线,当该直线与第一坐标轴平行,代表车辆的位置已经摆正。
步骤S340.计算上述投影结果的旋转角度。
其中,旋转角度是指投影结果由未旋转前至停止旋转时共旋转的角度。
步骤S350.将上述三维点云数据按上述旋转角度进行旋转,以得到摆正后的三维点云数据。
因此,将步骤S100中的三维点云数据按上述旋转角度进行旋转后,即可得到摆正后的三维点云数据,这时车辆的纵向对称平面平行于XOZ平面。
可以理解的是,步骤S300的具体实现方式不限于上述情况,例如若已知所有车辆的前进方向不会发生倾斜,即可无需设置步骤S300。
进一步,上述车辆三维参数测量方法在步骤S500之后还包括以下步骤,请继续参考图4。
步骤S600.在上述摆正后的三维点云数据中,将用于计算车辆的高度的第一轮廓点、用于计算车辆的长度的第二轮廓点、用于计算车辆的宽度的第三轮廓点的颜色信息分别设为第一颜色值、第二颜色值、第三颜色值。其中,第一颜色值、第二颜色值、第三颜色值分别对应不同的颜色。
其中,用于计算车辆的高度的第一轮廓点例如为上述图3中步骤S220得出的地面各点和车顶各点。用于计算车辆的长度的第二轮廓点例如为上述图6中步骤S420得出的车辆前端各轮廓点和车辆后端各轮廓点。用于计算车辆的宽度的第三轮廓点例如为上述图7中步骤S520得出的车辆左侧各轮廓点和车辆右侧各轮廓点。颜色信息是指每一个点的RGB值,修改RGB值,即可改变该点的颜色。故上述第一颜色值、第二颜色值、第三颜色值分别取不同的RGB值,从而对应不同的颜色,例如第一颜色值、第二颜色值、第三颜色值分别对应蓝色、绿色、红色。因此,通过对上述三类轮廓点标注不同的颜色,能够直接显示出与车辆高度、长度、宽度相关的轮廓点,进而能够更直观标识出车辆的三维参数。
另外,为了进一步提高车辆轮廓三维参数的显示效果,还可以在步骤S600中先将摆正后的三维点云数据进行切割,去除地面和孤立的点云,从而得到仅包括车辆的点云数据。之后,在该点云数据中将用于计算车辆的高度的第一轮廓点、用于计算车辆的长度的第二轮廓点、用于计算车辆的宽度的第三轮廓点的颜色信息分别设为第一颜色值、第二颜色值、第三颜色值,从而得到只含车身并带有轮廓标记颜色的车辆三维点云模型,更便于识别车辆的三维参数。
图1、图3至图7为本发明实施例的方法的流程示意图。应该理解的是,虽然图1、图3至图7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图1、图3至图7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
另外,基于上述车辆三维参数测量方法,另一实施例还提供了一种车辆三维参数测量装置,请参考图8。该车辆三维参数测量装置包括:
三维点云数据获取模块100,用于获取在设定空间直角坐标系下包括车辆和地面的三维点云数据。该设定空间直角坐标包括第一坐标轴、第二坐标轴和第三坐标轴,其中,第一坐标轴与车辆的行驶方向平行,第二坐标轴与第一坐标轴垂直并平行于地面,第三坐标轴与地面垂直。
高度计算模块200,用于用第一组平面切割三维点云数据得到多个第一轮廓点的坐标,以计算车辆的高度。第一组平面包括多个相互平行且均与第三坐标轴平行的平面。
长度计算模块400,用于用第二组平面切割三维点云数据得到多个第二轮廓点的坐标,以计算车辆的长度。第二组平面包括多个相互平行且均与第一坐标轴平行的平面。
宽度计算模块500,用于用第三组平面切割三维点云数据得到多个第三轮廓点的坐标,以计算车辆的宽度。第三组平面包括多个相互平行且均与第二坐标轴平行的平面。
具体的,高度计算模块200包括以下内容,请参考图9:
第一轮廓点获取单元210,用于用第一组平面切割上述三维点云数据,得到多个第一轮廓点的坐标。
地面和车顶坐标获取单元220,用于从所有第一轮廓点的坐标中找出地面各点的坐标和车顶各点的坐标。
高度获取单元230,用于根据上述地面各点的坐标和车顶各点的坐标计算车辆的高度。
进一步的,请继续参考图8,车辆三维参数测量装置还包括摆正模块300,用于将上述三维点云数据进行摆正,以使摆正后的三维点云数据中车辆的纵向对称平面平行于由第一坐标轴和第三坐标轴构成的第一平面。
同时,长度计算模块400用于用第二组平面切割摆正后的三维点云数据得到多个第二轮廓点的坐标,以计算车辆的长度;宽度计算模块500用于用第三组平面切割摆正后的三维点云数据得到多个第三轮廓点的坐标,以计算车辆的宽度。
需要说明的是,该实施例提供的车辆三维参数测量装置与上述车辆三维参数测量方法一一对应,其他内容就不再一一赘述。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。