动物体体重检测方法、装置、设备及存储介质

文档序号:49542 发布日期:2021-09-28 浏览:22次 >En<

阅读说明:本技术 动物体体重检测方法、装置、设备及存储介质 (Animal body weight detection method, device, equipment and storage medium ) 是由 周雅玲 彭显明 杨小平 于 2020-03-24 设计创作,主要内容包括:本申请实施例公开了一种动物体体重检测方法、装置、设备及存储介质。该动物体体重检测方法包括:根据待测动物体的目标深度图,获取目标区域的目标三维点云,所述目标区域是指所述目标深度图中承载所述待测动物体的区域;根据所述目标三维点云确定所述待测动物体的目标体积;根据所述目标体积和所述目标深度图,确定所述待测动物体的体重。本申请实施例中可以通过图像测量出动物体的体重,省去了搬运动物体进行称重的过程,提高了动物体体重的检测精度。(The embodiment of the application discloses a method, a device, equipment and a storage medium for detecting the body weight of an animal. The method for detecting the body weight of the animal comprises the following steps: acquiring a target three-dimensional point cloud of a target area according to a target depth map of an object to be detected, wherein the target area is an area bearing the object to be detected in the target depth map; determining the target volume of the animal body to be detected according to the target three-dimensional point cloud; and determining the weight of the animal body to be detected according to the target volume and the target depth map. The weight of the animal body can be measured through the image in the embodiment of the application, the process of carrying the animal body to weigh is omitted, and the detection precision of the animal body weight is improved.)

动物体体重检测方法、装置、设备及存储介质

技术领域

本申请实施例涉及计算机视觉

技术领域

,具体涉及一种动物体体重检测方法、装置、设备及存储介质。

背景技术

在实际生活中,经常需要测量物体的体重。为了避免采用传统测量工具测量体重需要将物体搬运至测量工具上,而导致的体重测量过程繁杂的问题,目前可以基于体积与密度相乘得到体积的原理,检测出物体的体积,进而确定物体的体重。

但是有的物体为不规则形状的物体,不容易准确测量出其体积,容易导致体重检测不准确。且不同物体的密度存在个体差异,若采用统一标准的密度确定不同的物体的体重,容易导致较大的体重测量误差。

例如,动物体的体形一般均为不规则的,动物体的体积较难准确地测量出来,并且不同动物体的密度会因为其生活环境、年龄等因素而导致较大的个体差异。

由此可见,为了准确地检测出动物体的体重,较难避免动物体的搬运过程。

发明内容

本申请实施例提供一种动物体体重检测方法、装置、设备及存储介质,可以通过图像测量出动物体的体重,省去搬运动物体进行称重的过程,提高动物体体重的检测精度。

一方面,本申请实施例提供一种动物体体重检测方法,所述方法包括:

根据待测动物体的目标深度图,获取目标区域的目标三维点云,所述目标区域是指所述目标深度图中承载所述待测动物体的区域;

根据所述目标三维点云确定所述待测动物体的目标体积;

根据所述目标体积和所述目标深度图,确定所述待测动物体的体重。

在本申请的一些实施例中,所述根据所述目标三维点云确定所述待测动物体的目标体积,包括:

根据所述目标三维点云获取目标多面体;

根据所述目标多面体和所述目标三维点云,确定所述待测动物体的目标体积。

在本申请的一些实施例中,所述根据所述目标三维点云获取目标多面体,包括:

从所述目标三维点云中获取多个第一目标点;

根据所述各个第一目标点确定初始多面体,其中,所述第一目标点为所述初始多面体的顶点;

遍历剩余三维点云的各点,若检测到第二目标点处于所述初始多面体外,则根据所述第二目标点迭代更新所述初始多面体,得到目标多面体,所述剩余三维点云是指所述目标三维点云中,除所述第一目标点外的点的集合,所述第二目标点是指所述剩余三维点云中的点。

在本申请的一些实施例中,所述根据所述目标多面体和所述目标三维点云,确定所述待测动物体的目标体积,包括:

根据所述目标三维点云确定所述目标多面体的三维点云;

将所述目标多面体投影至参考平面得到目标点云,所述参考平面是指与所述目标多面体的任一平面均不相交的任意平面;

根据所述目标多面体的三维点云和所述目标点云,确定所述目标多面体的体积,以作为所述待测动物体的目标体积。

在本申请的一些实施例中,所述根据所述目标三维点云确定所述待测动物体的目标体积,包括:

获取目标平面,其中,所述目标平面是指所述目标三维点云投影在基准平面的平面点云构成的平面,所述基准平面是指所述目标深度图的各个平面中,所述待测动物体的支撑面;

