1.一种基于卷积神经网络的昆虫分类及计数方法,其特征在于:包括如下步骤:
1、获取数据;
数据由专业人员在昆虫诱捕器上安装高清工业摄像机获取集虫装置上的昆虫图像,再将图像传送到计算机上进行存储,然后再使Labelme,对获取到的图像数据进行数据标签标注,对图像上每一个虫子目标区域进行分类标记Insect1、Insect2、…,将标记完的标签数据作为神经网络的训练输入数据集;
2、图像预处理;
将步骤1取得的神经网络的训练输入数据集,依次进行尺寸的同一化、图像数据值的归一化以及平移、转置、镜像、旋转、缩放的常规几何变化方式对图像数据进行数据增强,扩充得到昆虫图像数据集;
3、构建昆虫分类神经网络模型;
3.1、主干特征提取网络;
主干特征提取网络是在现有MobileNet网络基础上进行的改进,改进方法如下:只使用MobileNet网络的特征提取模块结构并进行改进,分类模块不使用,主干特征提取部分由普通卷积块、深度可分离卷积块组成;
将步骤2得到的昆虫图像数据集,输入到修改的主干特征提取网络MobileNet的普通卷积块中进行相关的卷积操作,得到昆虫的特征图;
随后将完成卷积块操作得到的昆虫图像特征图,输入到多个深度可分离卷积块进行卷积操作;其具体操作如下:
昆虫的特征图输入到一个完整的深度可分离卷积块,首先是3*3尺寸的深度卷积层DepthwiseConv2D、批标准化层BatchNormalization、激活函数层Activation:激活函数使用relu6、1*1的逐点卷积层BatchNormalization、批标准化层BatchNormalization、激活函数层Activation:激活函数使用Relu6;
昆虫图像数据集中的每一张图像,经过步骤2图像预处理后得到416*416尺寸的昆虫图像输入到改进的主干特征提取网络,基于改进的主干特征提取网络结构由1个普通卷积块和13个深度可分离卷积块组成;昆虫图像数据集首先输入到普通卷积块中,经过普通卷积块卷积操作得到昆虫的特征图,依次输入到13个深度可分离卷积块中,该过程中会提取输出多个不同尺寸的昆虫图像特征图F1、F2、F3、F4、F5,用于昆虫图像的特征融合提取;详细过程如下:416*416昆虫图像首先输入到卷积核尺寸为3×3×3,数量为32的普通卷积块进行卷积操作,输出为208×208×32尺寸的昆虫图像特征图,并作为第1个深度可分离卷积块的输入;第1个深度可分离卷积块的deepth wise卷积使用3×3尺寸、数量为32的卷积核,point wise卷积使用尺寸为1×1×32,数量为64的卷积核,第1个深度可分离卷积块的输出为208×208×64的昆虫图像特征图,作为主干特征提取网络的第1个昆虫图像特征图F1进行提取输出,并继续输入到第2个深度可分离卷积块中进行卷积操作;第2个深度可分离卷积块的deepth wise卷积使用3×3尺寸、数量为64的卷积核,point wise卷积使用尺寸为1×1×64,数量为128的卷积核,输出为104×104×128的昆虫图像特征图,并作为第3个深度可分离卷积块的输入;第3个深度可分离卷积块的deepth wise卷积使用3×3尺寸、数量为
128的卷积核,point wise卷积使用尺寸为1×1×128,数量为128的卷积核,输出为104×
104×128尺寸的昆虫图像特征图,作为主干特征提取网络第2个昆虫图像特征图F2进行提取输出,并输入到第4个深度可分离卷积块中进行卷积操作;第4个深度可分离卷积块的deepth wise卷积使用3×3尺寸、数量为128的卷积核,point wise卷积使用尺寸为1×1×
128,数量为256的卷积核,输出为52×52×256尺寸的昆虫图像特征图,并作为第5个深度可分离卷积块的输入;第5个深度可分离卷积块的deepth wise卷积使用3×3尺寸、数量为256的卷积核,point wise卷积使用尺寸为1×1×256,数量为256的卷积核,输出为52×52×
256尺寸的昆虫图像特征图,作为主干特征提取网络第3个昆虫图像特征图F3进行提取输出,并输入到第6个深度可分离卷积块中进行卷积操作;第6个深度可分离卷积块的deepth wise卷积使用3×3尺寸、数量为256的卷积核,point wise卷积使用尺寸为1×1×256,数量为512的卷积核,输出为26×26×256尺寸的昆虫图像特征图,并作为第7个深度可分离卷积块的输入;第7个深度可分离卷积块的deepth wise卷积使用3×3尺寸、数量为512的卷积核,point wise卷积使用尺寸为1×1×512,数量为512的卷积核,输出为26×26×512尺寸的昆虫图像特征图,然后依次进行第8、9、10、11个深度可分离卷积块,这些卷积块使用的deepth wise卷积和point wise卷积的尺寸和数量和第7个深度可分离卷积块一致,最终输出26×26×512尺寸的昆虫图像特征图,作为主干特征提取网络第4个昆虫图像特征图F4进行提取输出,并输入到第12个深度可分离卷积块中进行卷积操作;第12个深度可分离卷积块的deepth wise卷积使用3×3尺寸、数量为512的卷积核,point wise卷积使用尺寸为1×
1×512,数量为1024的卷积核,输出为13×13×1024尺寸的昆虫图像特征图,并作为第13个深度可分离卷积块的输入;第13个深度可分离卷积块的deepth wise卷积使用3×3尺寸、数量为1024的卷积核,point wise卷积使用尺寸为1×1×1024,数量为1024的卷积核,最终输出13×13×1024尺寸的昆虫图像特征图,作为主干特征提取网络第5个昆虫图像特征图F5进行提取输出,至此主干特征提取网络提取完成;
3.2、将步骤3.1中得到昆虫图像特征图进行特征解码;
对步骤3.1中得到昆虫图像特征图F1、F2、F3、F4、F5进行解码;主干特征网络提取图像特征的过程中昆虫图像的长和宽不断的被压缩,通道数变大;昆虫图像特征解码过程就是对提取到的昆虫图像特征图进行长和宽的不断放大,放大到和原昆虫图像一样的尺寸,再使用Softmax函数对每个像素点进行昆虫目标分类,实现昆虫图像昆虫目标分割和分类的效果;图像特征解码方式是使用上采样UpSampling2D方法,为了更好解码特征,利用不同特征层的特征位置关系,这里使用特征融合方法Concatenate方法得到完整的昆虫分类神经网络模型;
输入昆虫图像训练该模型,得到了图像中每一个像素点的所归属的类别值,背景的像素点值为0、不同昆虫所对应的设置不同像素值,即使用不同颜色进行标记,对不同类别的昆虫使用不同的颜色值进行标记最终实现对不同的种类昆虫标记为不同的颜色,同一种类虫子区域被标记为同一颜色,同一种类区域像素点的值为一致;针对于不同的种类虫子的标记,使用OpenCV中的轮廓检测findContours函数,找到每一个昆虫的轮廓区域中的轮廓point1:x1,y1、point2:x2,y2、point3:x3,y3…,通过平均值计算公式单个昆虫所有轮廓点point1、point2、point3的平均中心点的位置的 ,参考公式1和2:通过公式1和2可得单个昆虫平均中心点的位置的 ,其中n代表通过轮廓检测函数findContours计算得到组成单个昆虫的区域的轮廓点总的个数, i代表当前昆虫的第几个轮廓点,对所有轮廓点的横纵坐标各次求和取平均得到该昆虫中心点的坐标 ;随后再通过图像中该点 位置的像素值和标记时的颜色的像素值进行比较,若相等,则将该区域的虫子标记为Insect1、Insect2、…,至此,分类标记完成;
图像中除了虫子目标区域,昆虫的背景区域都转换为了黑色,相当于将昆虫目标从原始图像中作为单独的个体分割出来,简称为昆虫分割图像,这样在图像在第4步中进行转换灰度图像,做二值化处理的时候相对于传统方式直接将图像灰度二值化而言,将图像中的噪声完美的去除掉,也不用使用高斯滤波、中值滤波、均值滤波去除图像噪声操作,加快图像处理的速度;
4、将步骤3得到的昆虫分类神经网络模型输出进行数据处理使其达到具备昆虫计数的功能;
将步骤3中已经对昆虫图像,实现了不同的昆虫分类的效果,并且找到了昆虫的目标区域,即将昆虫目标区域从原始图像中分割出来,这里称为昆虫分割图像;然后通过昆虫的连通包围区域的个数就可以知道该昆虫的个数,实现昆虫计数的效果;针对于不同类型的昆虫计数,不同的昆虫用不同的颜色标记,其对应区域的像素值不一样,设置字典进行编码映射,当对某一品种的昆虫进行计数时,只保留该品种昆虫目标的像素值,其它昆虫区域像素值RGB设置为255,255,255,全黑;
再通过以下步骤分别对不同昆虫进行计数,完整昆虫计数的过程如下:
首先将神经网络分类的RGB昆虫图像转换为灰度图像,再对转换的灰度图像使用Threshold函数进行最大熵阈值二值化分割处理,然后再使用OpenCV中的轮廓检测findContours函数检测每个昆虫的轮廓,找到图像中昆虫的轮廓的数量;对于语义分割之后的目标昆虫边缘绘制时的噪声轮廓,利用contourArea计算目标物体轮廓面积contourArea,设置阈值50像素面积的噪声轮廓进行删除,阈值可动态根据昆虫的边缘轮廓进行设置改变;找到图像中物体轮廓个数之后,就可以绘制在语义分割后的图像上,然后和原图像进行合并,最终达到昆虫的分类和计数的目的;
5、将采集的图像输入所述的昆虫分类神经网络模型处理,并对昆虫分类神经网络模型的输出进行数据处理;识别出昆虫的类别和数量;其步骤如下:
5.1、在计算设备上部署昆虫分类神经网络模型所依赖的环境;
5.2、将步骤3所得完整的昆虫分类神经网络模型移植到计算设备中,将采集的图像通过硬件接口传入计算设备;
5.3、将步骤5.2传入的采集的图像经过昆虫分类神经网络模型检测后,对昆虫分类神经网络模型输出的采用步骤4的方式进行处理,如此即可得到昆虫的分类及数量结果。
2.根据权利要求1所述的一种基于卷积神经网络的昆虫分类及计数方法,其特征在于:
所述的步骤3中将步骤2得到的昆虫图像数据集,输入到修改的主干特征提取网络MobileNet的普通卷积块中进行相关的卷积操作,得到昆虫的特征图的具体操作如下:输入昆虫图像数据集Inputs‑>零填充ZeroPadding2D‑>3*3卷积Conv2D‑>批标准化BatchNormalization‑>激活函数层Actication,激活函数依旧使用relu6,如此即可完成卷积块操作,得到昆虫的特征图。
3.根据权利要求1所述的一种基于卷积神经网络的昆虫分类及计数方法,其特征在于:
所述的深度可分离卷积结构由deepth wise卷积和point wise卷积组成;deepth wise卷积对昆虫的特征图的每个通道独立进行卷积运算,卷积后的特征图的通道数和卷积前的通道数一致,这里使用3*3尺寸的深度卷积核进行卷积;逐点卷积是为了弥补深度卷积没有有效利用图片不同通道在相同位置上的特征信息,使用deepth wise卷积来将point wise卷积组合生成新的特征图,从而融合通道之间的信息,这里统一使用1*1尺寸的逐点卷积核进行卷积。
4.根据权利要求1所述的一种基于卷积神经网络的昆虫分类及计数方法,其特征在于:
所述的步骤3中使用特征融合方法Concatenate方法得到完整的昆虫分类神经网络模型的具体过程是:
将获取有效特征层F5经过Zeropadding2D、3*3*512的Conv2D,再经过2倍的上采样Upsampling之后的结果与有效特征层F4进行融合Concatenate ,特征层F4、F3、F2、F1和有效特征层F5操作一致,和F1经过融合之后,经过Zeropadding、Conv2D、BatchNormalization、3×3×N_classes的Conv2D,N_classes:需要识别的昆虫的类别数,最后使用Softmax函数将每一个像素点分别划分到每一个类别中去;如此即可得到完整的昆虫分类神经网络模型。
5.根据权利要求1所述的一种基于卷积神经网络的昆虫分类及计数方法,其特征在于:
所述的昆虫诱捕器呈平面型结构,其表面设置有诱虫剂。