一、概要

和细粒度识别中的DCL方法不同,LIO(Look-into-object)方法的作者认为仅仅通过学习不同种类物体的可区分视觉模式进行分类是不严谨的,更重要的是要对物体的整体结构进行建模,这是从视觉机制得到的启发:人类在看到目标后,首先是锁定目标的范围,然后在目标所在范围内分析目标的内部结构特征,进而做出判断。基于此,提出了OEL(目标范围学习)和SCL(空间上下文学习)两个可插拔的学习模块,来实现细粒度目标分类。

同时,LIO方法无需额外的标注工作量,通过自监督的方式实现了OEL和SCL模块的学习。最终的推理阶段,OEL和SCL模块可以完全去掉,几乎没有额外的推理开销。

二、架构

图1是LIO的概要图,输入经过骨干网提取特征映射,特征映射分别输入OEL和SCL模块进行学习,两个模块共同促进骨干网学习定位对象和对象内部区域的相对位置。

图 1. LIO概要

图2是LIO的网络结构。1、绿色区域是Backbone,负责预测输出类别标签,同时输出的特征映射分别接入OEL和SCL模块;2、蓝色区域表示OEL模块,其输出一个Mask接入到SCL模块;3、灰色区域是SCL模块,同时接收到Backbone和OEL的Mask输入。注意:橙色虚线仅在前向传播时起作用,反向传播时是不起作用的

图 2. LIO网络结构

三、OEL

Object Extent Learning,用于学习定位目标的大致范围,学的好与坏将直接关系到最终分类的性能。确定目标范围一般需要事先进行标注,然后进行训练,但这样做成本很大。OEL另辟蹊径,为了学习图像  中目标的范围,它通过采样一定数目与  同类别的图像,并进行计算得出一个语义Mask,该Mask矩阵反映了目标的大致范围,实现了自监督学习。流程如下:

  1. 采样N个同类别样本;
  2. 在Backbone上前向传播得到 N 个样本的特征映射集合
  3. 每个特征映射与  对应的特征映射  做区域相似性计算,得到多个Mask矩阵(相似性计算通过向量点乘实现);
  4. 将多个Mask矩阵融合为一个Mask;

图 3 是经过区域相似性计算得出的一个Mask。融合后的Mask会参与到OEL的损失函数中,驱动骨干网学习输出和Mask矩阵一致的目标输出。使用多个Mask融合的原因是考虑到了图像存在的视角和形变因素,也许鲁棒性会更好

图 3. 区域相似性计算

四、SCL

Spatial Context Learning,空间上下文学习,旨在建模目标区域中不同部分的位置关系,依赖OEL模块学习到的特征映射。具体方法是对目标区域的非中心部分与目标区域的中心部分(极坐标原点)的极坐标进行预测。

    极坐标的采用是一大亮点。目标存在不同的形态,采用笛卡尔坐标系建模不同部分之间的位置关系,需要对绝对位置进行建模,而绝对位置对参考坐标系很敏感,建模会比较困难。极坐标不存在该问题,它采用相对坐标,所有位置都是相对极点进行计算,建模相对容易。

    SCL的损失是距离损失 + 极角损失。距离损采用MSE,极角损失是一个方差的形式,目的是增强模型的预测稳定性,能hold住不同形态下的坐标预测,鲁棒性更好

五、Backbone + OEL + SCL

    Backbone,OEL和SCL三个模块互相配合,各司其职。OEL定位目标,SCL学习目标不同部分的位置关系,Backbone结合OEL和SCL的反馈,对特征做进一步加工,做最终的分类预测。

六、LIO与DCL的比较

根据论文原文解释,LIO和DCL都适用于细粒度图像分类任务,但是成文思路不同。

  • DCL目的是学习辨识对象的局部区域;
  • LIO目的是建模或理解对象的整体结构;

所以,LIO在柔性物体的细粒度分类方面要比DCL好一些(比如区分不同鸟类),但是在刚性物体分类方面DCL要更好一些,原文的实验中,汽车和飞行器的实验结果是DCL由于LIO,而CUB(鸟类数据集)上的结果LIO要明显由于DCL。

