细粒度图像分类(FGVC)理解与探究

2023-10-18 07:50

本文主要是介绍细粒度图像分类(FGVC)理解与探究,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

细粒度图像分类(FGVC)理解与探究

细粒度图像分类与传统图像分类而言,细粒度图像分类中所需要进行分类的图像中的可判别区域(discriminative parts)往往只是在图像中很小的一块区域内。
在传统的图像分类网络中,无论图像中的重要判别区域占整个图像的比重有多大,都只会对整张图片一视同仁的提取特征。因此,在一些判别区域占图像比重较小的一些图片,进行同样的特征提取及处理,大量不关注的background信息会被训练进去,增加了图像分类的难度,降低分类的准确度。
引入细粒度图像分类这一概念,就是为了解决这样的问题,关注图像中细小的差别,实现更精确的图像分类:如蔬果中更细小的品种分类,草木的病虫害分类等。目前常规的细粒度图像分类的方法为,先得到关注目标的区域,再对该目标进行细分类,从而使网络更了解分类物体。
目前针对细粒度图像分类的训练方法主要有两类:强监督学习和无监督学习。

1、 强监督学习

额外添加更多的bounding-box标注信息加入网络进行强监督学习,使网络能学习到目标的位置信息。
不足:(1)需要大量人力资源进行图像的标注。(2)人力标注的信息并不一定准确就是目标真正需要关注的区域。
(个人观点:添加了了更多的bounding-box标注信息进行图像的细节分类,方法上已经和目标检测很像,超出了图像分类的初衷)

2、 弱监督学习

弱监督并不是无监督学习,而只是根据基本图像分类网络一样,只需要给出图像的类别即可。由网络通过无监督学习出判别区域的位置,再特别关注此区域的特征差异,识别出目标的类别。
常用方法有:
基于注意力(Attention)机制的图像分类,通过分析特征图中最突出的部分得到判别区域的位置。

RA-CNN (Recurrent Attention Convolutional Neural Network):

算法分为两个部分,分类网络和注意力提取网络(APN, Attention Proposal Network),将图片进行三次注意力提取,得到最关注的区域,再通过三个通过不同尺度的feature map进行特征融合,再接入softmax进行分类。
PA-CNN

SENet: Squeeze-And-Excitation Networks

SE-block
SENet通过注意力机制对卷积后的feature map的每个channel进行加权,提高关键特征的明显度,降低不必要特征的影响。可以嵌入到各类基础分类网络当中。
在这里插入图片描述
主要实现为:Squeeze通过global average pooling对feature map进行降维,将H*W降到1;Excitation通过一个bottleneck(结构为绿框),捕捉到不同channel的相关性,从而学习到channel间的注意力因子(attention factor)。

MAMC (Multi-Attention Multi-Class Constraint)

MAMC
MAMC算法借鉴了SENet的注意力机制与度量学习的方法,改进了正负样本之间的关系,将正样本之间的距离更加接近,并稀疏了负样本之间的距离。这种方法改进了以上RA-CNN的多次多层的注意力提取融合的过程,改善RA-CNN引入噪声的影响,
该算法主要分为两个模块:OSME module和MAMC module
OSME:One-Squeeze Multi-Excitation
OSME主要借鉴了SENet的思想,不同的是采用了多层Excitation结构,产生了多种注意力结构,也就代表提取多个注意力区域传入后期的MAMC module进行分析。
MAMC: Multi-Attention Multi-Class Constraint
MAMC借鉴度量学习的方法,将OSME产生的多种注意力区域进行划分,拉近正样本之间的距离。此方法改进了RA-CNN中循环注意力的方法,防止了初次注意力检测就引入噪声而带来的后期的噪声不断放大带来的缺陷。并且整个过程为one-stage的过程,便以进行端到端的训练。

※SCDA(Selective Convolutional Descriptor Aggregation)

