前言:
{
最近在考虑现在这些目标检测网络用的RoI pooling方法。我认为RoI pooling方法至少有两个缺点:一是检测效果有限,目标尺寸和数量都受限;二是anchors和一些相关参数需要被预设,不支持全面的学习。
所有这次找到了一篇有关的论文[2],想通过阅读找点灵感。
}
正文:
{
在论文的第一节,作者介绍了目标检测的5个步骤:特征生成、区域提示生成、区域特征提取,区域识别和去重,并且提到了目前机器学习的趋势——深度学习。我记得就在几年前(2015年左右),深度学习的概念还没有普及,当时我还用openVC来做图像识别,就算使用神经网络也需要先提取特征。再看现在,深度网络直接搞定特征工程和分类识别的工作,但从这段看的论文来看,目标检测大多还需要使用RoI pooling方法(不过YOLO[3]则属于一步(One-stage)检测,没使用RoI pooling的方法,尺度和位置也算是由学习得来的)。
作者说本论文涉及的方法是全面可学习的(fully learnable region feature extraction),给出了两个贡献:一是一种通用的区域特征提取的观点( General Viewpoint on Region Feature Extraction)(现在的RoI pooling方法大多都是特定的,无法通用),二是一种可学习的模块。另外,作者还说本论文的方法比RoI pooling方法的表现更出色,具体的后面会说到。
在第二节,作者介绍了论文的第一个贡献。
一开始,作者简介了现有RoI pooling方法的输入和输出,想看比较形象的介绍可以去[3]。
之后,作者给出了用来代替RoI pooling公式的公式,见式(2)。
其中,b代表一个bounding box,代表b中第k个bin对应的输出(在[3]中例子的情景下,k应该∈[1, 4]),p代表位置,
代表一个support region,可以为RoI或整个图片(当为RoI时岂不就是一个b?),x(p)代表输入的特征图中p位置的数据,
代表和b,p和x有关的k的权值。
式(2)实际上是RoI pooling的一种通用形式。作者还给出了一些例子,例如在averaging pooling的情景下,式(2)的权值变成了式(3)的形式。
其中为b中第k个bin中位置的总数(大小)(在这种情况下,如果考虑到
,则
就等于b中第k个bin)。
值得注意的是,作者还介绍到了式(2)在一步检测的情况下的应用(按照我的理解,在YOLO里的结构下([2]中的图3),K=|k|=4096,=b=整个特征图,但这和论文里说的不一样,论文在这里没有给出详细的解释)。
}
结语:
{
我大概看了一下后面的内容和实验结果,其有很多公式,结果似乎也不是非常好,所以我可能需要暂时放下这篇论文,把时间腾出来给书上的内容。
参考资料:
{
[1]https://arxiv.org/pdf/1803.07066.pdf
[2]https://arxiv.org/pdf/1506.02640.pdf
[3]https://blog.youkuaiyun.com/auto1993/article/details/78514071
}
}