物体测量方法及装置与流程

文档序号:12591086阅读:475来源:国知局
物体测量方法及装置与流程

本申请涉及图像处理的技术领域,特别是涉及一种物体测量方法及装置。



背景技术:

随着网络购物的快速增长,物流行业也随之迅速发展。物流是指物体从供应地至接收地的流动过程,其中,上述过程包括物体的包装、储存以及配送等环节。通常,在物体的配送环节,需根据物体的体积,生成组车策略,从而最大利用配送车辆的货物空间;而在物体的储存环节,则需根据物体的体积为物体分配合适的货位,从而使得仓库的利用率最大。由此可见,在物流的配送和储存环节均需测量物体的体积。

在现有技术中,一般通过人工方式,计算物体的体积,具体如下:首先工作人员利用测量工具(比如皮尺)计量物体的长、宽、高信息;然后利用体积计算公式,计算物体的体积。

由于在大型物流的配送和仓储中心,通常待处理的物体数量较多,而此时如果采用人用的方式计算物体的体积,势必会使得物体在配送和储存环节的处理时间较长,从而影响整个物流过程的正常作业。

申请内容

本申请实施例中提供了一种物体测量方法及装置,以提高物体体积的计算效率,加快物体在配送和储存环节的处理,保证整个物流过程的正常作业。

为了解决上述技术问题,本申请实施例公开了如下技术方案:

本申请公开了一种物体测量方法,包括:获取目标物体的深度图像,所述深度图像由多个像素组成,每个像素中包括所述目标物体的深度信息;

根据所述深度信息,将每个像素在图像坐标系下的二维坐标转换为在世界坐标系下的三维坐标,所述深度图中所有像素在世界坐标系下的三维坐标组成三维点云;

利用所述三维点云和预设算法,获得所述目标物体的底面方程和顶面方程,所述底面方程为所述目标物体的底面在世界坐标系构成的方程,所述顶面方程为所述目标物体的顶面在世界坐标系构成的方程;

根据所述底面方程以及顶面方程,计算所述目标物体的长、宽以及高。

可选的,根据所述深度信息,将每个像素在图像坐标系下的二维坐标转换为在世界坐标系下的三维坐标,包括:

根据所述深度信息,将深度图中的每个像素在图像坐标系下的二维坐标转换为在摄像机坐标系下的三维坐标;

将所述深度图中的每个像素在摄像机坐标系下的三维坐标转换为在世界坐标系下的三维坐标。

可选的,所述预设算法为RANSAC算法,利用三维点云和预设算法,获得所述目标物体的底面方程和顶面方程,包括:

步骤a:调用RANSAC算法,对所述三维点云运算,获得所述目标物体的底面方程;

步骤b:在所述三维点云中,删除所述底面方程相关联的三维坐标;

步骤c:调用RANSAC算法,对删除三维坐标后的三维点云运算,获得所述目标物体的一平面方程;

步骤d:判断所述平面方程与底面方程的夹角是否位于预设阈值区间;

步骤e1:如果所述夹角位于预设阈值区间,则确定所述平面方程为顶面方程;

步骤e2:如果所述夹角不位于预设阈值区间,则在所述三维点云中删除所述平面方程相关联的三维坐标,返回所述步骤c继续循环执行。

可选的,根据所述底面方程以及顶面方程,计算所述目标物体的长、宽以及高,包括:

计算所述顶面方程所表示平面至所述底面方程所表示平面的距离,作为所述目标物体的高;

判断利用所述三维点云是否能获取所述目标物体的至少两个侧面方程;

如果能,利用所述顶面方程与侧面方程相交的直线方程,获得所述目标物体的长和宽;

如果不能,获得所述顶面方程所表示平面的长和宽,作为所述目标物体的长和宽。

可选的,所述利用顶面方程与侧面方程相交的直线方程,获得所述目标物体的长和宽,包括:

获得所述顶面方程与第一侧面方程相交的第一直线方程,计算所述第一直线方程上多个三维坐标互相之间的距离,将所述距离中最大的值作为所述目标物体的长;以及

