APP下载

基于YOLO 目标检测的生猪多阈值Otsu 分割方法

2021-08-24李德平朱伟兴

软件导刊 2021年8期
关键词:直方图像素阈值

李德平,朱伟兴

(江苏大学电气信息工程学院,江苏镇江 212013)

0 引言

我国是猪肉消费大国,也是养猪大国,在生猪养殖过程中对生猪行为进行监测是评价生猪健康的重要环节[1]。商业化养殖场人工监测存在劳动力成本高和主观误差等缺点,现代化生猪养殖及其重要。计算机视觉技术的发展降低了生猪养殖场劳动力投入和生产成本,已成为监测生猪养殖的重要手段,对生猪养殖规模化和集中化起着重要作用。计算机视觉技术主要用于生猪行为分析[3-4]和身份识别[5-6]等方面。

俯视群养猪行为和身份分析日益受到关注,而个体层次上的数据分析拥有更多优势,因此监测生猪养殖一个关键步骤和经典难题是将生猪从背景中分离出来,准确提取个体猪信息。对于背景复杂的俯视群养猪视频序列(如光变化背景、尿渍、水渍、粪便及地上其他物体,不同颜色的前景对象,群居状态下的拥挤粘连等),目标的有效提取仍然具有挑战性,需要进一步研究。猪圈中生猪密度越高,分割困难就越大,尤其在采食区域,由于生猪采食时发生拥挤、碰撞和攻击等剧烈运动,造成目标难以获取,粘连的情况使分割难度加大。

常用的生猪分割方法有阈值分割、边缘检测分割、分水岭分割、基于图论分割、帧差法和背景差分法等。Guo等[7-8]采用自适应分区和多阈值分割对饮食区域生猪进行分割。该方法对目标进行两次分割,第二次分割是在第一次分割结果基础上划分有效区域从而进行精确分割。该分割方法虽效果较好,但没有考虑到粘连情况。孙龙清等[9]结合交互式分水岭算法提出改进的Graph Cut 算法,交互式分割生猪图像,明显提高了分割精度。但是这种方法在分割过程中需要人为标记前景和背景像素,无法达到自动化分割目的。Wang 等[10]采用背景差分获取生猪目标区域。对于背景差分法首先需要一副背景图片,而在群养猪条件下将猪移动到其他地方获得一副背景图片显然是不可取的。杨阿庆等[11]利用全卷积神经网络实现母猪与仔猪的粘连分割。上述基于深度学习的图像分割方法可以完整分割出生猪目标,但是分割后由于生猪粘连(尤其是在采食区域),无法实现个体猪提取。因此,需要研究更具普适性的生猪目标分割算法。

本文提出一种多阈值的Otsu 分割方法,该方法结合基于深度学习的目标检测方法完成生猪个体分割。首先训练一个YOLO 目标检测模型[12],对生猪目标进行端到端检测。该框架能检测出图像中所有训练对象的位置。在原始图片中检测到多个目标框,每个目标框内最多只有一头猪。然后采用多阈值的Otsu 分割方法对框内目标进行分割[13],得到准确的分割结果。所得到的猪个体可以用来分析猪的饮食行为以及估计猪的体重。

1 材料与方法

1.1 图像采集与处理

实验的视频数据来自江苏大学国家重点学科农业电气化与自动化的实验基地——镇江希玛牧业有限公司养殖场。通过改建试验用猪舍,安装拍摄俯视视频的图像采集系统,对有7 只猪的猪圈进行监控。摄像机位于猪舍(长×宽×高为3.5m×3m×1m)正上方,相对于地面垂直高度约为4m,视频采集平台如图1 所示。摄像机采用灰点公司FL3-U3-88S2C-C 型号摄像机,相机成像芯片为Sony 的CMOS,输出RGB 彩色视频,图像分辨率为1 760×1 840 像素。试验在天气晴好的情况下随机采集5 天视频,每天8:00-17:00 时间段,除去人工介入等干扰因素影响,共获得有效视频400 多辑,每辑时长2min 左右,所拍摄的视频帧为25 帧/s,从每天的有效视频中挑选出6 辑视频,共采集90 000(120×25×6×5)帧图像。

1.2 个体分割流程

本文算法流程如图2 所示。该流程主要分为3 个阶段,具体方法如下:

(1)使用自适应直方图均衡化增强技术进行图片预处理,并划分采食区域。

(2)在Tensorflow 深度学习平台上对YOLO 网络进行微调,然后针对采食区域的生猪进行端到端检测。

(3)将检测到的目标框中的个体猪利用多阈值Otsu 分割方法,将图片像素分为2、3 或4 类,分别划分1、2 或3 个阈值,然后将属于前景的区域叠加起来并结合形态学处理,最终得到较为完整的目标轮廓。

Fig.1 Video capture platform and video frame sample acquired图1 视频采集平台及获取的视频帧

Fig.2 Individual segmentation flow图2 个体分割流程

1.3 彩色图像增强和采食区域划分

如图3 所示(彩图扫OSID 码可见,下同),猪圈可分为不同的区域,这些区域都与猪的特定行为有关,如猪喜欢挤在角落里,睡在休息区,采食和饮水区的猪总是站在特定位置。图3(a)为俯视群养猪单帧实验图像示例。通过仔细观察发现,所拍摄的视频周围存在大量不必要的区域占用了计算单元,为此手动设置有效区域,如图3(b)所示,红框内像素为有效区域。由于大型养猪场采用集中喂养和封闭式管理,从养猪场收集到的图像光线通常很弱。因此,图像直方图的灰度范围较窄,位于较低层次。本文通过自适应直方图均衡化有效区域进行增强,增强的主要步骤是将采集到的彩色图像从RGB 色彩空间转换到HSV 色彩空间,保持色调(H)、饱和度(S)通道不变,对亮度(V)通道进行自适应直方图均衡化增强。将增强后的图像再转换到RGB 颜色空间,如图3(c)所示,得到动态范围较大的增强图像。

Fig.3 Experimental original picture and processed image图3 实验原图及处理后图像

从图3 可以看出,经过自适应直方图均衡化处理后的图片亮度和对比度都有所提高,在视觉上前景目标更加清晰。

从图3(a)可以发现猪的活动范围有限,每只猪只能在规定的范围内活动。在猪发生采食行为时,由于不同时间在采食区的猪数量不同,情况较为复杂,因此定义了采食区域。为适应后期的目标检测任务,将图片尺寸统一调整为416×416 像素,以食槽中心点为圆心,图片尺寸(416 像素)的2/3 为半径划分采食区域,如图4 所示。

Fig.4 Division of feeding area(with the center of trough as the center and 416*2/3 as the radius)图4 采食区域的划分(以食槽中心点为圆心,416*2/3 为半径)

2 生猪定位与分割

2.1 生猪目标检测

本文检测的目标较大,YOLO 网络在实时性和检测精度上完全符合预期,因此对YOLO 生猪检测进行微调。由于深度学习对于训练样本的数量要求较多,而拍摄的视频数据相似度较高,为提高模型泛化能力,从上述9 000 幅图片中选取差别较大的200 幅图片,另外从网络上下载不同背景的俯视群养猪图片1 448 幅,共计1 648 幅图片构成训练集。YOLO 模型在MSCOCO 上进行预训练[14],然后利用自身的数据集对预训练的权重进行微调。该框架能够检测出图像中所有训练对象位置。在原始图片中检测到多个目标框,每个目标框内最多有一头猪,将检测到的目标提取出来,如图5 所示。

Fig.5 Positioning and extraction of pig targets图5 生猪目标定位与提取

2.2 Otsu 分割算法

2.2.1 经典Otsu 分割算法

Otsu 自1979 年提出后一直被认为是阈值分割的经典算法,其通过最大类间方差准则来选取阈值。该方法建立在一幅图像的灰度直方图基础上,依据类间距离极大准则确定区域分割门限。

设一幅大小为M×N像素的图像有L个不同灰度级,ni表示灰度级为i的像素个数,则图像中像素总个数为MN=n0+n1+n2+...+nL-1,归一化后的直方图各灰度级出现的概率,显然。设以灰度k为门限将图像分割成两个区域:①灰度级为1~k的像素区域A(背景类);②灰度级为k+1~L-1 的像素区域B(目标类)。A、B 出现的概率分别计算如下:

A 和B 两类的灰度均值以及图像总的灰度均值计算如下:

由此得到A、B两区域的类间方差σB=pA(mA-m0)2+pB(mB-m0)2。显然,pA、pB、mA、mB、m0、都是关于灰度级k的函数。为得到最优分割阈值,Otsu 把两类的类间方差作为判别准则最大化,从而最佳阈值k*如下:

2.2.2 多阈值Otsu 分割算法

由于多数图像并不是简单的双峰,是可一分为二的图像,因此对于那些灰度直方图的灰度级分布谷底不明显的复杂图像,单一使用Otsu 准则并不能从图像中稳定可靠地将目标分割出来,很难达到满意的分割效果。因此,将以上的阈值处理方法推广到多阈值。将一幅图像分为K个类C1,C2,...、Ck,类间方差如式(4)所示:

从图1 拍摄的图像可以看到,猪体颜色主要分为两种:黑猪和白猪,且与背景存在较大差异,简单利用传统的Otsu 算法将图中像素分为两类会存在较大误差,因此考虑采用多阈值的Otsu 分割方法细化像素分类以提取前景目标。

