物件偵測

物件偵測

物件偵測同時回答關於影像中每個物件的兩個問題:它在哪裡,以及它是什麼。「在哪裡」是緊貼物件畫出的一個框;「是什麼」則是類別標籤(例如「狗」或「車」)外加一個信心分數。可以把影像分類想成一位圖書館員告訴你某張照片「含有一隻狗」;而物件偵測則是一位圖書館員還會指出確切位置並說「這裡有一隻狗,那邊有一台腳踏車,他們後面有一個人」——而且要針對一張圖中數量未知、會變動的眾多物件。

讓偵測真正比分類更難的,是輸出的數量並非固定。分類器對每張影像永遠輸出一個標籤向量;偵測器則必須輸出一個長度可變的(框、類別、分數)三元組清單——空蕩天空中是零個物件,擁擠街道上則是數十個。這種「集合值」的輸出,正是這個領域幾乎所有設計選擇的根源:如何列舉候選位置、如何決定哪個候選對應哪個真實物件、以及如何避免把同一個物件重複回報多次。

具體而言,偵測器吃進一張影像,並為每個被偵測到的物件產生:一個邊界框(通常是四個數字)、一個取自固定詞彙表(外加一個隱含的「背景」類別)的類別標籤、以及一個落在 [0,1] 區間的信心值。品質的判定取決於預測框與真實框是否重疊得夠多(以交集比聯集衡量)以及標籤是否正確;標準的彙總指標是在多個召回率與 IoU 門檻上計算的平均精度均值(mAP),由 PASCAL VOC 與 COCO 基準推廣開來。

在架構上,這個領域分為兩階段偵測器(先提出候選區域,再對它們分類與微調——即 R-CNN 家族)、在影像上一次掃描就同時預測框與類別的單階段偵測器(YOLO、SSD、RetinaNet),以及較新的集合預測 transformer(DETR)——後者把偵測視為直接輸出一個固定大小的集合,再與真實標註做匹配。它們全都共享同樣的核心子問題:候選生成、標籤分配、框的回歸、以及重複框的移除。

輸入:一張街景照片。輸出:[(框=[34,50,120,260],「行人」,0.97)、(框=[200,140,340,300],「車」,0.91)、(框=[210,120,250,160],「紅綠燈」,0.66)]——三個框、三個標籤、三個分數,全部來自一次前向傳遞。

偵測不是分割。框只說「物件落在這個矩形內」,但不指出哪些像素屬於它;實例分割(例如 Mask R-CNN)則是在框之上再加上每個物件的逐像素遮罩。

又稱
detectionobject localization and classification