获得所述顶面方程与第二侧面方程相交的第二直线方程,计算所述第二直线方程上多个三维坐标互相之间的距离,将所述距离中最大的值作为所述目标物体的宽。

可选的,所述获得所述顶面方程所表示平面的长和宽,作为所述目标物体的长和宽, 包括:

获得所述顶面方程所表示平面的第一边界直线方程,计算所述第一边界直线方程上多个三维坐标互相之间的距离,将所述距离中最大的值作为所述目标物体的长;以及

获得所述顶面方程所表示平面的第二边界直线方程,计算所述第二边界直线方程上多个三维坐标互相之间的距离,将所述距离中最大的值作为所述目标物体的宽。

可选的,其特征在于,所述方法还包括:

对于三维点云中每个坐标点,计算所述坐标点当邻居数目等于预设邻居数目时的邻阈值,所述邻阈值是指坐标点附近一定距离内的区域;

对所有坐标点所计算出的邻阈值求平均,获得邻阈平均值;

依次判断在三维点云中的每个坐标点所计算出的邻阈值是否大于所述邻阈平均值;

确定邻阈值大于所述邻阈平均值的坐标点为噪点,且在三维点云中删除所述噪点。

可选的,所述预设邻居数目为如下之一:10个、20个、30个、40个、50个、60个;以及

对所有坐标点所计算出的邻阈值求平均包括:对所有坐标点所计算出的邻阈值求算术平均,以得到所述邻阈平均值。

可选的,所述方法还包括:

根据所述目标物体的长、宽以及高,计算所述目标物体的体积,所述体积被计算为:体积=长*宽*高。

本申请还公开了一种物体测量装置,包括:

第一获取模块,用于获取目标物体的深度图像,所述深度图像由多个像素组成,每个像素中包括所述目标物体的深度信息;

转换模块,用于根据所述深度信息,将每个像素在图像坐标系下的二维坐标转换为在世界坐标系下的三维坐标,所述深度图中所有像素在世界坐标系下的三维坐标组成三维点云;

获得模块,用于利用所述三维点云和预设算法,获得所述目标物体的底面方程和顶面方程,所述底面方程为所述目标物体的底面在世界坐标系下构成的方程,所述顶面方程为所述目标物体的顶面在世界坐标系下构成的方程;

长宽高计算模块,用于根据所述底面方程以及顶面方程,计算所述目标物体的长、宽以及高。

可选的,所述转换模块包括:

第一转换单元,用于根据所述深度信息,将深度图中的每个像素在图像坐标系下的二维坐标转换为在摄像机坐标系下的三维坐标;

第二转换单元,用于将所述深度图中的每个像素在摄像机坐标系下的三维坐标转换为在世界坐标系下的三维坐标。

可选的,所述获得模块包括:

第一运算单元,用于调用RANSAC算法,对所述三维点云运算,获得所述目标物体的底面方程;

第一删除单元,用于在所述三维点云中,删除所述底面方程相关联的三维坐标;

第二运算单元,用于调用RANSAC算法,对删除三维坐标后的三维点云运算,获得所述目标物体的一平面方程;

第一判断单元,用于判断所述平面方程与底面方程的夹角是否位于预设阈值区间;

确定单元,用于当所述夹角位于所述预设阈值区间时,确定所述平面方程为顶面方程;

第二删除单元,用于在所述三维点云中,删除所述平面方程相关联的三维坐标。

可选的,所述长宽高计算模块包括:

计算单元,用于计算所述顶面方程所表示平面至所述底面方程所表示平面的距离,作为所述目标物体的高;

第二判断单元,用于判断利用所述三维点云是否能获取所述目标物体的至少两个侧面方程;

第一获得单元,用于在能获取所述目标物体的侧面方程时,利用所述顶面方程与侧面方程相交的直线方程,获得所述目标物体的长和宽;

第二获得单元,用于在不能获取所述目标物体的侧面方程时,获得所述顶面方程所表示平面的长和宽,作为所述目标物体的长和宽。

可选的,所述第一获得单元,包括:

第一获得子单元,用于获得所述顶面方程与第一侧面方程相交的第一直线方程;

第一计算子单元,用于计算所述第一直线方程上多个三维坐标互相之间的距离,将所述距离中最大的值作为所述目标物体的长;

第二获得子单元,用于获得所述顶面方程与第二侧面方程相交的第二直线方程;

第二计算子单元,用于计算所述第二直线方程上多个三维坐标互相之间的距离,将所述距离中最大的值作为所述目标物体的宽。

可选的,所述第二获得单元包括:

第三获得子单元,用于获得所述顶面方程所表示平面的第一边界直线方程;

第三计算子单元,用于计算所述第一边界直线方程上多个三维坐标互相之间的距离,将所述距离中最大的值作为所述目标物体的长;

第四获得子单元,用于获得所述顶面方程所表示平面的第二边界直线方程;

第四计算子单元,用于计算所述第二边界直线方程上多个三维坐标互相之间的距离,将所述距离中最大的值作为所述目标物体的宽。

可选的,所述装置还包括:

邻阈值计算模块,用于对于三维点云中每个坐标点,计算所述坐标点当邻居数目等于预设邻居数目时的邻阈值,所述邻阈值是指坐标点附近一定距离内的区域;

平均计算模块,用于对所有坐标点所计算出的邻阈值求平均,获得邻阈平均值;

判断模块,用于依次判断在三维点云中的每个坐标点所计算出的邻阈值是否大于所述邻阈平均值;

删除模块,用于将邻阈值大于所述邻阈平均值的坐标点确定为噪点,且在三维点云中删除所述噪点。

可选的,所述装置还包括:

体积计算模块,用于根据所述目标物体的长、宽以及高,计算所述目标物体的体积,所述体积被计算为:体积=长*宽*高。

可选的,所述物体测量装置进一步耦合到一目标物体图像获取装置,以获得所述目标物体的深度图像,所述目标物体图像获取装置包括:

摄像机,

摄像机支架,以及

底座;所述目标物体被放置于所述底座上,

其中,所述摄像机的放置位置高于所述目标物体,以使得所述摄像机可拍摄到所述目标物体的顶面。

由以上技术方案可见,在本申请实施例中,首先获取目标物体的深度图像;然后利用深度图像的深度信息,将深度图像中每个像素在图像平面坐标系下的二维坐标转换为 在世界坐标系下的三维坐标,且所述深度图像中所有像素在世界坐标系下的三维坐标,组成所述深度图像的三维点云;再然后利用所述三维点云和预设算法,获取所述目标物体的底面方程和顶面方程以及根据所述底面方程以及顶面方程,计算所述目标物体的长、宽以及高,而利用目标物体的长、宽以及高,即可获取目标物体的体积。由上可见,采用上述方法及装置,相比于人工计算目标物体体积的方式,提高了目标物体体积的计算效率,从而加快目标物体在配送和储存环节的处理,保证整个物流过程的正常作业。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例所公开的物体测量方法的一流程示意图;

图2为本申请实施例所公开的物体测量方法的一流程示意图;

图3为本申请实施例所公开的图像坐标系、摄像机坐标系以及世界坐标系的对应关系示意图;

图4为本申请实施例所公开的物体测量方法的另一流程示意图;

图5为本申请实施例所公开的物体测量方法的又一流程示意图;

图6为本申请实施例所公开的目标物体的示意图;

图7为本申请实施例所公开的物体测量方法的另一流程示意图;

图8为本申请实施例所公开的获取目标物体图像装置的一示意图;

图9为本申请实施例所公开的物体测量装置的一结构示意图;

图10为本申请实施例所公开的物体测量方法的又一流程示意图;

图11为本申请实施例所公开的三维点云的示意图。

具体实施方式

本申请提供一种物体测量方法及装置,以提高目标物体体积的计算效率,加快目标物体在配送和储存环节的处理,保证整个物流过程的正常作业。

首先对本申请实施例所提供的物体测量方法进行说明,如图1所示,该方法至少包括:

步骤S11:获取目标物体的深度图像,所述深度图像由多个像素组成,每个像素中包括所述目标物体的深度信息;

在本申请实施例中,可利用深度摄像机直接采集目标物体的深度图像;也可利用普通摄像机采集目标物体的常规图像;然后再对常规图像进行处理(比如立体视觉等方式),获得目标物体的深度图像。

在本申请实施例中,所述深度图像的像素值可表示所述深度信息,所述深度信息可具体为目标物体与采集摄像机的距离。

步骤S12:根据所述深度信息,将每个像素在图像坐标系下的二维坐标转换为在世界坐标系下的三维坐标,所述深度图中所有像素在世界坐标系下的三维坐标组成三维点云;

在本申请实施例中,所述图像坐标系具体是以摄像机的光心为原点,所建立的二维平面直角坐标系;所述世界坐标系具体是以摄像机光轴和图像平面的交点为原点,所建立的三维坐标系;所述世界坐标系为绝对坐标系,用于描述目标物体的绝对位置。

在本申请实施例中,三维点云可具体如图11所示,利用三维点云中的坐标可清楚表示目标物体(即图11中的凸起部分)和地面(即图11中的大面积平面)。

步骤S13:利用所述三维点云和预设算法,获得所述目标物体的底面方程和顶面方程,所述底面方程为所述目标物体的底面在世界坐标系下所构成的方程,所述顶面方程为所述目标物体的顶面在世界坐标系下所构成的方程;

步骤S14:根据所述底面方程以及顶面方程,计算所述目标物体的长、宽以及高。

由上可见,在本申请实施例中,首先获取目标物体的深度图像;然后利用深度图像的深度信息,将深度图像中每个像素在图像平面坐标系下的二维坐标转换为在世界坐标系下的三维坐标,且所述深度图像中所有像素在世界坐标系下的三维坐标,组成所述深度图像的三维点云;再然后利用所述三维点云和预设算法,获取所述目标物体的底面方程和顶面方程以及根据所述底面方程以及顶面方程,计算所述目标物体的长、宽以及高,而利用目标物体的长、宽以及高,即可获取目标物体的体积。由上可见,采用上述方法及装置,相比于人工计算目标物体体积的方式,提高了目标物体体积的计算效率,从而加快目标物体在配送和储存环节的处理,保证整个物流过程的正常作业。

在本申请的另一可行实施例中,如图2所示,上述所有实施例中的步骤S12可包括:

步骤S21:根据所述深度信息,将深度图中的每个像素在图像坐标系下的二维坐标转换为在摄像机坐标系下的三维坐标;

在本申请实施例中,所述摄像机坐标系是以摄像机的光心为原点,所建立的三维坐标系,所述摄像机坐标系的X轴和Y轴分别与图像坐标系的U轴和V轴平行,Z轴为摄像机光轴。在本申请实施例中,图像坐标系、摄像机坐标系与世界坐标系之间的对应关系,可参见图3所示。

在本申请实施例中,假设图像平面坐标系(U-V坐标系)的原点O1,在摄像机平面坐标系(X—Y坐标系)下的坐标为(u0,v0),那么深度图像中任一像素在U-V坐标系和X—Y坐标系的转换关系为:

用齐次矩阵表示上述方程(1),可得到:

对矩阵方程(2)进行逆变换,可得到:

在本申请实施例中,假设深度图像中一像素在图像坐标系下的坐标为P(x,y),在摄像机坐标系下的坐标为P(XC,YC,ZC),在世界坐标系下的坐标为P(XW,YW,ZW),那么将P(x,y)转换为P(XC,YC,ZC)的具体过程如下:

A1:根据图像坐标系与摄像机坐标系的对应关系,可得到:

其中,f表示P(x,y)坐标所对应像素的深度;

B1:用齐次方程,表示上述方程(4)可得到:

C1:将上述方程(3)代入到方程(5)中可得到:

D1:对方程(6)进行变换可得到:

采用上述方程(7)即可把像素在图像坐标系下的二维坐标P(x,y)转换为像素在摄像机坐标系下的三维坐标P(XC,YC,ZC)。

