| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 论文阅读《R-FCN: Object Detection via Region-based Fully Convolutional Networks》 -> 正文阅读 |
|
[人工智能]论文阅读《R-FCN: Object Detection via Region-based Fully Convolutional Networks》 |
Background & Motivation最早的分类模型 AlexNet 和 VGG Net,前半部分是卷积自网络,后半部分是一些全连接层,前后部分被一个空间池化层隔开。自然而然传统的二阶段目标检测网络可以看作被 RoI pooling 分成两个子网络,前半部分是参数共享的全卷积网络,后半部分是基于 RoI 区域的不共享参数的 RoI-wise subnetwork(Head)。但是检测精度十分低,与分类网络优秀的性能并不能匹配。文中分析是因为分类任务中物体有平移不变性,而在检测任务中的回归任务必须要求定位出物体的位置,文中称作 translation variance 问题。
而这篇论文的 Motivation 就是为了解决?translation variance。 R-FCN前半部分的 backbone 采用 ResNet-101,其卷积层的最后一层输出是2048维的,在这一层后加上一个1024维的1*1卷积再加上一组特别设定的卷积层将其输出调整为(...,H,W,k^2*(C+1)),其中 C 对应了检测任务中物体的类别数。RPN 中输出的 RoI 在特征图最后一层的对应位置上生成对应(C+1)个类别的 k*k 个?position-sensitive 得分图。 k 可以取3,这样就可以看作3*3特征图上各个对应位置的得分图,比如 { top-left,top-center,top-right,...,bottom-right }(即图中每一个小的长方体都对应输出的 k*k 特征图中的一个位置,也即枚举了每一个类别的部分在特征图中每一个位置出现的可能性)。 之后再接上一个 RoI pooling 操作,这里称作 position-sensitive RoI?pooling,这里只聚合了 backbone 最后一层特征以及得分图的各个部分拼接成的 k*k 的特征图(即图中 RoI 的正方体在 k*k 的每一个位置上挑选出各自的特征块)。其每个类别与对应位置的响应如下: 其中 z 是挑选出来的特征块拼成的特征图,x0 和 y0 是该 RoI 左上角的坐标。x 和 y 的范围是1到3,对应 k*k 中的各个位置,n 是该位置内的像素数,相当于进行了平均池化,而最大池化也是可行的但在本文中没有采用。Θ 是可学习的参数。 之后这 k*k 个特征块对各个类别再进行投票,得到各类别的得分: 在将这些得分经过 Softmax 归一化到0和1之间: 通过端到端训练,RoI 层引导加上的一组特别设定的卷积层来学习专门的 position-sensitive 得分图。我们进一步引入 position-sensitive RoI?pooling,引导得分图学习到用于目标检测任务的特征。? 下面分别是正例和负例:? 上图可以看出,如果越多黄色的框内包含物体,则越多特征图(即 Fig 1 中 RoI 的正方体在 k*k 的每一个位置上挑选出各自的特征块)中的区域被激活,就会得到更高的分数。 用同样的方法进行了 bounding box 的回归,在加在 backbone 上1024维的卷积层之后,增加一个回归分支。即加上一组特别设定的卷积层将其输出调整为(...,H,W,4*k^2*C)。
损失函数是分类分支的交叉熵损失和回归分支的回归损失: 文中采用了?hole algorithm,似乎对精度的提升有帮助: Experiments各个模块的消融实验:
在 VOC 数据集上的结果: 在 COCO 数据集上的结果: Conclusion很多情景下精度的提升并不大,但是比速度?baseline 几乎使其几倍,?position-sensitive 得分图和?position-sensitive RoI?pooling 的具体细节可能得看代码才能弄懂。 附加
基础卷积块叫做?Inception,4条线路都使用了合适的填充来使输入与输出的高和宽一致。
Inception 块相当于一个有4条线路的子网络。它通过不同窗口形状的卷积层和最大池化层来并行抽取信息,并使用1×1卷积层减少通道数从而降低模型复杂度。GoogLeNet 将多个设计精细的 Inception 块和其他层串联起来。其中 Inception 块的通道数分配之比是在 ImageNet 数据集上通过大量的实验得来的。
GoogLeNet 一共使用 9 个 Inception 块和 AvgPooling 的堆叠来生成其估计值,Inception块之间的 MaxPooling?可降低维度。
记得看这篇文章。
空洞卷积 hole Atrous 原理+图解析+应用_鹿鹿的博客-CSDN博客_空洞卷积应用
目标检测中的Using multi scales training/testing_qq_409992227的博客-CSDN博客转:Cascade R-CNN,一个使你的检测更加准确的网络 - Augustone - 博客园 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 14:31:42- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |