【深度学习基础】系列博客为学习Coursera上吴恩达深度学习课程所做的课程笔记。
本文为原创文章,未经本人允许,禁止转载。转载请注明出处。
1.候选区域
本文旨在通过R-CNN了解候选区域这一概念,并不会过多的介绍R-CNN。
YOLO算法直接将输入喂给一个卷积神经网络,即可得到输出,即目标的bounding box,这就是通常所说的one-stage类型的目标检测算法。
这种算法(例如YOLO、滑动窗口等)的一个缺点就是会在没有任何对象的区域浪费时间。例如:
而本文所要介绍的另一种目标检测算法R-CNN(Regions with CNN)则可避免这一问题。R-CNN先尝试选出一些候选区域(region),使得在这些候选区域上运行卷积网络分类器是有意义的。选出候选区域的方法之一是运行图像分割算法:
然后我们针对每个色块(block)限定bounding box并运行卷积网络分类器:
以上便是R-CNN的主要思想。与YOLO算法相比,R-CNN分为明显的两个阶段,因此其属于two-stage类型的目标检测算法。
但是R-CNN的一个缺点就是速度很慢,因此针对其速度优化,又提出了Fast R-CNN和Faster R-CNN。但尽管如此,R-CNN及其衍生算法依旧比YOLO慢很多。
📝Fast R-CNN:原文、博客讲解。
📝Faster R-CNN原文:Ren S, He K, Girshick R, et al. Faster r-cnn: Towards real-time object detection with region proposal networks[C]//Advances in neural information processing systems. 2015: 91-99.