牲畜个数的识别方法及装置与流程

文档序号:17744397发布日期:2019-05-24 20:31阅读:323来源:国知局
牲畜个数的识别方法及装置与流程

本发明涉及计算机技术领域,具体涉及一种牲畜个数的识别方法及装置。



背景技术:

牲畜的售卖场景很多,通常需对牲畜的个数做记录。在售卖牲畜的过程中,地秤的空间构造通常比较狭小,常常造成牲畜群密度增加和牲畜重叠的现象,这给养殖户记录牲畜个数造成很大困难。因此,通过人工智能方式,对摄像头返回的图片和视频进行运算,通过识别结果来记录牲畜个数能够有效的节省人力成本、规范流程同时方便管理。

目前,相关算法主要是做人群密度估计的,而识别牲畜个数的场景并不多。相关技术中,监控视频中人群计数算法通常有视觉特征轨迹类聚和基于特征的回归两种方法。视觉特征轨迹类聚一般是针对视频图像序列,用klt跟踪器聚类的方法,通过轨迹聚类得到的数目来估计人数。基于特征的回归一般分为以下3个步骤:①前景分割:前景分割的目的是将人群从图像中分割出来便于后面的特征提取,分割性能的好坏直接关系最终计数精度,因此这是限制传统算法性能的一个重要因素。②特征提取:从分割得到的前景提取各种不同的底层特征。③人数回归:将提取到的特征回归到图像中的人数。

在监控视频的人群计数算法中,前景分割是不可或缺的步骤,然而前景分割本身就是一个比较困难的任务,算法性能很大程度地受其影响。卷积神经网络实现了端对端训练,无需进行前景分割以及人工设计和提取特征,经过多层卷积之后得到高层的语义特征。cvpr2015的cross-scenecrowdcountingviadeepconvolutionalneuralnetworks提出了一个适用人群计数的深度卷积神经网络模型如图1所示,经过多层卷积之后得到高层的语义特征相比于人工特征对人群有更好的表述能力,交替回归该图像块的人群密度和人群总数来实现人数估计。此外,提出了一种数据驱动的方法从训练数据中选择样本来微调预训练好的cnn模型,以适应未知的应用场景。然而,开发高效的特征来描述人群和人群场景需要新的特定描述信息。场景之间存在不同的透视扭曲、人群分布以及光照条件,因此在没有另外的训练数据的情况下,场景之间的计数模型很难互相使用。现存的人群计数数据集不足以支持跨场景人群计数。



技术实现要素:

有鉴于此,本发明实施例提供了一种牲畜个数的识别方法和装置,对第一图像进行图像语义分割,得到第一图像的前景概率密度图之后,通过机器学习模型后处理逻辑判断来统计原始图像中牲畜的个数,提高了识别牲畜个数的多场景应用的鲁棒性。同时,通过不同阈值来对该前景概率密度图进行二值化,并在多个第二图像之间进行后处理逻辑判断,提高了牲畜个数的识别方法的召回率和准确率。

根据本发明的一方面,提供一种牲畜个数的识别方法,包括:获取原始图像,并对所述原始图像中的牲畜进行标记,得到第一图像;基于卷积神经网络,对所述第一图像进行图像语义分割,得到所述第一图像的前景概率密度图;基于不同的阈值,对所述前景概率密度图进行二值化,得到多个第二图像;以及基于机器学习模型,对所述多个第二图像进行后处理逻辑判断,得到所述原始图像中牲畜的个数。

优选地,所述基于机器学习模型,对所述多个第二图像进行后处理逻辑判断,得到所述原始图像中牲畜的个数之前,包括:基于所述多个第二图像分别对应的多族轮廓特征信息,对所述多个第二图像的异常轮廓进行优化。

优选地,所述基于所述多个第二图像分别对应的多族轮廓特征信息,对所述多个第二图像的异常轮廓进行优化,包括:采用轮廓提取函数提取所述多个第二图像的轮廓,得到所述多个第二图像对应的多族轮廓集合和先验的所述原始图像中牲畜的个数;提取所述多个第二图像对应的所述多族轮廓集合的特征,得到所述多个第二图像对应的多族第一特征数据集。

优选地,所述基于所述多个第二图像分别对应的多族轮廓特征信息,对所述多个第二图像的异常轮廓进行优化,还包括:基于随机森林模型对所述多族第一特征数据集的各个特征进行排序,得到所述多族第一特征数据集的各个特征的重要性次序;基于所述多族第一特征数据集的各个特征的重要性次序,将不重要的特征剔除,得到多族第二特征数据集。

优选地,所述基于所述多个第二图像分别对应的多族轮廓特征信息,对所述多个第二图像的异常轮廓进行优化,还包括:基于所述多族第二特征数据集,采用自适应提升算法模型对所述多个第二图像对应的所述多族轮廓集合进行筛选分类;其中,所述筛选分类结果中包括:所述多族轮廓集合的各个轮廓的面积的大小。

