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——而不是某一個固定的模型。它們共同的主線是「先提議、再分類」的兩階段設計,相比單階段偵測器,是以速度換準確率。