3 实验

3.1 实验平台

采用64GB 内存、NVIDIA GTX1080TI 型GPU、Intel®Xeon(R)CPU E5-2678 v3@ 2.50GHz 处理器作为硬件平台,操作系统为Win10,并行计算框架版本为CUDA9.0,深度神经网络加速库为CUDNN v7.0。采用Python 编程语言在Keras 深度学习框架上实现生猪目标检测,采用MAT⁃LAB 2015a 实现多阈值的Otsu 分割。

3.2 实验结果及分析

Otsu 方法以图像的相对直方图(归一化直方图)为基础对一维阵列进行计算,本文首先利用传统的Otsu 分割方法计算最优阈值。将图片中的像素分为前景和背景两类并绘制相对直方图,如图6 所示。

在分割之前,需要将彩色图转换为灰度图,然后获取最佳阈值使得类间达到方差最大。其中,T为该方法求得的最佳阈值,η(eta)表示可分性度量,它是阈值T所对应的最大类间方差σB与全局方差σ0之比。从图6 可以看出,图中的可分性度量相对较高,但是分割结果较差,尤其对于第二张图片来说其分割率尚不到50%。因此传统的Otsu分割方法对处理前背景相差较大的图片效果明显,而对于类似于第二张图片需要进一步探索精确的分割方法。

Fig.6 Traditional Otsu segmentation results and histogram of relative values图6 传统的Otsu 分割结果与相对值直方图

利用多阈值的Otsu 分割方法,将一幅图像分为K个类,因此会产生K-1 个阈值(k1、k2、k3...kk-1),将大小低于k1的像素标记为背景,其余为前景像素,将前景像素相加并通过腐蚀膨胀等形态学处理得到如图7 所示的结果。

从图7 可以看出,随着分类的增加分割结果越来越精确。用η评价分割结果,η定义为最大类间方差与全局方差之比,η的值用来度量已存在的类之间的分离性,值越大说明分离性越强,其取值范围为[0,1]。本文图片中分的类越多所对应η值越大,分割越精确,同时效率也越低。

将本文算法得到的分割图像与手动分割后的图像交并比(IOU)用于评价分割效果,同时与其他分割方法,如迭代法、最大熵分割方法和文献分割方法[12]进行比较,如表1所示。

Fig.7 Multi-threshold Otsu segmentation results图7 多阈值Otsu 分割结果

从表1 可以看出,当将图片中的像素分为两类时,由于1 号猪和3 号猪与背景相差较大所以分割结果较好。然而对于2 号猪,猪体像素与背景像素较为相似导致分割结果较差,只有43.2%。而采用多阈值的分割方法分类越多分割结果越精确,但同时所消耗的时间也越多。将图片中像素分为4 类时,相比于分为3 类时的精度提高很少,但所消耗的时间却是原来的一倍。因此,综上所述,当将图像分为3 类时对应的分割结果较好,且算法处理时间适当。

不同数量生猪分割结果如图8 所示。

从图8 可以看出,当采食区域生猪数量较多且存在粘连情况时分割结果也相对较差,但是由于猪体存在颜色差异,所以本文方法可以将轻度粘连的生猪分割出来。对挑选出来的500 帧图片平均分割率(所有在采食区域的生猪被完整分割)为88.5%,相比于文献[12]的算法分割精度降低,原因是由于采食区域中存在大量的生猪粘连造成分割精度下降。但本文算法对粘连生猪的分割效果较好,且在算法执行效率上也明显提高。

4 结语

本文结合深度学习和传统的图像处理方法提出一种基于目标检测的多阈值Otsu 分割方法,可以实现群养状态下的生猪个体分割。该方法首先以采食槽为中心划分采食区域,然后利用目标检测算法端到端提取出单只猪的目标区域,在区域内利用多阈值的Otsu 分割方法分割出生猪个体。该方法适用于俯视群养猪采食区域的复杂场景,解决了粘连状态下的生猪分割难题并取得较好效果。实验结果显示,500 帧实验数据平均分割率为88.65%,与其他分割方法相比,本文方法在精确度和处理时间上效果较好。后续工作一方面是优化目标检测算法,提高检测结果精确度,另一方面是改进分割算法,进一步提高图片分割效率,并在生猪身份识别和重量估计等方面开展研究。

猜你喜欢

直方图像素阈值
统计频率分布直方图的备考全攻略
赵运哲作品
符合差分隐私的流数据统计直方图发布
像素前线之“幻影”2000
小波阈值去噪在深小孔钻削声发射信号处理中的应用
“像素”仙人掌
用直方图控制画面影调
基于自适应阈值和连通域的隧道裂缝提取
比值遥感蚀变信息提取及阈值确定(插图)
室内表面平均氡析出率阈值探讨