深度学习: 细粒度图像分类 (fine-grained image recognition)

细粒度(fine-grained)识别综述 最近在研究细粒度,看了很多文章,想做一个总结。后续会继续补充研究的进展。 阅读详情
AI摘要

本文介绍了细粒度图像识别在计算机视觉中的挑战和方法,包括基于图像重要区域定位和精细化特征表达的策略。强调了注意力机制在提升分类精度中的作用,如RA-CNN模型通过递归注意力找到关键区域。此外,还列举了多个数据集和代表性算法,如CUB200-2011、DeCAF、Part-based R-CNN等,并探讨了强监督和弱监督信息在模型构建中的应用。

细粒度图像识别 (fine-grained image recognition),即 精细化分类。

细粒度图像分类(Fine-Grained Categorization),
又被称作子类别图像分类(Sub-Category Recognition),
    是近年来计算机视觉、模式识别等领域一个
    非常热门的研究课题. 其目的是对粗粒度的大类别
    进行更加细致的子类划分, 但由于子类别间细微的
    类间差异和较大的类内差异, 较之普通的图像分类
    任务, 细粒度图像分类难度更大.

目前, 绝大多数的分类算法都遵循这样的流程框架:

首先找到前景对象(鸟)及其局部区域(头、脚、翅膀等), 之后分别对这些区
域提取特征. 对所得到的特征进行适当的处理之后, 用来完成分类器的训练
和预测.
精细化分类
识别出物体的大类别(比如:计算机、手机、水杯等)较易,但如果进一步去判断更为精细化的物体分类名称,则难度极大。
最大的挑战在于,同一大类别下 不同 子类别 间的 视觉差异 极小。
因此,精细化分类 所需的图像分辨率 较高。

目前,精细化分类的方法主要有以下两类:

1. 基于图像重要区域定位的方法:
该方法集中探讨如何利用弱监督的信息自动找到图像中有判别力的区域,
从而达到精细化分类的目的。
2. 基于图像精细化特征表达的方法:
该方法提出使用高维度的图像特征(如:bilinear vector)对图像信息进行高阶编码,
以达到准确分类的目的。
按照其使用的监督信息的多少 分为 强监督 和 弱监督
信息的细粒度图像分类模型

A. 基于强监督信息的细粒度图像分类模型

0. DeCAF Deep Convolutional Activation Feature

  1. 基于部件的CNN Part-based R-CNN

https://arxiv.org/pdf/1407.3867.pdf

2. 姿态归一化CNN Pose Normalized CNN

https://arxiv.org/pdf/1406.2952.pdf

3. 基于部位分割模型的 Mask-CNN

https://blog.youkuaiyun.com/cyiano/article/details/71440358

B. 基于弱监督信息的细粒度图像分类模型

1. 两级注意力算法 Two Level Attention Model

https://www.cv-foundation.org/openaccess/content_cvpr_2015/papers/Xiao_The_Application_of_2015_CVPR_paper.pdf

 该模型主要关注两个不同层次的特征, 分别是对象级(Object-Level)和
    局部级(Part-Level), 即在以往强监督工作中所使用的标注框和局部区域位置
这两层信息.

  a. 在预处理阶段, 主要是从原始图像中检测并提取前景对象, 以减少背景信息带来的干扰.           仅仅使用卷积网络来对ss算法产生的区域中的背景区域进行过滤. 这样导致的结果是, 对于一张输入图像, 可能对应许多包含前景对象的候选区域.

       b. 对象级模型,对对象级图像进行分类。一个区域候选, 经过卷积网络之后, 得到一个softmax 层的输出. 对所有区域的输出求平均, 作为该图像最终的softmax层输出.

       c. 局部级模型, 为了从繁杂的候选区域中选出关键的局部区域           

  1. 首先利用对象级模型得到的网络来对每一个候选区域提取特征.          

  2. 对这些特征进行谱聚类, 得到k个不同的聚类簇, 每个簇代表一个局部信息, 如头部、脚等.        

  3. 将不同局部区域的特征级联成一个特征向量,用来训练SVM, 作为局部级模型给出的分类器.        

d. 最后, 将对象级模型的预测结果与局部级模型的结果相结合, 作为模型的最终输出.

2. 星座(Constellations)算法

https://arxiv.org/pdf/1504.08289v3.pd

3. Bilinear CNN

https://arxiv.org/pdf/1504.07889.pdf

数据集

