Region-Based Convolutional Networks for Accurate Object Detection and Segmentation

概括

这是一篇2016年的目标检测的文章,也是一篇比较经典的目标检测的文章。作者介绍到,现在表现最好的方法非常的复杂,而本文的方法,简单又容易理解,并且不需要大量的训练集。

文章的大致脉络如图。

产生region proposal

文章提到了滑窗的方法,由于滑窗的方法缺点非常明显,就是每次只能检测一个aspect ratio,所以确定object的框的大小很难确定,而且很笨重。而文章中采用的是selective search算法得到region proposal,这个算法是作者对比了多种方法后采取的方法。在实验的时候,作者描述可以用selective search得到大概2000个region proposal。

得到CNN features

这里作者是采用了训练好的网络来提取特征。首先在大训练集上使用使用CNN训练一个用于识别的网络,然后拿这个网络进行微调。具体的做法是,将softmax之前的fc层的输出变为要识别的类别数+1,1是背景,然后再在具体的训练集上进行小数据训练。最终要取的feature是每个region都丢进CNN,然后取softmax之前的fc层是输出值作为feature,这里要注意,输入网络的region的长宽都必须warp到CNN需要的长宽才能进行输入。

此外,作者还提到了 Visualizing Learned Features ,作者直接将某一层的特征视作分类,直接执行activation,得到activation之后的值按照从大到小排序,选取最大的几个,进行非最大抑制,显示得分最高的几个。作者称为“speak for itself”,这种方法可以直接可视化CNN中经过学习之后的内容。如作者可视化了TorontoNet的pool5 层,pool5的feature map是6✖6✖256=9216维的,而每个pool5层又代表原输入图像227✖227pixel的195✖195 pixel的部分,因此可以用来检查某一层是否学的正确。

下图是CNN对COV2007训练集进行微调后训练的pool5的激活后排名前16 的图像。这些层的选择是为了展示网络学习代表性的样本。

丢进SVM训练

从上面我们得到了CNN提取的feature,我们要做的是把这些feature丢进SVM进行训练,这里有多少个类就有多少个分类器负责某一类别的分类。

Bounding-Box Regression

上面训练完了,我们就知道那个region里的东西属于哪个类别,但是我们还需要用Bounding Box把这个类别的object给框起来,所以就需要Bounding-Box Regression.文章采用的是简单的线性回归模型来预测Bounding Box.抱歉公式不会打。只能粘贴论文原文。简单来说就是给定x,y,w,h预测对应的ground truth的x,y,w,h。然后就得到了bounding box。


链接:论文原文

[论文理解]Region-Based Convolutional Networks for Accurate Object Detection and Segmentation的更多相关文章

  1. [论文理解] Acquisition of Localization Confidence for Accurate Object Detection

    Acquisition of Localization Confidence for Accurate Object Detection Intro 目标检测领域的问题有很多,本文的作者捕捉到了这样一 ...

  2. 论文笔记:Rich feature hierarchies for accurate object detection and semantic segmentation

    在上计算机视觉这门课的时候,老师曾经留过一个作业:识别一张 A4 纸上的手写数字.按照传统的做法,这种手写体或者验证码识别的项目,都是按照定位+分割+识别的套路.但凡上网搜一下,就能找到一堆识别的教程 ...

  3. [论文理解] Learning Efficient Convolutional Networks through Network Slimming

    Learning Efficient Convolutional Networks through Network Slimming 简介 这是我看的第一篇模型压缩方面的论文,应该也算比较出名的一篇吧 ...

  4. 目标检测论文解读1——Rich feature hierarchies for accurate object detection and semantic segmentation

    背景 在2012 Imagenet LSVRC比赛中,Alexnet以15.3%的top-5 错误率轻松拔得头筹(第二名top-5错误率为26.2%).由此,ConvNet的潜力受到广泛认可,一炮而红 ...

  5. [论文理解] An Analysis of Scale Invariance in Object Detection – SNIP

    An Analysis of Scale Invariance in Object Detection – SNIP 简介 小目标问题一直是目标检测领域一个比较难解决的问题,因为小目标提供的信息比较少 ...

  6. 深度学习论文翻译解析(八):Rich feature hierarchies for accurate object detection and semantic segmentation

    论文标题:Rich feature hierarchies for accurate object detection and semantic segmentation 标题翻译:丰富的特征层次结构 ...

  7. VGGNet论文翻译-Very Deep Convolutional Networks for Large-Scale Image Recognition

    Very Deep Convolutional Networks for Large-Scale Image Recognition Karen Simonyan[‡] & Andrew Zi ...

  8. 目标检测论文阅读:Deformable Convolutional Networks

    https://blog.csdn.net/qq_21949357/article/details/80538255 这篇论文其实读起来还是比较难懂的,主要是细节部分很需要推敲,尤其是deformab ...

  9. 图像处理论文详解 | Deformable Convolutional Networks | CVPR | 2017

    文章转自同一作者的微信公众号:[机器学习炼丹术] 论文名称:"Deformable Convolutional Networks" 论文链接:https://arxiv.org/a ...

随机推荐

  1. 如何在 Swoole 中优雅的实现 MySQL 连接池

    如何在 Swoole 中优雅的实现 MySQL 连接池 一.为什么需要连接池 ? 数据库连接池指的是程序和数据库之间保持一定数量的连接不断开, 并且各个请求的连接可以相互复用, 减少重复连接数据库带来 ...

  2. java发送udp广播包

    2013-06-07 22:44 1272人阅读 评论(2) 收藏 举报 import java.io.IOException; import java.net.DatagramPacket; imp ...

  3. SetCapture到底是什么?

    函数功能:该函数在属于当前线程的指定窗口里设置鼠标捕获.一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内.同一时刻只能有一个窗口捕获鼠标.如果鼠标光标在另一个线程创建的窗口上, ...

  4. DSOFramer控件使用注意事项

    1.引用dll==>AxInterop.DSOFramer.dll ==>Interop.DSOFramer.dll ==>WindowsFormsIntegration ==> ...

  5. SP2-0734: 未知的命令开头 “IMP ” - 忽略了剩余的行

    描述 在cmd命令窗口中使用imp命令将dmp文件导入到oracle中时,出现了错误: SP2-0734: 未知的命令开头 “IMP ” - 忽略了剩余的行,如图 原因 imp命令是oracle提供的 ...

  6. hiho week 136(二分+优先队列)

    题目链接:http://hihocoder.com/contest/hiho136/problem/1 题意:中文题诶- 思路:直接对缓存区长度二分就好了,注意计算当前长度的"延迟惩罚值&q ...

  7. 以太坊开发教程(一) truffle框架简介/安装/使用

    通常一个DAPP的开发包括两部分:智能合约的开发和提供合约进行调用的前端页面. truffle提供了对这两部分内容比较简单的开发方式,特别是在开发/测试阶段.给开发人员提供快捷的打包/部署,已经本地服 ...

  8. SpringMVC 的数据绑定

    1.数据自动绑定 SpringMVC 框架支持不需要任何数据绑定的注解直接将表单参数绑定到我们的执行方法的参数上. 表单参数:包括 POST 以及 GET 发送过来的参数 就是以内容类型为:encty ...

  9. angularJs 指令调用父controller某个方法

    1.父级controller:例如有个 init() 方法; 父级与子级的通信数据是$scope.controlFlag={}; 那么可以在父级controller里这样写:$scope.contro ...

  10. c#之quartz任务调度的使用

    这里讲下,quartz这种任务调度程序的简单使用 这是使用的quartz的3.x 版本 2.x 版本与此稍有区别,可以在网上查看2.x版本教程 使用语言为c# quartz的使用分为几个步骤 创建一个 ...