R-CNN是所有提到的算法的爸爸算法,它确实为研究人员提供了在其上构建更复杂和更好的算法的途径。我试图解释R-CNN及其他变种。
R-CNN包含3个简单步骤:
快速R-CNN立即跟随R-CNN。快速R-CNN凭借以下几点更快更好:
直观地说,删除2000转换层是很有意义的,而是采取一次卷积并在其上制作盒子。
快速R-CNN的缺点之一是选择性搜索速度慢,而快速R-CNN引入了称为区域提议网络(RPN)的东西。
这是RPN的工作:
在初始CNN的最后一层,3x3滑动窗口在特征地图上移动并将其映射到较低维度(例如256-d)。对于每个滑动窗口位置,它基于k个固定比率锚点生成多个可能的区域框(默认边界框)
每个地区的提案包括:
对于每个框,我们输出我们是否认为它包含一个对象,以及该框的坐标是什么。这是一个滑动窗口位置的样子:
2k分数表示每个k个边界框在“对象”上的softmax概率。请注意,虽然RPN输出边界框坐标,但它不会尝试对任何潜在对象进行分类:其唯一的工作仍然是提出对象区域。如果锚箱具有高于特定阈值的“对象”得分,则该框 - 坐标作为区域提议被传递。
一旦我们获得了我们的区域提案,我们就会直接将它们提供给基本上是快速R-CNN的内容。我们添加了一个池化层,一些完全连接的层,最后是一个softmax分类层和边界框回归器。从某种意义上说,更快的R-CNN = RPN +快速R-CNN。
的 链接一些Tensorflow实现: 强>
https://github.com/smallcorgi/Faster-RCNN_TF
https://github.com/CharlesShang/FastMaskRCNN
你可以找到很多Github的实现。
的 附:我从Joyce Xu Medium博客那里借了很多资料。 强>
R-CNN使用以下算法:
还有更高级的算法,如快速R-CNN和更快的R-CNN。
快速-R-CNN:
更快的R-CNN:
张量流中有很多植入专门用于更快的R-CNN,这是最近的变种只是谷歌更快的R-CNN张量流。
祝好运