------R-CNN、Fast-Rcnn、Fast-Rcnn是目标检测的一系列顶会论文,自己也看了好久,才慢慢有所感悟,这里做个记载。看论文原版还是最好的选择,但由于论文都是英文,且有大量引用前人已有的思想,对于小白来说,直接看论文并不友善,可以选择网上已有的论文解读,大致了解思想,然后有针对性的阅读论文原版,可能会事半功倍。
给出RGB大神博客,基本论文还有源码、slides都可以找到:
【RGB大神博客】
推荐个讲解很好的网站:
Gluon.ai
------object detection是在给定的图片中精确找到物体所在位置,并标注出物体的类别。object detection要解决的问题是物体在哪里,是什么这整个流程的问题。然而,这个问题可不是那么容易解决的,物体的尺寸变化范围很大,摆放物体的角度,姿态不定,而且可以出现在图片的任何地方,更何况物体还可以是多个类别。已有的 CNN 和好地解决了图片中物体是什么的问题,即分类,接下来几篇论文可以看到物体检测大致的发展流程。
R-CNN
基本思想是: 在图片中框出大量区域,每个区域进行物体分类,进而得到目标检测的结果。
- 图片中选出大量候选框(选择性搜索,selective search)
- 对每一个候选框,进行大小修正,以适合后面卷积网络(保证卷积网络输出大小为固定值)
- 对每一个区域,进行特征提取(CNN),随后使用SVM进行分类
- 训练一个线性回归模型,使用回归模型精细修正候选框的位置。该回归模型使用Loss函数为 bounding box IOU。
selective search
R-CNN 使用了选择性搜索Selective Search(SS)在图片中获得大约2k个候选框。
其基本思路如下所述:
使用过分割方法将图像分成很多小区域。在此之后,观察现有的区域,之后以最高概率合并两个区域。重复此步骤,直到所有图像合并为一个区域位置。注意,在此处的合并规则与RCNN是相同的,优先合并以下四种区域: 颜色(颜色直方图)相近的; 纹理(梯度直方图)相近的; 合并后总面积小的。最后,所有已经存在的区域都被输出,并生成候选区域。
论文原文对网络结构的描述
------ Our object detection system consists of three modules. The first generates category-independent region proposals. These proposals define the set of candidate detections available to our detector. The second module is a large convolutional neural network that extracts a fixed-length feature vector from each region. The third module is a set of class specific linear SVMs.
------Region proposals. While R-CNN is agnostic to the particular region proposal method, we use selective search to enable a controlled comparison with prior detection work (e.g., [34, 36]).