> 文章列表 > 基于深度学习的花卉识别

基于深度学习的花卉识别

基于深度学习的花卉识别

1、数据

春天来了,我在公园的小道漫步,看着公园遍野的花朵,看起来真让人心旷神怡,一周工作带来的疲惫感顿时一扫而光。难得一个糙汉子有闲情逸致俯身欣赏这些花朵儿,然而令人尴尬的是,我一朵都也不认识。那时我在想,如果有一个花卉识别软件,可以用手机拍一下就知道这是一种什么花朵儿,那就再好不过了。我不知道市场上是否有这样一种软件,但是作为一个从事深度学习的工程师,我马上知道了怎么做,最关键的不是怎么做,而是数据采集。住所附近就是大型公园,一年司机繁花似锦,得益于此,我可以在闲暇时间里采集到大量的花卉数据。本数据集由本人亲自使用手机进行拍摄采集,原始数据集包含了18万张图片,图片的尺寸为1024x1024,为了方便储存和传输,把原图缩小为224x224。采集数据是一个漫长的过程,因此数据集的发布采用分批发布的形式,也就是每采集够16种花卉,就发布一次数据集。每种花卉的图片数量约为2000张,每次发布的数据集的图片数量约为32000张,每次发布的数据集包含的花卉种类都不一样。目前花卉的种类只有32种,分为两批发布,不过随着时间的推移,采集到的花卉越来越多。这里就把数据集分享出来,供各位人工智能算法研究者使用。以下是花卉数据集的简要介绍和下载地址。
(1)花卉数据集01(数据集+训练代码下载地址)
花卉数据集01,采集自2022年,一共16种花卉,数据集大小为32000张,图片大小为224x224的彩色图像。数据集包含的花卉名称为:一年蓬,三叶草,三角梅,两色金鸡菊,全叶马兰,全缘金光菊,剑叶金鸡菊,婆婆纳,油菜花,滨菊,石龙芮,绣球小冠花,蒲公英,蓝蓟,诸葛菜,鬼针草。数据集的缩略图如下:
图1 花卉数据集01
(2)花卉数据集02(数据集+训练源码下载地址)
花卉数据集02,采集与2023年,一共16种花卉,每种花卉约2000张,总共32000,图片大小为224x224。数据集包含的花卉有:千屈菜,射干,旋覆花,曼陀罗,桔梗,棣棠,狗尾草,狼尾草,石竹,秋英,粉黛乱子草,红花酢浆草,芒草,蒲苇,马鞭草,黄金菊。数据集缩略图如下:
图2 花卉数据集02

2、图片分类模型

为了研究不同图片分类模型对于花朵的分类效果,这里分别使用目前主流的23种图片分类模型进行训练,这些模型是resnet18、resnet34、resnet50、resnet101、resnet152、vgg11、vgg13、vgg16、vgg19、mobilenet_v1、mobilenet_v2、mobilenet_v3_large、mobilenet_v3_small、inception_v1、inception_v2、inception_v3、squeezenet、mnist_net、alex_net、lenet、TSL16、ZF_Net。训练代码基于tensorflow 2.3架构,集成以上23种模型,可进行傻瓜式训练。源码下载链接。

3、图片分类模型评估

分别训练了23种模型,图片输入的尺寸为224x224x3。将约64000张图片划分为训练集和测试集,其中测试集占10%,一共6400张,训练集90%,一共57600张。训练充分后,对各种模型进行评估,评估的结果如下表1所示。

表1 模型评估

模型 参数量 [M] 计算量 [G] 准确度(accuray)
resnet18 11.01 3.59 0.8692
resnet34 21.12 7.29 0.9014
resnet50 23.6 8.16 0.9424
resnet101 42.57 15.59 0.9525
resnet152 57.07 21.27 0.9401
vgg11 128.86 15.22 0.9343
vgg13 129.05 22.63 0.8840
vgg16 134.34 30.95 0.9267
vgg19 139.67 39.28 0.9035
mobilenet_v1 3.23 1.14 0.9724
mobilenet_v2 2.27 0.63 0.9328
mobilenet_v3_large 8.76 0.45 0.9531
mobilenet_v3_small 3.06 0.122 0.9573
inception_v1 6.00 3.18 0.5824
inception_v2 7.84 3.31 0.9667
inception_v3 21.83 5.68 0.9883
squeezenet 0.74 2.23 0.9326
mnist_net 214.43 51.27 0.9223
AlexNet 14.26 1.95 0.9632
LeNet 78.44 0.94 0.8440
TSL16 116.93 23.52 0.9539
ZF_Net 58.34 2.39 0.9657

从表一展示的结果来看,面对32种类别的分类任务,mobilenet系列和inception系列,分类的准确度表现优秀,而且谢谢模型的具有较小的参数量和计算量,比较适合移动端和嵌入式部署。

4、总结

花卉数据集共包括64000张图片,囊括了32种花卉的类别,其中10%为测试集,90%为训练集。图片的大小为224x224,通道数为3。一共使用了23种模型进行训练,通过评估,mobilenet_v1、mobilenet_v3_large、mobilenet_v3_small、inception_v2、inception_v3、AlexNet、ZF_Net几个模型,具有计算量小,分类准确度高的优点,适合移动端和嵌入式的部署。