基于Mask R-CNN的马匹面部别征识别及分割方法
端午节高速免费不收稿日期:2020-03-10      修回日期:2020-07-14
基金项目:新疆维吾尔自治区重大科技专项(2017A 01002-5-2);新疆维吾尔自治区级研究生创新项目(XJ 2019G 169)
经济补偿作者简介:温志强(1994-),男,硕士研究生,研究方向为农业信息化;冯向萍,硕士,副教授,通讯作者,研究方向为软件工程㊁数据库㊂
基于Mask R -CNN 的马匹面部别征识别及分割方法
温志强,冯向萍,徐 静
(新疆农业大学计算机与信息工程学院,新疆乌鲁木齐830052)
摘 要:在马匹鉴定及马匹护照生成的过程中,需要对马匹面部的特征进行文字描述和描图标记㊂存在工作量大㊁效率低㊁准确性较低㊁人工成本较高等问题㊂为解决这些问题,提出了一种基于Mask R-CNN 框架对马匹面部及马匹面部特征识别并进行实例分割的方法㊂首先通过网络爬虫和马场实地拍摄获取马脸正视图像,利用Labelme 制作数据集标签,通过ResNet-50-FPN 的主干网络从特征金字塔的不同级别提取RoI 特征,其中的RolAlign 算法,使用双线性内插的方法,提高了RoI 定位精度,最后通过RoI 单独应用的边界框识别和掩码预测,生成相应的马匹面部及马匹面部特征掩码,实现图像中马匹面部及
马匹面部特征与背景的分割㊂此外,构建了一个具有分割标注信息的马脸数据集,用于训练相应模型㊂实验结果表明,该方法具有较好的马脸检测效果,并能在准确检测的同时实现像素级的马匹面部及马匹面部特征信息分割,可为马匹鉴定和护照生成提供一定支持㊂
关键词:马匹面部特征;Mask R-CNN;RoI;RolAlign;特征金字塔;全卷积网络
中图分类号:TP183;TP391     文献标识码:A     文章编号:1673-629X (2021)06-0209-07doi:10.3969/j.issn.1673-629X.2021.06.037
Recognition and Segmentation of Horse Facial Features
Based on Mask R -CNN
WEN Zhi -qiang ,FENG Xiang -ping ,XU Jing
(School of Computer and Information Engineering ,Xinjiang Agricultural University ,Urumqi 830052,China )
Abstract :In the process of horse identification and horse passport generation ,it is necessary to describe and mark the characteristics of the horse ’s face.There are problems such as large workloa
214情人节
d ,low efficiency ,low accuracy and high labor cost.Therefore ,we propose a method based on Mask R -CNN framework for horse face recognition and horse facial feature recognition and instance segmentation.Firstly ,the face image of the horse is obtained through web crawlers and field shooting ,dataset labels are made by Labelme ,and RoI features are extracted from different levels of the feature pyramid through the backbone network of ResNet -50-FPN.Among them ,the RollAlign algorithm uses bilinear internal interpolation method to improve the accuracy of RoI positioning.Finally ,the corresponding mask of horse face and horse facial features is generated through the boundary box recognition and mask prediction separately applied by RoI to realize the segmentation of horse face and horse facial features from the background in the image.In addition ,a horse face dataset with segmented labeling information is constructed for training the corresponding model.The experiment shows that the proposed method has better horse face detection effect and can achieve pixel -level horse face and horse facial feature information segmentation while accurately detecting ,which can provide support for horse identification and passport generation.Key words :facial features of horses ;Mask R -CNN ;RoI ;RolAlign ;FPN ;FCN
0 引 言
为加快新疆现代马产业发展,使新疆现代马业发展尽快与国际马业管理接轨,区内建立了新疆马匹登
记注册管理系统,加快了实现区内良种马资源信息共享[1]㊂但目前马品种登记和护照信息中的外貌特征提取方式主要靠手工方式完成,需要对马匹面部的特征进行文字描述和手工描图标记,存在工作量大㊁效率
低㊁准确性低㊁人工成本高等问题㊂
近几年来已经有关于深度学习的动物面部识别㊁植物实例分割[2-3]等研究成果㊂由于深度神经网络在图像分类和检测方面取得了巨大的成功,现在成为了几乎所有计算机视觉应用的 特征提取器的选择”,主要是因为它们能够从数据中学习到良好的特征㊂根据文献查阅收集了解到目前在人工智能计算机视觉方面
第31卷 第6期2021年6月          计算机技术与发展COMPUTER TECHNOLOGY AND DEVELOPMENT
          Vol.31 No.6
