物体体积计算方法、装置、电子设备及存储介质与流程

文档序号:21798283发布日期:2020-08-11 20:50阅读:295来源:国知局
物体体积计算方法、装置、电子设备及存储介质与流程

本申请涉及图像处理技术领域,更具体地,涉及一种物体体积计算方法、装置、电子设备及存储介质。



背景技术:

在实际生活场景中,经常有对物体体积进行计算的需求。通常的计算体积的方式是对物体进行三维建模,需要大量的数据,计算过程复杂,计算效率低。



技术实现要素:

鉴于上述问题,本申请提出了一种物体体积计算方法、装置、电子设备及存储介质,以改善上述问题。

第一方面,本申请实施例提供了一种物体体积计算方法,所述方法包括:获取目标物体在第一视角的至少两个图像以及在第二视角的至少两个图像,所述第一视角为所述目标物体的底面的拍摄视角,所述第二视角为所述目标物体的侧面的拍摄视角;根据所述第一视角的至少两个图像计算所述目标物体的底面积,根据所述第二视角的至少两个图像计算垂直于所述底面的高;根据所述底面积和高计算所述目标物体的体积。

第二方面,本申请实施例提供了一种物体体积计算装置,所述装置包括:图像获取模块,用于获取目标物体在第一视角的至少两个图像以及在第二视角的至少两个图像,所述第一视角为所述目标物体的底面的拍摄视角,所述第二视角为所述目标物体的侧面的拍摄视角;条件计算模块,用于根据所述第一视角的至少两个图像计算所述目标物体的底面积,根据所述第二视角的至少两个图像计算垂直于所述底面的高;体积计算模块,用于根据所述底面积和高计算所述目标物体的体积。

第三方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;存储器;一个或多个程序,其中所述一个或多个程序被存储在所述存储器中并被配置为由所述一个或多个处理器执行,所述一个或多个程序被所述处理器执行用于执行上述的方法。

第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有程序代码,所述程序代码可被处理器调用执行上述的方法。

本申请实施例提供的物体体积计算方法、装置、电子设备及存储介质,根据从目标物体底面拍摄视角拍摄的至少两幅图像计算目标物体的底面积,根据目从目标物体侧面视角拍摄的至少两幅图像计算目标物体的高,从而可以根据获得的底面积和高计算目标物体的体积,计算方式简单,提高计算效率。

附图说明

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

图1示出了本申请一实施例提供的物体体积计算方法的流程图。

图2示出了本申请另一实施例提供的物体体积计算方法的流程图。

图3示出了本申请实施例提供的图像采集示意图。

图4示出了本申请实施例提供的拍摄距离与单位物体面积的对应关系表示意图。

图5示出了本申请实施例提供的单位面积构成图像的示意图。

图6示出了本申请实施例提供的物体体积计算装置的功能模块图。

图7示出了本申请实施例提供的电子设备的结构框图。

图8是本申请实施例的用于保存或者携带实现根据本申请实施例的物体体积计算方法的程序代码的存储单元。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。

在日常生活中,用户可能具有对物体体积进行估算的需求,从而需要测量物体用于计算体积的参数。但是,在有体积估算需求时,用户不一定有合适的测量设备,并且,测量过程以及计算过程也比较麻烦。因此,可以通过手机、pad、智能穿戴设备等电子设备获取物体的图像,根据物体的图像对物体的体积进行估算,从而不需要用户手动测量、计算。

但是,若通过三维建模等方式估算实际形态,根据物体的实际形态计算物体的体积,对用于估算体积的图像需求过多,提高图像拍摄难度,并且计算数据量大,导致计算效率低,无法快速估算,降低用户体验。

因此,本申请实施例提供了一种物体体积计算方法、装置、电子设备及存储介质,底面拍摄视角的至少两幅图像以及侧面拍摄视角的至少两幅图像,计算物体的底面积和高,根据底面积和高即可简单快速估算物体的体积,计算效率高。下面将通过具体实施例对本申请实施例提供的物体体积计算方法、装置、电子设备及存储介质进行详细说明。

请参阅图1,示出了本申请实施例提供的物体体积计算方法。该方法可以应用于手机、pad、智能穿戴设备等电子设备,具体可以由该电子设备的处理器进行执行,在本申请实施例中并不限定。具体的,该方法包括:

步骤s110:获取目标物体在第一视角的至少两个图像以及在第二视角的至少两个图像,所述第一视角为所述目标物体的底面的拍摄视角,所述第二视角为所述目标物体的侧面的拍摄视角。

在本申请实施例中,为了便于描述,定义要计算体积的物体为目标物体。为了提高计算速度,可以根据目标物体的底面积和高对目标物体的体积进行计算,因此,可以获取目标物体的底面的拍摄视角拍摄的至少两个图像,以根据该至少两个图像计算目标物体的底面积;可以获取目标物体的侧面的拍摄视角拍摄的至少两个图像,以根据该至少两个图像计算物体的高。

