1.一种基于深度学习的鸡蛋胚胎分类方法,其特征在于,该方法包括:
(1)采集5日胚胎图像并按照正常胚、中止胚、无精胚分为三类样本;
(2)对胚胎图像预处理,提取图像的ROI区域并将图像大小归一化;
(3)结合迁移学习的方法进行训练,使用AlexNet经典网络针对ImageNet预训练的模型,对目标集进行微调;
(4)利用训练好的模型对待测图像进行判别,并通过特征可视化观察每一层特征学习的变化。
2.如权利要求1所述的方法,其特征在于,所述步骤(2)进一步包括:二值化处理,选取阈值20对图像进行二值化处理;然后从二值图像中检索轮廓,遍历轮廓中的每个点,提取图像的ROI区域;对提取的ROI区域归一化处理,将图像归一化到227*227大小,以便于作为后续CNN网络的输入。
3.如权利要求1所述的方法,其特征在于,所述步骤(3)中迁移学习的方法,使用该方法训练的步骤进一步包括:利用Alexnet经典网络,将在Image数据集上预训练得到的模型bvlc_reference_caffenet应用在鸡蛋胚胎分类任务中,该模型由5个卷积层、3个最大池化层和3个全连接层组成;激活函数采用relu函数,还用到了局部响应归一化层LRN以及防止过拟合的dropout层。
4.如权利要求3所述的方法,其特征在于,所述步骤(3)中,卷积层与全连接层参数设计中,卷积层采用Alexnet网络结构中的卷积参数设计,卷积核的大小分别为11*11、5*5、3*3、
3*3、3*3,输出特征图的个数分别为96、256、384、384、256,每一卷积层步长分别为4、1、1、1、
1,卷积层分别采用″gaussian″和″constant″初始化权重和偏置;卷积层的计算公式如下所示:
其中,表示第1卷积层的第j个feature map,f(·)表示激活函数,Mj表示输入feature map的集合,k表示卷积核,b表示偏置项;Alexnet网络三个全连接层输出神经元数分别为
4096、4096、1000,其中Alexnet中最后一个全连接层神经元数为1000的是输出softmax的类别数,利用预训练模型进行微调时,需将该全连接层的名称改为fc8_flickr,输出个数改为目标集的类别数3。
5.如权利要求3所述的方法,其特征在于,所述步骤(3)中,激活函数与dropout层设计步骤进一步包括:激活函数选用PRelu函数,PRelu函数相比较于Relu函数,修正了数据分布,保留了负值,使负值不会完全丢失;PRelu像更新权重weights一样使用反向传播算法更新一个额外的参数a,但是相较于权重的数量来说,PRelu需要更新的参数总数可以忽略不计,所以不会加重overfitting的影响;PRelu的表达形式如下所示:
Dropout层按一定的概率随机的屏蔽掉网络的部分神经元,阻止网络过拟合;训练时,需设定一个dropout ratio=p,即每一个输出节点以概率p置0,本文设置为0.25;计算dropout层输出节点置零参数p表达式为:
其中U为Bernoulli随机数,p代表dropout ratio。
6.如权利要求3所述的方法,其特征在于,所述步骤(3)中,训练模型学习参数的设计步骤如下:CNN的训练过程包括前向传播与反向传播两个过程,利用梯度下降法对权重和偏置进行更新,公式如下:
其中,J(w,b)为单个样本的代价函数,α为学习速率;
采用caffe,框架提供的inv方式调整学习率,表达式如下:
∧
lr=base_lr*(1+gamma*iter) (power)
其中,base_lr为基础学习率,gamma为学习速率变化因子,iter为迭代次数;
对于卷积层的局部学习率调整,所有卷积层的卷积核的局部学习率和权重衰减因子设置为1,即与全局学习率保持一致;偏置项的局部学习率为全局偏置学习率的2倍,权重衰减因子为0;而对于最后一层全连接层fc8_flickr,由于修改为自己对应的数据类别,将优先学习权给予fc8_flickr层,这里权重局部学习率设为全局的10倍,偏置局部学习率设置为全局的20倍,是为了在非微调层学习的更快;这种学习率倍数的设置方式既可以很好的对目标集进行微调,又可以保留原模型的特性。
7.如权利要求1所述的方法,其特征在于,所述步骤(4)中,利用训练好的模型对待测图像进行判别以及特征可视化进一步包括:直接使用ImageNet数据集已经训练好的模型bvlc_reference_caffenet.caffemodel进行微调,然后对训练集继续训练;最后得到针对于自己数据的模型,该模型对采集到的特征作可视化处理,最终正确率达到99%;对各中间输出层进行特征可视化,通过卷积层特征图的输出、全连接层输出值与直方图分布以及最后一层′prob′输出更直观的观察卷积神经网络训练目标集各层的特征学习的变化。