APP下载

基于热红外成像与骨架树模型的奶牛眼温自动检测

2021-04-13何东健宋子琪

农业机械学报 2021年3期
关键词:骨架红外头部

何东健 宋子琪

(1.西北农林科技大学机械与电子工程学院,陕西杨凌 712100; 2.农业农村部农业物联网重点实验室,陕西杨凌 712100;3.陕西省农业信息感知与智能服务重点实验室,陕西杨凌 712100)

0 引言

我国奶牛养殖业正由传统方式逐渐转变为自动化、精细化以及智能化大规模养殖模式,这对奶牛健康信息的智能采集提出了更高要求[1]。奶牛各项生理参数通常反映其生理状态和健康情况,体温是最具有代表性的生理参数。奶牛正常体温为38.5~39.5℃,疾病、发情、热应激等原因均会使奶牛体温产生大幅变化。因此,奶牛体温检测对于奶牛疾病诊断、发情预测、健康管理等具有重要意义[2-3]。

按照测量部位奶牛体温可分为体表温度与体核温度,通常体核温度高于体表温度。直肠更接近体核,不易受外界环境影响,温度相对稳定,且能反映真实体温,所以直肠温度常被作为奶牛体温[4]。传统的奶牛体温测量需要经验丰富的专业人员采用兽用水银或电子温度计测量直肠温度,其劳动强度大、耗时,且容易引起奶牛应激反应和疾病交叉传播,不能满足规模化精细养殖中快速、高精度测量温度的需要。诸多学者进行了奶牛体温自动测量方法研究,并取得了一些成果。文献[5]基于ZigBee 无线传输技术实现了奶牛体征信息的监测,但无法实时监测奶牛体核温度。文献[6]设计的可穿戴式无线阴道探针基于电导率和温度的测量以及运动感应来自动检测奶牛体温,但无法在较大区域内进行网络建设。文献[7]将瘤胃推注物通过定制的推注器放入奶牛瘤胃中,以监测奶牛体温,但瘤胃内传感器设备在数据传输时会受到奶牛姿态变化的干扰。

已有研究表明,奶牛眼睛区域内表皮最高温度与直肠温度具有较高的相关性,故可以通过眼表最高温度预测奶牛体温[8-9]。红外热成像(Infrared thermography, IRT)是一种安全、无创的热分布可视化技术,该技术基于物体的热辐射,通过光电红外探测器将物体发热部位辐射的功率信号转换成电信号,进而得到反映物体表面温度的热红外图像。国内外学者应用IRT技术测量奶牛体表温度,并探究了奶牛体表温度与直肠温度的关系[10-12]。文献[13]采用红外热像仪测量奶牛眼睛表皮温度,并用数字兽用温度计测量直肠温度,得出奶牛眼部温度与直肠温度具有一定的相关性、奶牛眼部温度可代替直肠温度的结论。文献[14]利用IRT技术通过采集奶牛不同身体区域的图像来测量奶牛体温,并利用SAS分析数据,结果同样表明,奶牛眼睛温度与直肠温度有较高的相关性,且根据眼部温度能够识别早期奶牛疾病。文献[15]利用便携式红外热像仪连续3 d采集10头奶牛的热红外图像,对图像进行滤波处理后提取眼睛温度,得到奶牛最高眼温与奶牛体温相关性最大,可通过奶牛眼睛温度预测体温。文献[16]根据奶牛跨度信息,用最大内接矩形和最小外接矩形求取眼睛所在区域,以此获取奶牛眼温,以奶牛眼温作为体温标准,通过与奶牛乳房温度进行比较来检测奶牛是否患乳房炎,检测准确率达87.5%,表明奶牛眼温可以代表体温。