优选地,所述基于所述多个第二图像分别对应的多族轮廓特征信息,对所述多个第二图像的异常轮廓进行优化,还包括:如果在所述多个第二图像对应的所述多族轮廓集合中不存在异常轮廓,则将所述多族轮廓集合中的轮廓标记为正常轮廓。

优选地,所述基于所述多个第二图像分别对应的多族轮廓特征信息,对所述多个第二图像的异常轮廓进行优化,还包括:如果在所述多个第二图像对应的所述多族轮廓集合中存在异常轮廓,则将所述多族轮廓集合中合格的轮廓标记为正常轮廓,将所述多族轮廓集合中不合格的轮廓标记为异常轮廓;基于所述多族轮廓集合的相互校验,对所述异常轮廓进行修正。

优选地,所述基于所述多族轮廓集合的相互校验,对所述异常轮廓进行修正,包括:获取所述异常轮廓所属的轮廓集合,得到第一族轮廓集合;获取所述异常轮廓不属于的一个轮廓集合,得到第二族轮廓集合;以及比较所述异常轮廓和所述第二族轮廓集合的轮廓的面积的大小。

优选地,所述基于所述多族轮廓集合的相互校验,对所述异常轮廓进行修正,还包括:如果所述异常轮廓的面积大于所述第二族轮廓集合的轮廓,则判断在所述筛选分类结果中,所述异常轮廓的面积是否大于所述第二族轮廓集合的轮廓。

优选地,所述基于所述多族轮廓集合的相互校验,对所述异常轮廓进行修正,还包括:在所述筛选分类结果中,如果所述异常轮廓的面积大于所述第二族轮廓集合的轮廓,则计算所述第二族轮廓集合中包含的轮廓的个数;并且判断所述第二族轮廓集合中包含的轮廓的个数是否大于等于3。

优选地,所述基于所述多族轮廓集合的相互校验,对所述异常轮廓进行修正,还包括:如果所述第二族轮廓集合中包含的轮廓的个数大于等于3,则在所述第二族轮廓集合中找到距离所述异常轮廓最近的3个轮廓。

优选地,所述基于所述多族轮廓集合的相互校验,对所述异常轮廓进行修正,还包括:如果所述第二族轮廓集合中包含的轮廓的个数小于3,则在所述第一族轮廓集合中找到除所述异常轮廓之外的所有轮廓。

优选地,所述基于所述多族轮廓集合的相互校验,对所述异常轮廓进行修正,还包括:判断所述异常轮廓中包含的属于所述第二族轮廓集合的轮廓的个数是否大于1。

优选地,所述基于所述多族轮廓集合的相互校验,对所述异常轮廓进行修正,还包括:如果所述异常轮廓中包含的属于所述第二族轮廓集合的轮廓的个数等于1,则将所述异常轮廓切割为两个。

优选地,所述基于所述多族轮廓集合的相互校验,对所述异常轮廓进行修正,还包括:如果所述异常轮廓中包含的属于所述第二族轮廓集合的轮廓的个数大于等于2,则判断所述异常轮廓中包含的属于所述第二族轮廓集合的轮廓的个数是否大于等于3。

优选地,所述基于所述多族轮廓集合的相互校验,对所述异常轮廓进行修正,还包括:如果所述异常轮廓中包含的属于所述第二族轮廓集合的轮廓的个数小于3,则将所述异常轮廓中包含的属于所述第二族轮廓集合的轮廓代替所述异常轮廓。

优选地,所述基于所述多族轮廓集合的相互校验,对所述异常轮廓进行修正,还包括:如果所述异常轮廓中包含的属于所述第二族轮廓集合的轮廓的个数大于等于3,则判断所述异常轮廓中包含的属于所述第二族轮廓集合的轮廓是否属于所述第一族轮廓集合。

优选地,所述基于所述多族轮廓集合的相互校验,对所述异常轮廓进行修正,还包括:如果所述异常轮廓中包含的属于所述第二族轮廓集合的轮廓都属于所述第一族轮廓集合,则将所述异常轮廓中包含的属于所述第二族轮廓集合的轮廓代替所述异常轮廓。

优选地,所述基于所述多族轮廓集合的相互校验,对所述异常轮廓进行修正,还包括:如果所述异常轮廓中包含的属于所述第二族轮廓集合的轮廓并非都属于所述第一族轮廓集合,则将所述异常轮廓中属于所述第二族轮廓集合并且不属于所述第一族轮廓集合的轮廓删除;并且将所述异常轮廓中剩余包含的属于所述第二族轮廓集合的轮廓代替所述异常轮廓。