分割所述目标平面以获取多个子平面,并根据所述目标三维点云计算每个所述子平面对应的待测体积;

根据各个所述子平面对应的待测体积得到所述待测动物体的体积。

在本申请的一些实施例中,所述根据所述目标三维点云计算每个所述子平面对应的待测体积,包括:

根据所述目标三维点云,确定每个所述子平面的面积以及对应高度;

根据每个所述子平面的面积以及所述对应高度,计算每个所述子平面对应的待测体积。

在本申请的一些实施例中,所述根据所述目标体积和所述目标深度图,确定所述待测动物体的体重,包括:

将所述目标体积和所述目标深度图输入动物体体重检测模型,以使得所述动物体体重检测模型根据所述目标体积和所述目标深度图确定所述待测动物体的体重。

在本申请的一些实施例中,所述动物体体重检测模型通过下列步骤得到:

获取并根据多个动物体的深度图、体积以及实际体重,对初始模型进行模型训练;

将完成训练的初始模型确定为动物体体重检测模型。

另一方面,本申请实施例提供一种动物体体重检测装置,所述动物体体重检测装置包括:

获取单元,用于根据待测动物体的目标深度图,获取目标区域的目标三维点云,所述目标区域是指所述目标深度图中承载所述待测动物体的区域;

处理单元,用于根据所述获取单元获取的所述目标三维点云确定所述待测动物体的目标体积;根据所述目标体积和所述目标深度图,确定所述待测动物体的体重。

在本申请的一些实施例中,所述处理单元具体用于:

根据所述目标三维点云获取目标多面体;

根据所述目标多面体和所述目标三维点云,确定所述待测动物体的目标体积。

在本申请的一些实施例中,所述处理单元具体用于:

从所述目标三维点云中获取多个第一目标点;

根据所述各个第一目标点确定初始多面体,其中,所述第一目标点为所述初始多面体的顶点;

遍历剩余三维点云的各点,若检测到第二目标点处于所述初始多面体外,则根据所述第二目标点迭代更新所述初始多面体,得到目标多面体,所述剩余三维点云是指所述目标三维点云中,除所述第一目标点外的点的集合,所述第二目标点是指所述剩余三维点云中的点。

在本申请的一些实施例中,所述处理单元具体用于:

根据所述目标三维点云确定所述目标多面体的三维点云;

将所述目标多面体投影至参考平面得到目标点云,所述参考平面是指与所述目标多面体的任一平面均不相交的任意平面;

根据所述目标多面体的三维点云和所述目标点云,确定所述目标多面体的体积,以作为所述待测动物体的目标体积。

在本申请的一些实施例中,所述处理单元具体用于:

获取目标平面,其中,所述目标平面是指所述目标三维点云投影在基准平面的平面点云构成的平面,所述基准平面是指所述目标深度图的各个平面中,所述待测动物体的支撑面;

分割所述目标平面以获取多个子平面,并根据所述目标三维点云计算每个所述子平面对应的待测体积;

根据各个所述子平面对应的待测体积得到所述待测动物体的体积。

在本申请的一些实施例中,所述处理单元具体用于:

根据所述目标三维点云,确定每个所述子平面的面积以及对应高度;

根据每个所述子平面的面积以及所述对应高度,计算每个所述子平面对应的待测体积。

在本申请的一些实施例中,所述处理单元具体用于:

将所述目标体积和所述目标深度图输入动物体体重检测模型,以使得所述动物体体重检测模型根据所述目标体积和所述目标深度图确定所述待测动物体的体重。

在本申请的一些实施例中,动物体体重检测装置还包括训练单元,所述训练单元具体用于:

获取并根据多个动物体的深度图、体积以及实际体重,对初始模型进行模型训练;

将完成训练的初始模型确定为动物体体重检测模型。

另一方面,本申请实施例还提供一种动物体体重检测设备,所述动物体体重检测设备包括处理器和存储器,所述存储器中存储有计算机程序,所述处理器调用所述存储器中的计算机程序时执行本申请实施例提供的任一种动物体体重检测方法中的步骤。

另一方面,本申请实施例还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器进行加载,以执行所述的动物体体重检测方法中的步骤。

本申请实施例通过获取并根据待测动物体的深度图,确定待测动物体的三维点云;根据待测动物体的三维点云确定待测动物体的目标体积;根据待测动物体的目标体积和待测动物体的深度图即可拟合出待测动物体的体重。一方面,只需获取待测动物体的图像即可检测出待测动物体的体重,省去了搬运动物体进行称重的过程。另一方面,由于同时基于待测动物体的目标体积和深度图,拟合待测动物体的体重,而非单纯地依据体积拟合出待测动物体的体重,避免了过拟合的问题,减小体重的检测误差。