由于热红外图像受噪声干扰,其对比度和分辨率较低,且在测温过程中受奶牛姿态随时变化等因素的影响[17-18],对其感兴趣区域(Region of interest, ROI)的自动提取较为困难,眼睛等ROI区域只能借助特定软件由人工选取[19-20],难以实现奶牛眼睛区域的自动提取和眼温的准确检测。本文提出一种从奶牛侧视热红外图像中自动检测奶牛眼温的方法,在基于差距度量的阈值提取奶牛目标的基础上,提取骨架特征点并建立骨架树模型,根据骨架树模型特征识别奶牛头部区域,将奶牛头部轮廓特征与眼睛相对位置特征相结合,定位奶牛眼睛区域,并检测奶牛眼睛区域最高温度,以期为奶牛体温的自动检测、奶牛发情和疾病早期检测、热应激行为的判别提供技术支持。

1 热红外图像采集

1.1 试验对象

以陕西省杨凌区科元克隆股份有限公司规模奶牛养殖场的美国荷斯坦奶牛为研究对象,从254头奶牛中选取处于泌乳中期,年龄为3~4岁,体型相似的50头作为试验对象。

1.2 试验仪器

MAG62型红外热像仪(上海巨哥有限责任公司),图像分辨率为640像素×480像素,像素尺寸为17 μm,测温范围为-40~80℃,测温精度为0.1℃,由自带软件ThermoScope可得到所选测温区域的最大、最小和平均温度。

1.3 热红外图像采集方法

试验于2020年1月10—17日在陕西省杨凌区科元克隆股份有限公司进行,牛场环境平均温度11.5℃,相对湿度为23%~48%。奶牛挤奶前需要依次经过宽1.2 m、长6.5 m的通道进入挤奶间,在13:30—14:30挤奶期间,将红外热像仪放置在通道旁一侧距通道5 m处拍摄奶牛侧面热红外图像(图1)。人为设障使奶牛依次通过通道,奶牛约以0.1 m/s的速度用时1 min左右通过通道,人工控制每隔10 s左右拍摄1幅热红外图像,保证每头奶牛最少拍摄5幅图像。红外热像仪通过以太网与计算机相连,利用ThermoScope软件获取热红外图像,将热红外数据文件(扩展名为.ddt)保存在计算机中。

2 奶牛眼睛温度检测方法

奶牛眼睛温度提取包括奶牛目标提取、头部区域识别、眼睛区域定位与温度提取等步骤。

2.1 奶牛目标提取

为获取奶牛眼睛区域温度,首先要提取奶牛目标。热红外图像是温度的可视化显示,通过TheremoScope软件将每一像素的温度按照内部设定的温度和颜色之间的关系转换为伪彩色图像。由于热红外图像分辨度低且仅包含温度信息,同时受拍摄场景的限制,奶牛目标受到栏杆遮挡,所以奶牛目标提取存在困难。本文通过图像预处理与奶牛目标分割2个步骤实现奶牛目标提取。

2.1.1图像预处理

红外热像仪获取的热红外图像如图2a所示,除上述原因外,由于奶牛眼睛区域占整幅图像比例过小,进一步加大了眼睛温度检测的难度。在TheremoScope软件中读入热红外图像并获得温度矩阵,由于TheremoScope软件中直接显示的伪彩色图像是通过自带算法处理得到的,不是原始数据,为获取原始数据且更加准确、快速地检测温度,将获得的温度矩阵转换为灰度图像[21],计算式为

gray_img[i,j]=M[i,j]/(max(M)-min(M))

(i∈[1,480],j∈[1,640])

(1)

式中 gray_img[i,j]——灰度图像中第i行、第j列的灰度

M[i,j]——温度矩阵中第i行、第j列的温度,℃

max(M)、min(M)——温度矩阵中最高与最低温度,℃

由于原始温度转换的灰度图像存在噪声,在数值上多以孤立的极大值、极小值表现,对温度读取造成影响,故采用3×3窗口进行中值滤波以去除孤立噪点,得到滤波后的灰度图像如图2b所示。

2.1.2奶牛目标分割

