北京大学陈杰老师论文阅读报告:SRN 骨骼检测

SRN 阅读报告

参考论文:Side-output Residual Network for Object Symmetry Detection in the Wild   ----CVPR 2017

code地址:https://github.com/KevinKecc/SRN

1、论文介绍

本文主要针对称性目标做轮廓(骨骼)检测一种深度学习方法(SRN),类似于实例分 割的方式得到物体的基本区域,主要为了解决复杂背景下的野外目标对称边缘检测的问题。 提出一个新的数据集 Sym-PASCAL,它比实际场景中不同光照和视角、多个目标、存在部分 遮挡、以及背景复杂等环境更充满挑战;针对对称性检测,提出一种侧边输出(Side-output) 残差网络结构 SRN,它的主体来自 HED 网络,但是不同之处在 Side-output 堆叠多个 RU,RU 最小化对称物体真实标签和 RU 网络输出结果之间的误差,这种方法优化不同尺度的 RU 而 不是仅仅只结合多尺度特征。文中定义的 RU 不仅提高检测性能,而且解决了 HED 收敛较慢 的问题。通过从深到浅的堆叠多个 RU,它的感受可以自适应的匹配不同尺度的对称物体。

2、创新点

(1)提出一个野外对称物体数据集,包括多种不同场景、遮挡、以及数据均衡等野外场景 的对称物体检测的数据集。

(2)提出一种侧边输出残差网络结构,通过堆叠多个由深到浅的 RU,可以有效地拟合对称 物体真实标签和 RU 网络的输出,从而增强模型处理复杂背景下对称物体轮廓检测的能力, 并比之前的基于传统和深度的方法性能表现更好。

3、实现方法

(1)Sym-PASCAL

针对现有数据集背景过于简单、对象单一、遮挡较少的缺少对称性的物体的场景,本文 提出一种新的对称目标数据集,均衡各个类别的数据,更接近野外场景。它利用语义分割的 GT 和骨架生成算法生成物体标注标签;包括 20 个类别的对称和非对称物体,并且有很多不 连续的非对称对象。针对明显对称和比较细长物体采用骨架提取算法提取对象对称性标签, 对于非对称物体则基于语义分割的 mask 进行标注,还有一些特殊物体被遮挡物体则手动填 充语义缺失部分的标签。

(2)侧端输出残差网络

SRN 设计一种输出残差单元(RU)和一种由深到浅的学习策略并可以实现端到端的进 行训练。 RU 提供真实标签和不同输出尺度之间的短接,通过 GT 监督 RU 的输入 r 和输出 r+ F(y),这样能更好的拟合复杂的输出。通过堆叠 RU 提出一种新的端侧输出网络,它利 用残差结构和尺度自适应的优点。本文提出两种结构 Deep-to-shallow 和 Shallow-to-deep, 由深到浅结构如图 4a:假设 si是第 i 个侧面输出,并且 ri + 1、ri 是输入和输出第 i 个 RU,对 于第一个堆叠的 RU2,输入设置为最深的 SOP3 即 r3 = s3,使用 SOP2 学习 RUOP3 和真实 GT 之间的残差并将 RUOP3 更新为 RUOP2,RU 堆叠直到最浅的侧边输出,换句话说,其输入被 设置为前一个的输出,Sigmoid 用作最后堆叠的输出的分类器。RU 块结构则将 ri + 1 上采样 乘 wri 拼接 Si并乘上 wic得到输出 Ri ,由浅到深 RU 块则侧边输出 Si进行上采样并拼接输出; 实验证明由深到浅侧输出有利于预测 GT 的初始化,所以本文采用的 Deep-to-shallow 结构 进行轮廓检测。损失函数主要优化最小化改进的交叉熵损失,通过多个堆叠 RU 输出最终的 映射图,这使得 SRN 带有平滑建模多尺度对称图像并跨越深层提取特征的能力。

(3)实验结果

SRN 采用 Caffe 训练并参照 HED 的参数设置,在测试阶段采用 NMS 应用于输出映射以 获得对象对称性检测结果。评估采用准确率-召回率度量,并利用 F 评估对称性检测的性能。 为了获得精确度-召回率曲线,首先将检测到的对称响应作为二进制映射图,然后与 GT 对称 的 mask 进行匹配。通过更改阈值,获得准确率-召回率曲线,得出最好的 F。SRN 对比了不 同结构并做过各种数据增广,最重要的是不增加 conv1,因为它导致感受野太小,感受野太 小会新增局部噪声。通过对比不同网络结构(一阶二阶检测器)并在自建数据集和公开数据 集上对比,最终结果显示 SRN 方法可以更准确地实现物体对称性检测、并比之前的对称检 测网络性能有 0.1 左右提升,而且 SRN 收敛速度更快。

4、可尝试方向

(1)针对背景复杂问题:是否可尝试在 vgg 之前以预设 anchor 或者 RPN 区域生成的方式取 出待检物体,减少边框之外背景干扰,在不影响整体耗时可采用轻量级的区域生成网络。

(2)针对样本不均衡:除 Sym-PASCAL 之外,是否可尝试加上 Focal Loss 来监督正负样本比 例。除此之外,为增加样本骨架像素的学习,可尝试在网络上结构上新增 SE 模块在 channel 维度上做 attention,让模型可以更加关注信息量最大的 channel,类似于一种加权的操作。 还可在读取骨架像素值时,可选取关键点像素点乘以一个加权因子并训练的时候比其余像素 进行更多次迭代学习。SE 和关键点加权我在人脸关键点检测加过,效果较为理想。

深度学习自学(三十九):SRN骨架检测 Side-output Residual Network for Object Symmetry Detection in the Wild相关推荐

  1. 深度学习(三十九)——深度强化学习(2)概述, Deep Q-learning Network(1)

    概述 上图是深度强化学习的脉络图,参考文献中还有该领域的关键论文列表. 原图地址: http://louiskirsch.com/maps/reinforcement-learning 参考: htt ...

  2. 深度学习(三十九)LSTM、GRU网络入门学习-未完待续

    LSTM入门学习 原文地址:http://blog.csdn.net/hjimce/article/details/51234311 作者:hjimce 一.相关理论 本篇博文主要讲解LSTM.GRU ...

  3. 动手学深度学习(三十九)——门控循环单元GRU

    文章目录 门控循环单元(GRU) 一.门控隐藏状态 1.1 重置门和更新门 1.2候选隐藏状态 1.3 隐藏状态 二.从零实现GRU 2.1 初始化模型参数 2.2 定义模型 2.3 训练与预测 2. ...

  4. 深度学习自学(十九):caffe添加深度可分离卷积

    下面是两种不同的深度可分离卷积的实现方式,自己在训练关键点模型,采用MobileNet 添加深度可分离卷积,发现有两种不同的可分离卷积的实现,名字不相同,但是内部都是深度可分离.DepthwiseCo ...

  5. 系统学习深度学习(三十九)--基于模型的强化学习与Dyna算法框架

    转自:https://www.cnblogs.com/pinard/p/10384424.html 在前面我们讨论了基于价值的强化学习(Value Based RL)和基于策略的强化学习模型(Poli ...

  6. 深度学习(三十九)可视化理解卷积神经网络(2.0)

  7. 深度学习自学(十):人脸检测android端-JNI调试调用底层检测识别库

    一.CmakeLists 1.原始CmakeLists #----------------指定 库文件名字(.so)和c++文件路径(可多个) add_library( # Sets the name ...

  8. javaweb学习总结(三十九)——数据库连接池

    javaweb学习总结(三十九)--数据库连接池 一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10 ...

  9. JavaScript学习(三十九)—对象中内容的操作

    JavaScript学习(三十九)-对象中内容的操作 一.对象中内容的操作:增.删.改.查 (一).增:给对象添加属性或者方法 1)方式1:对象名称.属性名=属性值: 2)方式2:对象名称['属性名' ...

最新文章

  1. deeplearning模型库
  2. python中函数的定义实例_Python基础之函数的定义与使用实例
  3. 微信开发者工具(deepin linux 还是建议使用deppin深度商店安装此软件)
  4. AI(6)---AI开发选择哪种编程语言?
  5. 人到了中年在职场中就应该保持内敛的心态
  6. 华为正式发布鸿蒙OS操作系统,分布式架构首次用于终端
  7. IE8无法取得客户端完整路径的解决办法
  8. a杜比音效编码的两种思路
  9. 单龙芯3A3000-7A1000PMON研究学习-(7)撸起袖子干-make cfg 所执行的操作(d)
  10. 从零开始学习C语言 Day 036
  11. 读书笔记:无人机控制(二)
  12. usb 进入suspend_解决了USB中suspend和resume的一个问题 | 学步园
  13. Rvm 、Gem 实用指南
  14. 教你如何批量新建文件夹并命名?
  15. RF-2 变量的基本使用
  16. 为甚TCP的3次握手不是2次握手(思考实验)
  17. 详解kerberos认证原理
  18. 如何解决AutoRunner的脚本回放报对象不存在问题
  19. 边缘计算与开放源代码的完美结合
  20. prometheus k8s 监控告警

热门文章

  1. Web 2.0下一个版本是什么 3.0就要到来了吗?
  2. 国际开源固件基金会 (OSFF)组织
  3. Godot 2D 和 3D 游戏引擎
  4. C语言编译-嵌入式系统
  5. js 获取浏览器版本
  6. Deep Learning快速学习方法
  7. 程序设计习惯养成计划---二、测试代码
  8. Oracle中job_type,【学习笔记】Oracle DBMS_SCHEDULER详细介绍与使用案例
  9. 会php会javascript,javascript – 只会php和js但不会java,能做手机应用开发吗?
  10. spring连接mysql出现问题_spring+hibernate连接mysql问题啊