附图说明

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

图1是本申请实施例中提供的动物体体重检测方法的一个实施例流程示意图;

图2是本申请实施例提供的初始多面体的场景示意图;

图3是本申请实施例中初始多面体更新前后的对比示意图;

图4是本申请实施例中提供的目标平面分割为多个子平面的示意图;

图5是本申请实施例中提供的动物体体重检测装置的一个实施例结构示意图;

图6是本申请实施例中提供的动物体体重检测设备的一个实施例结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在本申请实施例的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个所述特征。在本申请实施例的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。

为了使本领域任何技术人员能够实现和使用本申请,给出了以下描述。在以下描述中,为了解释的目的而列出了细节。应当明白的是,本领域普通技术人员可以认识到,在不使用这些特定细节的情况下也可以实现本申请。在其它实例中,不会对公知的过程进行详细阐述,以避免不必要的细节使本申请实施例的描述变得晦涩。因此,本申请并非旨在限于所示的实施例,而是与符合本申请实施例所公开的原理和特征的最广范围相一致。

首先,在介绍本申请实施例之前,先介绍下本申请实施例关于应用背景的相关内容。

在实际生活中,经常需要测量动物体的体重,例如,猪体、羊、牛等。传统的体重测量方法需要将动物体搬运至测量工具上。但是许多动物都比较笨重,不容易搬运。并且,动物体容易携带各种细菌、病毒,人工搬运动物体容易导致人员感染细菌、病毒。

由于在确定物体的体积和密度的情况下,可以确定出物体的质量。为了避免动物体的搬运过程,可以通过检测出动物体的体积,进而得出动物体体重。

但是动物体为不规则的物体,较难检测出其体积。即使检测出动物体的体积,但是动物体的密度也难以确定,由于不同品种的动物之间、相同品种动物不同动物体之间的密度不同,若根据经验采用预设的密度计算动物体体重,得到的动物体体重的误差也会较大。

基于现有的相关技术存在的上述缺陷,本申请实施例提供了动物体体重检测方法,至少在一定程度上克服现有的相关技术所存在的缺陷。

本申请实施例动物体体重检测方法的执行主体可以为本申请实施例提供的动物体体重检测装置,或者集成了该动物体体重检测装置的服务器设备、物理主机或者用户设备(User Equipment,UE)等不同类型的动物体体重检测设备,其中,动物体体重检测装置可以采用硬件或者软件的方式实现,UE具体可以为智能手机、平板电脑、笔记本电脑、掌上电脑、台式电脑或者个人数字助理(Personal Digital Assistant,PDA)等终端设备。

该动物体体重检测设备可以采用单独运行的工作方式,或者也可以采用设备集群的工作方式,通过应用本申请实施例提供的动物体体重检测方法,可以测量出动物体的体重,避免搬运动物体的过程,提高动物体体重的检测精度。

下面,开始介绍本申请实施例提供的动物体体重检测方法,该动物体体重检测方法包括:根据待测动物体的目标深度图,获取目标区域的目标三维点云;根据所述目标三维点云确定所述待测动物体的目标体积;根据所述目标体积和所述目标深度图,确定所述待测动物体的体重。

参照图1,图1为本申请实施例提供的动物体体重检测方法的一种流程示意图。需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。该动物体体重检测方法包括步骤10至步骤30,其中:

10、根据待测动物体的目标深度图,获取目标区域的目标三维点云。

其中,目标深度图是指待测动物体的深度图,目标深度图包含图像中的各个点的三维坐标等信息。目标区域是指目标深度图中承载待测动物体的区域。

首先,获取待测物体的目标深度图。在实际应用中,应用本申请实施例提供的动物体体重检测设备,在硬件上可直接包括一个或多个摄像头,并在本地存储该一个或多个摄像头拍摄得到的目标深度图,可在设备内部直接读取;或者,动物体体重检测设备也可与其他设备建立网络连接,并根据该网络连接获取其他设备拍摄或存储的目标深度图,具体获取方式在此不做限定。

然后,识别出目标深度图中承载待测动物体的区域,即确定目标区域。其中,目标区域的识别可以通过深度神经网络来实现。

最后,从目标深度图的三维点云中,提取出目标深度图中承载待测动物体的区域的三维点云。即确定了目标区域的目标三维点云,其中,目标三维点云是指目标深度图中承载待测动物体的区域的三维点云。

