Research on individual recognition of dairy cows based on improved Mask R-CNN
-
摘要:目的
针对传统奶牛养殖中采用人工识别奶牛个体的方法效率低且主观性强的问题,提出一种基于改进Mask R-CNN的奶牛个体识别方法。
方法该方法对Mask R-CNN中的特征提取网络结构进行优化,采用嵌入SE block的ResNet-50网络作为Backbone,通过加权策略对图像通道进行筛选以提高特征利用率;针对实例分割时目标边缘定位不准确的问题,引入IoU boundary loss构建新的Mask损失函数,以提高边界检测的精度;对3000张奶牛图像进行训练、验证和测试。
结果改进Mask R-CNN模型的精度均值(AP)达100%,IoUMask达91.34%;与原始Mask R-CNN模型相比,AP提高了3.28%,IoUMask提高了5.92%。
结论本文所提方法具备良好的目标检测能力,可为复杂农场环境下的奶牛个体精准识别提供参考。
-
关键词:
- Mask R-CNN /
- SENet /
- IoU boundary loss /
- 图像识别 /
- 奶牛识别
Abstract:ObjectiveTo propose an individual cow recognition method based on the improved Mask R-CNN algorithm, and solve the problem of low efficiency and strong subjectivity of artificially identifying individual cows in traditional dairy farming.
MethodThis method optimizes the feature extraction network structure in Mask R-CNN, adopts ResNet-50 network embedded in SE block as backbone, and selects image channels by weighting strategy to improve feature utilization. For the problem of inaccurate target edge positioning during instance segmentation, a boundary weighted loss function is added to construct a new Mask loss function to improve the accuracy of boundary detection. A total of 3000 cow images are trained, validated and tested.
ResultThe improved Mask R-CNN model had an average precision (AP) of 100% and IoUMask of 91.34%. Compared with the original Mask R-CNN model, AP increased by 3.28% and IoUMask increased by 5.92%.
ConclusionThe proposed method has strong segmentation accuracy and robustness, and can provide a reference for accurate recognition of cow images under complex farming environment.
-
Keywords:
- Mask R-CNN /
- SENet /
- IoU boundary loss /
- image recognition /
- cow recognition
-
自动驾驶技术研发中,行驶车辆的水平位置(经度、纬度)和航向角度是两大关键信息,主要为车辆控制系统的横向控制(转向盘控制)和纵向控制(制动、加速控制)提供参考数据,满足自动驾驶车辆定位导航的综合需求[1]。自动驾驶技术对车辆航向角测量精度要求非常高。对高速行驶的汽车而言,航向角轻微偏差都会导致汽车偏离原来的行驶路线。对农业机械而言,虽然对农机作业速度要求不高,但对导航作业精度要求很高(特别是播种时需要达到cm级),航向角的轻微偏差都会对导航作业精度产生很大影响。因此,提高车辆航向角的测量精度是非常必要的。车辆航向角测量方法主要有磁阻传感器法、双天线全球导航卫星系统(Global navigation satellite system,GNSS)定位定向法、单天线GNSS定位定向法和陀螺仪测航向法等。磁阻传感器受周围磁场环境影响大,精度和可靠性不高,在高压线等有磁场干扰的作业环境下容易受到影响[2-5];双天线GNSS定位系统测航向,虽然测量精度高,但动态响应特性差,成本高[6-7];单天线GNSS定位系统可输出航向角度信息,但是随机噪声大,且速度越低,噪声越大[8-11];陀螺仪测航向一方面需要航向角度初始化,另一方面随机漂移误差会出现累积发散现象[ 12-15]。上述几种测量方法测得的航向角,均不能很好地满足车辆自动驾驶的精度要求。
本文采用单天线GNSS定位和微电子机械系统(Micro electro mechanical system, MEMS)陀螺仪相结合的方式,通过融合算法实现车辆航向角的测量。提出基于卡尔曼滤波器的车辆航向角估计模型,把实时动态–全球导航卫星系统(Real time kinematic-GNSS,RTK-GNSS)测量出来的经纬度和高程经过高斯投影变换为导航平面坐标,与陀螺仪测量的车辆角速度经过积分得出的航向角做融合处理,得到更为精准的航向角。该方法克服了GNSS因更新频率低出现的数据延迟和MEMS陀螺仪因随机漂移引起的累积误差等问题,不仅能够得到更为精准的航向角数据,还能保证良好的实时性。
1. 传感器组合
本文测量车辆航向角采用的导航传感器主要有Trimble®BD970 GNSS嵌入式板卡和内置于Xsens MTi-300微型姿态参考系统的MEMS陀螺仪。
1.1 Trimble®BD970 GNSS嵌入式板卡
Trimble®BD970 GNSS嵌入式板卡是一款紧凑型的多星接收机板卡,专为满足各种精确到cm级的定位精度应用需求而设计。系统模块不仅支持GPS L1/L2、L2C、L5,而且支持GLONASS L1/L2 信号在内的各种卫星信号。该板卡易于集成且坚固可靠,支持因特网、USB、RS232 和CAN 等多种接口,串口输出波特率最高达115 200 bps,可实现高达50 Hz的原始测量与定位输出。基准站输出支持CMR、CMR+、RTCM 2.1、2.2、2.3、3.0、3.1等协议格式;定位数据输出支持ASCII:NMEA-0183 GSV、AVR、RMC、HDT、VGK、VHD、ROT、GGK、GGA、GSA、ZDA、VTG、GST、PJT、PJK、BPQ、GLL、GRS、GBS以及二进制:TrimbleGSOF。低延时RTK定位模式的水平定位精度可达±(8 mm+1 ppm)RMS,垂直定位精度可达±(15 mm+1 ppm)RMS,延迟时间小于20 ms,最大输出频率50 Hz。GNSS板卡物理特性如下,尺寸:100 mm×60 mm×11.6 mm;电源:3.3 V DC(−3%~5%);典型功耗:1.4 W (L1/L2 GPS)或1.5 W (L1/L2 GPS和G1/G2 GLONASS);质量:62 g;连接器I/O:24排针转接口和6排针转接口;天线:MMCX插座;工作温度:−40~75 ℃;储存温度:−55~85 ℃;振动限值:随机8 g RMS。
1.2 Xsens MTi-300微型姿态航向参考系统
Xsens Technologies B.V.公司研发的MTi-300微型姿态航向参考系统内部包括:3D速率陀螺、3D加速度计和3D磁场感应计。运行于DSP上的卡尔曼滤波算法融合上述传感器信息,给出运动载体的精确3D姿态角度[8]。系统通过RS232接口按设定格式输出3D姿态角度。MTi内置的3D速率陀螺的测量范围可达±300°/s,零偏稳定性为1°/s,随机游走系数0.05°/(s·Hz),校准误差0.1°,带宽40 Hz,A/D分辨率16位,更新速率最大为120 Hz。本文利用3D速率陀螺中的Z轴陀螺实现车辆航向角的角速率累积测量。
2. 航向角估计算法设计
2.1 GNSS定位数据预处理
GNSS定位数据预处理主要将Trimble®BD970 GNSS板卡测量得到的WGS-84大地坐标系的经度、纬度和高程向大地导航坐标系转换,通过高斯投影将WGS-84大地坐标转换为与WGS-84椭球对应的高斯平面坐标,这种转换是为了使GNSS板卡输出的WGS-84大地坐标定位数据能够用于车辆的导航控制系统。
本文使用的Gauss-Kruger投影坐标系的主要参数[12]包括:中央经线为114.000 000 (3度带);水平偏移量为500 km;地理坐标系为GCS_WGS_1984;大地参照系为D_WGS_1984;参考椭球体为WGS_1984;椭球长轴为6 378 137.000 000;椭球扁率为0.003 352 810 7。
2.2 卡尔曼滤波器设计
设定k时刻车辆本体的真实航向角度为ψk',车辆本体的真实前进速度是vk',则
$$ \psi _{{k}}' = {\psi _{{k}}} + {\varepsilon _{{{\psi k}}}} + {\xi _{{{\psi k}}}}\text{,} $$ (1) $$ v_{{k}}' = {v_{{k}}} + {\xi _{{{vk}}}}\text{,} $$ (2) 式中,ψk、vk分别指航向角度、前进速度的测量值,εψk指航向角度的测量偏差值,ξψk、ξvk分别指航向角度和前进速度的随机测量误差。
基于航位推算原理,建立车辆导航控制点在2D平面坐标系下的运动方程:
$$ {x_{{{ck}}}} = {x_{{{ck}} - 1}} + v_{{k}}' \cos \theta _{{k}}' {\rm{d}}t\text{,} $$ (3) $$ {y_{{{ck}}}} = {y_{{{ck}} - 1}} + v_{{k}}' \sin \theta _{{k}}' {\rm{d}}t\text{,} $$ (4) 式中,xck、yck为k时刻车辆本体的高斯投影平面坐标,xck−1、yck−1为k−1时刻车辆本体的高斯投影平面坐标,dt为航位推算的时间间隔。
将(1)和(2)式代入上述表达式,得到:
$$ \begin{split} {x_{{ck}}} = & {x_{{{ck}} - 1}} + {v_{{k}}}\cos {\psi _{{k}}}{\rm{d}}t + {\varepsilon _{{{\psi k}}}}\cos {\psi _{{k}}}{\rm{d}}t - \\ &{v_{{k}}}{\varepsilon _{{{\psi k}}}}\sin {\psi _{{k}}}{\rm{d}}t\text{,} \end{split} $$ (5) $$\begin{split} {y_{ck}} =& {y_{{{ck}} - 1}} + {v_{{k}}}{\rm{sin}}{\psi _k}{\rm{d}}t + {\varepsilon _{\psi {{k}}}}\sin {\psi _{{k}}}{\rm{d}}t + \\ &{v_k}{\varepsilon _{\psi k}}\cos {\psi _k}{\rm{d}}t\text{。} \end{split} $$ (6) 将上述等式以卡尔曼滤波器状态转移方程的形式表示为:
$$ {{\boldsymbol{X}}_{{k}}} = {{\boldsymbol{A}}_{{k}}}{{\boldsymbol{X}}_{{{k}} - 1}} + {{\boldsymbol{b}}_{{k}}} + {{\boldsymbol{u}}_{{k}}}\text{,} $$ (7) 式中,Xk=[xck,yck,εψk],表示k时刻的状态空间向量;Xk−1=[xck−1,yck−1,εψk−1],表示k−1时刻的状态空间向量;
$$ {{\boldsymbol{A}}_{{k}}} = \left[ {\begin{array}{*{20}{c}} 1&0&{\left( {{\rm{cos}}{\psi _{{k}}} - {v_{{k}}}\sin {\psi _{{k}}}} \right){\rm{d}}t}\\ 0&1&{\left( {{\rm{sin}}{\psi _{{k}}} + {v_{{k}}}\cos {\psi _{{k}}}} \right){\rm{d}}t}\\ 0&0&1 \end{array}} \right]\text{,} $$ 是k时刻状态转移矩阵,由陀螺仪累积航向角度和前进速度的测量值实时更新;
$$ {{\boldsymbol{b}}_{{k}}} = \left[ {\begin{array}{*{20}{c}} {{v_{{k}}}\cos {\psi _{{k}}}{\rm{d}}t}\\ {{v_{{k}}}\sin {\psi _{{k}}}{\rm{d}}t}\\ 0 \end{array}} \right]\text{,} $$ $$ {{\boldsymbol{u}}_{{k}}} = \left[ {0,\;\;0,\;\;{\xi _{\psi {{k}}}}} \right]\text{,} $$ 是状态转移方程的白噪声序列;系统过程噪声协方差矩阵为Qk,表示状态转移方程的误差大小,本文中Qk设定为常数矩阵,在仿真和试验过程中整定矩阵参数。
以GNSS天线在大地导航坐标系下的定位坐标作为观测向量,得到卡尔曼滤波器的测量方程如下:
$$ {{\boldsymbol{Z}}_{{{gk}}}} = {H_k}{X_k} + {{\boldsymbol{\nu}} _k} $$ (8) 式中,
$$ {{\boldsymbol{Z}}_{{{gk}}}} = \left[ {\begin{array}{*{20}{c}} {{x_{{{gk}}}}}\\ {{y_{{{gk}}}}} \end{array}} \right]\text{,} $$ $$ {{\boldsymbol{H}}_{{k}}} = \left[ {\begin{array}{*{20}{c}} 1&0&0\\ 0&1&0 \end{array}} \right]\text{,} $$ $$ {{\boldsymbol{\nu}} _{{k}}} = \left[ {\begin{array}{*{20}{c}} {{\xi _{{{gxk}}}}}\\ {{\xi _{{{gyk}}}}} \end{array}} \right]\text{,} $$ 式中,xgk、ygk为GNSS天线处的定位坐标,Hk为卡尔曼滤波器k时刻的测量矩阵,ξgxk、ξgyk为OEM GNSS板卡定位在水平面坐标系下的随机定位误差。
测量向量的噪声方差矩阵为:
$$ {{\boldsymbol{R}}_k} = \left[ {\begin{array}{*{20}{c}} {{r_{xk}}^2}&0\\ 0&{{r_{yk}}^2} \end{array}} \right]\text{,} $$ (9) 式中,rxk2、ryk2分别为ξgxk、ξgyk的方差统计值。
综合上述推导,采用线性离散卡尔曼滤波器的递归差分方程进行状态向量预测和测量向量校正:
预测方程组为:
$$ {\hat x_k} = {{\boldsymbol{A}}_k}{\hat x_{k-1}} + {{\boldsymbol{b}}_k}\text{,} $$ (10) $$ {{\boldsymbol{P}}_k} = {{\boldsymbol{A}}_k}{{\boldsymbol{P}}_{k - 1}}{{\boldsymbol{A}}_k}^T + {{\boldsymbol{Q}}_{k - 1}}\text{,} $$ (11) 式中,
${\hat x_k} $ 表示k时刻的预测结果,${\hat x_{k-1}}$ 表示k−1时刻的预测结果,Ak表示状态转移矩阵,${\boldsymbol{A}}_k^T$ 代表Ak的转置,Pk对应${\hat x_k} $ 在k时刻的系统过程噪声方差预测值,Pk−1对应${\hat x_{k-1}}$ 在k−1时刻的系统过程噪声方差预测值,Qk−1为k−1时刻的系统过程协方差。校正方程组为:
$$ {{\boldsymbol{K}}_k} = {{\boldsymbol{P}}_k} {{\boldsymbol{H}}_k}^T{({{\boldsymbol{H}}_k}{{\boldsymbol{P}}_k} {{\boldsymbol{H}}_k}^T + {{\boldsymbol{R}}_k})^{ - 1}}\text{,} $$ (12) $$ {\hat x'_k} = {\hat x_k} + {{\boldsymbol{K}}_k}\left( {{{\boldsymbol{Z}}_{gk}} - {{\boldsymbol{K}}_k}{{\hat x}_k}} \right)\text{,} $$ (13) $$ {{\boldsymbol{P}}_k} = \left( {I - {{\boldsymbol{K}}_k}{{\boldsymbol{H}}_k}} \right){{\boldsymbol{P}}_k} \text{。} $$ (14) 式中,Kk为k时刻的卡尔曼滤波增益,
${\boldsymbol{H}}_k^T$ 为Hk的转置,${\hat x'_k}$ 是k时刻最优化估计值,Zgk是k时刻的测量更新值,I为单位矩阵。3. 结果与分析
采用GNSS板卡和MEMS陀螺仪在轮式拖拉机平台上进行原始数据采集。GNSS天线安装于车辆后轮轴中心点的正上方。内置MEMS陀螺仪的MTi尽可能安装于车辆质心位置处,以减少车辆颠簸晃动对MTi的干扰。
轮式拖拉机的行驶路线分直线型和S型2种情况。用C++编程语言开发卡尔曼滤波器和原始数据仿真测试的程序。最后将测得的数据以文本文件的方式导入Matlab程序中,测得的曲线图如图1、2所示。
图1为拖拉机直线行驶时,GNSS、陀螺仪和卡尔曼滤波融合后得到的3条航向角度对比曲线。GNSS航向误差幅度超过5°,陀螺仪累积航向的偏移在300 s左右超过2°,融合后的航向角度都在38°左右,偏移不超过1°,较原始GNSS航向角度的精度提高80%以上。
图2为拖拉机以S型轨迹行驶时,GNSS、陀螺仪和卡尔曼滤波融合后得到的3条航向角度对比曲线。融合后的航向角度可以跟踪拖拉机180°换向的转弯动作,曲线既保持了GNSS航向的整体变化趋势,也较GNSS和陀螺仪所得结果更为平滑,符合拖拉机实际运动状态。
从图1、2中可看出,未经处理的陀螺仪累积航向角度和GNSS定位测量的航向角度有较大波动,经卡尔曼滤波融合后,有效抑制了陀螺仪累积航向的发散,减少了零偏和随机漂移带来的误差。融合后的航向角度曲线既保持了GNSS航向的整体变化趋势,也保持了陀螺仪航向的细部变化趋势,且较GNSS和陀螺仪所得曲线更为平滑。
4. 结论
本文采用卡尔曼滤波器对RTK-GNSS、MEMS陀螺仪所得的拖拉机航向角进行融合处理,得出了更为精确的航向角融合估计结果,仿真测试结果表明本文所用方法可用于在线测量拖拉机航向角。
RTK-GNSS航向角和MEMS陀螺仪累积航向角在采样频率方面,分别属于低频型和高频型;在误差特性方面,分别为零均值随机误差和偏移型缓变误差。2种传感器互补性强,研究结果表明多传感器融合的方法能够很好地弥补这2种传感器单独测量数据时存在的噪声误差。
-
表 1 改进前后Mask R-CNN模型各项评价指标对比
Table 1 Comparison of evaluation indexes for Mask R-CNN model before and after improvement
模型 Model AP/% IoUMask/% 原始模型 Original model 96.72 85.42 改进模型 Improved model 100 91.34 表 2 结构优化前后Mask R-CNN模型评价指标对比
Table 2 Comparison of evaluation indexes for Mask R-CNN model before and after structural optimization
模型 AP/% IoUMask/% 原始模型
Original model96.72 85.42 结构优化后的模型
Model after structural optimization100 87.51 表 3 损失函数优化前后Mask R-CNN模型IoUMask对比
Table 3 Comparison of IoUMask for Mask R-CNN model before and after loss function optimization
模型 Model IoUMask/% 原始模型 Original model 85.42 加入IoU boundary loss后的模型
Model added with IoU boundary loss87.84 -
[1] 郑国生, 施正香, 滕光辉. 基于不同行为时间的奶牛健康状况评价[J]. 农业工程学报, 2019, 35(19): 238-244. doi: 10.11975/j.issn.1002-6819.2019.19.029 [2] 何东健, 刘冬, 赵凯旋. 精准畜牧业中动物信息智能感知与行为检测研究进展[J]. 农业机械学报, 2016, 47(5): 231-244. doi: 10.6041/j.issn.1000-1298.2016.05.032 [3] 刘杰鑫, 姜波, 何东健, 等. 基于高斯混合模型与CNN的奶牛个体识别方法研究[J]. 计算机应用与软件, 2018, 35(10): 159-164. [4] 张满囤, 单新媛, 于洋, 等. 基于小波变换和改进KPCA的奶牛个体识别研究[J]. 浙江农业学报, 2017, 29(12): 2000-2008. doi: 10.3969/j.issn.1004-1524.2017.12.07 [5] 刘忠超, 翟天嵩, 何东健. 精准养殖中奶牛个体信息监测研究现状及进展[J]. 黑龙江畜牧兽医, 2019(13): 30-33. [6] 汪开英, 赵晓洋, 何勇. 畜禽行为及生理信息的无损监测技术研究进展[J]. 农业工程学报, 2017, 33(20): 197-209. doi: 10.11975/j.issn.1002-6819.2017.20.025 [7] 孙雨坤, 王玉洁, 霍鹏举, 等. 奶牛个体识别方法及其应用研究进展[J]. 中国农业大学学报, 2019, 24(12): 62-70. [8] 陈娟娟, 刘财兴, 高月芳, 等. 基于改进特征袋模型的奶牛识别算法[J]. 计算机应用, 2016, 36(8): 2346-2351. doi: 10.11772/j.issn.1001-9081.2016.08.2346 [9] 张满囤, 米娜, 于洋, 等. 基于特征融合的奶牛个体识别[J]. 江苏农业科学, 2018, 46(24): 278-281. [10] 杨阿庆, 薛月菊, 黄华盛, 等. 基于全卷积网络的哺乳母猪图像分割[J]. 农业工程学报, 2017, 33(23): 219-225. doi: 10.11975/j.issn.1002-6819.2017.23.028 [11] 蔡骋, 宋肖肖, 何进荣. 基于计算机视觉的牛脸轮廓提取算法及实现[J]. 农业工程学报, 2017, 33(11): 171-177. doi: 10.11975/j.issn.1002-6819.2017.11.022 [12] 赵凯旋, 何东健. 基于卷积神经网络的奶牛个体身份识别方法[J]. 农业工程学报, 2015, 31(5): 181-187. doi: 10.3969/j.issn.1002-6819.2015.05.026 [13] 王毅恒, 许德章. 基于YOLOv3算法的农场环境下奶牛目标识别[J]. 广东石油化工学院学报, 2019, 29(4): 31-35. doi: 10.3969/j.issn.2095-2562.2019.04.007 [14] HE K, GKIOXARI G, DOLLAR P, et al. Mask R-CNN[J]. IEEE T Pattern Anal, 2017(99): 1.
[15] REN S, HE K, GIRSHICK R, et al. Faster R-CNN: Towards real-time object detection with region proposal networks[J]. IEEE T Pattern Anal, 2017, 39(6): 1137-1149. doi: 10.1109/TPAMI.2016.2577031
[16] HU J, SHEN L, ALBANIE S, et al. Squeeze-and-excitation networks[J]. IEEE T Pattern Anal, 2020, 42(8): 2011-2023.
[17] HE K, ZHANG X, REN S, et al. Deep residual learning for image recognition[C]. IEEE. IEEE Conference on Computer Vision and Pattern Recognition, Las Vegas: IEEE Computer Society, 2016.
[18] LUO Z, MISHRA A, ACHKAR A, et al. Non-local deep features for salient object detection[C]. IEEE. IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Hawaii: IEEE Computer Society, 2017.
[19] LIU F, LIU P Y, LI B, et al. Deep learning model design of video target tracking based on TensorFlow platform[J]. Laser & Optoelectronics Progress, 2017, 54(9): 091501.
[20] SUN X D, WU P C, HOI S C H. Face detection using deep learning: An improved faster RCNN approach[J]. Neurocomputing, 2018, 299: 42-50. doi: 10.1016/j.neucom.2018.03.030
[21] HUANG Z J, HUANG L C, GONG Y C, et al. Mask scoring R-CNN[C]. IEEE. IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Los Angeles: IEEE Computer Society, 2019.
-
期刊类型引用(7)
1. 林子钧,尤德安,廖滔,张嘉谋,彭志锋,王红军. 基于GNSS+IMU的草方格固沙机自动巡航控制系统. 农机化研究. 2024(05): 37-44 . 百度学术
2. 何杰,魏正辉,胡炼,汪沛,黄培奎,丁帅奇. 基于两位置法与改进STEKF的农机航向角测量方法. 农业机械学报. 2024(12): 365-372 . 百度学术
3. 陈学深,熊悦淞,齐龙,王宣霖,程楠,梁俊,刘善健. 基于触感引导的小型水田行进底盘自动对行方法. 农业工程学报. 2022(21): 8-15 . 百度学术
4. 曹丽琴,王琪,黄堃,徐成杰,石云波,马宗敏,程林. 基于微机电系统传感器的杆塔倾斜度无线监测系统. 科学技术与工程. 2021(02): 616-622 . 百度学术
5. 张智刚,王明昌,毛振强,王辉,丁凡,李洪开,张天. 基于星基增强精密单点定位的农机自动导航系统开发与测试. 华南农业大学学报. 2021(06): 109-116 . 本站查看
6. 周俊,许建康,王耀羲,梁友斌. 基于GNSS的智能水田旋耕平地机研究. 农业机械学报. 2020(04): 38-43 . 百度学术
7. 苏静. 船舶航向实时控制算法优化. 舰船科学技术. 2020(12): 55-57 . 百度学术
其他类型引用(11)