点云分割方法、装置、电子设备、存储介质和机器人
技术领域
本发明实施例涉及点云领域,特别涉及一种点云分割方法、装置、电子设备、存储介质和机器人。
背景技术
在无人驾驶技术中,为保证无人驾驶设备的正常行进,需要设备对环境具有准确的感知,而设备对环境的感知包括对行进路线上的障碍物,如行人、车辆或静态障碍物等的识别,因此无人驾驶的设备区分行进路线上的地面和非地面是感知行进路线上的障碍物的前提,只有在有效区分地面点和非地面点相对于无人驾驶设备的位置,才能更准确的控制无人驾驶设备的行进。在区分地面点和非地面点时,通过对采集的点云数据进行平面拟合,拟合的平面近似看作无人驾驶设备行进方向上的地面,根据采集的点云数据距离拟合的平面的距离判定各个点云数据为地面点云数据或非地面点云数据,从而实现点云数据中地面点和非地面点的分割。
发明人发现相关技术中至少存在如下问题:由于无人驾驶的设备的应用环境的不同,应用环境的地面并非平坦,在地面凹凸不平时,拟合的平面与实际地面相差较大,导致拟合的平面的误差较大,从而使通过拟合的平面对点云数据进行分割的结果并不准确。
发明内容
本发明实施例的目的在于提供一种点云分割方法、装置、电子设备、存储介质和机器人,降低拟合的误差,从而使点云分割的结果更加准确。
为解决上述技术问题,本发明的实施例提供了一种点云分割方法,包括:通过测距设备获取检测范围内的点云数据;以测距设备为中心,根据预设角度将检测范围内的点云数据划分为多个不同区域的点云数据;分别对各个区域内的点云数据进行线性拟合,得到各个区域的拟合射线;根据各个点云数据与各个点云数据所处区域的拟合射线的距离,将检测范围内的点云数据划分为地面点云数据和非地面点云数据。
本发明的实施例还提供了一种点云分割装置,包括:获取模块,划分模块,拟合模块,分割模块;获取模块用于通过测距设备获取检测范围内的点云数据;划分模块用于以测距设备为中心,根据预设角度将检测范围内的点云数据划分为多个不同区域的点云数据;拟合模块用于分别对各个区域内的点云数据进行线性拟合,得到各个区域的拟合射线;分割模块用于根据各个点云数据与点云数据所在区域的拟合射线的距离,将检测范围内的点云数据划分为地面点和非地面点。
本发明的实施例还提供了一种电子设备,包括:至少一个处理器;以及,与至少一个处理器通信连接的存储器;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行上述的点云分割方法。
本发明的实施例还提供了一种存储介质,存储有计算机程序,计算机程序被处理器执行时上述的点云分割方法。
本发明的实施例还提供了一种机器人,至少包括上述电子设备。
本发明实施例相对于现有技术而言,通过测距设备获取检测范围内的点云数据,获取的点云数据所在的位置分散在测距设备周围。将检测范围内的点云数据以测距设备为中心,以预设角度划分为不同区域的点云数据,并将所划分的每个区域内的点云数据进行线性拟合,得到各个区域的拟合射线,各个区域的拟合射线与测距设备的位置关系可以近似看作地面与测距设备的位置关系,所以根据各个点云数据与点云数据所在区域的拟合射线的距离,即可近似估算各个点云数据距离地面的距离,如果距离较近则该点云数据可能由于地面凹凸不平导致偏离预估的地面高度,该点云数据划分为地面点云数据,反之,如果计算的距离较远则为非地面点云数据。在地面凹凸不平的情况下,拟合射线相较于拟合平面拟合误差较小,根据拟合射线进行点云分割可以在点云数据判定为地面点或非地面点的判断结果更加准确,从而使点云分割效果更好。
另外,根据各个点云数据与各个点云数据所处区域的拟合射线的距离,将检测范围内的点云数据划分为地面点云数据和非地面点云数据,包括:计算点云数据与点云数据所处区域的拟合射线的距离;若距离大于第一预设阈值,则将点云数据作为非地面点云数据;若距离小于或等于第一预设阈值,则将点云数据作为地面点云数据;在将检测范围内所有的点云数据划分为地面点云数据和非地面点云数据之后,完成检测范围内的点云数据的划分。
另外,在分别对各个区域内的点云数据进行线性拟合之前,还包括:若存在点云数据的数量大于第二预设阈值的区域,则对区域内的点云数据进行筛选处理,经筛选处理后的点云数据的数量小于筛选处理前的点云数据的数量。这样做可以在用于线性拟合的点云数据较多的情况下,对点云数据进行筛选,从而降低线性拟合的复杂度,提高拟合效率。
另外,对区域内的点云数据进行筛选处理,包括:根据测距设备与地面的距离,预测区域内的各个点云数据与地面的距离;对区域内的所有点云数据中与地面的距离大于第三预设阈值的点云数据进行删除。这样做将偏离地面高度较大的点删除,降低了线性拟合的误差,提高了线性拟合的准确性。
另外,分别对各个区域内的点云数据进行线性拟合,包括:利用最小二乘法分别对各个区域内的点云数据进行线性拟合。
另外,在通过测距设备获取检测范围内的点云数据之后,在将检测范围内的点云数据划分为多个不同区域的点云数据之前,还包括:获取测距设备的测距光线的发射方向;将发射方向为远离地面的方向的测距光线检测到的点云数据删除;将检测范围内的点云数据划分为多个不同区域的点云数据,包括:将删除点云数据后剩余的检测范围内的点云数据划分为多个不同区域的点云数据。这样做可以将不可能照射到地面的光线对应的点云数据去除,降低对地面进行线性拟合时的拟合误差,提高线性拟合的准确性。
另外,预设角度根据测距设备的分辨率进行设置。测距设备的分辨率表示测距设备采集点云数据的密度,通过测距设备的分辨率设置划分区域的预设角度,可以使划分的各个区域中包含的点云数据近似为一条射线,使拟合射线与测距设备的位置关系更为接近地面与测距设备的位置关系,从而使拟合结果更加准确。
附图说明
一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
图1是根据本发明第一实施例中的点云分割方法的流程图;
图2是根据本发明第一实施例中的点云数据的区域划分的示意图;
图3是根据本发明第二实施例中的点云分割方法的流程图;
图4是根据本发明第三实施例中的点云分割装置的结构示意图;
图5是根据本发明第四实施例中的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合附图对本发明的各实施例进行详细的阐述。然而,本领域的普通技术人员可以理解,在本发明各实施例中,为了使读者更好地理解本申请而提出了许多技术细节。但是,即使没有这些技术细节和基于以下各实施例的种种变化和修改,也可以实现本申请所要求保护的技术方案。
以下各个实施例的划分是为了描述方便,不应对本发明的具体实现方式构成任何限定,各个实施例在不矛盾的前提下可以相互结合相互引用。
本发明的第一实施例涉及一种点云分割方法。包括:通过测距设备获取检测范围内的点云数据;以测距设备为中心,根据预设角度将检测范围内的点云数据划分为多个不同区域的点云数据;分别对各个区域内的点云数据进行线性拟合,得到各个区域的拟合射线;根据各个点云数据与各个点云数据所处区域的拟合射线的距离,将检测范围内的点云数据划分为地面点云数据和非地面点云数据,降低了拟合的误差,从而使点云分割的结果更加准确。下面对本实施例的点云分割方法的实现细节进行具体的说明,以下内容仅为方便理解提供的实现细节,并非实施本方案的必须。
具体流程如图1所示,第一实施例涉及一种点云分割方法,包括:
步骤101,通过测距设备获取检测范围内的点云数据。
具体地说,测距设备安装在移动设备上,例如,测距设备可以安装在机器人、无人驾驶汽车等移动设备上。测距设备在获取点云数据时通过向特定方向发射光线,发射的光线在遇到物体之后返回测距设备,从而检测到物体距测距设备的距离,根据检测到的物体距测距设备的距离生成以测距设备为原点建立的点云坐标系下的点云数据。在实际应用中,为保证获取的点云数据更加准确,可以通过激光雷达发射激光线进行测距,另外,为了丰富获取的点云数据的数量,可以采用多线激光雷达发射多条测距光线,例如十六线激光雷达可以利用不同角度同时发出16条光线,从而获取到16处的点云数据。
在利用测距设备获取检测范围内的点云数据时,可以先对一个方向的物体进行检测,比如移动设备的行进方向上的物体进行检测,获取该方向的点云数据,然后将测距设备的光线发射的方向水平旋转一定角度,例如,将测距设备的检测方向由移动设备的行进方向水平调整预设角度,再次获取调整后方向的点云数据,以此类推,直至测距设备的周围360度方向均完成点云数据的获取,测距设备在360度方向上可以检测的物体范围为检测范围。测距设备每次检测所调整的角度由测距设备的分辨率决定,例如,测距设备的分辨率为0.2度,则每次调整的角度即为0.2度。
另外,在测距设备发射多条光线测量物体的距离时,为满足测距的场景发射光线的方向可能是朝向地面的,也可能是远离地面的情况,例如,十六线激光雷达的上面八束激光束的发射方向为水平面上方,而下面八束激光束的发射方向为水平面下方,在通过测距设备采集点云数据之后,将由远离地面方向的光线采集到的距离生成的点云数据删除,只保留朝向地面方向的光线采集的距离生成的点云数据。将测量到不可能是地面的点云数据优先排除,可以在之后对地面与测距设备的距离进行线性拟合时,使测量的结果更加准确。
步骤102,以测距设备为中心,根据预设角度将检测范围内的点云数据划分为多个不同区域的点云数据。
具体地说,在获取检测范围内的点云数据之后,将所有的点云数据划分为不同区域的点云数据,从而方便之后的线性拟合。在划分区域时,可以测距设备为中心,根据预设角度将检测范围划分为不同区域,从而实现处于不同区域的点云数据的划分。例如,假设检测范围和测距设备的位置如图2所示,区域1即为以测距设备为中心,以预设角度划分的一个区域,区域1内的点云数据划分为该区域下的点云数据。预设角度可以根据测距设备的分辨率进行设置,比如测距设备的分辨率为0.2,则将预设角度设置为0.2度。以同样的方式将检测范围划分为不同的区域,各个区域面积无重叠部分,且各个区域的总面积与检测范围相同,例如,若测距设备的分辨率为0.2,预设角度即为0.2度,则所划分的区域数量为1800个,根据划分的区域即可将检测范围内的点云数据划分为不同区域的点云数据。上述说明中的检测范围的外围轮廓及区域1的划分根据实际情况进行调整,上述说明并未对此做出限制。
在实际应用中,可以根据点云数据中的坐标对点云数据所述区域进行划分,从而区分不同区域的点云数据。例如,根据测距设备的分辨率设置预设角度为0.2度,将检测范围分为1800个不同区域。检测到的点云数据中的点云坐标为(x,y,z),将三维坐标压缩至二维平面坐标(x,y),通过二维平面坐标计算点云数据到x轴正方向的平面夹角θ,根据计算的夹角θ即可确定点云数据所属的区域,从而区分各个点云数据所处的区域,便于在对各区域的点云数据进行拟合时,可以准确的获取到各个区域的点云数据。
步骤103,分别对各个区域内的点云数据进行线性拟合,得到各个区域的拟合射线。
具体地说,将划分的各个区域近似看作一条射线,对划分的区域的点云数据进行线性拟合,得到各个区域的拟合射线,拟合的直线方程如下:y=Ax+B;x,y为点云数据的坐标,A为拟合的射线的斜率;B为拟合的射线的截距。斜率和截距的数值通过最小二乘法进行计算,计算公式如下:
其中,
x
k和y
k为一个区域的第k个点云数据的坐标数据;
和
为这一区域的所有点云数据的坐标的平均值。通过上述公式分别对各个区域进行线性拟合,得到各个区域的拟合射线。
步骤104,根据各个点云数据与各个点云数据所处区域的拟合射线的距离,将检测范围内的点云数据划分为地面点云数据和非地面点云数据。
具体地说,计算各个点云数据与各个点云数据所处区域的拟合射线的距离,计算公式如下:将点云数据与拟合射线的距离通过d来表示,
其中,参数A和B通过上述步骤103中公式计算得到,x
0和y
0表示计算距离的点云数据。通过上述公式分别计算各个区域各个点云数据与相应的拟合射线的距离。如果计算的距离大于第一预设阈值,则说明这一点云数据偏离地面距离较远,该点云数据为非地面点云数据;如果计算的距离小于或等于第一预设阈值,则说明这一点云数据接近地面,将这一点云数据看作地面点云数据。例如,将第一预设阈值设置为0.1米,若计算的距离大于0.1米则认为该点云数据为非地面点云数据,否则为地面点云数据。在完成检测范围内所有的点云数据是否为地面点云数据的划分,即实现了点云中地面点和非地面点的分割。
本发明实施例相对于现有技术而言,通过测距设备获取检测范围内的点云数据,获取的点云数据所在的位置分散在测距设备周围。将检测范围内的点云数据以测距设备为中心,以预设角度划分为不同区域的点云数据,并将所划分的每个区域内的点云数据进行线性拟合,得到各个区域的拟合射线,各个区域的拟合射线与测距设备的位置关系可以近似看作地面与测距设备的位置关系,所以根据各个点云数据与点云数据所在区域的拟合射线的距离,即可近似估算各个点云数据距离地面的距离,如果距离较近则该点云数据可能由于地面凹凸不平导致偏离预估的地面高度,该点云数据划分为地面点云数据,反之,如果计算的距离较远则为非地面点云数据。在地面凹凸不平的情况下,拟合射线相较于拟合平面拟合误差较小,根据拟合射线进行点云分割可以在点云数据判定为地面点或非地面点的判断结果更加准确,从而使点云分割效果更好。
本发明的第二实施例涉及一种点云分割方法。在本发明第二实施例中,若存在点云数据的数量大于第二预设阈值的区域,则对区域内的点云数据进行筛选处理,经筛选处理后的点云数据的数量小于筛选处理前的点云数据的数量,从而降低线性拟合的复杂度,提高拟合效率。具体流程如图3所示,包括:
步骤301,通过测距设备获取检测范围内的点云数据。
步骤302,以测距设备为中心,根据预设角度将检测范围内的点云数据划分为多个不同区域的点云数据。
步骤301和302与第一实施例中步骤101和102一一对应,在此不再赘述。
步骤303,若存在点云数据的数量大于第二预设阈值的区域,则对区域内的点云数据进行筛选处理。
具体地说,如果划分的各个区域的点云数据中,某一区域中点云数据较多,则对该区域的点云数据进行筛选,删除部分点云数据,从而控制用于拟合的点云数据的数量,降低线性拟合过程计算的复杂性,提高拟合效率。例如,通过十六线激光雷达采集的点云数据中,理论上每一个区域的点云数据的数量均为16个,在障碍物高度较高时会导致多个光线检测到同一平面位置的点云数据,从而导致这一区域的点云数据的数量减少。综上所述每个区域内的点云数据的数量是不确定的,可以根据预先设置的第二预设阈值对每个区域内的点云数据的数量进行判断,若数量超过第二预设阈值,则需要对该区域的点云数据进行筛选。第二预设阈值可以通过理论每个区域的点云数据的数量进行设置,例如,十六线激光雷达采集的各个区域的点云数据理论上为16个,排除掉检测方向为远离地面方向的8个点云数据,剩余的8个根据预先设置的比例系数75%计算得到第二预设阈值为6个,即在某一区域的点云数据的数量大于6个时,需要对这一区域的点云数据进行筛选。
在对区域的点云数据进行筛选时,可以优先删除偏离地面高度较大的点。地面高度可以根据测距设备设置在移动设备的位置进行计算,例如,测距设备设置在移动设备距离地面1米的高度上,则地面在以测距设备为中心的点云坐标系下,地面的高度坐标值为-1。根据各个点云数据的点云坐标即可计算得到点云数据距离地面的高度,例如,点云数据的高度坐标为-0.2,则这一点云数据与地面的距离为0.8米,这一点云数据与地面高度相距较远,可以将这一点云数据删除。在对区域的点云数据进行筛选之后,保留下来的点云数据的数量可以是3至4个,保留的点云数据的数量根据测距设备的规格的不同进行调整,在这里不做限制,只需保证通过点云数据进行线性拟合的结果准确且高效。
步骤304,分别对各个区域内的点云数据进行线性拟合,得到各个区域的拟合射线。在对上述区域内的点云数据进行线性拟合时,只需对保留的接近地面距离的点云数据进行线性拟合,较少数量的点云数据提高了线性拟合的效率,另外将偏离地面高度较大的点云数据删除,可以时地面的拟合结果更加准确。
步骤305,根据各个点云数据与各个点云数据所处区域的拟合射线的距离,将检测范围内的点云数据划分为地面点云数据和非地面点云数据。
在本实施例中,若存在点云数据的数量大于第二预设阈值的区域,则对区域内的点云数据进行筛选处理,经筛选处理后的点云数据的数量小于筛选处理前的点云数据的数量。从而可以在用于线性拟合的点云数据较多的情况下,对点云数据进行筛选,降低了线性拟合的复杂度,提高拟合效率。
上面各种方法的步骤划分,只是为了描述清楚,实现时可以合并为一个步骤或者对某些步骤进行拆分,分解为多个步骤,只要包括相同的逻辑关系,都在本专利的保护范围内;对算法中或者流程中添加无关紧要的修改或者引入无关紧要的设计,但不改变其算法和流程的核心设计都在该专利的保护范围内。
本发明第三实施例涉及一种点云分割装置,如图4所示,包括:获取模块41,划分模块42,拟合模块43,分割模块44;获取模块41用于通过测距设备获取检测范围内的点云数据;划分模块42用于以测距设备为中心,根据预设角度将检测范围内的点云数据划分为多个不同区域的点云数据;拟合模块43用于分别对各个区域内的点云数据进行线性拟合,得到各个区域的拟合射线;分割模块44用于根据各个点云数据与点云数据所在区域的拟合射线的距离,将检测范围内的点云数据划分为地面点和非地面点。
不难发现,本实施例为与第一实施方式相对应的系统实施例,本实施例可与第一实施例互相配合实施。第一实施例中提到的相关技术细节在本实施例中依然有效,为了减少重复,这里不再赘述。相应地,本实施例中提到的相关技术细节也可应用在第一实施例中。
另外,点云分割装置的分割模块还包括:计算模块,非地面点模块和地面点模块;计算模块用于计算点云数据与点云数据所处区域的拟合射线的距离;非地面点模块用于在距离大于第一预设阈值时,将点云数据作为非地面点云数据;地面点模块用于在距离小于或等于第一预设阈值,则将点云数据作为地面点云数据。
另外,还包括:筛选模块;筛选模块用于在存在点云数据的数量大于第二预设阈值的区域时,对区域内的点云数据进行筛选处理,经筛选处理后的点云数据的数量小于筛选处理前的点云数据的数量。
另外,筛选模块用于根据测距设备与地面的距离,预测区域内的各个点云数据与地面的距离;对区域内的所有点云数据中与地面的距离大于第三预设阈值的点云数据进行删除。
另外,拟合模块43用于利用最小二乘法分别对各个区域内的点云数据进行线性拟合。
另外,还包括删除模块;删除模块用于获取测距设备的测距光线的发射方向;将发射方向为远离地面的方向的测距光线检测到的点云数据删除;划分模块42用于将删除点云数据后剩余的检测范围内的点云数据划分为多个不同区域的点云数据。
值得一提的是,本实施例中所涉及到的各模块均为逻辑模块,在实际应用中,一个逻辑单元可以是一个物理单元,也可以是一个物理单元的一部分,还可以以多个物理单元的组合实现。此外,为了突出本发明的创新部分,本实施例中并没有将与解决本发明所提出的技术问题关系不太密切的单元引入,但这并不表明本实施例中不存在其它的单元。
本发明第四实施例涉及一种电子设备,如图5所示,包括至少一个处理器501;以及,与至少一个处理器501通信连接的存储器502;其中,存储器502存储有可被至少一个处理器501执行的指令,指令被至少一个处理器501执行,以使至少一个处理器501能够执行上述点云分割方法。
其中,存储器502和处理器501采用总线方式连接,总线可以包括任意数量的互联的总线和桥,总线将一个或多个处理器501和存储器502的各种电路连接在一起。总线还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口在总线和收发机之间提供接口。收发机可以是一个元件,也可以是多个元件,比如多个接收器和发送器,提供用于在传输介质上与各种其他装置通信的单元。经处理器处理的数据通过天线在无线介质上进行传输,进一步,天线还接收数据并将数据传送给处理器501。
处理器501负责管理总线和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节、电源管理以及其他控制功能。而存储器502可以被用于存储处理器501在执行操作时所使用的数据。
本发明第五实施例涉及一种计算机可读存储介质,存储有计算机程序。计算机程序被处理器执行时实现上述方法实施例。
即,本领域技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本发明第六实施例涉及一种机器人,机器人至少包括上述说明中提到的电子设备,可以通过电子设备实现上述点云分割方法。在实际应用中,机器人可以是用于安保巡逻或导航的机器人,机器人的形态可以是汽车形态、机器人形态、或无人机形态等,在此对机器人所处的形态不做限制。
本领域的普通技术人员可以理解,上述各实施例是实现本发明的具体实施例,而在实际应用中,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。