20、根据所述目标三维点云确定所述待测动物体的目标体积。

作为一种实施方式,根据目标三维点云确定待测动物体的目标体积,具体包括:首先,根据目标区域的目标三维点云,确定待测动物体的体形。然后,基于待测动物体的体形,确定待测动物体的目标体积。

作为另一种实施方式,根据目标三维点云确定待测动物体的目标体积,具体包括:首先,根据待测动物体的目标深度图,通过区域生长算法获取待测动物体的支撑面。然后,根据待测动物体的支撑面和目标区域的目标三维点云,确定待测动物体的目标体积。

在此处所提到的两种实施方式,在后续实施中将详细描述,为了简化描述在此不再赘述。

30、根据所述目标体积和所述目标深度图,确定所述待测动物体的体重。

作为一种实施方式,根据目标体积和目标深度图,确定待测动物体的体重,具体可以为:首先,根据待测动物体的目标体积和目标深度图,确定待测动物体对应的密度。然后将待测动物体的目标体积与待测动物体对应的密度的乘积,作为待测动物体的体重。

作为另一种实施方式,根据目标体积和目标深度图,确定待测动物体的体重,具体可以为:首先,获取预先训练好的体重检测模型,并将待测动物体的目标体积和目标深度图输入至体重检测模型,以使得体重检测模型根据待测动物体的目标体积和目标深度图拟合出待测动物体的体重。然后,提取体重检测模型输出的待测动物体的体重。

在本申请实施例中,通过获取并根据待测动物体的目标深度图,确定待测动物体的目标三维点云;根据待测动物体的目标三维点云确定待测动物体的目标体积;根据待测动物体的目标体积和待测动物体的目标深度图即可拟合出待测动物体的体重。一方面,只需获取待测动物体的深度图即可检测出待测动物体的体重,省去了搬运动物体进行称重的过程。另一方面,由于同时基于待测动物体的目标体积和目标深度图,拟合待测动物体的体重,而非单纯地依据体积拟合出待测动物体的体重,避免了过拟合的问题,减小待测动物体的体重的检测误差。

下面,介绍确定待测动物体的目标体积的两种方式。其中,两种实施方式确定待测物体的目标体积各有优缺之处,在实际应用中可根据具体应用场景确定使用哪种方式。

第一种,基于待测动物体的体形,确定待测动物体的目标体积。

由于基于目标深度图拟合平面容易出现拟合平面不准确的问题,为了避免检测待测动物体的目标体积需要拟合出待测动物体的支撑面的问题,进而提高所确定的待测动物体的目标体积的精度,在本申请的一些实施例中,上述图对应实施例步骤20,具体可根据如下步骤(a1)至步骤(a2)实现,具体实现如下:

(a1)根据所述目标三维点云获取目标多面体。

其中,目标多面体用于指示待测猪体的体形。

首先,从目标三维点云选出多个非共面的点构成一个初始多面体,然后遍历目标三维点云中的各点,若检测到该点处于初始多面体外,则根据该点迭代更新初始多面体,得到目标多面体。然后,将目标多面体近似确定为待测动物体的体形。

在本申请的一些实施例中,根据所述目标三维点云获取目标多面体的步骤,具体包括下列(a11)-(a13)步骤:

(a11)从所述目标三维点云中获取多个第一目标点。

具体地,从目标三维点云中随机获取至少四个点,并使得所获取的各个点为不共面的点,所获取的每个点作为第一目标点,以便后续根据多个第一目标点确定初始多面体。

(a12)根据所述各个第一目标点确定初始多面体。

其中,第一目标点为初始多面体的顶点。

具体地,以第一目标点的个数作为初始多面体的顶点数,并以每个第一目标点作为初始多面体的顶点,生成初始多面体。

为了方便理解如何确定初始多面体,以一具体实施例进行说明。请参阅图2,图2为本申请实施例提供的初始多面体的场景示意图。例如,从目标三维点云中选出4个点(即第一目标点),根据4个点确定一个4面体(初始多面体)。又如,从目标三维点云中选出6个点(即第一目标点),根据6个点确定一个6面体(初始多面体)。

(a13)遍历剩余三维点云的各点,若检测到第二目标点处于所述初始多面体外,则根据所述第二目标点迭代更新所述初始多面体,得到目标多面体。

其中,剩余三维点云是指目标三维点云中,除第一目标点外的点的集合,第二目标点是指剩余三维点云中的点。

具体地,首先,根据第一目标点的三维坐标,确定初始多面体的每个平面。