CUB200-2011 Caltech-UCSD Birds-200-2011

     http://www.vision.caltech.edu/visipedia/CUB-200-2011.html

 共包含200 种不同类别, 其中每类都有30+ 个训练图像,共11,788张鸟类图像数据. 每张图像包含15个局部部位标注点(part annotation)用来标记鸟类的身体部位,312 个二值属性, 1个标注框, 以及语义分割图像 

Stanford Dogs 120种不同种

http://vision.stanford.edu/aditya86/ImageNetDogs/

狗的图像数据, 共有20,580 张图, 只提供标注框 和 类别标注数据

Oxford Flowers

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

    分为两种不同规模的数据 库, 分别包含17种类别和102种类别的花. 其中,
    102种类别的数据库比较常用, 每个类别包含了40到258 张图像数据, 总共有8,189张图像. 
    该数据库只提供语义分割图像, 不包含其他额外标注信息.

Cars

http://ai.stanford.edu/~jkrause/cars/car_dataset.html
    提供196类不同品牌不同年份不同车型的车辆图像数据, 一共包含有16,185张图像,
    分成训练集(8,144张)和测试集(8,041张)
    只提供标注框信息。

FGVC-Aircraf Fine-Grained Visual Classification of Aircraft

http://www.robots.ox.ac.uk/~vgg/data/fgvc-aircraft/

    提供102 类不同的飞机照片,每一类别含有100 张不同的照片, 整个数据库共
    有10,200张图片, 只提供标注框信息.

算法框架

1. CNN  特征提取网络(科目卷积层 、 属目卷积层、种目卷积层)    提取不同层面的特征
2. APN  注意力建议网络   得到不同的关注区域
3. DCNN 卷积细粒度特征描述网络
4. 全连接层之后得到粗细粒度互补的层次化特征表达,再通过 分类网络softmax 输出结果

注意力模型(Attention Model) 注意力机制

被广泛使用在自然语言处理、图像识别及语音识别等各种不同类型的深度学习任务中,
是深度学习技术中最值得关注与深入了解的核心技术之一。 
视觉注意力机制是人类视觉所特有的大脑信号处理机制。
人类视觉通过快速扫描全局图像,获得需要重点关注的目标区域,也就是一般所说的注意力焦点,
而后对这一区域投入更多注意力资源,以获取更多所需要关注目标的细节信息,而抑制其他无用信息。
这是人类利用有限的注意力资源从大量信息中快速筛选出高价值信息的手段,
是人类在长期进化中形成的一种生存机制,人类视觉注意力机制极大地提高了视觉信息处理的效率与准确性。

把Attention仍然理解为从大量信息中有选择地筛选出少量重要信息并聚焦到这些重要信息上,
忽略大多不重要的信息,这种思路仍然成立。
聚焦的过程体现在权重系数的计算上,权重越大越聚焦于其对应的Value值上,
即权重代表了信息的重要性,而Value是其对应的信息。

图片描述(Image-Caption)

是一种典型的图文结合的深度学习应用,输入一张图片,人工智能系统输出一句描述句子,
语义等价地描述图片所示内容。
可以使用Encoder-Decoder框架来解决任务目标。
1. 此时编码部分Encoder输入部分是一张图片,一般会用CNN来对图片进行特征抽取;
2. 解码Decoder部分使用RNN或者LSTM和注意力机制来输出自然语言句子。

RA-CNN

MSRA通过观察发现,对于精细化物体分类问题,其实形态、轮廓特征显得不那么重要,
而细节纹理特征则起到了主导作用。
因此提出了 “将判别力区域的定位和精细化特征的学习联合进行优化” 的构想,
从而让两者在学习的过程中相互强化,
也由此诞生了 “Recurrent Attention Convolutional Neural Network”
(RA-CNN,基于递归注意力模型的卷积神经网络)网络结构。

   RA-CNN 网络可以更精准地找到图像中有判别力的子区域,

然后采用高分辨率、精细化特征描述这些区域,进而大大提高精细化物体

分类的精度: 论文地址

http://openaccess.thecvf.com/content_cvpr_2017/papers/Fu_Look_Closer_to_CVPR_2017_paper.pdf

RA-CNN思想

1. 首先原图大尺度图像通过 CNN 卷积网络 提取特征,
   一部分进过APN(Attention Proposal Net 注意力建议网络)得到注意力中心框(
感兴趣区域,例如上半身区域),
   另一部分通过全连接层再经过softmax归一化分类概率输出;