步骤S22:将所述深度图中的每个像素在摄像机坐标系下的三维坐标转换为在世界坐标系下的三维坐标。

在本申请实施例中,将P(XC,YC,ZC)转换为P(XC,YC,ZC)的具体过程如下:

A2:用平移向量t和旋转矩阵R,表示摄像机与世界坐标系的对应关系:

其中,R为3*3的正交单位矩阵,t为三维平移向量;

B2:将方程(8)中的代入至方程(7)中的得到:

其中,

采用上述方程(9)即可把像素在摄像机坐标系下的坐标P(XC,YC,ZC)转换为像素在世界坐标系下的三维坐标P(XW、YW、ZW)。

由上可见,在本申请实施例中,可首先将深度图中每个像素在图像坐标系下的二维坐标转换为在摄像机坐标系下的三维坐标,然后,再将每个像素在摄像机坐标系下的三维坐标转换为在世界坐标系下的三维坐标。

在本申请实施例中,上述所有实施例中的预设算法可具体为RANSAC(RANdom SAmple Consensus)算法;如图4所示,上述所有实施例中的步骤S13可包括:

步骤S41:调用RANSAC算法,对所述三维点云运算,获得所述目标物体的底面方程;

在本申请实施例中,RANSAC算法,将按照下述流程对三维点云进行运算:

首先取三维点云中任两个三维坐标,建立一平面方程;然后,再判断三维点云中其它三维坐标,与所述平面方程是否相关联;如果相关联,利用所述三维坐标调整所述平面方程;最终,获得的平面方程所表示的平面为深度图像中面积最大、覆盖三维坐标最多的平面。由于在深度图像的实际采集过程中,目标物体一般放置在一平面上,因此,可确定面积较大、覆盖三维坐标最多的平面即为目标物体的底面。

步骤S42:在所述三维点云中,去除属于所述地面的点,即,删除所述底面方程相关联的三维坐标;

在本申请实施例中,可具体在三维点云中,删除所述底面方程所构成平面覆盖的三维坐标。

步骤S43:调用RANSAC算法,对删除三维坐标后的三维点云进行运算,获得所述目标物体的一平面方程;

在本申请实施例中,调用RANSAC算法,对删除三维坐标后的三维点云进行运算,获得的为目标物体中除底面外另一覆盖面较最大、覆盖三维点云最多的平面;由于在实际应用中,并不能确定当前平面是否为目标物体的顶面,因此采用步骤S44,来判断当 前平面方程所表示的平面是否为目标物体的顶面。

步骤S44:判断所述平面方程与底面方程的夹角是否位于第一预设阈值区间;如果位于,执行步骤S45,否则执行步骤S46;

在本申请实施例中,所述第一预设阈值区间为[-5度,+5度]。理论上,底面方程平行于顶面方程,两者的夹角应为0度,但在实际计算中发现,夹角的大小与平面的表现是有误差的,因此设置第一预设阈值区间为[-5度,+5度]。

在本申请实施例中,可首先各自确定上述平面方程与底面方程的法线,然后求出两法线的夹角,即为所述平面方程与底面方程的夹角。

步骤S45:确定所述平面方程为顶面方程;

步骤S46:所述三维点云中,去除属于所述平面的点,即,删除所述平面方程相关联的三维坐标,然后循环执行步骤S43。

在本申请实施例中,如果所获得的平面方程不是目标物体的顶面方程,可在三维点云中去掉这些点,即删除所述平面方程相关联的三维坐标,然后继续调用RANSAC算法,对三维点云进行运算,直至获取目标物体的顶面方程为止。

由上可见,采用上述方法,可确定目标物体的底面方程与顶面方程。

在本申请的又一可行实施例中,如图5所示,上述所有实施例中的步骤S14可包括:

步骤S51:计算所述顶面方程所表示平面至所述底面方程所表示平面的距离,作为所述目标物体的高;