然后,检测第二目标点是否处于初始多面体外。具体地,将剩余三维点云的各点进行随机排列,形成目标点序列。并依据剩余三维点云中的各点在目标点序列中的排序先后,依次从目标点序列中获取一个序列点作为第二目标点,并运用二分查找算法或其他检测算法,检测第二目标点是否在初始多面体内,并检测第二目标点是否在初始多面体的任意一个平面内。

若第二目标点不在初始多面体内,且不在初始多面体的任意一个平面内,则确定第二目标点处于初始多面体外。若检测到第二目标点处于初始多面体内,或在初始多面体的任意一个平面内,则确定第二目标点未处于初始多面体外。

当检测到第二目标点未处于初始多面体外时,则从目标序列点继续获取下一个序列点作为新的第二目标点,重复以上检测步骤,确定新的第二目标点是否处于初始多面体外。

最后,更新初始多面体。当检测到第二目标点处于初始多面体外时,则根据第二目标点更新初始多面体,得到更新后的初始多面体。并从目标序列点中,继续获取上次所获取的第二目标点的下一个序列点,作为新的第二目标点,检测新的第二目标点是否处于更新后的初始多面体外。若新的第二目标点处于更新后的初始多面体外,则继续更新上一次更新后的初始多面体。重复以上步骤,迭代更新初始多面体,直至目标序列点中的各点完成遍历时,将更新后的初始多面体,确定为目标多面体。

其中,根据第二目标点更新初始多面体的方式具体为:在待更新的初始多面体的顶点数基础上加一,作为更新后的初始多面体的顶点数;将待更新的初始多面体的各个顶点,以及第二目标点,作为更新后的初始多面体的各个顶点;进而得到更新后的初始多面体。

为了方便理解如何根据第二目标点更新初始多面体,以一具体实施例进行说明。请参阅图3,图3为本申请实施例中初始多面体更新前后的对比示意图。例如,更新前的初始多面体为由4个第一目标点构成的四面体,第二目标点处于更新前的初始多面体外,则以顶点数为4+1=5、顶点分别为4个第一目标点以及第二目标点,生成一个新的多面体,并将该新生成的多面体作为更新后的初始多面体。

在本申请实施例中,通过遍历剩余三维点云中的各点,实现动态维护初始多面体,使得最终得到的目标多面体更贴近于待测动物体的体形,为后续准确地确定待测动物体的体积提供了精准的数据依据,进而提高了待测动物体的体重的检测精度。

(a2)根据所述目标多面体和所述目标三维点云,确定所述待测动物体的目标体积。

由于目标多面体的各个顶点均为目标三维点云中的点,因此,目标多面体的各个顶点的三维坐标是已知的。具体地,首先,根据目标多面体的各个顶点的三维坐标,确定目标多面体的三维点云。然后,根据目标多面体的三维点云,确定待测动物体的目标体积。

在本申请实施例中,通过根据目标三维点云确定目标多面体,并将目标多面体近似为待测动物体的体形,进而检测出待测动物体的目标,为后续确定待测动物体的体重提供了数据依据,使得无需搬运待测动物体也可以检测出待测动物体的体重。

为了精准确定待测动物体的目标体积,在本申请的一些实施例中,根据所述目标多面体和所述目标三维点云,确定所述待测动物体的目标体积的步骤,具体包括下列(a21)-(a23)步骤:

(a21)根据所述目标三维点云确定所述目标多面体的三维点云。

由于目标多面体的各个顶点均为目标三维点云中的点,因此,目标多面体的各个顶点的三维坐标是已知的。根据目标多面体的每个平面的各个顶点的三维坐标,可以确定构成该平面的三维点云,即可以确定目标多面体的每个平面的三维点云。目标多面体的每个平面的三维点云的集合,即构成了目标多面体的三维点云。

(a22)将所述目标多面体投影至参考平面得到目标点云。

其中,参考平面是指与目标多面体的任一平面均不相交的任意平面。

首先,确定任意一个平面,并使得该平面与目标多面体的任一平面均不相交,作为参考平面。

然后,将目标多面体投影至参考平面上,得到目标多面体的目标点云。其中,目标点云是指目标多面体投影至参考平面后,构成平面投影的各个点的集合。

(a23)根据所述目标多面体的三维点云和所述目标点云,确定所述目标多面体的体积,以作为所述待测动物体的目标体积。

首先,确定目标多面体的三维点云对应的三维坐标系的X轴、Y轴或Z轴方向。并将目标多面体的三维点云对应的三维坐标系进行旋转,使得三维坐标系的Z轴(或Y轴,或X轴,可根据具体需求而设置)与参考平面垂直;同时依据三维坐标系的旋转变化,更新目标多面体的点云的三维坐标,以便于后续确定目标多面体投影至参考平面的目标点云对应的三维坐标。