在本申请实施例中,为了便于描述,定义目标物体的底面的拍摄视角为第一视角。从第一视角拍摄目标物体获得的图像中,包括目标物体的底面的图像。如,目标物体的底面朝上,第一视角拍摄的目标物体的图像为目标物体的俯视图;目标物体的底面朝下,第一视角拍摄的目标物体的图像为目标物体的仰视图。例如,若目标物体为圆柱体,则第一视角拍摄的目标物体的图像中,包括的目标物体的底面轮廓是圆形的;若目标物体为立方体,则第一视角拍摄的目标物体的图像中,包括的目标物体的底面轮廓为矩形的。

在本申请实施例中,定义目标物体的侧面的拍摄视角为第二视角。从第二视角拍摄目标物体获得的图像中,包括目标物体的侧面,该侧面垂直于底面,该侧面的高度可以作为目标物体的高。如,目标物体的底面朝上或朝下,第二视角拍摄的目标物体的图像为目标物体的侧视图。例如,若目标物体为圆柱体,则第二视角拍摄的目标物体的图像中,包括的目标物体的侧面轮廓是矩形的;若目标物体为立方体,则第二视角拍摄的目标物体的图像中,包括的目标物体的侧面轮廓为矩形的。

可以理解的,在本申请实施例中,所描述的底面和侧面的垂直,在实际应用场景中,可能并不一定是绝对的垂直,可以是近乎垂直,即可能存在一定的误差。另外,获得图像中,由于拍摄时相机的倾斜以及物体的摆放位置的倾斜度等原因的影响,目标物体底面可能并不一定为标准的底面视图,目标物体侧面可能并不一定为标准的侧面视图,在有一定的误差的情况下,仍然是可以计算物体体积的。

步骤s120:根据所述第一视角的至少两个图像计算所述目标物体的底面积,根据所述第二视角的至少两个图像计算垂直于所述底面的高。

在第一视角拍摄的至少两个图像中,包括目标物体的底面,因此,可以根据至少两个图像计算目标物体底面的面积,获得目标物体的底面积,该底面积为目标物体的实际底面积,即目标物体本身的底面积。

在第二视角拍摄的至少两个图像中,包括目标物体的侧面,该侧面垂直于目标物体的底面,可以根据第二视角的至少两个图像计算目标物体侧面的高度,从而获得目标物体的高。获得的目标物体的高为目标物体的实际的高,即目标物体本身的高,目标物体的高垂直于目标物体的底面。

步骤s130:根据所述底面积和高计算所述目标物体的体积。

根据底面积和高,结合体积计算公式,即可获得目标物体的体积。

在本申请实施例中,通过第一视角的至少两个图像以及第二视角的至少两个图像,即可获得目标物体的底面积和高,根据底面积和高,可快速计算出目标物体的体积,对数据的需求量下,计算速度快。

本申请另一实施例提供的物体体积计算方法,详细描述了底面积和高的计算方式。具体的,请参见图2,该方法包括:

步骤s210:获取目标物体在第一视角的至少两个图像以及在第二视角的至少两个图像。所述第一视角为所述目标物体的底面的拍摄视角,所述第二视角为所述目标物体的侧面的拍摄视角。

在本申请实施例中,目标物体在第一视角的至少两个图像以及在第二视角的至少两个图像,可以是单目图像,由一个图像采集设备采集,例如,由一个摄像头采集。电子设备用于执行本申请实施例的方法的器件可以获取该图像采集设备采集的图像。例如,电子设备通过处理器执行该物体体积计算方法,则处理器可以从图像采集设备获取图像。

其中,该图像采集设备可以是独立于电子设备的设备。该图像采集设备也可以是电子设备的一部分,即该图像采集设备可以设置于电子设备,与电子设备的处理器以及存储器等器件电性连接,如图像采集设备为设置于电子设备的摄像头。本申请实施例主要以图像采集设备是电子设备的一部分为例进行说明。

可选的,在本申请实施例中,需要拍摄目标物体的图像用于计算物体体积时,可以显示提示信息,提示用户拍摄目标物体的至少两个底面视图,即第一视角的图像,并且提示用户拍摄至少两个侧面视图,即至少两个第二视角的图像。

可选的,在提示用户拍摄目标物体的至少两个底面视图以及拍摄至少两个侧面视图时,提示用户移动电子设备,以使在同一视角拍摄不同图像时,图像采集设备与目标物体的距离不同,获得同一视角下拍摄距离不同的至少两个图像。拍摄距离为图像拍摄时图像采集设备与所述目标物体的距离。

可选的,在本申请实施例中,在获取到用于计算目标物体体积的图像的情况下,也可以提示用户标注哪些图像为第一视角的图像,哪些图像为第二视角的图像。

可选的,在本申请实施例中,在获取到用于计算目标物体体积的图像的情况下,也可以通过图像识别模型,识别哪些图像为第一视角的图像,哪些图像为第二视角的图像。也就是说,可以通过图像识别模型,识别哪些图像为包括目标物体底面的图像,哪些图像为包括目标物体侧面的图像。

其中,图像识别模型可以是预先训练的模型,用于识别图像中的物体,并识别出图像中是物体的侧面还是底面。例如,以大量包括不同物体的图像作为训练样本,在训练样本中标注出那些图像包括的为物体的底面,哪些图像包括的为物体的侧面,通过训练样本对图像识别模型进行训练,使图像识别模型能识别输入的图像中包括的为物体的底面还是物体的侧面。

可选的,在拍摄目标物体的图像时,可以采集电子设备的运动数据,从而可以根据运动数据获得在拍摄不同图像时电子设备的运动轨迹。对应的,图像采集设备设置于电子设备,获得的运动数据也可以作为图像采集设备的运动数据,获得的运动轨迹也可以作为图像采集设备的运动轨迹。其中,该运动数据可以是测量电子设备的姿态以及运动状态的传感器采集到的数据,如惯性测量单元(imu)的陀螺仪以及加速度计等采集到的电子设备的角速度以及加速度等数据。

另外,根据电子设备的运动数据获得的运动轨迹,还可以用于确定不同图像是否为同一视角的图像。如相邻拍摄的两幅图像,若电子设备从拍摄其中一幅图像的位置运动到拍摄另一幅图像的位置,其运动轨迹在图像采集设备的光轴方向,即运动轨迹与光轴平行或近似平行,可以确定两幅图像为同一视角的图像。该近似平行可以是彼此之间的夹角小于预设角度。

另外,根据电子设备的运动数据获得的运动轨迹,还可以用于确定同一视角拍摄的不同图像之间拍摄距离是否不同,即拍摄同一视角的两幅图像时电子设备是否产生位移,从而图像采集设备产生位移。若产生位移,确定两幅图像的拍摄距离不同;若未产生位移,确定两幅图像的拍摄距离相同,选择其中一幅作为该视角下用于计算目标物体提及的图像,即选择一幅图像用作该视角下至少两个图像中的一个。其中,位移为零可以确定为未产生位移,或者位移小于预设位移可以确定为未产生位移。

可选的,在本申请实施例中,若图像采集设备并非电子设备的一部分,电子设备获取到的图像中可以携带图像的视角信息,即图像是第一视角拍摄还是第二视角拍摄。可选的,图像中还可以携带图像采集设备在拍摄不同图像的位置之间的运动数据,或者直接携带不同图像之间的拍摄距离差。

步骤s220:根据所述第一视角的至少两个图像,计算第一视角的第一目标图像的拍摄距离。所述第一目标图像为第一视角拍摄的任意一个图像,所述拍摄距离为图像拍摄时图像采集设备与所述目标物体的距离。

步骤s230:根据所述第二视角的至少两个图像,计算第二视角的第二目标图像的拍摄距离。所述第二目标图像为第二视角拍摄的任意一个图像,所述拍摄距离为图像拍摄时图像采集设备与所述目标物体的距离。

第一视角的至少两个图像的拍摄距离不同,根据第一视角的至少两个图像计算所述目标物体的底面积时,可以根据第一视角的至少两个图像,计算其中任意一个图像的拍摄距离,再根据拍摄距离以及该图像,计算目标物体的底面积。在本申请实施例中,定义第一视角的计算拍摄距离的图像为第一目标图像。

第二视角的至少两个图像的拍摄距离不同,根据第二视角的至少两个图像计算垂直于底面的高时,可以根据第二视角的至少两个图像,计算第二视角的任意一个图像的拍摄距离,再根据拍摄距离以及该图像,计算目标物体的高。在本申请实施例中,定义第二视角的计算拍摄距离的图像为第二目标图像。

在本申请实施例中,根据第一视角的至少两个图像计算第一视角的任意一个图像的拍摄距离,以及根据第二视角的至少两个图像计算第二视角的任意一个图像的拍摄距离,分别为根据同一视角的至少两个图像,计算该视角拍摄的任意一个图像的拍摄距离。

本申请实施例以同一视角拍摄的两幅图像为例,对根据同一视角的至少两个图像,计算该视角拍摄的任意一个图像的拍摄距离进行说明。为了便于描述,定义同一视角不同拍摄距离拍摄的两幅图像分别为第一图像以及第二图像。

其中,可以根据图像采集设备拍摄第一图像以及第二图像的运动数据,计算第一图像的拍摄距离与第二图像的拍摄距离之间的距离差。

在本申请实施例中,第一图像的拍摄距离与第二图像的拍摄距离之间的距离差,可以为图像采集设备从先拍摄的位置移动到后拍摄的位置之间的位移的绝对值,并且,该位移为平行于光轴的位移。例如,第一图像先拍摄,第二图像后拍摄,则该距离差可以确定为从第一图像的拍摄位置运动到第二图像的拍摄位置的位移的绝对值;若第一图像后拍摄,第二图像先拍摄,该距离差可以确定为从第二图像的拍摄位置运动到第一图像的拍摄位置的位移的绝对值。因此,可以根据图像采集设备拍摄第一图像以及第二图像的运动数据,计算图像采集设备从第一图像以及第二图像中先拍摄的位置移动到后拍摄的位置的位移绝对值,作为该第一图像的拍摄距离与第二图像的拍摄距离之间的距离差。

在本申请实施例中,根据运动数据计算位移的具体方式并不限定,例如,根据两个位置之间的加速度以及时间,计算位移。

其中,若图像采集设备设置于电子设备,也可以以电子设备的运动数据作为图像采集设备的运动数据,或者根据电子设备的运动数据计算位移绝对值,作为图像采集设备的位移绝对值。