优选地,所述基于所述多族轮廓集合的相互校验,对所述异常轮廓进行修正,还包括:如果所述异常轮廓的面积小于所述第二族轮廓集合中的轮廓,则计算所述第一族轮廓集合中包含的轮廓的个数并且判断所述第一族轮廓集合中包含的轮廓的个数是否大于等于5。

优选地,所述基于所述多族轮廓集合的相互校验,对所述异常轮廓进行修正,还包括:在所述筛选分类结果中,如果所述异常轮廓的面积小于所述第二族轮廓集合中的轮廓,则计算所述第一族轮廓集合中包含的轮廓的个数并且判断所述第一族轮廓集合中包含的轮廓的个数是否大于等于5。

优选地,所述基于所述多族轮廓集合的相互校验,对所述异常轮廓进行修正,还包括:如果所述第一族轮廓集合中包含的轮廓的个数大于等于5,则在所述第一族轮廓集合中找到距离所述异常轮廓最近的四个轮廓。

优选地,所述基于所述多族轮廓集合的相互校验,对所述异常轮廓进行修正,还包括:如果所述第一族轮廓集合中包含的轮廓的个数小于5,则在所述第一族轮廓集合中选出除所述异常轮廓之外的所有轮廓。

优选地,所述基于所述多族轮廓集合的相互校验,对所述异常轮廓进行修正,还包括:在所述距离所述异常轮廓最近的四个轮廓中或者在所述除所述异常轮廓之外的所有轮廓中,判断每两个轮廓之间是否可以合并。

优选地,所述基于所述多族轮廓集合的相互校验,对所述异常轮廓进行修正,还包括:如果每两个轮廓之间可以合并,则将所述距离所述异常轮廓最近的四个轮廓或者所述除所述异常轮廓之外的所有轮廓中每两个轮廓合并。

优选地,所述基于所述多族轮廓集合的相互校验,对所述异常轮廓进行修正,还包括:如果每两个轮廓之间不可以合并,则将所述异常轮廓删除。

优选地,所述基于机器学习模型,对所述多个第二图像进行后处理逻辑判断,得到所述原始图像中牲畜的个数,包括:分别计算所述多个第二图像的轮廓个数;

分别判断所述多个第二图像的轮廓是否经过修正。

优选地,所述基于机器学习模型,对所述多个第二图像进行后处理逻辑判断,得到所述原始图像中牲畜的个数,还包括:如果所述多个第二图像的轮廓都没有经过修正,则判断所述多个第二图像包含的轮廓的个数是否相同。

优选地,所述基于机器学习模型,对所述多个第二图像进行后处理逻辑判断,得到所述原始图像中牲畜的个数,还包括:如果所述多个第二图像包含的轮廓的个数相同,则所述原始图像中牲畜的个数为所述多个第二图像包含的轮廓的个数。

优选地,所述基于机器学习模型,对所述多个第二图像进行后处理逻辑判断,得到所述原始图像中牲畜的个数,还包括:如果所述多个第二图像包含的轮廓的个数不相同,则判断所述先验的所述原始图像中牲畜的个数是否小于等于9。

优选地,所述基于机器学习模型,对所述多个第二图像进行后处理逻辑判断,得到所述原始图像中牲畜的个数,还包括:如果所述多个第二图像包含的轮廓都经过修正,则判断所述先验的所述原始图像中牲畜的个数是否小于等于9。

优选地,所述基于机器学习模型,对所述多个第二图像进行后处理逻辑判断,得到所述原始图像中牲畜的个数,还包括:如果所述先验的所述原始图像中牲畜的个数小于等于9,则输出低阈值对应的所述第二图像中轮廓的个数。

优选地,所述基于机器学习模型,对所述多个第二图像进行后处理逻辑判断,得到所述原始图像中牲畜的个数,还包括:如果所述先验的所述原始图像中牲畜的个数大于9,则输出高阈值对应的所述第二图像中轮廓的个数。

优选地,所述对所述原始图像中的牲畜进行标记,包括:在所述牲畜的头部和尾部画圆点;用椭圆长轴首尾连接所述头部和所述尾部的圆点;以及以所述头部和所述尾部的圆点为圆心分别画圆,使两个圆都在所述牲畜的躯干上。

优选地,所述多个第二特征数据集中包括以下特征中的至少之一的特征:轮廓面积/轮廓最小外接矩形面积、主成分分析主轴长度/主成分分析次轴长度、主成分分析主轴长度/轮廓最小外接矩形的长和主成分分析次轴长度/轮廓最小外接矩形的宽。