然后,确定目标点云中的每个点在目标多面体中映射的三维坐标点,作为目标点云中的该点对应的三维坐标,即确定目标多面体投影至参考平面的目标点云对应的三维坐标。

最后,由于旋转后的三维坐标系的Z轴与参考平面垂直,根据目标点云对应的三维坐标,即可确定目标多面体的体积,并将目标多面体的体积近似认为待测动物体的目标体积。

在本申请实施例中,通过确定参考平面,并根据将目标多面体投影至参考平面得到的目标点云,以及目标多面体的三维点云,确定目标多面体的体积,作为待测动物体的目标体积;避免了需要基于目标深度图拟合出待测动物体的支撑面,进而避免了因深度图像的拍摄背景复杂,而容易出现拟合的支撑面不准确的问题,从而提高了待测动物体的目标体积的精确度。

第二种,基于目标深度图拟合出待测动物体的支撑面,根据支撑面和目标三维点云,确定待测动物体的目标体积。

在目标深度图的拍摄背景相对简单的情况,对支撑面的拟合影响相对较小,为了简化待测动物体的目标体积的确定过程,在本申请的一些实施例中,上述图对应实施例步骤20,具体还可根据如下步骤(b1)至步骤(b3)实现,具体实现如下:

(b1)获取目标平面。

其中,目标平面是指目标三维点云投影在基准平面的平面点云构成的平面,基准平面是指目标深度图的各个平面中,待测动物体的支撑面。

首先,基于区域生长算法,根据目标深度图和待测动物体的目标三维点云,求解出待测动物体的支撑面。

然后,将待测动物体的目标三维点云投影至支撑面上,并将投影区域的各个点构成的平面作为目标平面。以便后续可以基于目标平面和待测动物体的目标三维点云,确定待测动物体的体积。

(b2)分割所述目标平面以获取多个子平面,并根据所述目标三维点云计算每个所述子平面对应的待测体积。

例如,首先,使用矩形作为目标平面的外轮廓进行网格划分,目标平面将被划分为多个区域,并将每个区域作为一个子平面。然后,计算每个区域对应的面积以及对应高度,并根据每个区域对应的面积以及对应高度得到每个子平面对应的待测体积,如图4所示。进一步地,为了减小待测动物体的体积的误差,将目标平面划分为多个区域后,若目标平面对应的投影区域的面积小于外轮廓矩形面积的二分之一,则在计算待测动物体的体积,舍弃该投影区域部分对应的体积;若目标平面对应的投影区域的面积大于外轮廓矩形面积的二分之一,且小于外轮廓矩形面积,则在计算待测动物体的体积,舍弃该投影区域部分对应的体积。

接下来将详细介绍子平面对应的待测体积的确定,为了方便理解,可继续参照图4。在本申请的一些实施例中,根据所述目标三维点云计算每个所述子平面对应的待测体积的步骤,具体包括下列(b21)-(b22)步骤:

(b21)根据所述目标三维点云,确定每个所述子平面的面积以及对应高度;

其中,所述对应高度是指子平面的各个点在Z轴坐标值的均值。

具体地,根据目标三维点云,确定每个子平面的各个点对应的三维坐标。一方面,根据每个子平面的各个点对应的三维坐标,获取每个子平面的各个点在Z轴的坐标值。并计算每个子平面的各个点在Z轴的坐标值的均值,作为该子平面的对应高度。

例如,子平面的各个点在Z轴的坐标值分别为:10、12、13、14、15、17、20、16、18、19则该子平面的各个点在Z轴的坐标值的均值为:(10+12+13+14+15+17+20+16+18+19)/10=15。

另一方面,根据每个子平面的各个点对应的三维坐标,计算出每个子平面的面积,在本申请实施例中,每个子平面的面积均相同。

(b22)根据每个所述子平面的面积以及所述对应高度,计算每个所述子平面对应的待测体积。

具体地,每个子平面对应的待测体积等于该子平面的对应高度与该子平面的面积之积,依据该计算方式,依次计算出每个子平面对应的待测体积。

在本申请实施例中,通过划分目标平面为多个子平面,再根据每个子平面的面积和对应高度,由于划分后的子平面较小,使得每个子平面对应的待测体积的误差也相对较小,进而可以提高待测动物体的体积的精确度。

(b3)根据各个所述子平面对应的待测体积得到所述待测动物体的体积。