在一种实施方式中,在获得第一图像以及第二图像的距离差的情况下,可以根据第一图像中目标物体在目标方向上的图像长度、第二图像中目标物体在目标方向上的图像长度以及所述距离差,计算第一图像的拍摄距离或者第二图像的拍摄距离。

在相同拍摄视角下,拍摄的同一物体的不同图像中,随着拍摄距离的变化,物体在图像中的大小按比例变化。随着拍摄距离减小,物体在图像中的大小逐渐增大,拍摄距离与图像大小成反比。因此,可以在两个图像中分别选取对应实际目标物体中的同一长度的图像长度,根据选取的两个图像长度以及距离差计算拍摄距离。例如,在第一图像中选取a’点到b’点之间的长度,在第二图像中选取a”到b”之间的长度,a’点到b’以及a”到b”对应的都是实际目标物体的a点到b点。

可选的,在本申请实施例中,为了更准确选择到对应实际物体的同一长度的图像长度,可以在两个图像中选择相同方向上目标物体的长度,在本申请实施例中,定义选择的方向为目标方向,目标方向为哪一方向在本申请实施例中并不限定。图像中目标物体在目标方向上的长度,可以是目标物体的最长长度,也可以是最长长度的任意比例的长度,并且两个图像选取的比例相同。

其中,选择的方向可以以图像为标准,即以图像坐标系为标准,例如在第一图像以及第二图像中都选择横坐标方向,在第一图像以及第二图像中都选择纵坐标方向,在第一图像以及第二图像中都选择中与横坐标成预设夹角的方向等。

另外,选择的方向也可以以目标物体为标准,例如,图像中目标物体的轮廓为矩形轮廓,可以在两幅图像中都选择矩形的同一长边的延伸方向为目标方向,或者在两幅图像中都选择矩形的同一短边的延伸方向为目标方向,或者都选择目标物体轮廓中相距最远的两个像素点之间连线的延伸方向为目标方向等。能在两个图像中有效选择到对应实际目标物体中同一长度的图像长度即可。

因此,可以对第一图像以及第二图像进行图像分割,获得第一图像以及第二图像中的目标物体,即获得第一图像中目标物体对应的图像部分,获得第二图像中目标物体对应的图像部分,从而可以确定第一图像中目标物体在目标方向上的图像长度,第二图像中目标物体在目标方向上的长度。其中,图像分割确定图像中的目标图像可以通过图像分割算法实现,在此不再赘述。

在第一图像以及第二图像分别对应的拍摄距离中,根据图像长度以及距离差计算较小的拍摄距离的公式可以是:

根据图像长度以及距离差计算较小的拍摄距离的公式可以是:

其中,d1表示第一图像以及第二图像对应的拍摄距离中的较小的拍摄距离,d2表示较大的拍摄距离,d2大于d1,w’1表示较小拍摄距离的图像中选择的图像长度,w’2表示较大拍摄距离的图像中选择的图像长度,d3表示距离差。例如,第一图像的拍摄距离小于第二图像的拍摄距离,则d1表示第一图像的拍摄距离,d2表示第二图像的拍摄距离,d3表示第一图像的拍摄距离与第二图像的拍摄距离之间的距离差,w1表示第一图像中目标物体在目标方向上的图像长度,w2表示第二图像中目标物体在目标方向上的图像长度。

在另一种实施方式中,由于在同一图像采集设备采集的不同图像中,每个像素点所代表的图像大小一致,则不同图像中两个长度比例与该两个长度对应的像素点数量比例一致。而像素点数量的获取较为方便,因此,在该实施方式中,在获得第一图像以及第二图像的距离差的情况下,可以根据第一图像中目标物体在目标方向上的像素点个数、第二图像中目标物体在目标方向上的像素点个数以及所述距离差,计算第一图像的拍摄距离或者第二图像的拍摄距离。

其中,两个图像中目标方向上选取的像素点,为并排排列的像素点,对应的为目标物体中的相同长度。两个图像中目标方向上的像素点个数,表示该方向上并排排列的像素点的数量。并且,用于计算拍摄距离的两个图像中,可以选取目标方向上排列的最长一列像素点个数,或者按相同比例选取的像素点个数,以使选取到对应目标物体中相同长度的像素点。

其中,可以计算较小的拍摄距离的公式可以是:

计算较大的拍摄距离的公式可以是:

其中,如前一实施方式所述,d1表示第一图像以及第二图像对应的拍摄距离中的较小的拍摄距离,d2表示较大的拍摄距离,d2大于d1,w1表示较小拍摄距离的图像中在目标方向上的像素点个数,w2表示较大拍摄距离的图像中在目标方向上的像素点个数,d3表示距离差。例如,第一图像的拍摄距离小于第二图像的拍摄距离,则d1表示第一图像的拍摄距离,d2表示第二图像的拍摄距离,d3表示第一图像的拍摄距离与第二图像的拍摄距离之间的距离差,w1表示第一图像中目标物体在目标方向上的像素点个数,w2表示第二图像中目标物体在目标方向上的像素点个数。

为了便于理解,下面分别对应第一视角和第二视角,对计算拍摄距离进行举例说明。

