目標檢測的任務表述
如何從圖像中解析出可供計算機理解的信息,是機器視覺的中心問題。深度學習模型由於其強大的表示能力,加之數據量的積累和計算力的進步,成為機器視覺的熱點研究方向。
那么,如何理解一張圖片?根據后續任務的需要,有三個主要的層次:
分類(Classification)
分類即是將圖像結構化為某一類別的信息,用事先確定好的類別或實例ID來描述圖片。這一任務是最簡單、最基礎的圖像理解任務,也是深度學習模型最先取得突破和實現大規模應用的任務。其中,ImageNet是最權威的評測集,每年的ILSVRC催生了大量的優秀深度網絡結構,為其他任務提供了基礎。在應用領域,人臉、場景的識別等都可以歸為分類任務。
檢測(Detection)
分類任務關心整體,給出的是整張圖片的內容描述,而檢測則關注特定的物體目標,要求同時獲得這一目標的類別信息和位置信息。相比分類,檢測給出的是對圖片前景和背景的理解,我們需要從背景中分離出感興趣的目標,並確定這一目標的描述(類別和位置),因而,檢測模型的輸出是一個列表,列表的每一項使用一個數據組給出檢出目標的類別和位置(常用矩形檢測框的坐標表示)。
分割(Segmentation)
分割包括語義分割(semantic segmentation)和實例分割(instance segmentation),前者是對前背景分離的拓展,要求分離開具有不同語義的圖像部分,而后者是檢測任務的拓展,要求描述出目標的輪廓(相比檢測框更為精細)。分割是對圖像的像素級描述,它賦予每個像素類別(實例)意義,適用於理解要求較高的場景,如無人駕駛中對道路和非道路的分割。
基於深度學習的目標檢測算法
在深度學習興起並逐漸成為計算機視覺的核心方法之后,基於深度學習算法的一系列目標檢測算法大致可以分為兩大流派:
兩階段(two-stage)算法:先產生候選區域然后再進行CNN分類(RCNN系列)
單階段(one-stage)算法:直接對輸入圖像應用算法並輸出類別和相應的定位(yolo系列)
無論是兩階段還是單階段算法,它們都是在識別的快和准兩點上尋找一個平衡點和或者極端點。要么准要么快,但隨着深度學習和計算機視覺的向前發展,既快有准的算法也在逐漸的實現當中。
參考: