具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的物体外框确定方法,可以应用于如图1所示的应用环境中。在本实施例,以终端102为汽车终端为例,汽车终端通过其激光雷达发射激光束,激光束照射至物体后反射回波信号至激光雷达的接收端,汽车终端基于接收到的回波信号得到物体的点云数据,进一步根据点云数据确定物体的外框,以便精准规避该障碍物。在其他实施例中,终端102可以是任何需要进行物体外框确定的设备,比如,无人机、机器人等。
在一个实施例中,如图2所示,提供了一种物体外框确定方法,以该方法应用于图1中的终端为例进行说明,包括以下步骤:
S202,将物体的点云数据投影至二维坐标平面,获得物体的二维数据点。
其中,点云数据是指包括物体表面采样点的三维坐标的集合。以激光测量为例,激光雷达发射激光束,激光束照射至物体时反射回波信号,激光雷达接收反射的回波信号并进行处理,得到采样点在预设三维坐标系中的点云数据。
本实施例中,建立二维坐标系,将所获得的物体的点云数据投影至已建立的二维坐标系所在平面,获得各点云数据在该二维坐标平面的二维数据点。其中,二维坐标平面中的二维坐标系,可以通过舍弃点云数据所处三维坐标系的其中一维坐标轴(第三维坐标轴)直接得到,也可以在舍弃三维坐标系的第三维坐标轴之后,再结合物体的点云数据重新建立。并且,可以使最小第三维坐标值对应的点云数据位于二维坐标平面中,也即规定二维坐标平面为点云数据中的最小第三维坐标值所处平面,这样做的目的是为了方便后续构建物体外框,如,可以直接以二维坐标平面作为物体外框的底面,在底面的基础上直接利用物体外框高度构建物体外框的其他面,避免在构建物体外框时再计算物体外框的第三维坐标,降低物体外框构建过程的计算复杂度。
当二维坐标平面为结合物体的点云数据建立时,则可以在舍弃三维坐标系的第三维坐标轴之后,将剩下的二维坐标系进行平移处理,使得各点云数据均能够投影至处理后的二维坐标系的同一象限中,以便简化后续的数值处理。比如,在舍弃第三维坐标轴之后,将剩下的二维坐标系进行平移,使各点云数据均能够投影至二维坐标系的第一象限中,可避免二维数据点的坐标值出现负数的情况,便于后续处理。如图8所示,给出了在将原三维坐标系的Z坐标轴舍弃,原三维的点云数据投影至XY二维坐标系中的第一象限的示意图。
S204,根据二维数据点确定物体的主方向。
主方向是指物体的主要朝向。通过对二维数据点进行处理,获取二维数据点的主要聚集方向,将该方向作为物体的主方向。其中,处理方法包括但不限于:霍夫直线检测方法、最小二乘法和主成分分析法。比如,采用霍夫直线检测方法确定经过最多二维数据点的直线方向为主方向;又或者采用最小二乘法对二维数据点进行直线拟合,将拟合的直线方向作为物体的主方向。图9给出了一实施例中的主方向,所确定的主方向为L0直线所在方向,方向角为α。
S206,获取二维数据点投影至两条垂线上的第一边缘投影点,各垂线的方向与主方向垂直,各二维数据点位于两条垂线上或两条垂线之间。
具体地,根据主方向作与主方向垂直的两条垂线,使得各二维数据点位于两条垂线上或两条垂线之间,再将各二维数据点投影至两条垂线上,获得两条垂线上的第一边缘投影点。其中,第一边缘投影点是指二维数据点投影至垂线上的两端的投影点。可以理解,每一条垂线具有两个第一边缘投影点,两条垂线共有四个边缘投影点。如图10所示,L2和L3为方向与主方向垂直的两条垂线,将二维数据点分别投影至L2和L3上,可以得到P1、P2、P3和P4四个第一边缘投影点。
S208,根据第一边缘投影点以及点云数据中的第三维数据,确定物体的外框。
其中,第三维数据是指点云数据中在二维坐标平面垂直方向上的坐标值,或者说,是指点云数据中第三维坐标轴方向上的坐标值(第三维坐标值)。比如,在图8中,第三维数据为点云数据中Z轴方向的坐标值。本实施例中,根据第一边缘投影点以及点云数据中的第三维数据,确定物体外框的顶点,基于所确定的顶点即可获得物体的外框。其中,物体的外框为一个长方体外框,根据第一边缘投影点可确定物体外框其中一个面(以下简称底面)的顶点,结合第三维数据可确定相对的顶面的顶点。
在一实施例中,可将第一边缘投影点作为物体外框底面的顶点,如图10中的P1、P2、P3和P4,能够确保所有二维数据点位于四个第一边缘投影点作为顶点所组成的长方形内,进而保证对应的物体外框内可囊括所有点云数据,并且最小化物体的外框。
在另一实施例中,也可以将两条垂线上与第一边缘投影点相距第一预设距离、且位于二维数据点聚集的反方向上的点作为物体外框底面的顶点,如图11中的P1′、P2′、P3′和P4′。从图11可以看出,基于顶点P1′、P2′、P3′和P4′确定的物体外框,相比于基于第一边缘投影点P1、P2、P3和P4确定的物体外框,能够提供一定的冗余空间,确保物体能完全被外框所包围。其中,第一预设距离可根据对冗余空间的需求大小进行配置,在此不做限定。
由于各二维数据点位于两条垂线上或两条垂线之间,第一边缘投影点为二维数据点投影至垂线上的两端的投影点,因此,能够确保所有二维数据点位于由四个第一投影点所确定的顶点组成的长方形内,进而保证对应的物体外框内可囊括所有点云数据,也即保证物体外框的有效性。
上述物体外框确定方法,通过将点云数据投影至二维坐标平面得到二维数据点,基于二维数据点确定物体的主方向,仅需将二维数据点投影至与主方向垂直、且使得二维数据点均位于两条垂线上或之间的垂线,根据在垂线上的第一边缘投影点以及第三维数据即可快速确定外框的主要特征数据,从而得到物体的外框,有效提高了物体外框的确定效率。
在一实施例中,如图3所示,步骤S206进一步包括:
S302,获取二维数据点投影至第一直线的第二边缘投影点,第一直线的方向与主方向平行。
具体地,根据主方向作一条与之平行的第一直线,第一直线只要满足方向与主方向平行(包括重合)即可。将二维数据点投影至第一直线上,获得第一直线上的第二边缘投影点。其中,第二边缘投影点是指二维数据点投影至第一直线上的两端的投影点。可以理解,第一直线具有两个第二边缘投影点。如图10所示,L1为方向与主方向L0平行的第一直线,将二维数据点投影至垂线上,可以得到H1和H2两个第二边缘投影点。
进一步地,为便于计算第二边缘投影点的坐标,可作一条经过二维坐标系原点的第一直线,以简化第一直线的方程,进而简化第二边缘投影点的坐标的计算过程。如图10中所示的L1。
S304,确定与第一直线垂直、且分别经过任一个第二边缘投影点的两条垂线。
本实施例中,分别过一个第二边缘投影点,作与第一直线垂直的垂线。由于第二边缘投影点有两个,因此,得到的垂线也为两条。并且,由于两条垂线分别过其中一个第二边缘投影点,能够保证所有二维数据点位于两条垂线上或两条垂线之间。
S306,获取二维数据点投影至两条垂线上的第一边缘投影点。
将各二维数据点投影至两条垂线上,获得两条垂线上的第一边缘投影点。由于各二维数据点位于两条垂线上或两条垂线之间,第一边缘投影点为二维数据点投影至垂线上的两端的投影点,因此,能够确保所有二维数据点位于四个第一投影点作为顶点所组成的长方形内,进而保证对应的物体外框内可囊括所有点云数据,并且最小化物体的外框,提高物体的外框的精确度。
在一实施例中,如图4所示,步骤S206进一步包括:
S402,获取二维数据点投影至第一直线的第二边缘投影点,第一直线的方向与主方向平行。
S404,确定与第一直线垂直的两条垂线,第二边缘投影点位于各垂线与第一直线的交点之间。
具体地,根据第二边缘投影点和第二预设距离,确定第一直线及其垂线的两个交点,过交点作与第一直线垂直的两条垂线。其中,第二边缘投影点位于各垂线与第一直线的交点之间,且交点与最近的第二边缘投影点相距第二预设距离。第二预设距离可根据对冗余空间的需求大小进行配置,在此不做限定。在本实施例中,所有二维数据点位于两条垂线之间。
本实施例与图3所示实施例的区别在于:本实施例中第二边缘投影点位于各垂线与第一直线的交点之间,而图3所示实施例中第二边缘投影点即为各垂线与第一直线的交点。如图11所示,第二边缘投影点为H1和H2,而垂线L2′、L3′与第一直线的交点分别为H1′、H2′。这样做的目的是为了给外框包围的范围提供一定的冗余空间,确保物体能完全被外框所包围。
S406,获取二维数据点投影至两条垂线上的第一边缘投影点。
在一实施例中,如图5所示,步骤S208进一步包括:
S502,确定点云数据中第三维数据的最小值和最大值。
S504,根据最小值和最大值,确定物体的外框的高度。
具体地,对点云数据中的第三维数据进行比较,确定第三维数据的最小值和最大值,将最大值与最小值相减,得到物体的外框的高度。
S506,根据第一边缘投影点以及高度,确定物体的外框。
如上所述,根据第一边缘投影点可确定物体外框的底面顶点,再结合所得的高度,即可确定物体的外框。
具体地,步骤S506包括:根据第一边缘投影点以及高度,确定物体的外框的各顶点;根据各顶点,确定物体的外框。
本实施例中,根据第一边缘投影点可确定物体外框的底面顶点,结合所得的高度,确定物体外框的顶面顶点,基于底面顶点和顶面顶点构建物体的外框。如图12所示,将P1、P2、P3和P4作为物体外框的底面顶点,结合高度确定物体外框的顶面顶点P5、P6、P7和P8,由此得到虚线所示的物体外框。其中,外框的各顶点的实际坐标值(也即在点云数据所处的三维坐标系中的坐标值),可根据各顶点在二维坐标系中的坐标值,以及二维坐标系与三维坐标系之间的关系换算得到。
在一实施例中,步骤S202包括:将物体的点云数据在二维坐标平面进行栅格投影,获得物体的二维数据点,并将二维数据点所在的栅格作为有效栅格。
其中,栅格投影是指将点云数据投影至包括栅格的二维坐标平面。如图13所示,将物体的点云数据在二维坐标平面进行栅格投影,获得物体的二维数据点。同时,将二维数据点所在的栅格作为有效栅格,如图13所示的非空白栅格。
进一步地,步骤S204包括:确定经过有效栅格最多的第二直线;根据第二直线的方向确定物体的主方向。
具体地,基于预设的主方向检测方法,确定经过有效栅格最多的第二直线,并根据第二直线的方向确定物体的主方向。如图14所示,第二直线L0经过的有效栅格做多,因此将L0所在方向作为物体的主方向。其中,预设的主方向检测方法包括但不限于霍夫直线检测方法。
其中,当确定的第二直线仅包括一条时,将第二直线的方向作为物体的主方向。进一步地,参照图6,当确定的第二直线包括多条时,根据第二直线的方向确定物体的主方向,包括:
S602,将二维数据点分别投影至各第二直线。
S604,获取各第二直线上的投影长度。
S606,将最大投影长度对应的第二直线的方向作为物体的主方向。
其中,投影长度是第二直线上两端的投影点之间的距离。可以理解,虽然多条第二直线所经过的栅格个数相同,但二维数据点在各第二直线上的投影长度存在不同,本实施例中将最大投影长度对应的第二直线的方向作为主方向。
通过采用栅格投影的方式,能够快速确定物体的主方向,并为后续数据点处理提供条件,提高物体外框确定的效率和精确度。
在一实施例中,如图7所示,一种物体外框确定方法包括以下步骤:
S701,将物体的点云数据在二维坐标平面进行栅格投影,获得物体的二维数据点,并将二维数据点所在的栅格作为有效栅格。
S702,确定经过有效栅格最多的第二直线。
S703,判断第二直线是否包括多条。若是,则执行步骤S705;否则执行步骤S704。
S704,将第二直线的方向作为物体的主方向。继而执行步骤S708。
S705,将二维数据点分别投影至各第二直线。
S706,获取各第二直线上的投影长度。
S707,将最大投影长度对应的第二直线的方向作为物体的主方向。
S708,获取二维数据点投影至第一直线的第二边缘投影点,第一直线的方向与主方向平行。
S709,确定与第一直线垂直、且分别经过任一个第二边缘投影点的两条垂线。
S710,获取二维数据点投影至两条垂线上的第一边缘投影点。
S711,确定点云数据中第三维数据的最小值和最大值。
S712,根据最小值和最大值,确定物体的外框的高度。
S713,根据第一边缘投影点以及高度,确定物体的外框的各顶点。
S714,根据各顶点,确定物体的外框。
上述物体外框确定方法中,通过将点云数据投影至二维坐标平面得到二维数据点,基于二维数据点确定物体的主方向,仅需将二维数据点投影至与主方向垂直、且使得二维数据点均位于两条垂线上或之间的垂线,根据在垂线上的第一边缘投影点以及第三维数据即可快速确定外框的各顶点,有效提高了物体外框的确定效率。由于各二维数据点位于两条垂线上或两条垂线之间,第一边缘投影点为二维数据点投影至垂线上的两端的投影点,因此,能够确保所有二维数据点位于四个第一投影点作为顶点所组成的长方形内,进而保证对应的物体外框内可囊括所有点云数据,并且最小化物体的外框,提高物体的外框的精确度。当物体为障碍物时,根据物体的外框可精准地规避障碍物。
应该理解的是,虽然图2-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图15所示,提供了一种物体外框确定装置1500,包括:二维投影模块1502、主方向确定模块1504、数据点投影模块1506和外框确定模块1508,其中:
二维投影模块1502,用于将物体的点云数据投影至二维坐标平面,获得物体的二维数据点。
具体地,二维投影模块1502建立二维坐标系,将所获得的物体的点云数据投影至已建立的二维坐标系所在平面,获得各点云数据在该二维坐标平面的二维数据点。其中,二维坐标平面中的二维坐标系,可以通过舍弃点云数据所处三维坐标系的其中一维坐标轴(第三维坐标轴)直接得到,也可以在舍弃三维坐标系的第三维坐标轴之后,再结合物体的点云数据重新建立。并且,使最小第三维坐标值对应的点云数据位于二维坐标平面中,也即规定二维坐标平面为点云数据中的最小第三维坐标值所处平面,这样做的目的是为了方便后续构建物体外框。
主方向确定模块1504,用于根据二维数据点确定物体的主方向。
主方向确定模块1504通过对二维数据点进行处理,获取二维数据点的主要聚集方向,将该方向作为物体的主方向。比如,可以采用霍夫直线检测方法,得到主方向;或者,采用最小二乘法对二维数据点进行直线拟合,将拟合的直线方向作为物体的主方向。
数据点投影模块1506,用于获取二维数据点投影至两条垂线上的第一边缘投影点,各垂线的方向与主方向垂直,各二维数据点位于两条垂线上或两条垂线之间。
具体地,根据主方向作与主方向垂直的两条垂线,使得各二维数据点位于两条垂线上或两条垂线之间,再将各二维数据点投影至两条垂线上,获得两条垂线上的第一边缘投影点。
外框确定模块1508,用于根据第一边缘投影点以及点云数据中的第三维数据,确定物体的外框。
本实施例中,根据第一边缘投影点以及点云数据中的第三维数据,确定物体外框的顶点,基于所确定的顶点即可获得物体的外框。
上述物体外框确定装置,通过将点云数据投影至二维坐标平面得到二维数据点,基于二维数据点确定物体的主方向,仅需将二维数据点投影至与主方向垂直、且使得二维数据点均位于两条垂线上或之间的垂线,根据在垂线上的第一边缘投影点以及第三维数据即可快速确定外框的主要特征数据,从而得到物体的外框,有效提高了物体外框的确定效率。
在一实施例中,数据点投影模块1506包括投影子模块和垂线确定模块。其中:
投影子模块,用于获取二维数据点投影至第一直线的第二边缘投影点,第一直线的方向与主方向(包括重合)平行。具体地,根据主方向作一条与之平行的第一直线,第一直线只要满足方向与主方向平行即可。将二维数据点投影至第一直线上,获得第一直线上的第二边缘投影点。
垂线确定模块,用于确定与第一直线垂直、且分别经过任一个第二边缘投影点的两条垂线。本实施例中,分别过一个第二边缘投影点,作与第一直线垂直的垂线。由于第二边缘投影点有两个,因此,得到的垂线也为两条。并且,由于两条垂线分别过其中一个第二边缘投影点,能够保证所有二维数据点位于两条垂线上或两条垂线之间。
进一步地,投影子模块还用于获取二维数据点投影至两条垂线上的第一边缘投影点。通过将各二维数据点投影至两条垂线上,获得两条垂线上的第一边缘投影点。
在一实施例中,垂线确定模块还用于确定与第一直线垂直的两条垂线,第二边缘投影点位于各垂线与第一直线的交点之间。具体地,根据第二边缘投影点和第二预设距离,确定第一直线及其垂线的两个交点,过交点作与第一直线垂直的两条垂线。通过该处理,能够给外框包围的范围提供一定的冗余空间,确保物体能完全被外框所包围。
在一实施例中,外框确定模块1508包括:最值确定模块、高度确定模块和外框确定子模块。其中:
最值确定模块,用于确定点云数据中第三维数据的最小值和最大值。
高度确定模块,用于根据最小值和最大值,确定物体的外框的高度。具体地,对点云数据中的第三维数据进行比较,确定第三维数据的最小值和最大值,将最大值与最小值相减,得到物体的外框的高度。
外框确定子模块,用于根据第一边缘投影点以及高度,确定物体的外框。如上所述,根据第一边缘投影点可确定物体外框的底面顶点,再结合所得的高度,即可确定物体的外框。
具体地,外框确定子模块还用于根据第一边缘投影点以及高度,确定物体的外框的各顶点;根据各顶点,确定物体的外框。
本实施例中,根据第一边缘投影点可确定物体的外框的底面顶点,结合所得的高度,确定物体的外框的顶面顶点,基于底面顶点和顶面顶点构建物体的外框。
在一实施例中,二维投影模块1502还用于将物体的点云数据在二维坐标平面进行栅格投影,获得物体的二维数据点,并将二维数据点所在的栅格作为有效栅格。
主方向确定模块1504进一步包括直线确定模块和主方向确定子模块。其中,直线确定模块,用于确定经过有效栅格最多的第二直线;主方向确定子模块,用于根据第二直线的方向确定物体的主方向。
当确定的第二直线仅包括一条时,主方向确定子模块直接将第二直线的方向作为物体的主方向;当确定的第二直线包括多条时,主方向确定子模块从所有第二直线中确定一条第二直线的方向作为主方向。
具体地,主方向确定子模块,用于将二维数据点分别投影至各第二直线,获取各第二直线上的投影长度,将最大投影长度对应的第二直线的方向作为物体的主方向。
上述物体外框确定装置,通过将点云数据投影至二维坐标平面得到二维数据点,基于二维数据点确定物体的主方向,仅需将二维数据点投影至与主方向垂直、且使得二维数据点均位于两条垂线上或之间的垂线,根据在垂线上的第一边缘投影点以及第三维数据即可快速确定外框的各顶点,有效提高了物体外框的确定效率。由于各二维数据点位于两条垂线上或两条垂线之间,第一边缘投影点为二维数据点投影至垂线上的两端的投影点,因此,能够确保所有二维数据点位于四个第一投影点作为顶点所组成的长方形内,进而保证对应的物体外框内可囊括所有点云数据,并且最小化物体的外框,提高物体的外框的精确度。当物体为障碍物时,根据物体的外框可精准地规避障碍物。
关于物体外框确定装置的具体限定可以参见上文中对于物体外框确定方法的限定,在此不再赘述。上述物体外框确定装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图16所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种物体外框确定方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图16中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
将物体的点云数据投影至二维坐标平面,获得物体的二维数据点;
根据二维数据点确定物体的主方向;
获取二维数据点投影至两条垂线上的第一边缘投影点,各垂线的方向与主方向垂直,各二维数据点位于两条垂线上或两条垂线之间;
根据第一边缘投影点以及点云数据中的第三维数据,确定物体的外框。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取二维数据点投影至第一直线的第二边缘投影点,第一直线的方向与主方向平行;
确定与第一直线垂直、且分别经过任一个第二边缘投影点的两条垂线;
获取二维数据点投影至两条垂线上的第一边缘投影点。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取二维数据点投影至第一直线的第二边缘投影点,第一直线的方向与主方向平行;
确定与第一直线垂直的两条垂线,第二边缘投影点位于各垂线与第一直线的交点之间;
获取二维数据点投影至两条垂线上的第一边缘投影点。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
确定点云数据中第三维数据的最小值和最大值;
根据最小值和最大值,确定物体的外框的高度;
根据第一边缘投影点以及高度,确定物体的外框。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
根据第一边缘投影点以及高度,确定物体的外框的各顶点;
根据各顶点,确定物体的外框。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
将物体的点云数据在二维坐标平面进行栅格投影,获得物体的二维数据点,并将二维数据点所在的栅格作为有效栅格;
确定经过有效栅格最多的第二直线;根据第二直线的方向确定物体的主方向。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
将二维数据点分别投影至各第二直线;
获取各第二直线上的投影长度;
将最大投影长度对应的第二直线的方向作为物体的主方向。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
将物体的点云数据投影至二维坐标平面,获得物体的二维数据点;
根据二维数据点确定物体的主方向;
获取二维数据点投影至两条垂线上的第一边缘投影点,各垂线的方向与主方向垂直,各二维数据点位于两条垂线上或两条垂线之间;
根据第一边缘投影点以及点云数据中的第三维数据,确定物体的外框。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取二维数据点投影至第一直线的第二边缘投影点,第一直线的方向与主方向平行;
确定与第一直线垂直、且分别经过任一个第二边缘投影点的两条垂线;
获取二维数据点投影至两条垂线上的第一边缘投影点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取二维数据点投影至第一直线的第二边缘投影点,第一直线的方向与主方向平行;
确定与第一直线垂直的两条垂线,第二边缘投影点位于各垂线与第一直线的交点之间;
获取二维数据点投影至两条垂线上的第一边缘投影点。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
确定点云数据中第三维数据的最小值和最大值;
根据最小值和最大值,确定物体的外框的高度;
根据第一边缘投影点以及高度,确定物体的外框。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
根据第一边缘投影点以及高度,确定物体的外框的各顶点;
根据各顶点,确定物体的外框。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将物体的点云数据在二维坐标平面进行栅格投影,获得物体的二维数据点,并将二维数据点所在的栅格作为有效栅格;
确定经过有效栅格最多的第二直线;根据第二直线的方向确定物体的主方向。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将二维数据点分别投影至各第二直线;
获取各第二直线上的投影长度;
将最大投影长度对应的第二直线的方向作为物体的主方向。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。