如图3所示,s1方向为第一视角的方向,即第一视角为目标物体110的底面111的拍摄视角,电子设备120在位置1拍摄获得第一视角的图像一,在位置2拍摄获得第一视角的图像二,位置1对应的拍摄距离为d1,位置2对应的拍摄距离为d2。位置1与位置2之间的距离差为d3,即从位置1运动到位置2或者从位置2移动到位置1,图像采集设备的运动距离为d3。如前所述,根据电子设备或图像采集设备的运动数据,可以计算得到d3。

由于图像采集设备的内参是固定的,并且可以获取到,因此,可以获取到图像采集设备在x方向上的焦距fx以及y方向上的焦距fy,x方向可以是图像的横坐标方向,y方向可以是图像的纵坐标方向,x方向和y方向相互垂直。

由于物体的宽和高是会随着物体距离相机的距离的增加而按照比例减小,本举例中选择x方向为目标方向,可以得到如下算式:

其中,w’1表示图像一中目标物体在x方向上的图像长度,即目标物体在位置1的成像在x方向的长度;w’2表示图像二中目标物体在x方向上的图像长度,即目标物体在位置2的成像在x方向的长度。w表示目标物体在x方向的实际长度,即w’1以及w’2在实际的目标物体中对应的长度。

结合上述算式(1),则可以计算得到

另外,图像一和图像二中目标物体在x方向上的像素点个数可以获知,假设通过w1表示图像一中的目标物体在x方向的像素点数量,w2表示图像二中的目标物体在x方向的像素点数量,那么可以计算出图像一和图像二中在x方向上的像素点的比例:

结合上述算式(1),可以计算得到或者结合上述算式(2)计算得到结合上述算式(3)可以计算得到

如图3所示,s2方向为第二视角的方向,即第二视角为目标物体110的侧面112的拍摄视角,电子设备在位置1’拍摄获得第二视角的图像三,在位置2’拍摄获得第二视角的图像四,位置1’对应的拍摄距离表示为l1,位置2’对应的拍摄距离为l2。位置1’与位置2’之间的距离差为l3,即从位置1’运动到位置2’或者从位置2’移动到位置1’,图像采集设备的运动距离为l3。如前所述,根据电子设备或图像采集设备的运动数据,可以计算得到l3。

由于图像采集设备的内参是固定的,并且可以获取到,因此,可以获取到图像采集设备在x方向上的焦距fx以及y方向上的焦距fy,x方向可以是图像的横坐标方向,y方向可以是图像的纵坐标方向,x方向和y方向相互垂直。

由于物体的宽和高是会随着物体距离相机的距离的增加而按照比例减小,本举例中选择y方向为目标方向,可以得到如下算式:

其中,h’1表示图像三中目标物体在y方向上的图像长度,即目标物体在位置1’的成像在y方向的长度;h’2表示图像四中目标物体在y方向上的图像长度,即目标物体在位置2’的成像在y方向的长度。h表示目标物体在y方向的实际长度,即h’1以及h’2在实际的目标物体中对应的长度。

结合上述算式(4),则可以计算得到

另外,图像三和图像四中目标物体在y方向上的像素点个数可以获知,假设通过h1表示图像三中的目标物体在y方向的像素点数量,h2表示图像四中的目标物体在y方向的像素点数量,那么可以计算出图像三和图像四中在y方向上的像素点的比例:

结合上述算式(4),可以计算得到或者结合上述算式(5)计算得到结合上述算式(6)可以计算得到

从上述两个举例可以确定,根据同一视角的拍摄距离不同的两个图像,以及两个图像的拍摄距离差,可以计算两个图像中任意一个图像的拍摄距离。

另外,在本申请实施例中,在同一视角下根据多个图像计算其中任意一个图像的拍摄距离时,可以按照上述实施方式计算同一图像的多个拍摄距离,根据多个拍摄距离计算一个合适的拍摄距离,如去均值或者取中位值等。例如,同一视角下包括可第一图像、第二图像和第三图像,根据第一图像和第二图像计算第一图像的拍摄距离,根据第一图像和第三图像计算第一图像的拍摄距离,再根据第一图像的两个拍摄距离求均值,获得的拍摄距离作为最后确定的第一图片的拍摄距离。

在本申请实施例中,步骤s220以及步骤s230执行的先后顺序并不限定。

步骤s240:根据所述第一目标图像的拍摄距离,计算所述目标物体的底面积。

第一目标图像为第一视角拍摄的图像中,计算获得拍摄距离的图像,即第一目标图像的拍摄距离根据计算获知。

在本申请实施例中,由于图像采集设备与目标物体的距离不同,拍摄到的图像中,一个单位面积的图像在实际物体中对应的面积不同。因此,可以预先标定,确定距离与单位物体面积的对应关系。单位物体面积为一个单位面积的图像在实际物体中对应的面积。即预先标定图像采集设备与物体在不同的距离时,拍摄获得的图像中,一个单位面积的图像在实际物体中对应的面积。

例如图4所示的距离与单位物体面积的对应关系表中,r表示物体与图像采集设备之间的距离,ar表示物体与图像采集设备之间的距离为r时的单位物体面积,即一个单位面积的图像对应的实际物体的面积。若1个单位面积的图像为1个像素点的图像,图4中表示当物体与图像采集设备之间的距离为r1时,拍摄物体获得的图像中,1个像素点的图像对应实际物体的面积为ar1;当物体与图像采集设备之间的距离为r2时,拍摄物体获得的图像中,1个像素点的图像对应实际物体的面积为ar2。

