R-CNN总结

不总结就没有积累

R-CNN的全称是 Regions with CNN features。它的主要基础是经典的AlexNet,使用AlexNet来提取每个region特征,而不再是传统的SIFT、SURF的特征。同时,还利用了AlexNet本来的功能:分类,这时所得的分类结果相当于预分类。最后,由于每个Region是有边界的,使用SVM对其进行分类得到一个score,定位每个物体的bounding box。

预处理:

先看一看AlexNet的网络结构

可以看到,它的输入图像是一个224*224*3的3通道的图像,包含有五层的卷积层,两层的全连接层,最后输出是softmax层。

R-CNN开始对图片进行提取region,称为Region proposal,并且使用的是selective search。对每张region图片warp,可以认为是调整图片的大小,但论文上提到的图片的大小是227*227,与AlexNet有一点区别。在图片warp之前,会先扩张bounding box的大小为p=16个像素。我猜这是为了消除图像的边缘效应。

训练:

这里会先做pre-training。Pre-training的好处是可以加快训练的速度,参数可以直接从其他AlexNet迁移过来,也可以重新训练,AlexNet的类别数是1000的。从图中的结构看出,最后输出的特征向量有4096维。

AlexNet的参数训练完之后,就更改它的类别数(论文使用21维,包括20维的类别,和一维的背景)。这时使用有监督训练微调参数(fine tuning),这个fine tuning我认为是由于初始的学习率较小吧,是0.001。有监督训练会涉及到类别的问题(因为这里网络最后的结果还是分类),于是,当region proposal和人工标注的ground truth 的IOU(即交集/并集)大于等于0.5时,把相应的region标记为正的,即有类别的,否则标记为负样例即background。训练的方法使用随机梯度下降的方式,与AlexNet类似,可以参考文献《ImageNet Classification with Deep Convolutional Neural Networks》。

训练的一个batch的大小为128,其中包括38个正样例,和90个负样例。(batch代表批,训练一批又叫1 iteration,所有的批训练了一次成为epoch)。

得到region即bounding box的类别之后,使用SVM训练一个二分类的分类器。算法为每一个类别都训练一个SVM分类器,注意,SVM训练的数据是经过R-CNN提取特征的4096维特征向量。此处SVM标记为负样例的阈值为IOU小于0.3,而正样例直接取ground truth box的region。训练的过程如下图:

测试:

测试的过程相对简单,对每一张图片进行region proposal之后,一般是2000个region proposal,使用R-CNN提取每个region proposal的4096维特征向量。使用SVM分类器进行分类,对得到的每个bounding box(region proposal本身是有边界的)都有一个score,在排序前先把那些IOU低于某个阈值的bounding box去掉。然后再使用非极大值抑制的方法选出最好的bounding box,从而实现定位。

论文中还做了一个对比实验,就是如果只提取特征用于分类,对于最后一个pooling层和两个全连接层fc6、fc7,当没有fine-tuning时,发现三者的分类精度其实差不多,但是如果有fine-tuning时,加入全连接层所提取的特征所得的精度会高很多。

减少定位错误:

这里定位错误使用了一种方法叫做bounding box regression,而且使用的特征就是pooling层提取的特征向量(这里是为什么呢?)。

关于bounding box regression的内容来自

http://blog.csdn.net/u011534057/article/details/51235964,这篇文章里说的很好。

转载于:https://www.cnblogs.com/jie-dcai/p/5695154.html