2. 对第一步得到的注意力中心框(感兴趣区域,例如上半身区域),再进行1的步骤,
   得到更小的注意力中心框,和分类概率;
3. 对第二步得到的注意力中心框(感兴趣区域,例如头部区域),通过卷积网络提取特征,
通过全连接层再经过softmax归一化分类概率输出;


细粒度图像分类和多标签图像分类 引入bounding box 和key point 等额外的标注信息。2、标记关系建模RNN-CNN。没有考虑各类别之间的关系。两个分支关注不同的部位。 阅读详情

相关推荐

深度学习 细粒度图像识别 (fine-grained image recognition) 精细化分类,不同品种的花、鸟、狗、汽车 子类别图像分类(Sub-Category Recognition)

细粒度图像识别是计算机视觉领域的一个具有挑战性的任务,它要求算法能够准确区分同一大类下的不同子类。例如,区分不同品种的花、鸟、狗或汽车。由于子类之间的类间差异可能非常细微,而类内差异(即同一子类内的不同实例之间的差异)可能较大,因此细粒度图像识别的难度通常比普通图像分类任务更高。在细粒度图像识别中,许多方法都依赖于对前景对象及其局部区域的准确定位和特征提取。这是因为不同子类的差异可能主要体现在这些局部区域上。例如,在鸟类识别中,不同品种的鸟可能在头部、脚、翅膀等区域具有独特的特征。

万有文的博客 2379

细粒度图像分类(FGVC)---综述

一、概述 什么是细粒度图像分类 细粒度图像分类问题是对大类下的子类进行识别。细粒度图像分析任务相对通用图像(General/Generic Images)任务的区别和难点在于其图像所属类别的粒度更为精细。 以图1为例,通用图像分类其任务诉求是将“袋鼠”和“狗”这两个物体大类(蓝色框和红色框中物体)分开,可见无论从样貌、形态等方面,二者还是很容易被区分的;而细粒度图像的分类任务则要求对“狗”该类类别......

xys430381_1的专栏 7万+

Multi-Attention Multi-Class Constraint for Fine-grained Image Recognition笔记

Multi-Attention Multi-Class Constraint for Fine-grained Image Recognition(ECCV2018) 细粒度图像分类一直是一个颇具挑战性的问题,起因是细粒度图像很多存在类间方差小而类内方差大的问题,这样比一般的图像分类难度就大很多。细粒度图像分类有两个关键点,一个是关键性区域定位,二是从关键性区域学得辨别性特征,当前有很多方法在朝这...

DBG的博客 1543

深度学习细粒度分类综述

深度学习-细粒度分类综述

shajie的博客 6602

Learning a Discriminative Filter Bank within a CNN for Fine-grained Recognition论文翻译

Learning a Discriminative Filter Bank within a CNN for Fine-grained Recognition 细粒度分类一直是图像分类中的一个难点,近年来基于深度学习的图像分类发展迅速,细粒度分类也发展出了很多优秀的模型,早期的多阶段模型是通过引入一个辅助网络来融合位置信息到主分类网络中,或者通过一个复杂的特征编码方式来获得高阶特征统计,而最近的端...

DBG的博客 2676

细粒度分类算法笔记汇总

细粒度分类算法笔记汇总

qq_50001789的博客 1853

基于深度学习的细粒度图像分析综述【翻译】

细粒度图像分析(FGIA)是计算机视觉和模式识别中一个长期存在的基本问题,是一系列实际应用的基础。FGIA的任务是分析下属类别的视觉对象,例如鸟类物种或汽车模型。细粒度图像分析固有的小类间变化和大类内变化使其成为一个具有挑战性的问题。利用深度学习的进步,近年来我们见证了以深度学习为动力的FGIA的显著进步。在本文中,我们对这些进展进行了系统的综述,试图通过整合两个基本的细粒度研究领域——细粒度图像识别和细粒度图像检索,重新定义和拓宽FGIA领域。

专注于AI领域前沿技术学习与分享:目标检测、图像修复、超分重建、AI工程化 3475

细粒度分类:S3N论文笔记——Selective Sparse Sampling for Fine-grained Image Recognition

论文题目:《Selective Sparse Sampling for Fine-grained Image Recognition》 本文利用图像分类网络学习到的类峰值响应来估计细粒度图像的信息区域,再利用该区域指导对原图的选择性采样过程,从而突出图像中的细节并且不丢失周围的上下文信息。