根据本发明的另一方面,提供一种牲畜个数的识别装置,包括:数据获取单元,用于获取原始图像,并对所述原始图像中的牲畜进行标记,得到第一图像;图像语义分割单元,用于基于卷积神经网络,对所述第一图像进行图像语义分割,得到所述第一图像的前景概率密度图;二值化单元,用于基于不同的阈值,对所述前景概率密度图进行二值化,得到多个第二图像;以及逻辑判断单元,用于基于机器学习模型,对所述多个第二图像进行后处理逻辑判断,得到所述原始图像中牲畜的个数。

优选地,所述的牲畜个数的识别装置,还包括:优化单元,用于基于所述多个第二图像分别对应的多族轮廓特征信息,对所述多个第二图像的异常轮廓进行优化。

根据本发明的又一方面,提供一种牲畜个数的识别控制装置,包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行上述的牲畜个数的识别方法。

根据本发明的再一方面,提供一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令被执行时实现如上所述的牲畜个数的识别方法。

本发明的一个实施例具有以下优点或有益效果:对原始图像经标注后得到的第一图像做图像语义分割后,使用机器学习分类的方式对多个第二图像做后处理逻辑判断,提高了识别牲畜个数的多场景应用的鲁棒性。基于不同阈值得到多个第二图像,并在多个第二图像之间进行后处理逻辑判断,提高了牲畜个数的识别方法的召回率和准确率。

附图说明

通过以下参照附图对本发明实施例的描述,本发明的上述以及其他目的、特征和优点将更为清楚,在附图中:

图1示出现有技术中一个实施例的用于人群计数的深度卷积神经网络模型的结构示意图。

图2示出本发明的一个实施例的牲畜个数的识别方法的流程示意图。

图3a示出本发明的一个实施例的原始图像的标注图。

图3b示出本发明的一个实施例的原始图像的二值图。

图4示出本发明的一个实施例的牲畜个数的识别方法的流程示意图。

图5示出本发明的一个实施例的牲畜个数的识别方法的流程示意图。

图6示出本发明的一个实施例的轮廓特征描述图。

图7示出本发明的一个实施例的牲畜个数的识别装置的结构示意图。

图8示出本发明的一个实施例的牲畜个数的识别控制装置的结构示意图。

具体实施方式

以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程没有详细叙述。另外附图不一定是按比例绘制的。

图2是本发明的一个实施例的牲畜个数的识别方法的流程示意图,具体包括以下步骤:

在步骤s201中,获取原始图像,并对所述原始图像中的牲畜进行标记,得到第一图像。

在本步骤中,获取原始图像,并对该原始图像中的牲畜进行标记,得到第一图像。图3a是本发明的一个实施例的原始图像的标注图。如图3a所示,获取摄像头采集的原始图像后,将原始图像中每头牲畜的可见部分的头部和尾部画圆点。用椭圆长轴首尾连接牲畜的头部和尾部的圆点,保证椭圆覆盖牲畜的全身。体型较大的牲畜的椭圆长轴比普通体型的牲畜的椭圆长轴长。以牲畜的头部和尾部的圆点为圆心分别画圆,使两个圆都在牲畜的躯干上。这样使首尾的权重更大。如果有牲畜相互挤压遮挡的情况,只标注露出部分。

在步骤s202中,基于卷积神经网络,对所述第一图像进行图像语义分割,得到所述第一图像的前景概率密度图。

在该步骤中,使用u-net算法模型,对该第一图像进行图像语义分割,得到该第一图像的前景概率密度图。该前景概率密度图中每一个像素的概率值在0至1之间。

在步骤s203中,基于不同的阈值,对所述前景概率密度图进行二值化,得到多个第二图像。

在该步骤中,使用不同的阈值对该前景概率密度图进行二值化,得到多个二值图。并将该二值图作为多个第二图像。图3b是本发明的一个实施例的原始图像的二值图。

在步骤s204中,基于机器学习模型,对所述多个第二图像进行后处理逻辑判断,得到所述原始图像中牲畜的个数。

在该步骤中,基于机器学习模型,使用机器学习分类的方式对图像语义分割后的多个第二图像之间做后处理逻辑判断,得到该原始图像中牲畜的个数。

根据本发明实施例,对原始图像经标注后得到的第一图像做图像语义分割后,使用机器学习分类的方式对多个第二图像做后处理逻辑判断,提高了识别牲畜个数的多场景应用的鲁棒性。基于不同阈值得到多个第二图像,并在多个第二图像之间进行后处理逻辑判断,提高了牲畜个数的识别方法的召回率和准确率。

图4是本发明的一个实施例的牲畜个数的识别方法的流程示意图。具体包括以下步骤:

在步骤s401中,获取原始图像,并对所述原始图像中的牲畜进行标记,得到第一图像。

在步骤s402中,基于卷积神经网络,对所述第一图像进行图像语义分割,得到所述第一图像的前景概率密度图。