其中,单位面积大小在本申请实施例中并不限定,该单位面积可以是任意一个面积大小,在本申请实施例并不限定。如单位面积为图像中的1平方厘米,一个单位面积的图像为图像中1平方厘米的图像;单位面积为图像中的1平方毫米,一个单位面积的图像为图像中1平方毫米的图像;单位面积为图像中的1平方微米,一个单位面积的图像为图像中1平方微米的图像;或者单位面积为图像中的1个像素点,一个单位面积的图像为图像中1个像素点的图像;单位面积为n个像素点,n为正整数,一个单位面积的图像为图像中n个像素点的图像。一个单位面积的图像选取在本申请实施例并不限定。例如在图5所示的图像中,每个小方框代表一个单位面积,图像中的每个方框为一个单位面积的图像,如图5中方框1为1个单位面积的图像,方框2为1个单位面积的图像。

在本申请实施例中,在获取到第一目标图像的拍摄距离的情况下,可以根据预先标定的距离与单位物体面积的对应关系,获取第一目标图像的拍摄距离对应的单位物体面积,定义第一目标图像的拍摄距离对应的单位物体面积为目标单位物体面积。目标单位物体面积表示在第一目标图像中,一个单位面积的图像在实际目标物体中对应的面积。

因此,可以确定第一目标图像中目标物体的底面,并且获取该目标物体的底面的单位面积数量。具体可以计算目标物体在第一目标图像中的底面积,再以第一图像中的底面积除以单位面积,获得单位面积数量。或者可选的,单位面积为像素点,可以获取第一目标图像中目标物体的底面的像素点数量,根据像素点数量与单位物体面积的乘积,计算获得目标物体的底面积。

根据目标单位物体面积以及第一目标图像中目标物体的底面的单位面积数量,计算目标物体的底面积。具体可以计算目标单位物体面积与单位面积数量的乘积,获得目标物体的底面积。例如,单位面积为像素点,在第一目标图像中,1个像素点对应实际目标物体的面积为2平方毫米,并且在第一目标图像中目标物体的底面由1000个像素点组成,则目标物体的实际底面积为2*1000=2000平方毫米。

可选的,在本申请实施例中,可以选择1个像素点表示1个单位面积,单位物体面积为图像中1个像素点在实际目标物体中对应的面积。则可以根据预先标定的距离与像素点面积的对应关系,获取所述拍摄距离对应的目标像素点面积,所述像素点面积为一个像素点的图像在实际物体中的面积,目标像素点面积为第一目标图像中1个像素点的图像对应的实际物体面积。根据目标像素点面积以及第一目标图像中目标物体的底面的像素点数量,计算目标物体的底面积。

步骤s250:根据所述第二目标图像的拍摄距离,计算所述目标物体的高。

第二目标图像为第二视角拍摄的图像中,计算获得拍摄距离的图像,即第二目标图像的拍摄距离根据计算获知。

在本申请实施例中,由于图像采集设备与目标物体的距离不同,拍摄到的图像中,一个单位长度的图像在实际物体中对应的长度不同。因此,可以预先标定,确定距离与单位物体长度的对应关系。单位物体长度为图像中一个单位长度在实际物体中对应的长度。即预先标定图像采集设备与物体在不同的距离时,拍摄获得的图像中,一个单位长度在实际物体中对应的长度。

其中,单位长度大小在本申请实施例中并不限定,该单位长度可以是任意一个长度,在本申请实施例并不限定。如单位长度为图像中的1厘米;单位为图像中的1毫米;单位长度为图像中的1微米;或者单位长度为图像中的1个像素点的边长;单位长度为n个像素点的连续排列的长度,n为正整数等。

在本申请实施例中,在获取到第二目标图像的拍摄距离的情况下,可以根据距离与单位物体长度的对应关系,获取第二目标图像的拍摄距离对应的目标单位物体长度,该目标单位长度为第二目标图像的拍摄距离对应的单位物体长度。

并且,可以获取第二目标图像中垂直于底面的方向上单位长度的数量,根据目标单位物体长度以及第二目标图像中目标物体在垂直于底面的方向上的单位长度数量,计算所述目标物体的高。具体可以以单位长度数量乘以目标单位物体长度,获得目标物体的高。其中,可以是在第二目标图像中,获取目标物体垂直于底面的最长高度,除以单位长度,获得单位长度的数量。可选的,若以像素点的边长作为单位长度,则可以获取垂直于底面的方向上,一条最长的线上像素点的数量,作为单位长度数量;或者说获取第二目标图像中,目标物体的垂直于底面的方向上的高对应的像素点数量,作为单位长度数量。

另外,可选的,在本申请实施例中,距离与单位物体长度的对应关系可以通过距离与单位物体面积的对应关系表示,即可以存储距离与单位物体面积的对应关系,在需要获取距离对应的单位物体长度时,根据距离对应的单位物体面积计算。

具体的,可以根据预先标定的距离与单位物体面积的对应关系,获取第二目标图像中拍摄距离对应的目标单位物体面积,如前所述,单位物体面积为一个单位面积的图像在实际物体中对应的面积。再根据目标单位物体面积计算目标单位长度,作为拍摄距离对应的目标单位长度。

