本文主要是介绍Deep Learning and SVM Classification for Plant Recognition in Content-Based Large Scale Image Retrie,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Deep Learning and SVM Classification for Plant Recognition in Content-Based Large Scale Image Retrieval 论⽂周报
Bálint Pál Tóth, Márton Osváth, Dávid Papp, Gábor Szűcs
CLEF 2016
(⼀种将CNN与SVM组合起来对植物识别的⽅法)
0. 基本思想概述
提出了什么以及为什么提出
植物识别是在农业还是⽣态领域都有很重要的地位,然⽽有些植物之间有很⼤的相似性,所以识别植物有时候是⼀个复杂⽽专业的⼯作。在这种情况下,⽂章提出了⼀种基于图⽚内容的识别⽅式,从7个viewpoint(茎、叶等)来分别对图⽚进⾏分类。另外为了让模型有更好的鲁棒性,⽂章针对未知类别的植物提出了⼀种⽅法来识别未知类别的植物。
怎么做
论⽂使⽤了三种⽅法来进⾏植物识别:
1 . 使⽤Fisher Vector与SVM进⾏分类
2 . 使⽤深度学习进⾏分类
3 . 集成1、2两种⽅法,并加上使⽤元数据构造的第三个分类器,集成起来进⾏分类
1. Fisher V ector & SVM
这是使⽤了传统的机器学习的⽅法来进⾏分类的,分成两个主要的步骤:
基于内容表达图⽚
这部分把RoW模型应⽤在图像上,使⽤了dense SIFT的⽅法来提取特征;模型分成3步:特征检测、特征描述以及图像表达。
对于前两个步骤,主要是使⽤了传统的dense SIFT来提取特征,再对特征使⽤PCA进⾏降维; 对于图像表达,作者对图⽚⽐较低级的特征使⽤GMM模型进⾏编码,得到Fisher-vector来描述图像。
分类
把SVM扩展成多类分类器,然后对7个viewpoint分别训练7个SVM和基于RBF的C-SVC进⾏分类。
2. Classification by Deep Learning
⽂章主要是使⽤了AlexNet来进⾏分类,主要思路是卷积层负责特征学习,带1000-way的softmax以及全连接层负责分类。
在训练之前,作者对数据进⾏了数据增强与标准化,AlexNet做了⼩⼩的改动,如下图,把ReLU改成PReLUs,并在每次max-pooling之前加上了BN。
优化算法使⽤了AdaDelta。
⽂章使⽤了三个模型集成:除了上⾯两个模型,还构造了第三个模型,即使⽤元数据构造的随机森林;根据模型最终的效果对最终的集成模型进⾏加权,
- SVM:0.3
- CNN:0.6
- metadata:0.1
另外对于未知类别的植物,作者构造了⼀个模型来识别这些图⽚并过滤掉,⽅法如下:
1 . 计算测试图⽚的FV与训练数据的最⼤距离,如果距离较远,则作为异常数据过滤掉。
2 . 如果测试图⽚的分类决策值⼩于0.3,也作为异常值过滤掉。
作者基于7个viewpoint训练了7个SVM,进⾏分类的时候,根据图⽚的viewpoint使⽤对应的SVM进⾏分类。
然⽽由于不⼀定所有图⽚都有viewpoint,所以对于图⽚中没有viewpoint的数据,作者对这7个SVM的决策值进⾏加权平均,每个viewpoint对应的SVM赋予不同的权重,得出的结果作为该样本的标签。
4. 个⼈理解
对RoW应⽤在图像上的理解
2006年,Li Feifei将RoW应⽤在object recognition上,我去查了相关资料,然后谈⼀下我的理解。
把RoW应⽤在图像上的⽅法主要分三个步骤:
⽅法主要分三个步骤:
1 . 特征提取
在本⽂中,作者是⽤dense SIFT来提取特征的,那我以SIFT特征为例,每张图像可以提取出多个关键点,⼀个关键点标记为⼀个patch。由于是SIFT提取,所以每⼀个patch应该由⼀个128维的特征向量表⽰。
对应原来的RoW模型(Row模型原本是应⽤于⽂本的),其实每⼀个patch就是⼀个单词。
2 . 字典构建
对上⼀步得到的特征向量,即所有的patch进⾏聚类, 能得到K个聚类中⼼,每个聚类中⼼就对应于词典中的单词,每个单词⼜由128维的特征向量表⽰,所以假设字典⼤⼩为m,我认为在图像上的“字典”可以理解为⼀个m x 128的矩阵。
3 . 对每张图⽚进⾏字典表⽰
对于每张图⽚,
- 先初始化⼀个全0的m维的向量v;
- 再计算测试图像每个patch与字典中单词的距离,距离patch最近的单词的在向量v上对应的分量计数加1;
- 将所有patch计算完毕后的向量即为图像的字典表⽰,即表⽰为⼀个m维的向量。
这篇关于Deep Learning and SVM Classification for Plant Recognition in Content-Based Large Scale Image Retrie的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!