由于在实际应用中,目标物体的底面是由零散的三维坐标点构建成的凹凸不平平面,因此,为了增加准确度,可首先求出目标物体的顶面中所有三维坐标点至底面方程的距离,然后再对所述距离求均值,作为所述目标物体的高。但由于采用上述方式来计算目标物体的高,所花费的计算量较大,因此为了提高计算效率,可采用先对目标物体顶面的三维坐标点进行采样,再求三维坐标点至底面方程距离的方式,计算目标物体的高。

步骤S52:判断利用所述三维点云是否能获取所述目标物体的至少两个侧面方程;如果是,执行步骤S53,否则执行步骤S54;

在本申请实施例中,具体的,可首先调用RANSAC算法,对三维点云进行运算,获得一平面方程;然后判断该平面方程与底面方程是否为正交,即,两者的夹角是否为90度(可进一步实现为如上所述的预设阈值区间[-85度,+95度],或实现为其他较佳正交 角度),如果正交,则确定所述平面方程为侧面方程;如果不正交,则在三维点云中删除侧面方程相关联的三维坐标,并继续执行调用RANSAC算法,对删除三维坐标后的三维点云进行运算,直至获得至少两个侧面方程或者三维云中不存在三维坐标为止。

步骤S53:利用所述顶面方程与侧面方程相交的直线方程,获得所述目标物体的长和宽;

为了获取所述目标物体的长和宽,需要在目标物体的深度图像采集过程中至少采集到目标物体的两个侧面(如图6中的阴影所示),而目标物体的顶面与两个侧面相交的直线实际上为两条,分别为图6中所示的直线1与直线2。在本申请实施例中,在获得了直线1与直线2之后,可采用下述方式,获得目标物体的长和宽:

获得所述顶面方程与第一侧面方程相交的第一直线方程(可为直线1对应的方程),计算所述第一直线方程上多个三维坐标互相之间的距离,将所述距离中最大的值作为所述目标物体的长(或者作为宽);以及

获得所述顶面方程与第二侧面方程相交的第二直线方程(可为直线2所对应的方程),计算所述第二直线方程上多个三维坐标互相之间的距离,将所述距离中最大的值作为所述目标物体的宽(或者作为长)。

步骤S54:获得所述顶面方程所表示平面的长和宽,作为所述目标物体的长和宽。

在本申请实施例中,理论上,利用一个顶面方程可以得到4条边界直线方程,但在一个实施方式中,为了简化起见,只需使用所述顶面方程的任意两条相交的边界直线方程,这两条相交的边界直线方程被认为是界定了顶面方程所表示平面的长和宽。在一个实施方式中,具体的步骤如下:

获得所述顶面方程所表示平面的第一边界直线方程,计算所述第一边界直线方程上多个三维坐标互相之间的距离,将所述距离中最大的值作为所述目标物体的长(或作为宽);以及

获得所述顶面方程所表示平面的第二边界直线方程,计算所述第二边界直线方程上多个三维坐标互相之间的距离,将所述距离中最大的值作为所述目标物体的宽(或作为长)。

由上可见,在本申请实施例中,可确定目标物体的长和宽。

本领域技术人员会认识到,由于采集摄像机本身的精度以及环境干扰等因素,通过深度图像所获得的三维点云中不可避免的会引入一些噪点。因此,在本申请的另一可行实施例中,可进一步通过处理,以去除三维点云中的噪点。本领域中具有多种对三维点 云进行去噪处理的方法。

在一个较佳实施例中,本申请根据三维点云中坐标点的邻接关系来进行去噪处理。在由深度摄像机所形成的三维点云中,某一个坐标点a周围的坐标点,可以被认为是这个坐标点a的“邻居”。“邻阈”是一个坐标点的附近一定距离内的区域,在该区域内该点可以具有多个“邻居”。

由于三维点云中的每个坐标点都可以被视为是与其他所有的坐标点具有不同距离的邻居关系。因此,对于某个坐标点a,可以计算出当其恰好具有N(N为正整数)个邻居时的邻阈的值。在一个示例性描述中,举例而言,当坐标点a具有最近的100个邻居时,100个邻居中最远方的一个邻居与坐标点a的距离为20个坐标单位,则可以认为:这100个邻居都在坐标点a的邻阈值20的范围内。