其中,单位面积以及单位物体面积可以是正方形面积,根据目标单位物体面积计算目标单位长度时,可以对目标单位物体面积开平方,获得目标单位长度。

例如,像素点为正方形,单位面积为一个像素点在图像中的面积,则可以获取第二目标图像中一个像素点对应的单位物体面积,再对该单位物体面积开平方,获得一个像素点对应的边长,作为第二目标图像的拍摄距离对应的单位物体长度。并且可以以垂直于底面的方向上的像素点数量,作为垂直于底面的方向上的单位长度数量,计算该像素点数量与单位物体长度的乘积,作为目标物体的高。如假设图3所示的物体为目标物体,为预先标定的当图像采集设备与目标物体的距离为d5时,一个像素代表的目标物体的实际面积大小为并且,第二目标图像中,纵坐标方向上目标物体并排的最长一列像素点个数为m,或者说第二目标图像中目标物体的高对应的像素点数量为m,则可以计算获得该目标物体的高度为

在本申请实施例中,步骤s240和步骤s250之间的先后顺序并不限定,步骤s240与步骤s230之间的先后顺序并不限定,步骤s250与步骤s220之间的先后顺序并不限定。

步骤s260:根据所述底面积和高计算所述目标物体的体积。

在本申请实施例中,根据底面积和高,结合体积计算公式,可以计算获得目标物体的面积。

由于不同的几何体,体积计算公式不同。在一种实施方式中,可以提示用户选择目标物体为何种几何体,根据用户选择的几何体类别确定该几何体对应的体积计算公式,并根据该体积计算公式进行计算。例如,用户选择目标物体为圆柱体,则根据圆柱体的体积计算公式进行计算,直接用底面积乘以高;若用户选择该几何体为棱椎体,则根据棱锥体的体积计算公式进行计算。

在另一种实施方式中,可以根据几何体识别模型以及在第一视角或第二视角的图像,识别所述目标物体所属的几何体类别,所述几何体识别模型预先训练,用于识别图像中物体所属的几何体类别。

其中,具体选择第一视角还是第二视角的图像,可以根据训练几何体识别模型时使用的图像确定。例如,主要通过侧视图对几何体识别模型进行训练,则可以选择第二视角的图像用于识别;若主要通过俯视图对结合体识别模型进行训练,则可以选择第一视角的图像用于识别。若训练几何体识别模型的图像包括侧视图和俯视图,则选择任意一个视角的图像,或者第一视角和第二视角各都选择图像用于识别。

识别确定目标物体的几何体类别后,可以根据几何体类别与体积计算公式的对应关系,以及所述底面积和高,计算所述目标物体的体积。即利用该底面积和高,通过体积计算公式进行计算。

可选的,在本申请实施例中,还可以在第一视角获取多个图像的拍摄距离,对应获得多个底面积;在第二视角获得图像的拍摄距离,对应获得多个高。根据多个底面积以及多个高估算目标物体的多个体积,计算多个体积的平均值,作为最后确定的该目标物体的体积,提高鲁棒性以及体积估计的接近准确体积的程度。

在本申请实施例中,通过第一视角的拍摄距离不同的至少两个图像计算目标物体的底面积,通过第二视角的拍摄距离不同的至少两个图像计算目标物体的高,根据底面积和高计算目标物体的体积,实现利用较少的图像以及简单的公式计算物体的体积,计算效率高。

对于柱状的物体,本申请实施例的方法估计体积的准确度较高,对于其他几何体的体积估计,即使估计结果有一定的偏差,但是对于准确率要求不高的场合,本申请实施例的体积计算过程是非常的方便的且快速的。

例如,在一种实际场景中,用户将移动终端镜头朝向物体的底面积拍摄一张图像后,移动终端镜头在当前拍摄方向上前移或者后退一定距离,继续拍摄一张图像,同时移动终端记录运动数据,获得拍摄距离不同且距离差可计算的两张第一视角的图像。再将移动终端镜头朝向物体的侧面拍摄一张图像后,移动终端镜头在当前拍摄方向上前移或者后退一定距离,继续拍摄一张图像,同时移动终端记录运动数据,获得拍摄距离不同且距离差可计算的两张第二视角的图像。在用户完成拍摄后,移动终端即可快速计算出该目标物体的体积。

本申请实施例还提供了一种物体体积计算装置300,如图6所示,该装置300包括:图像获取模块310,用于获取目标物体在第一视角的至少两个图像以及在第二视角的至少两个图像,所述第一视角为所述目标物体的底面的拍摄视角,所述第二视角为所述目标物体的侧面的拍摄视角;条件计算模块320,用于根据所述第一视角的至少两个图像计算所述目标物体的底面积,根据所述第二视角的至少两个图像计算垂直于所述底面的高;体积计算模块330,用于根据所述底面积和高计算所述目标物体的体积。

