本发明属于计算机视觉技术领域,更进一步涉及基于卷积神经网络的可可西里藏羚羊检测方法。可用于对可可西里自然保护区中的藏羚羊目标的统计及对雌雄藏羚羊个体的分类,便于保护区管理机构掌握藏羚羊的变化动态和趋势,从而为科学管理藏羚羊种群提供依据。
背景技术:
藏羚羊作为国家一级保护动物,被列入《濒危野生动植物种国际贸易公约》(cites)公约附录ⅰ,其主要分布在中国青海、西藏、新疆等地的高山荒漠草甸草原和高原草原等环境中。独特的生态环境,使得藏羚羊的保护工作变得尤为艰难。目前,国家对藏羚羊的保护主要是通过建立自然保护区、人工巡逻监测的方式来进行。一方面,由于藏羚羊的皮毛具有高昂的价值,使得一些盗猎分子铤而走险,大量猎杀藏羚羊,因此,有必要借助智能监控技术来了解藏羚羊种群的频繁活动区域,从而为有效地建立保护站提供科学依据;另一方面,由于藏羚羊生性极其敏感,使得人们无法近距离对藏羚羊种群数量进行统计,因此可以对藏羚羊种群进行远距离拍摄,再通过目标检测识别技术对其进行检测统计并分类。
目前关于藏羚羊种群数量统计与分布的研究还处于人工操作的阶段。如首都师范大学生命科学学院的路飞英等人发表的“阿尔金山自然保护区藏羚羊、藏野驴和野牦牛的数量与分布”(北京师范大学学报(自然科学版),2015(4):374-381.)中采用样线调查法调查了藏羚羊、藏野驴和野牦牛3种有蹄类动物的数量和分布状况,该方法的缺点是调查周期长,而且统计的种群数量是一个概数,不能较为准确的统计藏羚羊等的数量分布,并且对于场景较复杂的情况不能很好的区分藏羚羊的雌雄个体。
技术实现要素:
本发明的目的在于针对上述现有技术的不足,提出一种基于卷积神经网络的藏羚羊检测方法,以通过高效的卷积神经网络提取特征,提高在复杂场景下对藏羚羊目标检测与雌雄个体分类的准确性和鲁棒性。
为了实现上述目的,本发明实现方案包括如下:
(1)构建训练数据集:
(1a)采集若干个不同场景中的可可西里藏羚羊图片数据;
(1b)对图片数据进行增强处理,以获得更多的训练样本量;
(1c)利用图像标注工具labelimg对上述采集到的以及数据增强后的藏羚羊图像进行目标框标注,并将标注藏羚羊的坐标、宽高以及类别信息存入到xml格式的标签文件中,每一幅标注图像对应一个xml文件;
(1d)提取xml文件中的藏羚羊坐标、宽高以及类别信息并存到txt格式的标签文件中,构成训练数据集;
(2)以googletnet为基础网络,使用1*1和3*3的卷积核,构建一个包含19个卷积层和5个最大值池化层的卷积神经网络;
(3)目标框维度聚类:
(3a)通过k-means聚类算法对(1d)中所生成的训练数据集进行聚类,获取藏羚羊数据集的最优先验框个数k与各个先验框的宽w和高h;
(3b)根据(2)中构建的卷积神经网络的降采样倍率,将(3a)得到的先验框的宽和高转换为相对于卷积神经网络最后网格的比例大小;
(4)利用卷积神经网络中的损失函数对藏羚羊图像数据进行训练,得到藏羚羊检测与分类模型;
(5)利用(2)中构建的卷积神经网络以及(4)中训练好的模型对待检测图像中的藏羚羊目标进行检测并分类:
(5a)对于每一幅待检测图像,通过卷积神经网络得到s*s*k个预测框,每个预测框预测c个类别,取值为2,最终得到一个c*(s*s*k)大小的二维分数矩阵,其中s代表划分的网格数,k表示(3a)聚类得到的先验框个数;
(5b)对分数矩阵的每一行,将得分小于阈值δ的分数设置为0,并将得分从高到低排序;
(5c)根据上述得到的分数矩阵,利用非极大值抑制方法去掉重叠率较大的预测框;
(5d)针对每个预测框的2个分数,取较大的一个,对其进行判断:如果该分数值大于0,则保留该预测框,并将该预测框的类别设置为该分数对应的藏羚羊类别;如果该值小于等于0,说明该预测框里面没有藏羚羊目标,则舍弃该预测框;
(5e)将所有保留的预测框映射到原图像中,并根据预测框类别,用不同颜色在原图中画出预测框并标出藏羚羊所属类别;
(5f)根据预测框个数及类别,统计出整幅图像中所有藏羚羊的数量以及每一类藏羚羊的数量。
本发明与现有的技术相比具有以下优点:
1.检测速度快、准确率高
相较于传统的样线调查法及其它人工方式对藏羚羊种群的统计及雌雄个体分类,本发明能够通过训练的检测识别模型自动对给定图像中的藏羚羊目标检测并进行雌雄个体分类,在gpu显卡加速下可以达到实时检测;对于活动范围较广、种群比较密集的情况,人工统计的方式容易出现较大的偏差,而本发明的卷积神经网络由于对藏羚羊目标提取了由底层到高层的特征,因此能够很好的区分遮挡个体与雌雄个体。
2.检测效果好
本发明采用的卷积神经网络能自动学习藏羚羊的多尺度特征,同时在训练过程中加入了多尺度的训练,因此对于不同大小、不同姿态的藏羚羊都有很好的检测效果。
3.鲁棒性好
本发明基于卷积神经网络对藏羚羊检测并进行雌雄个体分类,对各种天气情况都有很好的普适性,能克服不同角度、场景带来的影响,具有较强的鲁棒性。
附图说明
图1为本发明的实现流程图;
图2为本发明中的图片标注效果图;
图3为用本发明对藏羚羊图像的检测分类效果图。
具体实施方式
下面结合附图对本发明做进一步的详细描述。
参照图1,本发明具体实施步骤如下:
步骤1,构建训练数据集。
(1a)采集若干个不同场景、不同拍摄角度、不同光照变化和天气情况下的可可西里藏羚羊图片数据,图片大小为1920*1080;
(1b)对上述(1a)中图片数据进行数据增强,具体包括旋转、平移、缩放、噪声扰动和颜色变换,以增加训练样本数量;
(1c)利用图像标注工具labelimg对上述采集到的图像以及数据增强得到的藏羚羊图像进行标注,标注效果如图2所示;同时将标注藏羚羊的坐标、宽高以及类别信息存入到xml格式的标签文件中,每一幅标注图像对应一个xml文件,生成的xml文件格式;
(1d)提取(1c)中的xml文件中的藏羚羊坐标、宽、高以及类别信息到txt格式的标签文件中,所有的txt文件即为训练数据集。
步骤2,以googletnet为基础网络,使用1*1和3*3的卷积核,构建一个包含19个卷积层和5个最大值池化层的卷积神经网络。
步骤3,目标框维度聚类。
(3a)通过k-means聚类算法对(1d)中所生成的训练数据集进行聚类:
(3a1)使用k-means++算法初始化中心框initcentroid,减少随机初始化的中心框对最终结果的影响,其中聚类中心个数k取值为4;
(3a2)通过如下公式计算初始化中心框到每一个标注的真实框box之间的距离:
d(box,initcentroid)=1-iou(box,initcentroid)
其中,initcentroid表示初始化的中心框,box表示除中心框外的其他真实框,d(box,initcentroid)表示box和initcentroid之间的距离,iou(box,initcentroid)表示其他框与中心框的相似程度,通过二者的交集除以并集计算,具体如下:
其中,∩表示initcentroid和box两个框的交集区域的面积,∪表示initcentroid和box两个框的并集区域的面积;
(3a3)选取(3a2)中所有距离中最短的一个距离所对应的box,并将该box的宽和高分别记为boxw和boxh,计算先验框的宽w和高h:
w=initcentroidw+boxw
h=initcentroidh+boxh
其中,initcentroidw和initcentroidh分别表示初始化中心框的宽和高,由于本发明聚类算法的k取值为4,因此最终先验框的个数也为4,将得到的先验框的宽高信息以(w,h)的形式表示,则最后得到的4个先验框的宽高为(11.29,10.45),(19.30,18.34),(9.59,19.52),(15.83,20.75)。
(3b)根据步骤2中构建的卷积神经网络的降采样倍率,通过如下公式将(3a3)得到的先验框的宽w和高h转换为相对于卷积神经网络最后网格的比例大小:
w-=w*inputwidth/downsamples
h-=h*inputheight/downsamples
其中w-和h-是转换后的先验框的宽和高,intputwidth和inputheight是输入到网络的图片尺寸,downsamples是网络的降采样倍率。
步骤4,计算机利用卷积神经网络中的损失函数对藏羚羊数据集进行训练,得到藏羚羊检测与分类模型。
(4a)计算机加载(1d)中的训练数据集;
(4b)设置训练迭代次数iter为10000,计算机利用步骤2中构建的卷积神经网络中的损失函数对(4a)中的训练数据集进行迭代训练,损失函数表示如下:
式中:第一项为预测目标框的中心点坐标损失,λcoord为坐标损失系数,取值为5,s2表示图片划分网格的个数,b表示每个网格预测框的个数,
第二项为预测框宽高损失,(wi,hi)表示真实框的宽高,
第三项和第四项是预测框中包含目标的概率损失,λnoobj表示不包含目标时的损失系数,取值为0.5,
第五项表示真实目标类别,
(4c)训练迭代次数达到10000后,结束训练,计算机输出得到藏羚羊检测与分类模型。
步骤5,利用步骤2中构建的卷积神经网络以及步骤4中训练好的模型对待检测图像中的藏羚羊目标进行检测并分类。
(5a)对于每一幅待检测图像,通过卷积神经网络得到s*s*k个预测框,每个预测框预测c个类别,最终得到一个c*(s*s*k)大小的二维分数矩阵,其中s代表划分的网格数,k表示(3a)聚类得到的先验框个数,本实例的c取值为2;
(5b)根据仿真实验,设定一个得分阈值δ,对分数矩阵的每一行得分进行判断,将得分小于δ的分数设置为0,然后将每一行得分从高到低排序,得到分数矩阵;
(5c)根据上述得到的分数矩阵,利用非极大值抑制方法去掉重叠率较大的预测框:
(5c1)对于某一个预测框a,计算a与其它所有预测框之间的重叠面积,如果某一个重叠面积超过预测框a面积的70%,则去掉该重叠面积对应的预测框,否则,保留该预测框;
(5c2)对所有预测框都执行上述(5c1)的操作;
(5d)针对每个预测框的2个分数,取较大的一个,对其进行判断:如果该分数值大于0,则保留该预测框,并将该预测框的类别设置为该分数对应的藏羚羊类别;如果该值小于等于0,说明该预测框里面没有藏羚羊目标,则舍弃该预测框;
(5e)将所有保留的预测框映射到原图像中,并根据预测框类别,用不同颜色在原图中画出预测框并标出藏羚羊所属类别,其中雄性藏羚羊用“mtibetan”表示,雌雄藏羚羊用“ftibetan”表示;
(5f)根据预测框个数及类别,统计出整幅图像中所有藏羚羊的数量以及每一类藏羚羊的数量。
本发明的效果可以通过以下仿真实验进一步说明。
1.仿真实验条件。
本发明仿真实验的计算机硬件配置为:处理器,intel(r)core(tm)i7-7700kcpu@4.20ghz;内存,24gb;gpu显卡,nvidiageforcegtx1080ti11gb;计算机软件配置为:ubuntu16.04、opencv2.4.13。
2.仿真实验内容。
利用训练好的模型分别对不同背景下、不同角度的藏羚羊进行检测和分类,说明本发明的有效性,检测和分类结果如图3所示,其中:
图3(a)是在常规环境中对藏羚羊的检测与雌雄个体分类结果,从图3(a)可以看出本发明能够较好的完成对藏羚羊的检测与分类;
图3(b)是在对比度较低,且存在雾气和模糊的环境中对藏羚羊的检测与分类结果,从图3(b)可以看出本发明对恶劣天气状况下藏羚羊的检测有较强的鲁棒性;
图3(c)是在藏羚羊群体姿态不同,且相互之间存在遮挡情况下检测出的结果,从图3(c)可以看出本发明能对藏羚羊群体姿态多样,且相互遮挡的藏羚羊群体也能较好的完成检测与分类任务,表明卷积神经网络所提取的特征能够很好的区分雌雄藏羚羊个体之间的差异且能够处理部分遮挡问题。