更新图片

This commit is contained in:
scutan90 2019-04-11 19:56:15 +08:00
parent c14a279892
commit b27c09436d
17 changed files with 14 additions and 26 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 290 KiB

After

Width:  |  Height:  |  Size: 197 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 106 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 809 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 138 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -71,7 +71,7 @@
R-CNN作为R-CNN系列的第一代算法其实没有过多的使用“深度学习”思想而是将“深度学习”和传统的“计算机视觉”的知识相结合。比如R-CNN pipeline中的第二步和第四步其实就属于传统的“计算机视觉”技术。使用selective search提取region proposals使用SVM实现分类。
![图像来源: r-cnn-ilsvrc2013-workshop.pdf](./img/ch8/8.1.3.png)
![](./img/ch8/8.2.1-1.png)
原论文中R-CNN pipeline只有4个步骤光看上图无法深刻理解R-CNN处理机制下面结合图示补充相应文字
@ -111,7 +111,7 @@ R-CNN在VOC 2007测试集上mAP达到58.5%,打败当时所有的目标检测
将候选区域直接应用于特征图并使用ROI池化将其转化为固定大小的特征图块。以下是Fast R-CNN的流程图
![](./img/ch8/8.1.7.png)
![](./img/ch8/8.2.2-1.png)
**RoI Pooling层详解**
@ -123,7 +123,7 @@ RoI Pooling 是Pooling层的一种而且是针对RoI的Pooling其特点是
RoI是Region of Interest的简写一般是指图像上的区域框但这里指的是由Selective Search提取的候选框。
![](./img/ch8/8.1.10.png)
![](./img/ch8/8.2.2-2.png)
往往经过rpn后输出的不止一个矩形框所以这里我们是对多个RoI进行Pooling。
@ -160,36 +160,24 @@ RoI是Region of Interest的简写一般是指图像上的区域框但这
### 8.2.3 Faster R-CNN
**标题《Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks》**
**时间2015**
**出版源NIPS 2015**
**主要链接:**
- arXivhttp://arxiv.org/abs/1506.01497
- github(official, Matlab)https://github.com/ShaoqingRen/faster_rcnn
- github(official, Caffe)https://github.com/rbgirshick/py-faster-rcnn
**Fast R-CNN有哪些创新点**
Fast R-CNN依赖于外部候选区域方法如选择性搜索。但这些算法在CPU上运行且速度很慢。在测试中Fast R-CNN需要2.3秒来进行预测其中2秒用于生成2000个ROI。Faster R-CNN采用与Fast R-CNN相同的设计只是它用内部深层网络代替了候选区域方法。新的候选区域网络RPN在生成ROI时效率更高并且以每幅图像10毫秒的速度运行。
![](./img/ch8/8.1.13.png)
![](./img/ch8/8.2.3-1.png)
图8.1.13 Faster R-CNN的流程图
Faster R-CNN的流程图与Fast R-CNN相同采用外部候选区域方法代替了内部深层网络。
![](./img/ch8/8.1.14.png)
![](./img/ch8/8.2.3-2.png)
图8.1.14
**候选区域网络**
候选区域网络RPN将第一个卷积网络的输出特征图作为输入。它在特征图上滑动一个3×3的卷积核以使用卷积网络如下所示的ZF网络构建与类别无关的候选区域。其他深度网络如VGG或ResNet可用于更全面的特征提取但这需要以速度为代价。ZF网络最后会输出256个值它们将馈送到两个独立的全连接层以预测边界框和两个objectness分数这两个objectness分数度量了边界框是否包含目标。我们其实可以使用回归器计算单个objectness分数但为简洁起见Faster R-CNN使用只有两个类别的分类器即带有目标的类别和不带有目标的类别。
![](./img/ch8/8.1.15.png)
![](./img/ch8/8.2.3-3.png)
图8.1.15
对于特征图中的每一个位置RPN会做k次预测。因此RPN将输出4×k个坐标和每个位置上2×k个得分。下图展示了8×8的特征图且有一个3×3的卷积核执行运算它最后输出8×8×3个ROI其中k=3。下图展示了单个位置的3个候选区域。
![](./img/ch8/8.1.16.png)
![](./img/ch8/8.2.3-4.png)
图8.1.16
假设最好涵盖不同的形状和大小。因此Faster R-CNN不会创建随机边界框。相反它会预测一些与左上角名为锚点的参考框相关的偏移量如x, y。我们限制这些偏移量的值因此我们的猜想仍然类似于锚点。
@ -197,11 +185,11 @@ Faster R-CNN的流程图与Fast R-CNN相同采用外部候选区域方法代
图8.1.17
要对每个位置进行k个预测我们需要以每个位置为中心的k个锚点。每个预测与特定锚点相关联但不同位置共享相同形状的锚点。
![](./img/ch8/8.1.18.png)
![](./img/ch8/8.2.3-6.png)
图8.1.18
这些锚点是精心挑选的,因此它们是多样的,且覆盖具有不同比例和宽高比的现实目标。这使得我们可以用更好的猜想来指导初始训练,并允许每个预测专门用于特定的形状。该策略使早期训练更加稳定和简便。
![](./img/ch8/8.1.19.png)
![](./img/ch8/8.2.3-7.png)
图8.1.19
Faster R-CNN使用更多的锚点。它部署9个锚点框3个不同宽高比的3个不同大小的锚点框。每一个位置使用9个锚点每个位置会生成2×9个objectness分数和4×9个坐标。
@ -224,23 +212,23 @@ ResNet-101+R-FCN83.6% in PASCAL VOC 2007 test datasets
既提高了mAP又加快了检测速度
假设我们只有一个特征图用来检测右眼。那么我们可以使用它定位人脸吗应该可以。因为右眼应该在人脸图像的左上角所以我们可以利用这一点定位整个人脸。如果我们还有其他用来检测左眼、鼻子或嘴巴的特征图那么我们可以将检测结果结合起来更好地定位人脸。现在我们回顾一下所有问题。在Faster R-CNN中检测器使用了多个全连接层进行预测。如果有2000个ROI那么成本非常高。R-FCN通过减少每个ROI所需的工作量实现加速。上面基于区域的特征图与ROI是独立的可以在每个ROI之外单独计算。剩下的工作就比较简单了因此R-FCN的速度比Faster R-CNN快。
![](./img/ch8/8.2.1.png)
![](./img/ch8/8.2.4-1.png)
图8.2.1 人脸检测
现在我们来看一下5×5的特征图M内部包含一个蓝色方块。我们将方块平均分成3×3个区域。现在我们在M中创建了一个新的特征图来检测方块的左上角TL。这个新的特征图如下图所示。只有黄色的网格单元[2,2]处于激活状态。在左侧创建一个新的特征图,用于检测目标的左上角。
![](./img/ch8/8.2.2.png)
![](./img/ch8/8.2.4-2.png)
图8.2.2 检测示例
我们将方块分成9个部分由此创建了9个特征图每个用来检测对应的目标区域。这些特征图叫做位置敏感得分图position-sensitive score map因为每个图检测目标的子区域计算其得分
![](./img/ch8/8.2.3.png)
![](./img/ch8/8.2.4-3.png)
图8.2.3生成9个得分图
下图中红色虚线矩形是建议的ROI。我们将其分割成3×3个区域并询问每个区域包含目标对应部分的概率是多少。例如左上角ROI区域包含左眼的概率。我们将结果存储成3×3 vote数组如下图所示。例如vote_array[0][0]包含左上角区域是否包含目标对应部分的得分。
![](./img/ch8/8.2.4.png)
![](./img/ch8/8.2.4-4.png)
图8.2.4
将ROI应用到特征图上输出一个3x3数组。将得分图和ROI映射到vote数组的过程叫做位置敏感ROI池化position-sensitive ROI-pool。该过程与前面讨论过的ROI池化非常接近。
![](./img/ch8/8.2.5.png)
![](./img/ch8/8.2.4-5.png)
图8.2.5
将ROI的一部分叠加到对应的得分图上计算V[i][j]。在计算出位置敏感ROI池化的所有值后类别得分是其所有元素得分的平均值。