本实验基于37种主流的图像分类算法模型,对64种花卉进行识别。使用包括vgg、resnet、densenet、efficientnet、inception、mobilenet等37种图像分类模型进行实验,评估各种模型对花卉的识别准确度、计算量、参数量,对比不同模型的性能和优缺点。
1、数据集
数据集包含的花卉种类一共有64种,共32000张尺度为224x224的彩色图像,其中训练集为25600张,测试集为6400张。如下图所示,为64种花卉的示例图,包含的花卉种类名称为:诸葛菜、鬼针草、油菜花、蒲公英、三角梅、三叶草、两色金鸡菊、婆婆纳、石龙芮、滨菊、剑叶金鸡菊、一年蓬、蓝蓟、绣球小冠花、全叶马兰、全缘金光菊、狗尾草、马鞭草、曼陀罗、千屈菜、旋覆花、狼尾草、射干、桔梗、蒲苇、秋英、粉黛乱子草、黄金菊、芒草、石竹、棣棠、红花酢浆草、长柔毛野豌豆、小苜蓿、草甸鼠尾草、蓝花鼠尾草、玫瑰、大花耧斗菜、北香花介、美丽芍药
、美丽月见草、小果蔷薇、高羊茅、线叶蓟、蛇莓、泽珍珠菜、小蜡、粉花绣线菊、天人菊、石榴、锦带花、山桃草、南天竹、细齿草木樨、矢车菊、紫菀、兔儿尾苗、松果菊、华水苏、三肋果、锦葵、水葱、堪察加费菜、夹竹桃。数据集+训练源码下载地址
2、结果分析
一共测试了37种主流的图像分类模型,模型的参数和性能如下表所示。模型训练架构为pytorch架构,一共集成了37种模型,可以根据模型名称选择指定的模型,源码+数据集已经打包,点击这里下载。
模型 | 计算量[G] | 参数量[M] | Top1 准确度 |
alexnet | 2.5272 | 17.7085 | 0.9413 |
densenet_121 | 7.2888 | 6.9460 | 0.9820 |
densenet_169 | 8.7874 | 12.4468 | 0.9830 |
densenet_201 | 11.4791 | 18.0038 | 0.9823 |
densenet_264 | 15.7301 | 30.4447 | 0.9844 |
efficientnet_b0 | 1.1330 | 7.2038 | 0.9650 |
efficientnet_b1 | 1.6814 | 12.1062 | 0.9683 |
efficientnet_b2 | 1.9493 | 14.3259 | 0.9594 |
efficientnet_b3 | 2.8565 | 20.0478 | 0.9686 |
efficientnet_b4 | 4.4744 | 33.1864 | 0.9553 |
efficientnet_b5 | 7.0376 | 54.1427 | 0.9566 |
efficientnet_b6 | 9.8001 | 76.6058 | 0.9594 |
efficientnet_b7 | 15.5002 | 123.2917 | 0.9478 |
inception_resnet_v1 | 10.6189 | 21.8683 | 0.9672 |
inception_resnet_v2 | 15.9665 | 31.9694 | 0.9683 |
inception_v1 | 3.6633 | 6.0392 | 0.9780 |
inception_v2 | 3.8100 | 7.8637 | 0.9789 |
inception_v3 | 8.8643 | 21.8995 | 0.9791 |
inception_v4 | 19.6164 | 41.3695 | 0.9766 |
lenet | 1.0318 | 78.4591 | 0.7633 |
mnist | 56.2191 | 214.4706 | 0.9195 |
mobilenet_v1 | 1.6834 | 3.2616 | 0.9702 |
mobilenet_v2 | 0.9391 | 2.8031 | 0.9617 |
resnet_18 | 3.8790 | 11.2087 | 0.9770 |
resnet_34 | 7.7857 | 21.3132 | 0.9764 |
resnet_50 | 10.2410 | 23.5747 | 0.9700 |
resnet_101 | 19.6393 | 42.5407 | 0.9706 |
resnet_152 | 29.0395 | 58.1613 | 0.9717 |
squeezenet_v1 | 1.7934 | 0.7683 | 0.9736 |
squeezenet_v2 | 1.7944 | 0.7683 | 0.9766 |
squeezenet_v3 | 19.0263 | 9.9594 | 0.9825 |
tsl_16 | 24.9182 | 116.9690 | 0.9500 |
vgg_11 | 16.1756 | 129.0285 | 0.9422 |
vgg_13 | 23.9902 | 129.2131 | 0.9311 |
vgg_16 | 32.7775 | 134.5228 | 0.9286 |
vgg_19 | 41.5648 | 139.8324 | 0.8912 |
zfnet | 2.8317 | 72.1543 | 0.9453 |
特别说明,以上表格中,计算量是指浮点操作的次数,单位是GFlops,参数量是指可训练的参数数目,单位是M。
64种花卉识别,经过测试37种主流的图像分类模型,从识别准确度上来看,densenet系列、inception系列、mobilenet系列、resnet系列、squeezenet系列均表现不错。考虑到计算量和参数量直接影响模型在边缘端的部署性能,因此需要在准确度和推理速度之间权衡,综合考虑下,densenet_121、incepton_v1、inception_v2、mobilenet_v1、mobilenet_v2、resnet_18、squeezenet_v1、squeezenet_v2等模型在计算量较小的情况下,仍能保持较高的准确率,是边缘端部署的优先选择。