在步骤s403中,基于不同的阈值,对所述前景概率密度图进行二值化,得到多个第二图像。

在步骤s404中,基于所述多个第二图像分别对应的多族轮廓特征信息,对所述多个第二图像的异常轮廓进行优化。

在步骤s405中,基于机器学习模型,对所述多个第二图像进行后处理逻辑判断,得到所述原始图像中牲畜的个数。

本实施例是比前述实施例更加完善的牲畜个数的识别方法。步骤s401至s402与图2的s201至s202相同,这里就不再赘述。

在本步骤s403中,获取经过图像语义分割得到的前景概率密度图。使用0.1和0.7的两个阈值分别对该前景概率密度图进行二值化,得到两张二值图。将得到的两张二值图作为两个第二图像。实际工程应用中,可以根据需要选择不同的阈值来对该前景概率密度图进行二值化。

在步骤s404中,采用轮廓提取函数(findcontours)分别提取两个第二图像的轮廓,得到两个第二图像对应的两族轮廓集合和先验的该原始图像中牲畜的个数。由于每个轮廓的面积的大小不一而且特征不具有普适性,所以对得到的两族轮廓集合进行特征提取。对每个轮廓进行特征描述,对第二图像中每个点的位置进行主成分分析,得到主轴的方向。计算轮廓的最小外接矩形(minbox)、轮廓的面积、主轴长度等来构建机器学习模型所用的特征,用这些特征来代表每个轮廓。将对两族轮廓集合进行特征提取得到的特征集合作为两个第二图像对应的两族第一特征数据集。基于随机森林模型分别对该两族第一特征数据集的各个特征进行排序,得到该两族第一特征数据集的各个特征的重要性次序;基于该两族第一特征数据集的各个特征的重要性次序,将不重要的特征剔除,得到两族第二特征数据集。基于该两族第二特征数据集,采用自适应提升算法(adaboost)模型对两个第二图像对应的该两族轮廓集合进行筛选分类;其中,筛选分类结果中包括:该两族轮廓集合的各个轮廓的面积的大小。如果在两个第二图像对应的该两族轮廓集合中不存在异常轮廓,则将该两族轮廓集合中的轮廓标记为正常轮廓。如果在两个第二图像对应的两族轮廓集合中存在异常轮廓,则将该两族轮廓集合中合格的轮廓标记为正常轮廓,将该两族轮廓集合中不合格的轮廓标记为异常轮廓;基于该两族轮廓集合的相互校验,对异常轮廓进行修正。高阈值对应的轮廓集合中包含的轮廓的面积相对比较小,很少有轮廓粘连的情况,召回率低。而低阈值对应的轮廓集合包含的轮廓的召回率会高一些,但是会有轮廓粘连的情况,所以检查到异常轮廓后结合另外一族轮廓集合来对异常轮廓进行修正,保证数目准确。

在步骤s405中,在机器学习模型中,分别计算两个第二图像中包含的轮廓的个数;分别判断两个第二图像中包含的轮廓是否经过修正。如果两个第二图像中包含的轮廓都没有经过修正,则判断两个第二图像包含的轮廓的个数是否相同。如果两个第二图像包含的轮廓的个数相同,则该原始图像中牲畜的个数为该两个第二图像包含的轮廓的个数并且牲畜个数识别的等级为a,即该牲畜的个数识别方法的准确率为99%。如果两个第二图像包含的轮廓的个数不相同,则判断该先验的该原始图像中牲畜的个数是否小于等于9。如果两个第二图像包含的轮廓都经过修正,则判断该先验的该原始图像中牲畜的个数是否小于等于9。如果该先验的该原始图像中牲畜的个数小于等于9,则输出低阈值(0.1)对应的第二图像中轮廓的个数并且牲畜个数识别的等级为b,即该牲畜的个数识别方法的准确率为95%。如果该先验的该原始图像中牲畜的个数大于9,则输出高阈值(0.7)对应的第二图像中轮廓的个数并且牲畜个数识别的等级为b,即该牲畜的个数识别方法的准确率为95%。

根据本发明的实施例,由于图像语义分割在多场景下的泛化能力有限,使用自适应提升算法(adaboost)模型对图像语义分割的结果进行分类,提高牲畜个数识别方法的召回率和准确率。基于随机森林模型分别对该两族第一特征数据集的各个特征进行排序,将不重要的特征剔除,得到两族第二特征数据集,提高了描述轮廓特征的准确性,进一步提高了牲畜个数识别方法的召回率和准确率。

图5是本发明的一个实施例的牲畜个数的识别方法的流程示意图。具体是图4中步骤s404中,基于所述多族轮廓集合的相互校验,对所述异常轮廓进行修正的过程。具体包括以下步骤:

在步骤s501中,获取所述异常轮廓所属的轮廓集合,得到第一族轮廓集合;获取所述异常轮廓不属于的一个轮廓集合,得到第二族轮廓集合;以及比较所述异常轮廓和所述第二族轮廓集合的轮廓的面积的大小。如果所述异常轮廓的面积大于所述第二族轮廓集合的轮廓,则执行s502。如果所述异常轮廓的面积小于所述第二族轮廓集合中的轮廓,则执行s512。

在步骤s502中,判断在所述筛选分类结果中,所述异常轮廓的面积是否大于所述第二族轮廓集合的轮廓。在所述筛选分类结果中,如果所述异常轮廓的面积大于所述第二族轮廓集合的轮廓,则执行s503。在所述筛选分类结果中,如果所述异常轮廓的面积小于所述第二族轮廓集合中的轮廓,则执行s512。

在步骤s503中,计算所述第二族轮廓集合中包含的轮廓的个数,并且判断所述第二族轮廓集合中包含的轮廓的个数是否大于等于3。如果所述第二族轮廓集合中包含的轮廓的个数大于等于3,则执行s504。如果所述第二族轮廓集合中包含的轮廓的个数小于3,则执行s505。

在步骤s504中,在所述第二族轮廓集合中找到距离所述异常轮廓最近的3个轮廓。

在步骤s505中,在所述第一族轮廓集合中找到除所述异常轮廓之外的所有轮廓。

在步骤s506中,判断所述异常轮廓中包含的属于所述第二族轮廓集合的轮廓的个数是否大于1。如果所述异常轮廓中包含的属于所述第二族轮廓集合的轮廓的个数等于1,则执行s507。如果所述异常轮廓中包含的属于所述第二族轮廓集合的轮廓的个数大于等于2,则执行s508。

在步骤s507中,将所述异常轮廓切割为两个。

在步骤s508中,判断所述异常轮廓中包含的属于所述第二族轮廓集合的轮廓的个数是否大于等于3。如果所述异常轮廓中包含的属于所述第二族轮廓集合的轮廓的个数小于3,则执行s509。如果所述异常轮廓中包含的属于所述第二族轮廓集合的轮廓的个数大于等于3,则执行s510。

在步骤s509中,将所述异常轮廓中包含的属于所述第二族轮廓集合的轮廓代替所述异常轮廓。

在步骤s510中,判断所述异常轮廓中包含的属于所述第二族轮廓集合的轮廓是否属于所述第一族轮廓集合。如果所述异常轮廓中包含的属于所述第二族轮廓集合的轮廓都属于所述第一族轮廓集合,则执行s509。如果所述异常轮廓中包含的属于所述第二族轮廓集合的轮廓并非都属于所述第一族轮廓集合,则执行s511。

在步骤s511中,将所述异常轮廓中属于所述第二族轮廓集合并且不属于所述第一族轮廓集合的轮廓删除之后,执行s509。

在步骤s512中,计算所述第一族轮廓集合中包含的轮廓的个数并且判断所述第一族轮廓集合中包含的轮廓的个数是否大于等于5。如果所述第一族轮廓集合中包含的轮廓的个数大于等于5,则执行s513。如果所述第一族轮廓集合中包含的轮廓的个数小于5,则s514。

在步骤s513中,在所述第一族轮廓集合中找到距离所述异常轮廓最近的四个轮廓。

在步骤s514中,在所述第一族轮廓集合中选出除所述异常轮廓之外的所有轮廓。

在步骤s515中,在所述距离所述异常轮廓最近的四个轮廓中或者在所述除所述异常轮廓之外的所有轮廓中,判断每两个轮廓之间是否可以合并。如果每两个轮廓之间可以合并,则执行s516。如果每两个轮廓之间不可以合并,则执行s517。

在步骤s516中,将所述距离所述异常轮廓最近的四个轮廓或者所述除所述异常轮廓之外的所有轮廓中每两个轮廓合并。

在步骤s517中,将所述异常轮廓删除。

在本申请的实施例中,判断该异常轮廓属于两个第二图像对应的两族轮廓集合中的哪个轮廓集合。获取该异常轮廓(acontour)所属的轮廓集合,得到第一族轮廓集合(acontours);获取该异常轮廓(acontour)不属于的另一个轮廓集合,得到第二族轮廓集合(bcontours);以及比较该异常轮廓(acontour)和该第二族轮廓集合(bcontours)中包含的轮廓的面积的大小。如果该异常轮廓(acontour)的面积大于该第二族轮廓集合(bcontours)中包含的轮廓,则判断在该筛选分类结果中,该异常轮廓(acontour)的面积是否大于该第二族轮廓集合(bcontours)的轮廓。在该筛选分类结果中,如果该异常轮廓(acontour)的面积大于该第二族轮廓集合(bcontours)的轮廓,则计算该第二族轮廓集合(bcontours)中包含的轮廓的个数并且判断所述第二族轮廓集合(bcontours)中包含的轮廓的个数是否大于等于3。如果所述第二族轮廓集合(bcontours)中包含的轮廓的个数大于等于3,则在该第二族轮廓集合(bcontours)中找到距离该异常轮廓最近的3个轮廓。如果所述第二族轮廓集合(bcontours)中包含的轮廓的个数小于3,则在该第一族轮廓集合(acontours)中找到除该异常轮廓(acontour)之外的所有轮廓。判断该异常轮廓(acontour)中包含的属于该第二族轮廓集合(bcontours)的轮廓的个数是否大于1。