【CV论文阅读】:Rich feature hierarchies for accurate object detection and semantic segmentation...相关推荐

  1. 论文解读 | Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation

    论文地址:Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation GitHub地址: http ...

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

    最近在看一些目标检测的论文,本文是经典的R-CNN(Regions with CNN features),随之产生的一系列目标检测算法:RCNN,Fast RCNN, Faster RCNN代表当下目 ...

  3. 目标检测经典论文——R-CNN论文翻译:Rich feature hierarchies for accurate object detection and semantic segmentation

    Rich feature hierarchies for accurate object detection and semantic segmentation--Tech report (v5) 用 ...

  4. 【论文精读】Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation(R-CNN)

    论文Title:Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation.发表于2014年. 本 ...

  5. 目标检测--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 ...

  6. 【RCNN】《Rich feature hierarchies for accurate object detection and semantic segmentation 》

    2014 CVPR   之前刚开始接触目标检测算法的时候,老是分不清deep learning中,物体检测和图片分类算法上的区别,弄得我头好晕,终于在这篇paper上,看到了解释.物体检测和图片分类的 ...

  7. RCNN详细介绍 Rich feature hierarchies for accurate object detection and semantic segmentation

    Rich feature hierarchies for accurate object detection and semantic segmentation Publisher: CVPR 201 ...

  8. 论文精读:R-CNN:Rich feature hierarchies for accurate object detection and semantic segmentation...

    1.论文核心 我们提出了一种简单且可扩展的检测算法,相对于之前对VOC2012的最佳结果,它将平均平均精度(mAP)提高了30%以上--实现了53.3%的mAP.我们的方法结合了两个关键的见解:(1) ...

  9. Rich feature hierarchies for accurate object detection and semantic segmentation

    Abstract 在过去几年中,在标准PASCAL VOC数据集上测量的目标检测性能保持稳定.性能最好的方法是复杂的集成系统,通常将多个低级图像特征与高级上下文相结合.在本文中,我们提出了一种简单且可 ...

  10. 【R-CNN】Rich feature hierarchies for accurate object detection and semantic segmentation (2014) 全文翻译

    作者 Ross Girshick, Jeff Donahue, Trevor Darrell, Jitendra Malik (UC Berkeley, {rbg,jdonahue,trevor,ma ...

最新文章

  1. AI 行业寒冬犹在:融资规模不足巅峰时期一半,上市潮将伴随倒闭潮
  2. python集合的并集、交集_Python 集合set()添加删除、交集、并集、集合操作详解
  3. 转载 - 背景透明,文字不透明【学习】
  4. XCTF-Reverse:game(涉及异或脚本编写)
  5. #includeunistd.h存在linux中,含有系统服务的函数
  6. 2016/11/07 线程的创建和启动
  7. Spring Boot基础学习笔记07:Spring Boot整合JPA
  8. Android的Animator动画(平移,渐隐,旋转,缩放)
  9. python中for循环格式_如何将python中for循环的输出写入csv格式的文件?
  10. 从代码书写理解指针,很重要
  11. 14.6.4 Configuring the Memory Allocator for InnoDB 配置InnoDB 内存分配器
  12. char强制类型转换为int_常量、变量、基本数据类型转换、和运算符
  13. ubuntu升级显卡驱动
  14. 正交幅度调制(QAM)信号的产生与解调介绍及matlab实现
  15. 解决EXSi6.0没有WEB Client的问题
  16. ftp服务器的端口20和21的具体作用,ftp端口号20和21的区别
  17. 优化移动网站的9大窍门(转)
  18. 《excel应用大全》(excel home 编著)--学习摘抄笔记2
  19. mui ajax 懒加载,MUI框架运用中遇见问题总结
  20. 【idea】IntelliJ IDEA如何快速的定位数据库某张表在哪里调用---超详情!!!

热门文章

  1. 【Qt】数据库实战(二)
  2. 【Tiny4412】Tiny4412编译和烧写uboot
  3. nacos oaut服务地址_用户认证的例子:Spring Security oAuth2 + Spring Cloud Gateway + Nacos + Dubbo...
  4. 记sentinel里防止多并发下读取脏数据的操作
  5. the vmware authorization service is not running
  6. 常见排序算法(C实现)
  7. [转] ROS-I simple_message 源码分析:MessageManager
  8. 十大排序算法之插入排序
  9. [Jarvis OJ - PWN]——[XMAN]level3
  10. AbstractListView源码分析9