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