前言
本篇文章不講解任何算法,只是針對CV的發展歷程和當前應用算法進行簡單介紹,希望不瞭解的或者想從事計算機視覺研究的小白們有個大概的認識
CV四大任務
- 分類,也就是解釋圖片上的物體是什麼
- 定位,圖片上物體的位置在哪裏
- 檢測,就是對圖片上的物體進行定位和分類
- 分割,精確到像素點進行分類,與我們所說的摳圖類似。
一句話來講,CV的任務就是分析圖中有哪些物體,這些物體的位置是什麼。基於這個基礎,我們可以做很多事情,比如批量ps,或者人流量估計等等。
傳統目標檢測方法
- 確定滑動窗口
- 利用互動窗口提取出候選區域
- 對候選區域進行特徵提取
- 使用分類器(實現已經訓練好)進行分類,判斷候選區域是否包含有效目標
- 對有所包含有效目標的候選區域進行合併
- 作圖,繪製出檢測目標輪廓框
我做個了動態圖來解釋這個方法(做的不好多包涵)
就是這樣窗口的不斷平移,下移,對紅色窗口裏的圖像進行特徵提取,判斷是否包含有效區域。
最終,經過紅色窗口的不斷移動,整張圖遍歷完畢,共有三處包含有效區域,最後將這三個有效區域進行合併,即爲目標輪廓框。這種辦法需要提前人工去裁定窗口大小,並且窮舉遍歷很消耗時間。
發展歷程
在2012年前,使用的都還是傳統的目標檢測算法,直到Alexnet算法的出現,目標檢測分爲兩大陣營,分別是單階段和多階段。
單階段:
直接提取特徵來預測物體類別
所經歷的步驟:特徵提取->分類/迴歸
常見算法:YOLOv1、v2、v3、SSD、RetinaNet等
雙階段:
先進行目標區域(Region Proposal)的生成,再通過卷積神經網絡進行分類
步驟:特徵提取->生成PR->分類/迴歸
常見代表:R-CNN、Spp-Net、Fast R-CNN、Faster-RCNN等
算法分類
此圖是通過xmind軟件繪製的,如果有需要原文件的,請下方留言。
常用關鍵術語
- bbox(Bounding box):給出物體在圖片中的定位區域,形狀爲長方形,給出左上角和右下角座標。
- loU(intersection of Union):區域交叉程度,兩個bbox的重疊程度,公式爲 (A交B)/(A並B),用於評價預測結果和正是結果的差別,範圍是0-1.
- mAP(mean average precision):當預測的包圍盒和真是包圍盒的交併比大於某一閾值時,則認爲該預測正確。對於每個類別,我麼能畫出它的查準率-查全率曲線,平均準確率時曲線下方的面積,,之後再對所有類別的平均準確度求平均。
- Regional Proposal :候選區域,指去突出所有可能包含識別目標的哪些候選區域,想讀與傳統的滑動窗口而言,數量上回更少,質量更高。
- NMS(Non-maximum Suppression即非極大值抑制),時圖像處理中用於消除多餘的框,找到最佳物體檢測位置的一個算法。
- Anchor Box(候選框):從原始或卷積後的圖片中提取出來,然後用來判斷是否存在要識別的目標的小的圖片塊。
- Selective Search(選擇性搜索):利用顏色、紋理、尺寸、空間交叉來生成候選區域的算法,相較於傳統的滑動窗口算法,Selective Search避免了窮舉所產生的海量候選區域及其造成的低效。