如果该异常轮廓(acontour)中包含的属于该第二族轮廓集合(bcontours)的轮廓的个数等于1,则将该异常轮廓(acontour)切割为两个。如果该异常轮廓(acontour)中包含的属于该第二族轮廓集合(bcontours)的轮廓的个数大于等于2,则判断该异常轮廓(acontour)中包含的属于该第二族轮廓集合(bcontours)的轮廓的个数是否大于等于3。如果该异常轮廓(acontour)中包含的属于该第二族轮廓集合(bcontours)的轮廓的个数小于3,则将该异常轮廓(acontour)中包含的属于该第二族轮廓集合(bcontours)的轮廓代替该异常轮廓(acontour)。如果所述异常轮廓(acontour)中包含的属于所述第二族轮廓集合(bcontours)的轮廓的个数大于等于3,则判断该异常轮廓(acontour)中包含的属于该第二族轮廓集合(bcontours)的轮廓是否属于该第一族轮廓集合(acontours)。如果该异常轮廓(acontour)中包含的属于该第二族轮廓集合(bcontours)的轮廓都属于该第一族轮廓集合(acontours),则将该异常轮廓(acontour)中包含的属于该第二族轮廓集合(bcontours)的轮廓代替该异常轮廓(acontour)。如果该异常轮廓(acontour)中包含的属于该第二族轮廓集合(bcontours)的轮廓并非都属于该第一族轮廓集合(acontours),则将该异常轮廓(acontour)中属于该第二族轮廓集合(bcontours)并且不属于该第一族轮廓集合(acontours)的轮廓删除;并且将该异常轮廓(acontour)中剩余包含的属于该第二族轮廓集合(bcontours)的轮廓代替所述异常轮廓(acontour)。

如果所述异常轮廓(acontour)的面积小于所述第二族轮廓集合(bcontours)中的轮廓,则计算该第一族轮廓集合(acontours)中包含的轮廓的个数并且判断该第一族轮廓集合(acontours)中包含的轮廓的个数是否大于等于5。在该筛选分类结果中,如果该异常轮廓(acontour)的面积小于该第二族轮廓集合(bcontours)中的轮廓,则计算该第一族轮廓集合(acontours)中包含的轮廓的个数并且判断该第一族轮廓集合(acontours)中包含的轮廓的个数是否大于等于5。如果该第一族轮廓集合(acontours)中包含的轮廓的个数大于等于5,则在该第一族轮廓集合(acontours)中找到距离该异常轮廓(acontour)最近的四个轮廓。如果该第一族轮廓集合(acontours)中包含的轮廓的个数小于5,则在该第一族轮廓集合(acontours)中选出除该异常轮廓(acontour)之外的所有轮廓。在该第一族轮廓集合(acontours)中距离该异常轮廓(acontour)最近的四个轮廓中或者在该第一族轮廓集合(acontours)中除该异常轮廓(acontour)之外的所有轮廓中,判断每两个轮廓之间是否可以合并。如果每两个轮廓之间可以合并,则将距离该异常轮廓(acontour)最近的该四个轮廓或者除该异常轮廓(acontour)之外的该所有轮廓中的每两个轮廓合并。如果每两个轮廓之间不可以合并,则将该异常轮廓(acontour)删除。

根据本发明的实施例,当该异常轮廓与附近异常轮廓存在分离情况且主分量分析的主轴方向相同时,对两个异常轮廓进行合并。当异常轮廓存在首尾连接情况时将该异常轮廓进行分割处理。当相互独立的轮廓被标记为异常时,且该独立的轮廓与其他轮廓无关联时,将该独立轮廓删除。基于两族轮廓集合的相互校验,对该异常轮廓进行修正,进一步提高了牲畜个数识别的准确率。

在本发明的一个可选的实施例中,所述多个第二特征数据集中包括以下特征中的至少之一的特征:轮廓面积/轮廓最小外接矩形面积、主成分分析主轴长度/主成分分析次轴长度、主成分分析主轴长度/轮廓最小外接矩形的长和主成分分析次轴长度/轮廓最小外接矩形的宽。图6为本发明的一个实施例的轮廓特征描述图。如图6所示,虚线内是两族轮廓集合的所有特征,第三排特征是第二排特征的非线性组合。