qq_50001789的博客 583

Neural Prototype Trees for Interpretable Fine-grained Image Recognition解读

文章目录Neural Prototype Trees for Interpretable Fine-grained Image RecognitionMotivationMain ideaMain ContributionsMethodArchitectureTrainingPruningDeterministic reasoningConclusionThink Neural Prototype Trees for Interpretable Fine-grained Image Recognition

小鬼漫步的博客 974

C#构建企业级AI Agent框架:从架构到实践

AI Agent作为智能系统的核心组件,通过结合大语言模型(LLM)与规划引擎,实现了从简单对话到复杂任务处理的跨越。其关键技术包括记忆系统(RAG架构)和工具调用机制,前者通过向量数据库实现知识检索,后者则扩展了Agent的功能边界。在企业级应用中,这类系统能显著提升效率,如HR政策查询、IT故障排查等场景。C#凭借其强类型和高效性能,成为实现这类系统的理想选择,特别是在需要与现有企业系统集成的场景下。通过合理设计工具接口和安全防护措施,可以构建出既强大又可靠的智能助手。

weixin_33672109的博客 383

【LVGL】学习笔记--(3)界面切换以及显示优化

界面切换和帧率优化

sinat_33408502的博客 1万+

Three-Branch and Mutil-scale learning for fine-grained Image Recognition(TBMSL-NET)

摘要 FGVC任务的特点是:类间差异小,类内差异大。我们的方法能够有效的定位到物体和标识区域,使用的是attention object location module(AOLM) 和attention part proposal module(APPM),而不是标注信息。模型能够获得的object image, 它有整个object的结构以及更多的细节;同时,获得的part image有着不同的尺...

雪碧橙子 1624

适合初学者的ROS机器人教程(1): Ubuntu下ROS创建自己的包和使用github下载的包

ROS如何创建自己的包 1. 首先创建catkin工作空间(如果你以及有了请忽略) $ mkdir catkin_ws # 创建一个文件夹里面计划放我们的项目,ws是workspace的缩写 $ cd catkin_ws # 将当前工作文件夹切换到catkin_ws这个文件夹 ~/catkin_ws$ catkin_make # 执行catkin_make创建一ROS项目 此时你的catkin_...

@司南牧|知乎|博客|易懂教程|李韬 3244

度量学习、细粒度识别相关论文阅读笔记(三)—— Destruction and Construction Learning for Fine-grained Image Recognition

度量学习、细粒度识别相关论文阅读笔记(三)—— Destruction and Construction Learning for Fine-grained Image Recognition 破坏和构建学习 区域混淆机制 对抗性损失 区域对齐网络 除了标准分类骨干网络之外,引入了DCL分支来自动学习判别区域。 首先破坏输入图像以强调有判别性的局部细节,然后对局部区域之间的语义相关性建模以重建图像...

CV小菜鸟的博客 1096

SAP 销售订单及发票 利润中心替代 Userexit出口 配置及程序

在跨公司销售业务中,跨公司销售订单的发票时无法从销售订单中将利润中心带到发票中,所以在跨公司的发票创建过程中需要配置出口来获取对应销售订单行项目的利润中心。 事务代码: 0KEM 配置步骤: 1、创建一个新的替代 2、创建一个步骤 3、维护一个先决条件,比如针对于特定工厂 PCASUB-VKBUR = '0001' 4、选择替代程序FORM,FORM必须为指定程序中存在的FORM名 5、编辑替代程序FORM 实现效果: 在程序FORM中打上断点 ...

李威威wiwi的博客 5069

通俗理解Xgboost

为了简化计算,XGBoost采用了一阶导数(梯度)和二阶导数(Hessian)来近似损失函数的变化,从而推导出叶子节点值的更新公式。其中 z 就是所有树的叶子节点分数之和。通过这两个正则化项,XGBoost能够在优化目标函数时,不仅考虑损失函数的最小化,还考虑了模型的复杂度,从而达到更好的泛化性能。正则化项通常包括两个部分:一个是与叶子节点数量相关的项,另一个是与叶子节点输出值大小相关的项。通过这种方式,XGBoost能够有效地计算出每个叶子节点的值,同时通过正则化项来平衡模型的复杂度和泛化能力。

金融风控笔记 751

论文阅读 [TPAMI-2022] Hierarchical Deep Click Feature Prediction for Fine-Grained Image Recognition

