计算机视觉

R-CNN(区域卷积神经网络)

/ AR-C-N-N /

R-CNN是一族目标检测方法,它解决了2013年前后的一道难题:当你既不知道有几个物体、也不知道它们在哪里时,该怎么把它们找出来?它的答案是一种两步走的策略。第一步,提议几千个候选区域——也就是可能装着东西的框。第二步,对每个框跑一遍图像分类器,判断框里是什么(如果有的话),并把框的边缘修正得更贴合。「R」代表区域(region),CNN则是负责识别的卷积神经网络。

最初的R-CNN能用,但慢得让人头疼,因为它把那几千个区域一个个单独裁剪、重新分析。两个后续版本修好了这一点。Fast R-CNN把整张图只分析一次,然后在这份共享的分析里查找每个区域,而不再重做一遍。Faster R-CNN更进一步,让一个小型神经网络也来负责提议区域,于是整条流水线变成了一个可以整体训练的系统。每一步都把巧妙的人工设计换成了学得来、跑得更快的部件。

为什么要记住R-CNN?因为它确立了「先提议、再分类」这个两阶段范式,多年来它定义了什么叫准确的检测,至今仍是许多高精度系统的底层。它的取舍正是重点:两阶段检测器往往更准,但比后来那些一次成像的检测器(如YOLO)更慢。对于那些「漏掉一个物体代价高昂、而算力又还宽裕」的任务,R-CNN这一脉常常仍是稳妥之选。

在一张厨房照片上,Faster R-CNN先通过一次快速扫描提议大约300个候选框。接着它对每个框分类:大多数被当作背景剔除,只剩下少数几个存活下来,成为「马克杯0.91」「烤面包机0.87」「香蕉0.66」,框的边缘也被微调到贴住各个物体。

两阶段思路一图概括:先提议许多区域,再对存活下来的进行分类与修正。

「R-CNN」通常指整个谱系——R-CNN、Fast R-CNN、Faster R-CNN——而不是某一个固定的模型。它们共同的主线是「先提议、再分类」的两阶段设计,相比单阶段检测器,是以速度换准确率。

又称
region-based CNNregions with CNN featuresFast R-CNNFaster R-CNN区域卷积神经网络區域卷積神經網路