之所以写这个文章,主要还是由于有2段经历,一次是有个去**实习的机会,就是要做一个对花卉分类的桌面应用。另一个耿是在一次GPU的培训会上,旁边一个童鞋的公司就是做手机端的花卉识别。当然现在市场上也有好多这方面比较成熟的应用。

进入正题,论文为,Automated flowerclassification over a large number of classes,核心思想主要就是用AlexNet和VGG进行了分类的训练,也算是属于fine-grained classification的范畴。

git  clone  https://github.com/greatnorman1102/Flower-fine-grained-classification.git

下载图片数据集(Oxford 102category flower dataset)和预训练模型,执行,

python  bootstrap.py

执行完毕后,将会在当前目录下生成data文件夹,里面存放图片数据。

制作LMDB数据

../../build/tools/convert_imageset --resize_height=256 --resize_width=256 /home/caffe/examples/Flower-fine-grained-classification/data/jpg/ train_.txt ./img_train_lmdb../../build/tools/convert_imageset --resize_height=256 --resize_width=256 /home/caffe/examples/Flower-fine-grained-classification/data/jpg/ valid_.txt ./img_valid_lmdb

修改AlexNet 用于训练的prototxt

finetune  AlexNet

../../build/tools/caffe train -solver solver.prototxt -weights pretrained-weights.caffemodel -gpu 0

修改VGG_S用于训练的prototxt

finetune  VGG_S

../../build/tools/caffe train -solver solver.prototxt -weights pretrained-weights.caffemodel -gpu 1

修改GOOGLENET用于训练的prototxt

finetune  GOOGLENET

../../build/tools/caffe train -solver solver.prototxt -weights pretrained-weights.caffemodel -gpu 2

训练完毕后曲线如下所示,按理说,googlenet的层数最多,应该性能最好,实际却不是,可能的原因应该就是googlenet训练需要一些trick,不是那么好finetune,这也许也是好多检测框架使用VGG的原因吧。

制作synset_words.txt

43_alpine sea holly
105_anthurium
78_artichoke
96_azalea
46_ball moss
49_balloon flower
127_barbeton daisy
54_bearded iris
66_bee balm
85_bird of paradise
109_bishop of llandaff
54_black-eyed susan
48_blackberry lily
49_blanket flower
40_bolero deep blue
128_bougainvillea
63_bromelia
49_king protea
67_lenten rose
137_lotus
46_love in the mist
63_magnolia
66_mallow
67_marigold
40_mexican aster
82_mexican petunia
46_monkshood
40_moon orchid
107_morning glory
67_orange dahlia
61_osteospermum
49_oxeye daisy
251_passion flower
71_pelargonium
71_buttercup
102_californian poppy
91_camellia
82_canna lily
40_canterbury bells
108_cape flower
52_carnation
50_cautleya spicata
112_clematis
87_colt's foot
86_columbine
92_common dandelion
41_corn poppy
154_cyclamen
59_daffodil
63_desert-rose
65_english marigold
82_peruvian lily
258_petunia
59_pincushion flower
40_pink primrose
109_pink-yellow dahlia
93_poinsettia
93_primula
40_prince of wales feathers
85_purple coneflower
42_red ginger
171_rose
75_ruby-lipped cattleya
41_siam tulip
52_silverbush
87_snapdragon
48_spear thistle
42_spring crocus
40_fire lily
162_foxglove
166_frangipani
91_fritillary
45_garden phlox
67_gaura
78_gazania
114_geranium
56_giant white arum lily
45_globe thistle
41_globe-flower
41_grape hyacinth
56_great masterwort
60_hard-leaved pocket orchid
131_hibiscus
76_hippeastrum
55_japanese anemone
66_stemless gentian
61_sunflower
56_sweet pea
85_sweet william
130_sword lily
120_thorn apple
45_tiger lily
41_toad lily
58_tree mallow
62_tree poppy
58_trumpet creeper
196_wallflower
194_water lily
184_watercress
85_wild pansy
54_windflower
49_yellow iris

制作一个测试的sh脚本

#!/bin/bash
#AlexNet
../../build/examples/cpp_classification/classification.bin\AlexNet/deploy.prototxt\AlexNet/caffe_alexnet_train_iter_50000.caffemodel\imagenet_mean.binaryproto\synset_words.txt\data/jpg/image_00256.jpg
#VGG-S
../../build/examples/cpp_classification/classification.bin\VGG-S/VGG_CNN_S_deploy.prototxt\VGG-S/caffe_vgg_train_iter_20000.caffemodel\VGG-S/VGG_mean.binaryproto\synset_words.txt\data/jpg/image_00256.jpg
#GoogleNet
../../build/examples/cpp_classification/classification.bin\googlenet/deploy.prototxt\googlenet/caffe_googlenet_train_iter_50000.caffemodel\imagenet_mean.binaryproto\synset_words.txt\data/jpg/image_00256.jpg

运行上述脚本,输出结果,

references:

https://github.com/greatnorman1102/Flower-fine-grained-classification

http://www.robots.ox.ac.uk/~vgg/data/flowers/102/index.html