热红外图像中每一像素的像素值与温度呈正比,所获取的前景区域与背景区域温度有显著性差异,常用Otsu算法将目标从背景中分割出来[22]。但由于本试验拍摄场景较为复杂,图像受噪声干扰,相近温度点之间的对比度低,而基于差距度量的阈值分割方法具有一定的抗高斯噪声干扰和抗对比度变化的特性,所以本文采用基于差距度量的阈值分割方法进行处理[23]。基于目标与背景的对比度差异,计算出目标与原图以及背景与原图的差距度量,最终获取最佳分割阈值。

根据以上定义,设Pi为灰度级i的出现概率,L为图像原始灰度级,得

Pi=ni/L(i∈[0,L])

(2)

式中ni——灰度级i出现次数

阈值s将像素分为背景与目标,2类像素出现的概率分别为PB与PT,其计算式为

(3)

(4)

背景、目标和整幅图像平均灰度μB(s)、μT(s)和μ(s)为

(5)

(6)

(7)

背景与原图以及目标与原图之间的差距度量分别为

dTO=(μT(s)-μ(s))2PT

(8)

dBO=(μB(s)-μ(s))2PB

(9)

最后得到最佳阈值s的计算方法。

(10)

将g最大时的阈值s作为分割阈值,进行二值分割,得到二值图像如图3a所示。观察发现二值图像仍受到栏杆遮挡的影响,为去除栏杆遮挡影响,以原图像减去顶帽操作后的图像,使栏杆与奶牛连接区域断开。由于奶牛体积较大,有最大的连通区域,因此采用空间聚类技术对图像进行连通域处理,对图3a中连通域按照面积进行排序,只保留最大连通域,最后用半径为5的‘disk’型结构元素进行形态学‘闭’运算处理[24],去除孔洞,最终得到奶牛二值图像如图3b所示,可以看出遮挡栏杆、背景中的杂点均已去除,奶牛目标被准确分割。

2.2 奶牛头部区域识别

奶牛眼睛在奶牛头部内,故需要准确识别头部区域。由于奶牛行走时姿态不同,头部与颈部的位置不断变化,仅利用奶牛图像的跨度变化不能准确分割头部,而骨架是奶牛等物体的中轴,与原始形状连通性和拓扑结构分布性相一致,同时拓扑结构信息对柔性目标发生柔性变化时具有不变性[25-26],故本文基于骨架特征识别奶牛头部区域。识别过程包括骨架特征点定位、建立骨架树模型、头部分割与识别3个步骤。

2.2.1骨架特征点定位

由于奶牛骨架中存在大量冗余骨架支,Zhang-Suen骨架提取算法具备速度快、可保证细化后曲线的连通性且无毛刺生成的优点,所以本文采用Zhang-Suen骨架提取算法[27],由图3b提取的骨架如图4a所示。针对骨架特点可将骨架特征点分为4类[28]:①分支点,当前像素点8连通域方向内存在2个以上像素。②端点,当前像素点8连通域方向内仅存在1个像素。③邻分支点,当前像素点8连通域方向内存在2个像素且2像素在8连通域方向内连续。④一般点,剩余骨架像素上的连续点。

用骨架点T的8邻域的像素值之和Tnum判断特征点的类型,若Tnum≥2则为分支点,若Tnum=1则为端点。遍历骨干线上所有特征点,结合4种点的特征来寻找主骨干线上的分支点与端点,得到结果如图4b所示,其中分支点用红色圆点标记,端点用绿色圆点标记,并记录特征点位置。

2.2.2骨架树模型建立

观察奶牛骨架可发现,奶牛骨架是头部、颈部、躯干、前肢、后肢和尾巴等部件骨架的拼接,骨架树模型是反映骨架拓扑特性的树状结构[29],通过骨架树模型可以确定目标各部分的连接情况,故可在2.2.1节的基础上建立骨架树模型[30]。以奶牛轮廓中最大内切圆半径最大并且靠近目标重心的骨架特征点作为根节点,以根节点为起点遍历骨架,将与根节点直接相连的分叉点或端点作为根节点的子节点,对每个子节点用同样的方法找到各自的子节点,直到骨架上所有的分叉点和端点都在骨架树中。骨架树模型如图5a所示,其对应的骨架如图5b所示。