具体地,将每个平面对应的体积累加,得到目标多面体的体积,并将每个平面对应的体积累加后的值,近似为待测动物体的体积。至此,待测动物体的体积检测完成。例如,若确定各个子平面对应的待测体积分别为:2dm3、4dm3、3dm3,则待测动物体的体积为:2+4+3=9dm3

在本申请实施例中,通过获取目标平面,分割目标平面以获取多个子平面,并根据目标三维点云计算每个子平面对应的待测体积;将各个子平面对应的待测体积累加得到待测动物体的体积,为后续确定待测动物体的体重提供了数据依据,使得无需搬运待测动物体也可以检测出待测动物体的体重。

为了准确拟合出待测动物体的体重,在本申请的一些实施例中,上述图对应实施例步骤30,可通过模型实现,即可以通过模型检测出待测动物体的体重。

为了得到可以用于检测动物体体重的动物体体重检测模型,需要采集训练集数据进行模型训练。在本申请的一些实施例中,动物体体重检测模型通过下列步骤(1)和(2)得到:

(1)获取并根据多个动物体的深度图、体积以及实际体重,对初始模型进行模型训练;

首先,设计初始模型的网络结构,在本申请实施例中设计一个三层的网络,每层包括全连接层和激活层,并设置每层的全连接层的数量、激活函数和正则项。并将初始模型训练的损失函数设置为:L=(G1-G2)/G2,其中,L表示损失值、G1表示模型预测的动物体的体重、G2表示动物体的实际体重。

然后,收集多个动物体的深度图、每个动物体的实际体重,以及依据每个动物体的深度图,参照以上步骤10至步骤20确定的每个动物体的体积。

最后,将每个动物体的体积、实际体重以及深度图,以一维向量的方式输入至初始模型中进行正向传播。再以输出动物体的体重为目标,根据为初始模型配置的损失函数进行反向传播,以更新初始模型的模型参数,对初始模型不断地进行模型训练。

(2)将完成训练的初始模型确定为动物体体重检测模型。

当训练后的初始模型输出的动物体的体重可以满足损失函数或者其他目标条件时,迭代完成,即完成模型的训练。此时,将该完成训练的初始模型作为动物体体重检测模型,用于检测动物体的体重。

在本申请实施例中,由于模型的训练数据除了不同动物体的体重以及不同动物体的体积,还包括了不同动物体的深度图,从而在模型的训练过程中,可引导模型关注到不同动物体的深度图与动物体的体重的关联关系,使得模型可以同时针对动物体的体积和深度图拟合出动物体的体重,避免模型只针对动物体的体积拟合出动物体的体重,而容易导致过拟合的问题,提高了模型的检测精度,进而提高待测动物体的体重的检测精度。

在得到动物体体重检测模型后,即可通过动物体体重检测模型实现上述步骤30,具体实现如下:

将所述目标体积和所述目标深度图输入动物体体重检测模型,以使得所述动物体体重检测模型根据所述目标体积和所述目标深度图确定所述待测动物体的体重。

为了方便理解,以测量猪体的体重为例进行说明。首先,获取猪体的深度图,从猪体的深度图中识别并分割出猪体区域;并基于猪体的深度图的三维点云和猪体区域,确定猪体区域的三维点云。然后,基于区域生长算法,根据猪体的深度图中拟合出猪体的支撑面(如地面),将猪体区域的三维点云投影至猪体的支撑面上,得到猪体区域在支撑面的区域点云,以根据区域点云计算出猪体的体积。最后,将猪体的体积和猪体的深度图输入动物体体重检测模型,则动物体体重检测模型将会输出猪体的体重。

在本申请实施例中,通过动物体体重检测模型拟合出待测动物体的体重,由于动物体体重检测模型同时针对了目标体积和目标深度图拟合出待测动物体的体重,避免了只针对待测动物体的体积拟合出待测动物体的体重,而容易导致过拟合的问题,提高了待测动物体的体重的检测精度。

为了更好实施本申请实施例中动物体体重检测方法,在动物体体重检测方法基础之上,本申请实施例中还提供一种动物体体重检测装置,如图5所示,为本申请实施例中动物体体重检测装置的一个实施例结构示意图,该动物体体重检测装置500包括:

获取单元501,用于根据待测动物体的目标深度图,获取目标区域的目标三维点云,所述目标区域是指所述目标深度图中承载所述待测动物体的区域;

处理单元502,用于根据所述获取单元501获取的所述目标三维点云确定所述待测动物体的目标体积;根据所述目标体积和所述目标深度图,确定所述待测动物体的体重。