花卉大识别之崭露头角相关推荐

  1. 30倍加速,3毫秒极速识别,人、车、OCR等9大识别任务一网打尽

    本文已在飞桨公众号发布,查看请戳链接: 30倍加速,3毫秒极速识别,人.车.OCR等9大识别任务一网打尽 人脸.车辆.人体属性.卡证.交通标识等经典图像识别能力,在我们当前数字化工作及生活中发挥着极其 ...

  2. 基于深度学习的花卉检测与识别系统(YOLOv5清新界面版,Python代码)

    摘要:基于深度学习的花卉检测与识别系统用于常见花卉识别计数,智能检测花卉种类并记录和保存结果,对各种花卉检测结果可视化,更加方便准确辨认花卉.本文详细介绍花卉检测与识别系统,在介绍算法原理的同时,给出 ...

  3. 毕设 深度学习卷积神经网络的花卉识别

    文章目录 0 前言 1 项目背景 2 花卉识别的基本原理 3 算法实现 3.1 预处理 3.2 特征提取和选择 3.3 分类器设计和决策 3.4 卷积神经网络基本原理 4 算法实现 4.1 花卉图像数 ...

  4. 花卉识别python_基于深度学习的花卉识别系统设计与实现

    杨美艳 任富顺 顾志东 摘   要:深度学习是机器学习的一种前沿发展,设计主要利用谷歌的tensorflow框架,实现了对十种花卉的分类和识别.通过已有的大量的花卉图片素材,编写卷积神经网络对花卉图片 ...

  5. 毕业设计 - 题目:基于深度学习卷积神经网络的花卉识别 - 深度学习 机器视觉

    文章目录 0 前言 1 项目背景 2 花卉识别的基本原理 3 算法实现 3.1 预处理 3.2 特征提取和选择 3.3 分类器设计和决策 3.4 卷积神经网络基本原理 4 算法实现 4.1 花卉图像数 ...

  6. 基于MATLAB花卉识别系统,基于深度学习的花卉识别系统设计与实现

    杨美艳 任富顺 顾志东 摘   要:深度学习是机器学习的一种前沿发展,设计主要利用谷歌的tensorflow框架,实现了对十种花卉的分类和识别.通过已有的大量的花卉图片素材,编写卷积神经网络对花卉图片 ...

  7. 【毕业设计】基于卷积神经网络的植物花卉识别系统

    系统演示视频: [毕业设计]基于卷积神经网络的植物花卉分类系统 本项目使用到的技术包括:卷积神经网络(CNN)算法,Django框架搭建网站,CNN模型调优. 项目包括四部分: 1.数据集 2.模型训 ...

  8. 基于TensorFlow的花卉识别

    概要设计 数据分析 本次设计的主题是花卉识别,数据为TensorFlow的官方数据集flower_photos,包括5种花卉(雏菊.蒲公英.玫瑰.向日葵和郁金香)的图片,并有对应类别的标识(daisy ...

  9. 毕业设计-基于深度学习的花卉识别分类

    目录 前言 课题背景和意义 实现技术思路 一.花卉识别相关理论基础 二.基于 ResNeXt 和迁移学习的花卉种类识别 三.基于 EfficientNet 和迁移学习的花卉种类识别 实现效果图样例 最 ...

最新文章

  1. 养成一个习惯需要多久?
  2. python filename 以txt截尾_What?PPT里也能运行Python?
  3. Cesium原理篇:6 Render模块(6: Instance实例化)
  4. ROS:ubuntuKylin17.04-Ros使用OrbSLAM2
  5. 总有人黑 JavaScript?那是不知道它有多好用吧!
  6. MySql基础笔记(三)其他重要的事情
  7. 贝叶斯小数据分析—— 23 条数据决定宇航员生死(使用 PyMC3)
  8. 幼儿的健脑菜谱:椰子鸡汤
  9. 阿里P9专家右军:以终为始的架构设计
  10. Yocto系列讲解[理论篇]27 - BitBake全过程(5)
  11. 真实评测 rtx3080ti对比rx6800xt选哪个好
  12. 2022年9月青少年C/C++软件编程(四级)等级考试试卷及答案解析
  13. 逻辑回归基本流程及鸢尾花项目实战
  14. 海思Hi3559AV100将caffemodel转为wk文件
  15. can‘t convert from BSON type long to Date
  16. RestHighLevelClient
  17. vue utils.js公共方法中axios请求返回数据
  18. C语言 进制转换(1-16进制)
  19. 2021年熔化焊接与热切割找解析及熔化焊接与热切割操作证考试
  20. MySQL索引的作用

热门文章

  1. Unity 防沉迷逻辑
  2. 数据库备份的三种方式
  3. 观 王强(读书毁了我 北大演讲)note_201_12_22
  4. 未来十年,有哪些职业会消失...Python人工智能也会被替代吗
  5. ARM-Linux内核基础知识
  6. latex怎么给图片命名_如何用LaTeX打出各种不等号?
  7. 装XP系统时蓝屏,出现“The BIOS in this system is not fully ACPI compliant..
  8. 尝试用jdk1.6强行装jdk1.8的逼-Filter
  9. Flash音乐播放器可多曲连放
  10. Lenovo ThinkVantage Toolbox 常见问题解答