基于该情况,如图7所示,本申请中所公开的所有实施例中的方法可包括:

步骤S71:对于三维点云中每个坐标点,计算该坐标点当其邻居数目等于预设邻居数目时的邻阈值,所述预设邻居数目可以根据实际情况来设定,例如,根据研究,可以将所述预设邻居数目设定为10个、20个、30个、40个、50个、或60个,其中,取30个、40个、50个为较佳值;

步骤S72:对上述所有坐标点的所计算的邻阈值求平均,获得邻阈平均值;

在本申请实施例中,可具体求上述所有坐标点的所计算的邻阈值的算术平均值,比如,所有三个坐标点的邻阈值分别为10、20、30,那么邻阈平均值的计算可具体为:(10+20+30)/3=20。

步骤S73:依次判断三维点云中,每个坐标点的所计算的邻阈值是否大于所述邻阈平均值;如果大于,执行步骤S74;否则,结束流程;

步骤S74:确定所述坐标点为噪点,并在三维点云中删除所述噪点。

在本申请的另一可行实施例中,如图10所示,还可包括:

步骤S15:根据所述目标物体的长、宽以及高,计算所述目标物体的体积,所述体积被计算为:体积=长*宽*高;

由上可见,采用本申请实施例所公开的方法,还可计算目标物体的体积。通过以上的方法实施例的描述,所属领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指 令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

本申请还提供了一种获取目标物体图像的装置,如图8所示,所述装置,包括摄像机、摄像机支架以及底座;其中,目标物体可放置于底座上,摄像机的放置位置高于目标物体,以使得摄像机可拍摄到目标物体的顶面。

在实际应用中,当所述摄像机为深度摄像机时,利用所述装置可直接获取目标物体的深度图像;而当所述摄像机为普通摄像机时,还需对该装置所获得的图像进行进一步处理,才可获取目标物体的深度图像。

在本申请实施例中,该装置的底座可具体用传送带代替。

与本申请提供的物体测量方法实施例相对应的,本申请还提供了一种物体测量装置,所述物体测量装置可具体实现在硬件中,比如摄像机的处理器、计算理的处理器以及移动终端的处理器等,也可以实现在部署在远程的以网络进行通信的远程服务器或客户端上。该物体测量装置与图8所示的获取目标物体图像的装置连接,或通过网络等方式与图8所示的获取目标物体图像的装置远程通信,以接收到所采集到的目标物体的深度图像。如图9所示,所述物体测量装置至少包括:

第一获取模块91,用于获取目标物体的深度图像,所述深度图像由多个像素组成,每个像素中包括所述目标物体的深度信息;

转换模块92,用于根据所述深度信息,将每个像素在图像坐标系下的二维坐标转换为在世界坐标系下的三维坐标,所述深度图中所有像素在世界坐标系下的三维坐标组成三维点云;

获得模块93,用于利用所述三维点云和预设算法,获得所述目标物体的底面方程和顶面方程,所述底面方程为所述目标物体的底面在世界坐标系下所构成的方程,所述顶面方程为所述目标物体的顶面在世界坐标系下所构成的方程;

长宽高计算模块94,用于根据所述底面方程以及顶面方程,计算所述目标物体的长、宽以及高。

由上可见,在本申请实施例中,首先获取目标物体的深度图像;然后利用深度图像的深度信息,将深度图像中每个像素在图像平面坐标系下的二维坐标转换为在世界坐标系下的三维坐标,且所述深度图像中所有像素在世界坐标系下的三维坐标,组成所述深 度图像的三维点云;再然后利用所述三维点云和预设算法,获取所述目标物体的底面方程和顶面方程以及根据所述底面方程以及顶面方程,计算所述目标物体的长、宽以及高;进而可计算目标物体的体积。由上可见,采用上述方法及装置,相比于人工计算物体体积的方式,提高了物体体积的计算效率,从而加快物体在配送和储存环节的处理,保证整个物流过程的正常作业。

在本申请的另一可行实施例中,上述所有实施例中的转换模块92包括:

第一转换单元,用于根据所述深度信息,将深度图中的每个像素在图像坐标系下的二维坐标转换为在摄像机坐标系下的三维坐标;

第二转换单元,用于将所述深度图中的每个像素在摄像机坐标系下的三维坐标转换为在世界坐标系下的三维坐标。

由上可见,在本申请实施例中,可将深度图中的每个像素在图像坐标系下的二维坐标转换为在世界坐标系下的三维坐标。

在本申请的另一可行实施例中,上述所有实施例中的获得模块93可包括:

第一运算单元,用于调用RANSAC算法,对所述三维点云运算,获得所述目标物体的底面方程;

第一删除单元,用于在所述三维点云中,删除所述底面方程相关联的三维坐标;

第二运算单元,用于调用RANSAC算法,对删除三维坐标后的三维点云运算,获得所述目标物体的一平面方程;

第一判断单元,用于判断所述平面方程与底面方程的夹角是否位于预设阈值区间;

确定单元,用于当所述夹角位于所述预设阈值区间时,确定所述平面方程为顶面方程;

第二删除单元,用于在所述三维点云中,删除所述平面方程相关联的三维坐标。

由上可见,采用上述装置,可确定目标物体的底面方程和顶面方程。

在本申请的另一可行实施例中,上述所有实施例中的长宽高计算模块94可包括:

计算单元,用于计算所述顶面方程所表示平面至所述底面方程所表示平面的距离,作为所述目标物体的高;

第二判断单元,用于判断利用所述三维点云是否能获取所述目标物体的至少两个侧面方程;

第一获得单元,用于在能获取所述目标物体的侧面方程时,利用所述顶面方程与侧面方程相交的直线方程,获得所述目标物体的长和宽;

在本申请实施例中,所述第一获得单元,包括:第一获得子单元,用于获得所述顶面方程与第一侧面方程相交的第一直线方程;第一计算子单元,用于计算所述第一直线方程上多个三维坐标互相之间的距离,将所述距离中最大的值作为所述目标物体的长;第二获得子单元,用于获得所述顶面方程与第二侧面方程相交的第二直线方程;第二计算子单元,用于计算所述第二直线方程上多个三维坐标互相之间的距离,将所述距离中最大的值作为所述目标物体的宽。

第二获得单元,用于在不能获取所述目标物体的侧面方程时,获得所述顶面方程所表示平面的长和宽,作为所述目标物体的长和宽。

在本申请实施例中,所述第二获得单元,包括:第三获得子单元,用于获得所述顶面方程所表示平面的第一边界直线方程;第三计算子单元,用于计算所述第一边界直线方程上多个三维坐标互相之间的距离,将所述距离中最大的值作为所述目标物体的长;第四获得子单元,用于获得所述顶面方程所表示平面的第二边界直线方程;第四计算子单元,用于计算所述第二边界直线方程上多个三维坐标互相之间的距离,将所述距离中最大的值作为所述目标物体的宽。

由上可见,采用上述装置,可计算目标物体的长、宽、高。

在本申请的另一可行实施例中,上述所有实施例中的装置还可包括:

邻阈值计算模块,用于对于三维点云中每个坐标点,计算所述坐标点当邻居数目等于预设邻居数目时的邻阈值,所述邻阈值是指坐标点附近一定距离内的区域;

平均计算模块,用于对所有坐标点所计算出的邻阈值求平均,获得邻阈平均值;

判断模块,用于依次判断三维点云中,每个坐标点所计算出的邻阈值是否大于所述邻阈平均值;

删除模块,用于确定邻阈值大于所述邻阈平均值的坐标点为噪点,且在三维点云中删除所述噪点。

由上可见,采用上述装置,可删除三维点云中的噪点。

在本申请的另一可行实施例中,上述所有实施例中的装置还可包括:

体积计算模块,用于根据所述目标物体的长、宽以及高,计算所述目标物体的体积,所述体积被计算为:体积=长*宽*高。

由上可见,采用本申请的装置,还可计算目标物体的体积。

需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1