在本申请的一些实施例中,所述处理单元502具体用于:

根据所述目标三维点云获取目标多面体;

根据所述目标多面体和所述目标三维点云,确定所述待测动物体的目标体积。

在本申请的一些实施例中,所述处理单元502具体用于:

从所述目标三维点云中获取多个第一目标点;

根据所述各个第一目标点确定初始多面体,其中,所述第一目标点为所述初始多面体的顶点;

遍历剩余三维点云的各点,若检测到第二目标点处于所述初始多面体外,则根据所述第二目标点迭代更新所述初始多面体,得到目标多面体,所述剩余三维点云是指所述目标三维点云中,除所述第一目标点外的点的集合,所述第二目标点是指所述剩余三维点云中的点。

在本申请的一些实施例中,所述处理单元502具体用于:

根据所述目标三维点云确定所述目标多面体的三维点云;

将所述目标多面体投影至参考平面得到目标点云,所述参考平面是指与所述目标多面体的任一平面均不相交的任意平面;

根据所述目标多面体的三维点云和所述目标点云,确定所述目标多面体的体积,以作为所述待测动物体的目标体积。

在本申请的一些实施例中,所述处理单元502具体用于:

获取目标平面,其中,所述目标平面是指所述目标三维点云投影在基准平面的平面点云构成的平面,所述基准平面是指所述目标深度图的各个平面中,所述待测动物体的支撑面;

分割所述目标平面以获取多个子平面,并根据所述目标三维点云计算每个所述子平面对应的待测体积;

根据各个所述子平面对应的待测体积得到所述待测动物体的体积。

在本申请的一些实施例中,所述处理单元502具体用于:

根据所述目标三维点云,确定每个所述子平面的面积以及对应高度;

根据每个所述子平面的面积以及所述对应高度,计算每个所述子平面对应的待测体积。

在本申请的一些实施例中,所述处理单元502具体用于:

将所述目标体积和所述目标深度图输入动物体体重检测模型,以使得所述动物体体重检测模型根据所述目标体积和所述目标深度图确定所述待测动物体的体重。

在本申请的一些实施例中,动物体体重检测装置还包括训练单元(图中未示出),所述训练单元具体用于:

获取并根据多个动物体的深度图、体积以及实际体重,对初始模型进行模型训练;

将完成训练的初始模型确定为动物体体重检测模型。

此外,为了更好实施本申请实施例中动物体体重检测方法,在动物体体重检测方法基础之上,本申请实施例还提供一种动物体体重检测设备,参阅图6,图6示出了本申请实施例动物体体重检测设备的一种结构示意图,具体的,本申请实施例提供的动物体体重检测设备包括处理器601,处理器601用于执行存储器602中存储的计算机程序时实现如图1至图4对应任意实施例中动物体体重检测方法的各步骤;或者,处理器601用于执行存储器602中存储的计算机程序时实现如图5对应实施例中各单元的功能。

示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器602中,并由处理器601执行,以完成本申请实施例。一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述计算机程序在计算机装置中的执行过程。

动物体体重检测设备可包括,但不仅限于处理器601、存储器602。本领域技术人员可以理解,示意仅仅是动物体体重检测设备的示例,并不构成对动物体体重检测设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如动物体体重检测设备还可以包括输入输出设备、网络接入设备、总线等,处理器601、存储器602、输入输出设备以及网络接入设备等通过总线相连。

处理器601可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,处理器是动物体体重检测设备的控制中心,利用各种接口和线路连接整个动物体体重检测设备的各个部分。

存储器602可用于存储计算机程序和/或模块,处理器601通过运行或执行存储在存储器602内的计算机程序和/或模块,以及调用存储在存储器602内的数据,实现计算机装置的各种功能。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据动物体体重检测设备的使用所创建的数据(比如音频数据、视频数据等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的动物体体重检测装置、设备及其相应单元的具体工作过程,可以参考如图1至图4对应任意实施例中动物体体重检测方法的说明,具体在此不再赘述。

本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。

为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请如图1至图4对应任意实施例中动物体体重检测方法中的步骤,具体操作可参考如图1至图4对应任意实施例中动物体体重检测方法的说明,在此不再赘述。

其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁盘或光盘等。

由于该计算机可读存储介质中所存储的指令,可以执行本申请如图1至图4对应任意实施例中动物体体重检测方法中的步骤,因此,可以实现本申请如图1至图4对应任意实施例中动物体体重检测方法所能实现的有益效果,详见前面的说明,在此不再赘述。

以上对本申请实施例所提供的一种动物体体重检测方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种数据处理方法、设备及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!