比较主流的目标检测网络,Faster R-CNN , R-FCN , SSD
Introduction:
目标检测网络中,
mPA。。。
运行时间和占用内存也很重要,好的模型经常依赖于model ensemboing 和 multicrop 方法,这样对于应用来说too slow.
我们会探索现代检测系统 speed/accuracy trade-off。
主要的贡献如下:
1.对现代卷积检测网络做了详细的研究,解释了为什么好的模型具有相似的设计。
2.使用tensorflow统一实现了几个模型。
3.我们发现 Faster R-CNN 减少proposals数量可以在不大量损害精度的情况下大大提高速度。使得其可以和比较快的 SSD 和 RFCN 竞争。
SSD对特征提取器的敏感程度没有 Faster R-CNN 和 R-FCN 深。
4.使用不同的 meta-architecture 和feature-extractor 的组合,取得一个好的模型。
2.Meta-architecture
R-CNN 是第一个卷积检测网络。
Fast-RCNN 先将一个图片输入到特征提取器然后再crop。
上面两个都依赖一个额外的proposal generator,但是最近的研究表明 proposal 也可以用卷积网络产生。
SSD是一个single feed-forward 卷积网络,直接预测分类和anchor offsets,不需要第二个stage.
Faster R-CNN 由两个stage组成,一个是RPN网络,图片经过特征提取器,选取某一层特征用来预测没有类别信息的box proposals,使用如下的损失函数:
第二个stage,使用 box proposals 在feature map上来crop features。之后将特征送到特征提取器对每一个proposal来预测一个类别和与类对应的box refinement.使用的loss function 还是上面的式子。
R-FCN类似于Faster R-CNN只是把提取出来的proposal应用在了最后一步上。可以取得和Fater 差不多的准确度,但是运行速度快一点。
3.1 Architectural configuration
在所有的meta-architerctures上,都需要一个卷积特征提取器来获得high-level features。
所以这个特征提取器也很重要。
我们选择了六个feature extractors,分别是 VGG-16,Resnet-101, Inception v2 , Inception v3 , Inception Resnet (v2) , MobileNet.
MobileNet可以获得VGG-16的精准度,但只用到其 1/30 的computational cost 和 model size.
proposal 的数量
通常是300,但是我们在10-300之间探索最优的值。
对stride的改动
对于Resnet-101 有少许的改动,将output stride 从 32 改为 16。通过将conv5-1的stride从2变为1,并将其之后的层使用 artous convolutions。
使用 Smooth L1 loss function.
3.3 Input size configuration
Faster R-CNN 和 R-FCN中将输入图片的短边 sacled to M ,在SSD中,将图片resize到 M*M。我们对每一个模型,都训练了两个versions。一个将 M = 300 ,称为 low-resolution .一个将 M = 600,称为 high-resolution.
每种情况,SSD都比Faster 或者 R-FCN 处理更少的pixels.
对于Faster R-CNN 和 R-FCN 我们不是使用的 4-stage 训练过程,而是使用的end-to-end 过程。我们将 ROI-Pooling和 Position-sensitive ROI Pooling用tensorflow里面的 crop_and_resize操作取代。这个方法使用双线性插值来resample一个图片到一个尺寸。
3.6 Model Details
4.Results
Accuracy vs time: 平均来说,R-FCN 和 SSD 比 Faster R-CNN 快。Faster 虽然慢但是精度高,每个image至少需要100 ms.
最优边界的关键点:
Fastest :
SSD w/MobileNet.
SSD with Inception v2 和 Mobilenet 是最快模型里最精准的。
Mobilenet大约是inception v2速度的两倍,精度上损失不太大。
Sweet Spot:
R-FCN w/Resnet or Faster R-CNN w/Resnet and only 50 proposals.
具有速度和精度的最佳平衡。
Most Accurate:
Faster R-CNN w/Inception Resnet at stride 8.
速度很慢,大概一秒。
具体如下表所示:
The effect of feature extractor:
经验上认为分类表现更好的检测表现更好。
如上图所示,Faster R-CNN 和 R-FCN对分类和检测的相关性比较明显,SSD对特征提取器的分类准确率表现出弱相关。
The effect of object size:
从上图可以看出,所有的模型都在 large object 上表现好。虽然SSD在small object 上表现差,但是其可以在lightweight feature extractor 上以比较快的速度,在 large object 上达到甚至超越其他两个模型。
The effect of image size:
一些人发现input resolution对检测精度有很大的影响。
实验发现, resolution 减少两倍,精度平均减少 15.88%,时间减少27.4%
一个解释是high resolution inputs 使得 small object 可以处理。上图表明,high resolution models在small object 上明显有更好的mPA(一些情况下可能是2倍),某种程度上在large object 上也有好的mPA.
我们也发现在small objects 上表现好的模型在 large 上也好(SSD不是).
The effect of the number of proposals:
在Faster R-CNN 和 R-FCN 里都是300。实验证明这个数字可以在不损害mPA的情况下大大减少。
sweet spot是50个proposals,这可以达到300个proposals 精度的96%,却可以减少3倍的运行时间。
Flops analysis:
Memory analysis:
拥有更大更给力的特征提取器需要更多的内存,Mobilenet是最优的,需要不超过 1Gb的内存
0.75的IOU是最佳的值