(Review cs231n) Object Detection
目标:我们有几个类别,然后我们要在这张图中找到这些类的所有实例
解决思路:是否可以按照回归的思路进行求解呢?
但是受限制于确定的种类输出问题。
方法:分类和回归是解决问题的两个套路,我们现在对于目标的探测问题不把它看作是回归问题,
而是看作是分类问题。所以我们将一张图片的一部分作为分类器的输入,进行判断;再重复运行判断。
问题:如何确定窗口的大小?
答案就是把所以尺寸都是一次,但是这是低效的方法,太多不确定。同时需要加入两个东西:背景的类和多标签的分类(你可以加入很多正值,不计算softmax损失,现在有了独立归回的损失,多个类在一个点上,但是还是用了损失函数。)
问题:太多的点需要我们去计算?
不全部进行,只查看一些可能的区域,在很少的区域运行分类器。
历史的上的目标探测方法:
1.HOG(histogram of oriented gradient) 方向梯度直方图
基本思想计算在特征的基础上进行线性分类,这就是分类器,线性分类器的速度非常快;在不同的比例下, 计算整个图像的方向梯度直方图,针对不同的尺度,不同位置区域进行线性分类。
2.Deformable parts model(DPM)
还是基于HOG的线性分类,但是更为强大的线性分类器,允许形变,很快的运算速度。
3. Region Proposals
输入一张图像,输出所以可能存在目标对象的区域,不关心对象的具体类别,在图像中寻找一些整体相似的结构,有很多小框的图像区域产生框,在进行选择。
Region Proposals ----selective search
基于像素出发,像素颜色和纹理的区域进行合并,形成相连接的区域,不断合并,最后图像包含很多图像块的区域,减少了搜索的区域。
4. RCNN 将检测方法和分类结合在一起
基本思想就是基于区域的CNN方法,输入一张图像,应用选择性搜索的检测方法,得到大概2K个不同大小和不同位置的框,把每一个框内的图像区域裁剪出来,调整到固定的大小,然后通过CNN网络进行分类。
这个CNN网络最后分别连接回归端和一个应用的SVM的分类端,回归端可以对目标框进行微调。
RCNN的实现步骤:
对这个网络进行微调从而可以用于检测,因为这个分类模型是针对Imagenet的1000类进行训练,而你的检测数据集中类别数目不一样而且图像的统计特性也不一样,在网络最后加上新的几层来处理你的类别,
帮你处理图像数据中不同的统计特性,这里进行的分类过程,但不是针对整张图像的处理,只是对检测数据集图像中正的或负的区域进行分类,初始化网络层。
要把提取的特征存到磁盘中,所以对每一张图像运行选择性搜索算法,你要提取出的这些区域,并输入到CNN网络中,把这些区域的特征存到磁盘中。
接下来训练SVM,使它基于这些特征进行正确分类,训练二分类的SVM,能够区分这些图像区域中是否包含对象,希望图像中有多个正的区域,判断出多个类别,对不用的类分别训练一个二分类的SVM。
对区域框进行回归,有时候你的region proposal 并不完美,从存储的特征回推到region proposal 的更正,这个更正是一个有趣的格式化表示,实际上就是回推出一个更正因子(correction factor ),告诉我们需要向右移动,所以做一个线性回归。
用于检测的数据集
评估指标:
平均准确率(mean average precision,MAP)0-100的数字。
Fast RCNN
训练:整体训练
关键技术:ROI池化 (region of interest pooling)
当输入的图片,很大可能是一个高分辨率的,而且我们有目标框,由selective research 得到目标框,把这个高分辨图像输入到卷积池化,全连接层希望得到低分辨率的conv特征值,然而整个图片的特征是高分辨率的,解决方法,as follows:
对于给出的目标框,我们把它投射到那个conv feature 空间,并把conv feature volume切成小块,切成下游层需要的h*w网络。
对于每一小格,我们进行max-pooling,共享卷积特征值,最后提取出那个区域输出,
同时,只使用了max-pooling.我们知道如何BP,可以对这些region of interest pooling 层进行BP算法。
Fast Rcnn的优势
Rcnn 很慢,我们要分开运行每一个目标框,每一个候选区都要独立通过卷积层;
对于fast rcnn 我们对所有的候选区同时进行卷积。
问题又出现了! 对于推荐区域的选取,如果你将推荐区域的选取所花费的时间考量进来,之前的优势就非常的小。
在fast RCNN中,我们使用整张输入图片进行卷积,取代各个推荐区域进行卷积,在faster-RCNN中使用region proposal network 区域推荐网络来替代额外的区域推荐算法,获得卷积层最末端的特征图谱,从中获得推荐区域,其中比较关键的是区域推荐网络(region proposal network)
region proposal network
我们把卷积网络最后一层的特征图谱当作输入,将区域推荐网络添加到卷积神经网络上,对特征图谱进行滑窗
操作,这里的滑窗就是卷积,在区域推荐网络中,我们有两种相似的顶层结构,一边进行分类,一边判断图片中
是否包含检测目标,并进行回归,对位置信息做回归,滑窗和特征图谱之间的位置关联,表示我们查看的图片
哪一部分,回归得出的结果给出特征图谱中具体位置。
并不是直接对特征图谱中的位置进行回归,这里有几个形状固定的框,根据特征图谱点到初始图片点的关联,覆盖到
原始的图片上,在fast-RCNN中,我们将这些框从原始图片映射到特征图谱。现在,在faster-RCNN中我们将这些框从特征
图谱映射到原始图片,这里有n个卷积框,对特征图片进行卷积,对于每个框,每对一个区域进行卷积,它会产生一个评分
来判断这个框内是否有检测目标,还会输出四个回归坐标点,得到正确的框。
在faster-RCNN中,训练区域推荐网络,获得预测未知类的检测器。
Faster-RCNN的训练十分繁杂,包含四种损失,3*3卷积核,区域评分和坐标回归;是由3*3卷积核和一对1*1卷积核
对特征图谱做卷积得到,不同样式的卷积框,有着不同的位置和尺寸。
特征图谱上的点和原始图片上的点有着对应关系,并不是将所有点都一一对应起来,我们选取图片的一些区域进行对应,我们需要对这些区域进行选取,做外部区域推荐的时候,你所做的是选取区域,然后进行卷积,你期待卷积能够对图像进行处理,卷积所包含的信息对区域选取十分有用,为了减少计算量。
在最后,对于划分,你使用的同样的卷积特征图谱,无论是区域推荐,还是接下来的分类和回归。
(Review cs231n) Object Detection的更多相关文章
- Paper Reading: Relation Networks for Object Detection
Relation Networks for Object Detection笔记 写在前面:关于这篇论文的背景知识,请参考我前面的两篇随笔(<关于目标检测>和<关于注意力机制> ...
- 论文阅读笔记五十五:DenseBox: Unifying Landmark Localization with End to End Object Detection(CVPR2015)
论文原址:https://arxiv.org/abs/1509.04874 github:https://github.com/CaptainEven/DenseBox 摘要 本文先提出了一个问题:如 ...
- [Localization] YOLO: Real-Time Object Detection
Ref: https://pjreddie.com/darknet/yolo/ 关注点在于,为何变得更快? 论文笔记:You Only Look Once: Unified, Real-Time Ob ...
- Viola–Jones object detection framework--Rapid Object Detection using a Boosted Cascade of Simple Features中文翻译 及 matlab实现(见文末链接)
ACCEPTED CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION 2001 Rapid Object Detection using a B ...
- tensorfolw配置过程中遇到的一些问题及其解决过程的记录(配置SqueezeDet: Unified, Small, Low Power Fully Convolutional Neural Networks for Real-Time Object Detection for Autonomous Driving)
今天看到一篇关于检测的论文<SqueezeDet: Unified, Small, Low Power Fully Convolutional Neural Networks for Real- ...
- 论文阅读(Chenyi Chen——【ACCV2016】R-CNN for Small Object Detection)
Chenyi Chen--[ACCV2016]R-CNN for Small Object Detection 目录 作者和相关链接 方法概括 创新点和贡献 方法细节 实验结果 总结与收获点 参考文献 ...
- deep learning on object detection
回归工作一周,忙的头晕,看了两三篇文章,主要在写各种文档和走各种办事流程了-- 这次来写写object detection最近看的三篇文章吧.都不是最近的文章,但是是今年的文章,我也想借此让自己赶快熟 ...
- 论文阅读之 DECOLOR: Moving Object Detection by Detecting Contiguous Outliers in the Low-Rank Representation
DECOLOR: Moving Object Detection by Detecting Contiguous Outliers in the Low-Rank Representation Xia ...
- 目标检测--Rich feature hierarchies for accurate object detection and semantic segmentation(CVPR 2014)
Rich feature hierarchies for accurate object detection and semantic segmentation 作者: Ross Girshick J ...
随机推荐
- __x__(37)0909第五天__背景图按钮
link,hover,active三种按键状态,存放三张图片 缺点: 资源只有在被使用时,才会被加载. 页面第一次加载时,会出现短暂的延迟闪烁,造成一次不佳的用户体验. 图片整合技术 CSS-Spri ...
- Javascript Date类型
Date 类型使用自 UTC 1970 年 1 月 1日 午夜 开始经过的毫秒数来保存日期. 创建日期对象 var now = new Date();//获取当前日期 Date.parse ...
- 在线协作开发工具apizza使用方法(https://apizza.net/projects)
1. 2. 3. 4. 5. 谷歌浏览器点击选择“更多工具”->“扩展程序” 6. 将刚才解压好的文件夹拖到这个位置即可
- 【C++ 实验六 继承与派生】
实验内容 1. 某计算机硬件系统,为了实现特定的功能,在某个子模块设计了 ABC 三款芯片用于 数字计算.各个芯片的计算功能如下: A 芯片:计算两位整数的加法(m+n).计算两位整数的减法(m-n) ...
- 使用Xilinx UART-LITE IP实现串口--逻辑代码实现
`timescale 1ns / 1ps /////////////////////////////////////////////////////////////////////////////// ...
- Gym 101606L - Lounge Lizards - [计算几何+LIS]
题目链接:https://codeforces.com/gym/101606/problem/L 题解: 在同一条线上的所有蜥蜴,他们的斜率都是相通的,换句话说可以直接通过斜率将蜥蜴分组. 每一组即代 ...
- pta第一次总结
1).实验代码 include<stdio.h> int main() { int n,i,j,a1,a2,b1,b2,sum,x,k; char c; while(~scanf(&quo ...
- 如何关闭git pull产生的merge 信息
编辑 ~/.gitconfig [core] mergeoptions = --no-edit 或者终端之行 git config --global core.mergeoptions --no-ed ...
- 使用sysbench压测磁盘io
Ⅰ.sysbench安装 cd /usr/local/src yum -y install make automake libtool pkgconfig libaio-devel git clone ...
- bbs论坛流程
1.发表帖子时候操作 数据库: board+板块号 :readertopicsX中插入数据 boardtmp(临时表插入审核数据) countandmax(记录每个板块最大主贴ID) 一. Redis ...