第二排特征从左到右依次为:轮廓(contour)是由很多点坐标组成的区域轮廓,轮廓的数据结构是[x1,y1],[x2,y2],[x3,y3],…]。通过opencv里面的函数得到轮廓的重心是否在轮廓内(特征1),轮廓的面积(特征2),某张图片通过图像语义分割返回的所有轮廓的面积均值(特征3),该图片通过图像语义分割返回的所有轮廓面积的标准差(特征4),以坐标数据为二维变量做主成分分析得到主成分的贡献率(特征5),过轮廓中心沿着主成分方向的直线和轮廓的两个交点间的线段长度(特征6),与主成分方向垂直方向的次轴方向的直线和轮廓两个交点间线段的长度(特征7),特征6与特征7的比值(特征8),轮廓的最小外接矩形的面积(特征9),轮廓的最小外接矩形的长(特征10),轮廓的最小外接矩形的宽(特征11)。

第三排特征从左到右依次为:第二排特征2与特征9的比值(特征12),第二排特征6与特征7的比值(特征13),第二排特征6与特征特征10的比值(特征14),第二排特征7与特征11的比值(特征15)。

根据本申请的实施例,对每个轮廓提取特征,得到具有普适性的特征集合,提高了利用自适应提升算法模型对多个第二图像对应的多族轮廓集合进行筛选分类的准确性。

图7是本发明的一个实施例的牲畜个数的识别装置的结构示意图。如图7所示,该牲畜个数的识别装置包括:数据获取单元701、图像语义分割单元702、二值化单元703、逻辑判断单元704和优化单元705。

数据获取单元701,用于获取原始图像,并对所述原始图像中的牲畜进行标记,得到第一图像。

图像语义分割单元702,用于基于卷积神经网络,对所述第一图像进行图像语义分割,得到所述第一图像的前景概率密度图。

二值化单元703,用于基于不同的阈值,对所述前景概率密度图进行二值化,得到多个第二图像。

逻辑判断单元704,用于基于机器学习模型,对所述多个第二图像进行后处理逻辑判断,得到所述原始图像中牲畜的个数。

优化单元705,用于基于所述多个第二图像分别对应的多族轮廓特征信息,对所述多个第二图像的异常轮廓进行优化。

在本申请的实施例中,数据获取单元701,用于获取原始图像,并对该原始图像中的牲畜进行标记,得到第一图像。图像语义分割单元702,用于基于卷积神经网络,对该第一图像进行图像语义分割,得到该第一图像的前景概率密度图。二值化单元703,用于基于不同的阈值,对该前景概率密度图进行二值化,得到多个第二图像。逻辑判断单元704,用于基于机器学习模型,对多个第二图像进行后处理逻辑判断,得到该原始图像中牲畜的个数。优化单元705,用于基于多个第二图像分别对应的多族轮廓特征信息,对所述多个第二图像的异常轮廓进行优化。

图8是根据本发明实施例牲畜个数的识别装置的结构图。图8示出的设备仅仅是一个示例,不应对本发明实施例的功能和使用范围构成任何限制。

参考图8,该装置包括通过总线连接的处理器801、存储器802和输入输出设备803。存储器802包括只读存储器(rom)和随机访问存储器(ram),存储器802内存储有执行系统功能所需的各种计算机指令和数据,处理器801从存储器802中读取各种计算机指令以执行各种适当的动作和处理。输入输出设备包括键盘、鼠标等的输入部分;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分;包括硬盘等的存储部分;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分。存储器802还存储有以下的计算机指令以完成本发明实施例的牲畜个数的识别方法规定的操作:获取原始图像,并对所述原始图像中的牲畜进行标记,得到第一图像;基于卷积神经网络,对所述第一图像进行图像语义分割,得到所述第一图像的前景概率密度图;基于不同的阈值,对所述前景概率密度图进行二值化,得到多个第二图像;以及基于所述多个第二图像的后处理逻辑判断,得到所述原始图像中牲畜的个数。

相应地,本发明实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,所述计算机指令被执行时实现上述牲畜个数的识别方法所规定的操作。

附图中的流程图、框图图示了本发明实施例的系统、方法、装置的可能的体系框架、功能和操作,流程图和框图上的方框可以代表一个模块、程序段或仅仅是一段代码,所述模块、程序段和代码都是用来实现规定逻辑功能的可执行指令。也应当注意,所述实现规定逻辑功能的可执行指令可以重新组合,从而生成新的模块和程序段。因此附图的方框以及方框顺序只是用来更好的图示实施例的过程和步骤,而不应以此作为对发明本身的限制。

以上所述仅为本发明的一些实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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