2.2.3头部分割与识别

将奶牛二值图像作为掩模与灰度图像进行叠加,得到奶牛目标图像如图6a所示。由于奶牛从右到左行走方向固定,故奶牛头部分割点为列坐标最小的一级子节点。将骨架映射到奶牛目标提取图像上,如图6b所示,通过骨架树模型找到所有一级子节点,列坐标最小的子节点为头部分割点,将分割点及与之相连的所有子节点组成的点视为一组数据,提取每组数据构成区域内的最小外接矩形[31],由于有些图像的骨架端点未与轮廓相接,为防止分割区域不完整,故将最小外接矩形的4个坐标均增加10像素,提取算法公式为

(11)

式中EX_right——最小外接矩形的右边界列坐标值,像素

EX_left——最小外接矩形的左边界列坐标值,像素

EY_up——最小外接矩形的上边界行坐标值,像素

EY_down——最小外接矩形的下边界行坐标值,像素

Xn、Yn——第n个点的坐标值,像素

最终选取的最小外接矩形如图6c所示,最小外接矩形框内的区域即为奶牛头部区域。

2.3 奶牛眼睛区域定位与温度提取

在识别奶牛头部区域后,根据头部轮廓的形状特征对眼睛区域定位后进而提取眼睛温度。如图7a所示,点O是头部分割点,点A、B分别为奶牛头部区域图像中轮廓的起点与终点。从点A开始逆时针遍历头部轮廓AB,计算点O与AB上点之间的欧氏距离

(12)

式中 (xo,yo)——分割点O像素坐标,像素

(xi,yi)——轮廓点i像素坐标,像素

距离数组用dh表示为

dh=(do1,do2,…,don)

(13)

式中n——轮廓AB上的点数,个

将doi的变化作为头部轮廓特征[32-33]。

图7a所示奶牛轮廓其doi长度变化曲线如图7b所示。由图7b可以看出,有2个局部最大值dmax1和dmax2,如图中红点所示。

计算头部轮廓上与头部分割点距离等于dmax1的点定位为耳尖点,在图8a中标记为点C;距离等于dmax2的点定位为鼻孔点,在图8a中标记为点D。

随机选取200幅奶牛头部分割图像,人工标记奶牛眼睛中心点,通过观察发现人工标记的奶牛眼睛中心点与耳尖点、鼻孔点间连线的距离很小,故拟定位奶牛眼睛中心点E在耳尖点C、鼻孔点D间的连线上,点E坐标为

E(x,y)=λC(x,y)+(1-λ)D(x,y)

(14)

式中λ——距离系数

C(x,y)、D(x,y)——点C、D坐标

计算人工定位奶牛眼睛中心点F与点E距离最小时λ,其中点F与点E的距离为‖F(x,y)-E(x,y)‖2,E(x,y)、F(x,y)分别为点E与点F的坐标,已知λ后即可预测眼睛中心点E的位置。由于奶牛不同姿态对眼睛定位结果有影响,所得到的λ值有差别,故以奶牛颈部与背部连接处的拟合直线斜率k为判断值[34]。将200幅奶牛图像分为正常行走75幅、微低头85幅、低头40幅3类,k∈[0,0.35)为正常行走奶牛,k∈[0.35,0.80)为微低头奶牛,k∈[0.80,∞)为低头奶牛。计算不同姿态奶牛的λ值,得到正常行走、微低头和低头奶牛的平均λ值分别为0.487、0.481和0.492,在3种姿态下利用其平均λ值计算点E与点F间距离最大值分别为3.64、3.81、2.16像素。结果表明点E与点F间距离较小,可将点E视为眼睛中心点,由式(14)定位不同姿态下奶牛眼睛中心点位置,如图8a所示。根据统计眼睛区域的平均面积,将半径设为20像素,以点E为圆心画圆,得到的圆圈区域定义为眼睛区域。由于奶牛眼睛区域最高温度与奶牛体温的相关性最大,选择圆内温度最高的点作为眼睛温度,在图8b中用红点标记,由式(1)进行像素值与温度的转换,即可得到眼睛温度。