细粒度识别——LIO方法概述相关推荐

  1. # 经典目标检测识别方法概述RCNN/FAST/FASTER RCNN/MASK RCNN/SSD/DSSD/YOLO V1/YOLO V2等

    经典目标检测识别方法概述@陈子逸 经典目标检测识别方法概述 由于水硕期间自学了一些目标探测的方法,这里做一个概述,肯定有不完美的地方,还请指正一起进步. 综述 1.分别简单描述一下RCNN系列: 在我 ...

  2. xmlstreamexception 参数实体未进行声明_命名实体识别研究进展概述

    Future丨Intelligence丨Nutrition丨Energy 让阅读成为习惯,让灵魂拥有温度 点击关注PKUFineLab  一起进步 命名实体识别研究进展概述 命名实体识别任务旨在从自然 ...

  3. Java05-day05【方法(概述、调用过程图解)、带参方法、带返回值方法、重载、方法参数传递(基本类型、引用类型)】

    java零基础入门到精通(2019版)[黑马程序员] 视频+资料:[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] &qu ...

  4. 弱监督学习下商品识别:CVPR 2018细粒度识别挑战赛获胜方案简介

    弱监督学习下商品识别:CVPR 2018细粒度识别挑战赛获胜方案简介 细粒度视觉分类(FGCV,Fine-Grained Visual Categorization)即识别细分类别的任务,一般它需要同 ...

  5. DBA_Oracle性能优化的基本方法概述(方法论)

    2014-12-18 Created By BaoXinjian 一.摘要 Oracle 性能优化的基本方法概述 1)设立合理的性能优化目标. 2)测量并记录当前性能. 3)确定当前Oracle性能瓶 ...

  6. 【基于深度学习的细粒度分类笔记2】弱监督学习下商品识别:CVPR 2018细粒度识别挑战赛获胜方案简介

    细粒度视觉分类(FGCV,Fine-Grained Visual Categorization)即识别细分类别的任务,一般它需要同时使用全局图像信息与局部特征信息精确识别图像子类别.细粒度分类是计算机 ...

  7. 基于机器学习的车辆检测算法研究方法概述

    基于机器学习的车辆检测算法研究方法概述 1 背景.意义.分类和应用 1.1 问题的背景与意义 1.2 目标检测分类 1.3 应用 2 基本算法 2.1 帧间差分法 2.2 背景减除法 2.2.1 中值 ...

  8. 细粒度识别 | 百度细粒度识别方案

    近日,百度发布了用于花卉识别的移动端应用,这种基于全卷积注意力网络的细粒度识别方法在计算和准确度上都有非常强大的优势.在百度主任研发架构师陈凯和资深研发工程师胡翔宇的解释下,本文首先将介绍什么是细粒度 ...

  9. 高光谱解混:基于几何,统计,稀疏回归的方法概述

    高光谱解混方法概述 问题引入 问题何来? 基础知识 核心任务 基础方法 线性与非线性模型 线性混合模型 非线性混合模型 非线性方法的概述 高光谱解混流程 大气校正(Atmospheric Correc ...

最新文章

  1. BZOJ 2434 阿狸的打字机
  2. DebugHook 与 ReportMemoryLeaksOnShutdown
  3. Canvas API初步学习
  4. 是时候挥别 SQL Server 2008 了
  5. HDU.6761.Minimum Index(Lyndon分解)
  6. java学习(140):1.7后新特性
  7. Python抓取豆瓣电影详情并提取信息
  8. 业务爆发式增长,音视频服务如何做好质量监控与优化?
  9. SVN:show log问题
  10. ros中订阅/map话题,获取地图尺寸,获取机器人原点origin,获取地图分辨率resolution (c++,python,waitForMessage,wait_for_message)
  11. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(6)-Unity 2.x依赖注入by运行时注入[附源码]...
  12. 红米开发版刷机教程_红米手机稳定版刷机教程(Recovery卡刷)的具体操作方法
  13. 什么是竞品分析?竞品分析全流程解析
  14. 旧电脑再利用:完整版 Chrome OS 安装指南
  15. HTML与CSS实现淘宝静态页面(参考版)
  16. python的pth打开方式_pytorch 加载(.pth)格式的模型实例
  17. 穿越鸿蒙电视剧,2020“必追”的5部穿越剧,每一部都有高颜值,剧荒的别错过!...
  18. Unity Instantiate函数用于复制对象
  19. n级阶梯,每次走一步或两步,问最多有多少种走法
  20. 前端工程师需要哪些技能?

热门文章

  1. 制成U盘启动后U盘容量变小————解决办法!!!!
  2. 录音转换文字软件哪个好用?推荐这四款软件给你
  3. PIXIJS的用法及和canvas区别
  4. 使用Python + selenium爬取51Tracking订单信息
  5. 2016外省人在上海办护照,港澳台通行证详细指南
  6. Javascript valueOf 方法原理
  7. 图解 赫夫曼编码?(赫夫曼大叔开讲啦!!!)
  8. 微软为什么会让诺基亚生产安卓手机?
  9. YoloV8改进策略:将ConvNextV2与YoloV8激情碰撞,能迸发出什么样的火花呢?
  10. 一些可以显著提高大型 Java 项目启动速度的尝试