文中程序使用CNN(Convolutional Neural Network)卷积网络,对5种花类图集进行深度学习,得到训练结果后再利用程序识别。
9行代码指训练程序主函数的程序行数。卷积神经网络实现函数有卷积层和池化层具体代码演示方法和公式。
文中对卷积神经网络cnn对5种花卉的训练结果保存和调用也给出了比较明确的方法以供学习!
卷积神经网络cnn原理动图
上图演示卷积神经网络原理!
卷机神经网络包括
a.输入层(统一花卉图片为100*100大小后输入)
b.卷积计算层(CONV):进行求和线性乘积运算。对图片区域处理特征
c.激励层(RELU),ReLU是激活函数的一种,普遍适用于卷积神经网络。
d.池化层(POOL),取区域平均或最大,缩小数据维度,增加数据厚度
e.全连接层(FC),综合数据得出结果
对于图像深度学习卷积层是最重要的!“卷积”操作是对不同窗口数据做逐个元素相乘再求和(内积)操作,这是名字来源。
5种花卉
5类花卉包括daisy雏菊633张图片、dandelion蒲公英898张图片、rose玫瑰641图片、sunflower向日葵699张图片、tulip郁金香799张图片。每个花卉对应不同目录!总共数据228M.文章种的了解更多可以得到图片集。大家要注意解压到全英文目录。
主要神经网络函数
主卷积神经网络cnn函数。 卷积层数据集全都采用了补0,经过卷积层后长度、宽度不变,深度加大。池化层保持原尺寸,经过池化层长度和宽度减小,深度不变。 数据集尺寸变化为:
100×100×3
100×100×32
50×50 ×32
50×50 ×64
25×25 ×64
25×25 ×128
12×12 ×128
12×12 ×128
6×6 ×128
可以看到经过卷积处理和池化处理,数据集长宽不断减小,厚度增加,于上面卷积神经网络原理动图对应!
程序识别花卉
程序准确率大概在65%左右。谷歌的Inception-v3花卉数据集分类准确率在95%左右。
我们把网上下载的花图片保存到flwtst测试,最终给出了正确判断。另外各个目录都在程序开头可以更改。
联系客服