论文阅读 [TPAMI-2022] Hierarchical Deep Click Feature Prediction for Fine-Grained Image Recognition 论文搜索(studyai.com) 搜索论文: Hierarchical Deep Click Feature Prediction for Fine-Grained Image Recognition 搜索论文: http://www.studyai.com/search/whole-site/?q=Hierarch

weixin_42155685的博客 423

2xmax96717+max96724+agx orin驱动代码

说明:这里主要解决max96717的设备地址和sensor地址映射,vc0->vc1多颗max96717+max96724使用配置思路如下: 1、改变max96717的pipez stream id,然后max96724的pipe绑定使用相应的stream id 2、max96717默认是vc0,把vc0改写成vc1\vc2\vc3,然后max96724再重新映射vc输出

mantouyouyou的博客 113

《A Survey on Deep Learning-based Fine-grained Object Classification and Semantic Segmentation》阅读笔记

深度学习强深度学习在视觉任务性能优异,在细粒度图像分类领域也很强。细粒度图像分类是什么:下属类别分类(distinguish subordinate-level categories)细粒度图像分类特点:内方差高、类间方差低通用卷积神经网络(CNNs)基于部分检测的方法基于网络集成的方法基于视觉注意力的方法基于区域建议的方法基于全卷积网络的方法。

AncilunKiang的博客 376

芒果YOLOv8改进52:主干Backbone篇之GhostNetV2:提出原创GhostNetV2 架构升级版:引入长距离注意力机制增强廉价操作,构建更强端侧轻量型骨干,打造高效轻量级检测器

长距离注意力机制增强廉价操作,打造轻量级检测器

包括YOLOv5、YOLOv7、YOLOv8等模型改进 1611

ardupilot开发 --- MavLink 篇

ardupilot开发 --- MavLink 篇

记录老板的每次pua,分享领导每天的毒鸡汤... 4251

ECCV2018 | 细粒度分类:多注意力多类别约束 Multi-Attention Multi-Class Constraint for Fine-grained Image Recognition

细粒度分类就是对同一类中不同的子类物体间的分类。 如下图,是不同公开数据集下例子。不同种类的鸟、车、飞机。由于不同物体姿态,视角,光照,遮挡等影响,往往造成子类之间差异偏小,不同类别物体差异偏大。基于深度学习的物体分类可以大致分为强监督和弱监督两大类。强监督指图片标注中将物体某些显著特征(术语叫做discriminative判别性,可以区分类别的)部位信息给出,弱监督则没有此类信息。本文所述方法是弱监督细粒度分类。

HongYuSuiXinLang的博客 7512

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

一些很好的细粒度分类文章和他们的博客地址 fine-grained paper

1) https://blog.youkuaiyun.com/Cyiano/article/details/72081855  Object-Part Attention Driven Discriminative Localization for Fine-grained Image Classification (CVPR2017) 2) https://blog.youkuaiyun.com/HongYuSui...

小星星专栏 1258

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

graph在细粒度分类中的应用

由于这些特征是灾难性的高维特征,通常难以优化,作者提出了一个新的基于图的语义分组模块,将这些特征嵌入到紧凑空间中。然而,目前大多数的WFGIC方法都是独立挑选出判别区,直接利用其特征,而忽略了区域特征之间的语义相互关联,区域组具有更强的判别能力。为了解决这些问题,作者提出了一个基于图传播的端到端相关性学习模型GCL,以充分挖掘和利用WFGIC的区域相关的判别潜力。细粒度对象识别侧重于将一个基本类别的对象区分为子类,由于不同类别之间存在细微的视觉差异,这在深度学习领域依然是一个挑战。,该特征用于细粒度分类。

白景屹的博客 682

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Destruction and Construction Learning: 用于细粒度图像识别的开源项目

Destruction and Construction Learning: 用于细粒度图像识别的开源项目 1. 项目基础介绍 Destruction and Construction Learning(DCL)是一个针对细粒度图像识别的机器学习框架,它基于深度学习原理,通过破坏与构建学习策略来提高图像分类的准确性。该项目的编程语言主要是Python,依赖于PyTorch这一深度学习库。 2. 核...

gitblog_00185的博客 460
上一篇: CNN的一些可视化方法!
下一篇: 太赛博朋克了!华为天才少年自制B站百大Up奖杯,网友:技术难度不高,但侮辱性极强...
机器学习算法那些事
博客等级 码龄9年 1633粉丝 62原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值