June 2021
还未有与马匹相关的畜牧业相结合的应用,结合深度学习与计算机视觉在其他动物上的研究方向主要分为四类:
离婚需要的手续
①classification分类任务:如基于CNN的鱼类分类[4],王培森[5]基于注意力机制的图像分类,提出并实现了一种利用卷积层激活输出获取多通道注意力的图像分类模型,庞丝丝等[6]利用迁移学习的方法改进的ResNet50深度学习模型,得到了不错的分类识别效果㊂
②object detection目标检测:Ross Girshick等[7]在PASCAL VOC数据集训练了R-CNN模型,首次用深度学习CNN的方式,结合region proposal和CNNs进行目标检测,取得的性能㊁准确度均大幅高于传统特征提取方式㊂赵凯旋等[8]提出对于奶牛目标各区域的检测和分割方法㊂在精准养殖方面,针对奶牛精准养殖中的信息获取问题,赵凯旋[9]针对奶牛运动目标检测,提出了一种基于背景法的目标检测方法㊂
③semantic segmentation语义分割:Jonathan Long 等[10]提出了一种全卷积网络,去除了VGG网络常规的全连接层(fc)的全卷积(fully conv)网络,可适应任意尺寸输入㊂增大了数据尺寸的反卷积层(deconv),能够输出像素级别的结果来进行语义分割㊂王雅晴[11]通过改进FCN对自然场景图像中的进行分割,为研究生物特征信息进行重识别工作奠定基础㊂
④instance segmentation实例分割:He Kaiming 等[12]在2017年基于Faster R-CNN提出的一种改进算法,在正确到图像中目标的同时还要对其进行精确的分割,对Faster R-CNN的每个RoI都要使用FCN 进行语义分割,分割任务与定位㊁分类任务同时进行㊂因此,根据上述研究,根据实际任务需要
分割的目标为马匹面部和马匹面部别征区域,马匹面部别征识别分割属于实例分割任务㊂所以,该文提出一种基于深度学习的马匹面部及马匹面部特征的检测方法,先利用Mask R-CNN网络分割图像中马脸及马脸特征得到掩膜,在马脸及马脸特征检测的同时实现了马脸及马脸特征图像与背景的分割㊂论文的主要工作和创新点如下:
㊃将人工智能计算机视觉与畜牧业相结合;㊃构建了一个具有分割标注的马脸及马脸特征数据集,从Open Images Dataset V4[13]数据集中选择了700张包含马脸及马脸特征的图像,在新疆的伊犁昭苏马场实地拍摄了700张包含马脸及马脸特征的图像,利用网络爬虫技术在unsplash网站爬取了160张包含马脸及马脸特征的图像,并对以上图像进行标注构建了新的数据集;
㊃引入RoIAlign算法,在特征图上保留了浮点型坐标,提高了马脸及马脸特征的定位精度;
㊃利用Mask R-CNN结合ResNet-50网络[14]与FPN网络[15]训练出检测模型,该模型在现有马脸及马脸特征检测的基础上,实现了马脸及马脸特征定位,增加了分割分支㊂能够在马脸及马脸特征检测的同时实现像素级的马脸及马脸特征信息分割,并且将预测的实例掩膜映射至马匹登记系统中的外貌特征图示中,解决了马匹面部特征自动标记问题㊂
1 数据采集与数据集标注
1.1 数据采集
实验数据第一部分采集于新疆伊犁昭苏县军马场㊁伊犁地区种马场㊂选取马匹面部具有白毛特征的马匹进行拍摄,主要针对马匹面部具有大星㊁小星㊁细流星㊁长流星㊁长广流星㊁白面㊁鼻端白等特征的马匹进行采集,如图1所示㊂将iPhone6s手机相机,距离地面1.5米高度,正视于马匹面距离约两人获取正视彩图像㊂手机拍摄分辨率1334像素×750像素,按照拍摄日期存入电脑设备
图1 马匹面部别征
实验数据第二部分来自于Google,CMU和康奈尔大学之间合作的Open Images Dataset V4,从horse 标签类当中选取了700张包含马匹面部特征的彩图像㊂实验数据第三部分来自于网络爬虫,爬取了免费无版权的摄影师作品网站unsplash,从该网站爬取了140张清晰的包含马匹面部特征的彩图像㊂
1.2 数据集制作
将获取的1540张包含马匹面部特征信息的图像作为数据集㊂所选样本集包含不同场景下㊁不同曝光度和不同马匹面部角度的样本㊂训练集采用的是coco数据集格式[16],图像标识工具采用Labelme,在Labelme图像标注工具中利用多边形标注出马匹面部
㊃012㊃                     计算机技术与发展                  第31卷
和马匹面部特征外轮廓,如图2所示,保存后得到json 格式的标注文件,经转换后得到coco 数据集格式的json ㊁label 等文件
图2 Labelme 中进行面部和大星特征的标记
2 文中方法
文中主要通过Mask R -CNN 在计算机视觉图像实例分割任务中优异的表现,检测图像中的马脸以及马匹面部特征并分割马脸及马匹面部特征的区域,
得到
每匹马的马脸与特征的mask 遮罩图像;将识别分割后的mask 遮罩图像,映射到马匹登记环节中的马匹外貌特征图示上,从而实现马匹面部别征的识别及分割㊂2.1 基于Mask R-CNN 的马匹面部分割网络
如图3所示,基于卷积神经网络的Mask R -CNN 马匹面部别征识别分割网络分为三部分:(1)主干网络,主干网络是共享的卷积层,用于对输入图像的特征提取,生成特征映射图(Featuremaps )㊂马匹面部别征识别及分割网络选用残差网络(ResNet 50)[17]结合特征金字塔网络(FPN )作为主干网络,生成P 2㊁P 3㊁P 4㊁P 5等4级大小不同的特征图㊂(2)区域建议网络(RPN ),用于生成感兴趣区域(RoI )推荐框㊂本网络中的RPN 网络通过具有FPN 的主干网络根据3种不同尺度长宽比为0.5㊁1和2的15种矩形
框从特征金字塔的不同级别P 2~P 6在特征图中提取RoI 特征㊂(3)回归检测物体的类别㊁边界框(Bounding -box )及输出掩膜的mask 三分支结构㊂文中类别包含8类(大星㊁小星㊁细流星㊁长流星㊁长广流星㊁白面㊁鼻端白和背景),Bounding -box 包含4个参数均由全连接层得出㊂Mask 分支由卷积核大小为3*3的5个卷积层和2个反卷积层构成,其中最后一层采用1*1大小的卷积核输出mask 类别为2类
3图3 基于Mask R -CNN 的马匹面部别征分割网络结构
2.1.1 RPN 网络
在R -CNN 和Fast R -CNN 等物体检测框架中,通
常用比较传统的selective search 算法[18]来提取候选框,在CPU 上一张图要耗时2s ,所以Ren Shaoqing 等人[19]提出RPN 网络专门用来提取候选框㊂
RPN (region proposal network )即候选区域生成网络,通过一个在共享特征图(conv feature map )上3×3的滑动窗口(sliding window )生成候选区域㊂在此过程中,为特征图上每个特征点生成9种预先设置好长宽比与面积比的目标框或称为锚点(Anchor ),由卷积神经网络提取特征后得到特征图,在特征图上将每一
个点映射至原始输入图像上,得到一个感受野(receptive field ),9种初始Anchor 包含三种面积,每种面积包含三种长宽比,面积从小至大依次为128×128,
256×256,512×512㊂RPN 对3×3滑动窗口得到的特征图上每个Anchor 进行两种判断,分类层(cls layer )判断是否为物体,2k scores 对于9种框都可以判断是前景还是背景,当IoU ≥0.5时,认为其为正例(positive ),并对其进行回归㊂每一个RPN 网络生成的候选框都做一个2分类回归,每一个特征点对应9个框,2×9=18个结果,即对9种候选框来说,它是前景和背景的得分㊂IoU (intersection over union ,交并㊃
112㊃ 第6期         温志强等:基于Mask R-CNN 的马匹面部别征识别及分割方法
比)计算公式如下:
IoU =
S A ∩B
S A ∪B
(1)
其中,A 为RPN 网络生成的候选框,B 为训练集中标注的标准目标框,S A ∩B 为A ㊁B 的相重叠处面积,S A ∪B 为A ㊁B 并集面积㊂
回归层(Reg layer ),对于Anchor 的修正主要由4个值完成tx ㊁ty ㊁th ㊁tw ,当前RPN 网络生成的候选框的四个坐标的回归值和训练集中正确的目标框(ground trues )之间的差异,4k coordinates 4×9=36,每一个anchor 对应36个结果㊂2.1.2 RoIAlign 层
在Faster R -CNN 网络中候选区域池化(region of
interest pooling ,RoI Pooling )根据候选框的位置坐标,在特征图中将相应区域池化为固定尺寸的特征图,送入全连接层进行分类和RoI 边框的修正㊂①在Region Proposal 映射阶段,由浮点数表示的RoI 特征图边界量化为了整数点坐标值;②池化后的特征图尺寸固定,RoI 边界区域平均分割成k ×k 个单元(bin ),也对每个单元的边界进行了量化㊂两次量化过程造成了RoI 和提取特征之间的不对准而产生了位置偏差,影响了检测和分割的准确度㊂
为解决上述缺点,RoIAlign 层算法取消了生成RoI 特征图过程中的两次量化操作㊂①Region Proposal 映射阶段不进行量化,保持浮点数边界;②将候选区域(RoI )分割成k ×k 个单元(bin ),每个单元的边界也不做量化,保持浮点数㊂使用双线性插值计算每个RoI bin 中四个采样位置的输入特征的精确值,并进行平均池化操作,公式如下:
∑N i =1
f (a i ,b i
)/N 
(2)
RoIAlign 采用双线性插值算法,保留浮点型坐标,避免了量化误差,可以使原图像像素与特征图像素
无期徒刑一般是多少年相匹配㊂双线性插值算法公式如下:
对x 方向进行线性插值:f (R 1)≈
X 2-X X 2-X 1f (Q 11)+X -X 1
X 2-X 1
f (Q 21),当R 1=
(x ,y 1)(3)f (R 2)≈X 2-X X 2-X 1f (Q 12)+X -X 1
X 2-X 1f (Q 22),当R 2=
(x ,y 2)
(4)
对y 方向进行线性插值:f (P )=f (x ,y )≈
y 2-y y 2-y 1f (R 1)+y -y 1
y 2-y 1
f (R 2)(5)
如图4所示,f (x ,y )为待求解点P 的像素值,
f (Q 11)㊁f (Q 12)㊁f (Q 21)㊁f (Q 22)分别为已知四点Q 11=
(x 1,y 1),Q 12=(x 1,y 2),Q 21=(x 2,y 1)及Q 22=(x 2,y 2)的像素值,f (R 1)㊁f (R 2)为x 方向插值得到的像素值㊂
P
图4 双线性插值算法
2.1.3 FPN 网络
对一般的object detection 算法,都是只采用顶层
特征做预测,对于高层特征图而言,语义信息比较丰富,目标位置比较粗略[20]㊂对于低层特征图而言,低层特征图语义信息比较少,目标位置比较准确㊂FPN
(feature pyramid networks )算法同时利用低层特征高分辨率和高层特征的高语义信息[21],通过融合不同层的特征达到预测的效果㊂为了消除每一层融合过程上采样的混叠效应(aliasing efect ),不同层融合之后对不同层的融合结果采用3×3的卷积(conv )并且在每个融合后的特征层上单独进行预测㊂
2.1.4 损失函数
文中的Mask R -CNN 模型完成了三个任务,即马脸与马匹面部特征框的检测定位㊁马脸与马匹面部特
征与背景的分类㊁马脸与马匹面部特征与背景的分割㊂因此,损失函数的定义包括了定位损失㊁分类损失及分割损失三部分㊂在训练期间,将每个采样的RoI 上的多任务损失函数定义如下:
L =L *cls +L *box +L *
mask
(6)
其中,L *cls 为分类损失,L *box 为定位损失,L *
mask 为分割损
失㊂mask 掩码分支对于每个RoI 具有Km 2维输出,其编码分辨率为m ×m 的K 个二进制掩码,每个K 类对应一个㊂使用每像素sigmoid ,并将L mask 定义为平均二元交叉熵损失,对于与ground -truth 类相关联的RoI ,
L mask 仅在第k 个掩码上定义,其他掩码输出不会导致损失㊂最后将mask 预测和class 预测耦合,对于每一个类别独立地预测一个二值掩码mask ,从而不依赖分类分支的预测结果㊂
2.2 马匹面部别征分割流程
文中通过小样本马脸数据集训练模型,在有限的㊃
212㊃                     计算机技术与发展                  第31卷
实验环境下,获得了更好的模型参数,使网络模型能够
更快收敛,利用MS COCO数据集[22]上预训练好参数的源网络模型,对目标网络,文中马匹面部别征识别网
络模型的权重文件进行初始化㊂通过标注好的不同别
征类别的马匹面部数据集对整个目标网络层进行微调
训练fine-tuning[23],得到马脸及马匹面部别征识别分割模型㊂
马匹面部别征分割模型流程如下:
(1)colab深度学习平台通过读取云存储马匹图像输入至ResNet50残差网络进行特征提取㊂ResNet 第1至4阶段生成P2~P5共4个尺度特征图,用于RPN㊁Bounding-box㊁class及mask的生成,由P5以步长为2进行下采样得到大小为5122的特征图P6,P6仅用于RPN提供建议区域㊂
如何填报志愿(2)RPN:将不同尺度特征图P2~P6依次通过卷积核大小为3×3步长为1的卷积层后,为每个特征点生成3个Anchor,对class生成3×2个(马匹和背景2类)卷积核,对Bounding-box生成3×4个卷积核㊂在3×3卷积层后接两个1×1×1024的全连接层,结果将分别进入cls和reg两个子网络用于区域建议,完成每个像素的前后景判别及马匹面部别征的第1次Bounding-box修正㊂
(3)RPN网络将特征图中生成候选区域RoI的Bounding-box送入特征池化层RoIAlign,在RoIAlign 中,根据Bounding-box提取P2~P5特征送入class㊁Bounding-box㊁mask三分支网络㊂
(4)分类与边框回归分支根据RoI进行分类预测及马匹面部别征Bounding-box第2次修正,Mask分支经过卷积和反卷积层生成马脸与马匹面部别征mask,完成马匹面部别征检测与分割㊂3 实验及结果分析
文中实验算法分为基于Mask R-CNN马匹面部别征识别及分割以及分割结果的应用㊂
3.1 马匹面部别征识别及分割实验
3.1.1 实验环境配置
马匹面部别征识别及分割网络模型采用Google colab深度学习实验平台,操作系统为Ubuntu18.04, CPU为Intel Xeon,主频2.20GHz,13GB内存,GPU 为NVIDA Tesla P100,深度学习框架Pytorch1.3.1的硬件平台㊂
3.1.2 模型训练
针对实验数据集本身很小(一千五百张图片)的情况,文中采用迁移学习方法,分别对马脸上的别征大星㊁小星㊁细流星㊁长流星㊁长广流星㊁白面㊁鼻端白等特征图像做实例分割并进行提取㊂特征提取网络选用ResNet-50网络,首先使用coco预训练模型进行训练,使模型具有一定的泛化能力,进一步提升模型性能㊂然后利用已标注的具有标签和mask的数据集,共计1540幅图像,抽取1378图像训练样本数据集,剩余162组作为算法整体测试集,并将数据集的格式转化为coco数据集标准格式进行模型训练,通过实验调试,设置迭代次数(epoach)为10,迭代步数(iteration)为7500,批尺寸为2,学习率为0.001㊂针对文中类不平衡数据集(如LVIS)[24]的训练,训练集中长流星总计45幅图片在所有类别中属于最少类别,训练集总计1441张图片,所以长流星类出现的频率为45/1440 (0.031)㊂
3.1.3 识别与分割结果分析
用145个测试集在训练好的模型上进行测试,部分马匹面部别征如图5所示㊂
文中算法在完成马脸及
图5 基于Mask R-CNN的马匹面部别征分割结果
㊃312㊃
 第6期         温志强等:基于Mask R-CNN的马匹面部别征识别及分割方法

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。