3 试验与结果分析

3.1 奶牛头部区域识别试验

对40头自然行走奶牛的200幅侧视热红外图像测试头部区域识别算法,其中包括正常行走80幅、微低头80幅、低头40幅。为定量评价奶牛头部识别精度,通过统计本文算法和人工标记的奶牛头部面积Si和Sa,计算Si∩Sa与Si∪Sa的比值作为识别准确率进行评价,得到本文算法正常行走、微低头、低头奶牛的头部识别准确率分别为95.6%、93.3%、98.8%,不同体态的奶牛分割结果如图9所示。奶牛在微低头状态时识别率最低,是由于微低头时奶牛的双耳明显,造成头颈部的骨架线复杂,不利于定位分割点;奶牛低头状态时识别率最高,奶牛低头时头部区域形状明显,头部骨架线简单,依据列坐标最小的分割点为头部分割点易找到头部分割点。结果表明本文算法具有较好的鲁棒性,对不同姿态的奶牛均可较好地识别奶牛头部区域。

3.2 奶牛眼睛温度检测试验

随机选择头部区域识别后的100幅热红外图像作为样本,分别用本文奶牛眼温自动检测方法和在图像中人工手动选择区域测温方法进行试验。人工手动提取温度是利用ThermoScope软件,在图像中观察牛眼位置并在奶牛眼睛区域画圈,软件会显示区域内温度最高与最低值。为验证本文算法定位眼睛区域的准确度,将人工定位与本文算法定位的眼睛区域位置进行比较。人工定位的眼睛区域如图10a、10c所示;本文算法定位的眼睛区域如图10b、10d所示。

为对本算法检测眼睛温度的准确性进行评价,统计100个样本人工提取的眼睛温度Tscope和本文算法检测的温度Teve,两者之间的吻合情况如图11所示,平均绝对误差为0.35℃,平均相对误差为0.38%,表明本文算法能够有效检测奶牛眼睛温度。

对误差较大样本进行分析发现,由于奶牛头部区域分割不精确,所分割的头部区域包含了颈部,导致眼睛定位误差较大,见图12a;当头部偏向一侧时头部侧面与相机成像平面角度过大,导致眼睛在头部的相对位置改变,识别区域出现较大偏差,如图12b所示;当奶牛两耳分叉角度较大时,耳尖点定位不准确,会使定位区域出现较大偏差,如图12c所示。

4 结论

(1)利用基于差距度量的阈值分割方法提取奶牛目标,提出一种新的阈值选取方法,该方法对低分辨率、边缘对比度低、噪声大的热红外图像可进行高效分割。

(2)基于骨架特征定义骨架特征点类别,利用骨架树模型寻找头部分割点,并进行头部分割,通过分割点坐标识别头部区域。对正常行走、微低头、低头体态的奶牛头部识别准确率分别为95.6%、93.3%、98.8%,说明该算法可准确识别不同姿态下的奶牛头部区域。

(3)提出一种自动确定奶牛眼睛位置并检测其温度的算法,检测结果表明,平均绝对误差为0.35℃,平均相对误差为0.38%,说明本文奶牛眼温自动检测方法具有较高的精度。

猜你喜欢

骨架红外头部
网红外卖
浅谈管状骨架喷涂方法
自动驾驶走向L4 企业头部效应显现
闪亮的中国红外『芯』
火箭的头部为什么是圆钝形?
骨架密度对炭/炭多孔骨架压力浸渗铜的影响
8路红外遥控电路
TS系列红外传感器在嵌入式控制系统中的应用
周博士考察拾零(六十六)日光温室前屋面开机具作业门处骨架的处理方法
博泽引领座椅骨架技术发展