SCDA主题上不算是细粒度的图像分类,而应用在图像检索方向,但与FGVC有相似之处,SCDA是一种无监督检测算法,连图像级别的标注都不需要,自行分类图像的类别。通过对图像中主要物体的提取,对数据的图片进行聚类匹配,从而对数据中的图片进行相似检索,达到分类效果。
其具体流程为:通过预训练好的特征提取网络进行基础的特征提取,如(基于ImageNet预训练的VGG网络)取最后一层网络进行特征匹配。
feature
将feature map进行堆叠求和,得到最突出的物体区域,随后滤除较小的噪声,只保留主体区域。
过程
再将图片与其他图片提取出来的特征进行距离分析(度量学习?k-means?),分出图片类别。

※Meta-Reinforced Synthetic Data for One-Shot Fine-Grained Visual Recognition

GAN-FGVC
这篇论文讨论了GAN生成图像在细粒度图像分类中的作用及局限性。细粒度图像分类的特点为区分图像中细小的差别,而GAN网络生成的图像特征通常较为模糊,并且可能并没有很好生成可区分的判断区域。所以来说,如果直接将GAN网络生成的图像直接仍入FGVC网络中,会造成网络的模糊与抖动,从而造成精度的下降。所以,paper中为了使GAN生成的图像能适用细粒度图像分类,提出了用真实图像强化GAN生成的图像的方法,尽可能的保留原图的细粒度特征,从而使GAN能在细粒度图像识别中取得一定作用。(但是生成样本不能过多,会造成网络倾斜于生成图像,对真实图像检测精度降低)

这篇关于细粒度图像分类(FGVC)理解与探究的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/231238

相关文章

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语

MySQL中的索引结构和分类实战案例详解

《MySQL中的索引结构和分类实战案例详解》本文详解MySQL索引结构与分类,涵盖B树、B+树、哈希及全文索引,分析其原理与优劣势,并结合实战案例探讨创建、管理及优化技巧,助力提升查询性能,感兴趣的朋... 目录一、索引概述1.1 索引的定义与作用1.2 索引的基本原理二、索引结构详解2.1 B树索引2.2

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y

c/c++的opencv图像金字塔缩放实现

《c/c++的opencv图像金字塔缩放实现》本文主要介绍了c/c++的opencv图像金字塔缩放实现,通过对原始图像进行连续的下采样或上采样操作,生成一系列不同分辨率的图像,具有一定的参考价值,感兴... 目录图像金字塔简介图像下采样 (cv::pyrDown)图像上采样 (cv::pyrUp)C++ O

Python+wxPython构建图像编辑器

《Python+wxPython构建图像编辑器》图像编辑应用是学习GUI编程和图像处理的绝佳项目,本教程中,我们将使用wxPython,一个跨平台的PythonGUI工具包,构建一个简单的... 目录引言环境设置创建主窗口加载和显示图像实现绘制工具矩形绘制箭头绘制文字绘制临时绘制处理缩放和旋转缩放旋转保存编

python+OpenCV反投影图像的实现示例详解

《python+OpenCV反投影图像的实现示例详解》:本文主要介绍python+OpenCV反投影图像的实现示例详解,本文通过实例代码图文并茂的形式给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一、前言二、什么是反投影图像三、反投影图像的概念四、反向投影的工作原理一、利用反向投影backproj

spring IOC的理解之原理和实现过程

《springIOC的理解之原理和实现过程》:本文主要介绍springIOC的理解之原理和实现过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、IoC 核心概念二、核心原理1. 容器架构2. 核心组件3. 工作流程三、关键实现机制1. Bean生命周期2.

Pandas使用AdaBoost进行分类的实现

《Pandas使用AdaBoost进行分类的实现》Pandas和AdaBoost分类算法,可以高效地进行数据预处理和分类任务,本文主要介绍了Pandas使用AdaBoost进行分类的实现,具有一定的参... 目录什么是 AdaBoost?使用 AdaBoost 的步骤安装必要的库步骤一:数据准备步骤二:模型

使用Python实现图像LBP特征提取的操作方法

《使用Python实现图像LBP特征提取的操作方法》LBP特征叫做局部二值模式,常用于纹理特征提取,并在纹理分类中具有较强的区分能力,本文给大家介绍了如何使用Python实现图像LBP特征提取的操作方... 目录一、LBP特征介绍二、LBP特征描述三、一些改进版本的LBP1.圆形LBP算子2.旋转不变的LB