可选的,第一视角的至少两个图像的拍摄距离不同,条件计算模块320可以用于根据所述第一视角的至少两个图像,计算第一视角的第一目标图像的拍摄距离,所述第一目标图像为第一视角拍摄的任意一个图像,所述拍摄距离为图像拍摄时图像采集设备与所述目标物体的距离;根据预先标定的距离与单位物体面积的对应关系,获取所述拍摄距离对应的目标单位物体面积,所述单位物体面积为一个单位面积的图像在实际物体中对应的面积;根据所述目标单位物体面积以及所述第一目标图像中所述目标物体的底面的单位面积数量,计算所述目标物体的底面积。

可选的,所述第二视角的至少两个图像的拍摄距离不同,条件计算模块320可以用于根据所述第二视角的至少两个图像,计算第二视角的第二目标图像的拍摄距离,所述第二目标图像为第二视角拍摄的任意一个图像,所述拍摄距离为图像拍摄时图像采集设备与所述目标物体的距离;根据距离与单位物体长度的对应关系,获取所述拍摄距离对应的目标单位物体长度,所述单位物体长度为图像中一个单位长度在实际物体中对应的长度;根据所述目标单位物体长度以及所述第二目标图像中所述目标物体在垂直于底面的方向上的单位长度数量,计算所述目标物体的高。

其中,述距离与单位物体长度的对应关系通过距离与单位物体面积的对应关系表示,条件计算模块320可以根据预先标定的距离与单位物体面积的对应关系,获取所述拍摄距离对应的目标单位物体面积,所述单位物体面积为一个单位面积的图像在实际物体中对应的面积;根据所述目标单位物体面积计算所述目标单位物体长度,作为所述拍摄距离对应的目标单位物体长度。

其中,一个单位面积的图像可以为一个像素点的图像。

可选的,条件计算模块320根据同一视角的至少两个图像,计算该视角拍摄的任意一个图像的拍摄距离,可以是根据图像采集设备拍摄第一图像以及第二图像的运动数据,计算所述第一图像的拍摄距离与第二图像的拍摄距离之间的距离差,所述第一图像与所述第二图像为在同一视角不同拍摄距离拍摄的两幅图像;根据第一图像中目标物体在目标方向上的像素点个数、第二图像中目标物体在目标方向上的像素点个数以及所述距离差,计算第一图像的拍摄距离或者第二图像的拍摄距离。

可选的,条件计算模块320可以通过根据如下公式计算第一图像的拍摄距离:或者根据如下公式计算第二图像的拍摄距离:其中,d1表示第一图像的拍摄距离,d2表示第二图像的拍摄距离,d2大于d1,d3表示第一图像的拍摄距离与第二图像的拍摄距离之间的距离差,w1表示第一图像中目标物体在目标方向上的像素点个数,w2表示第二图像中目标物体在目标方向上的像素点个数。

可选,体积计算模块330可以用于根据几何体识别模型以及在第一视角或第二视角的图像,识别所述目标物体所属的几何体类别,所述几何体识别模型预先训练,用于识别图像中物体所属的几何体类别;根据几何体类别与体积计算公式的对应关系,以及所述底面积和高,计算所述目标物体的体积。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述的各个方法实施例之间可以相互参照;上述描述装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,模块相互之间的耦合可以是电性,机械或其它形式的耦合。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。各个模块可以配置在不同的电子设备中,也可以配置在相同的电子设备中,本申请实施例并不限定。

请参考图7,其示出了本申请实施例提供的一种电子设备500的结构框图。该电子设备可以包括一个或多个处理器510(图中仅示出一个),存储器520以及一个或多个程序。其中,所述一个或多个程序被存储在所述存储器520中,并被配置为由所述一个或多个处理器510执行。所述一个或多个程序被处理器执行用于执行前述实施例所描述的方法。

可选的,该电子设备还可以包括惯性测量单元,该惯性测量单元与处理器电性连接,将检测到的电子设备的运动数据发送给处理器。

可选的,该电子设备还可以包括图像采集设备,与处理器以及存储器电性连接。图像采集设备采集的图像可以存储于存储器,处理器可以获得图像采集设备获取的图像。

处理器510可以包括一个或者多个处理核。处理器510利用各种接口和线路连接整个电子设备500内的各个部分,通过运行或执行存储在存储器520内的指令、程序、代码集或指令集,以及调用存储在存储器520内的数据,执行电子设备500的各种功能和处理数据。可选地,处理器510可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器510可集成中央处理器(centralprocessingunit,cpu)、图像处理器(graphicsprocessingunit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器510中,单独通过一块通信芯片进行实现。

存储器520可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory)。存储器520可用于存储指令、程序、代码、代码集或指令集。存储器520可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令、用于实现上述各个方法实施例的指令等。存储数据区还可以电子设备在使用中所创建的数据等。

请参考图8,其示出了本申请实施例提供的一种计算机可读存储介质的结构框图。该计算机可读存储介质700中存储有程序代码,所述程序代码可被处理器调用执行上述方法实施例中所描述的方法。

计算机可读存储介质700可以是诸如闪存、eeprom(电可擦除可编程只读存储器)、eprom、硬盘或者rom之类的电子存储器。可选地,计算机可读存储介质700包括非易失性计算机可读介质(non-transitorycomputer-readablestoragemedium)。计算机可读存储介质700具有执行上述方法中的任何方法步骤的程序代码710的存储空间。这些程序代码可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。程序代码710可以例如以适当形式进行压缩。

最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

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