計算機視覺的方向:圖像分類、目標檢測、圖像分割、目標跟蹤、圖像去噪、圖像增強、風格化、三維重建、圖像檢索、GAN
實際中的圖像分類,如表情分類。用的是人臉和嘴部的location,這就是目標檢測的先驗在。同時HOG行人檢測也是用來HOG+SVM的detect,即目標檢測在前,圖像分類在後的。
圖像分類:多類別圖像分類、細粒度圖像分類、多標籤圖像分類、實例級圖像分類、無監督圖像分類。
分類方法:
- 傳統機器學習:經典的特徵算子+經典分類器組合學習,HOG+SVM
- 深度學習:Alexnet, VGG,GoogleNet,ResNet,DenseNet,SENet
目標檢測:
- 目標的類別+概率:這是一個分類任務
- 目標的具體位置:location的任務
目標檢測算法的三個模塊:檢測窗口的選擇,圖像特徵的提取,分類器的設計
區域選擇、提取特徵、分類迴歸
- 傳統方法:Haar+Adaboost, HOG+SVM
- 深度學習:RCNN系列在工業界的應用非常廣泛,YOLO,SSD
圖像分割:
目標跟蹤:
2.目標檢測
CV問題分爲三類:圖像分類、目標檢測、神經風格遷移
目標檢測:location定位問題。
總結:滑動窗口卷積——精確的檢測框YOLO的原理、NMS非極大值抑制等等
沒有很多數據時,就要自己手工設計特徵。但是手工工程,如精心設計特徵或者設計網絡,非常需要技巧、洞察力和經驗。
2.1 目標檢測——吳恩達機器學習
object location目標定位,location問題就是在圖片中用bounding box標記處位置。
2.1.1 目標檢測的方法:滑動窗口法——車輛檢測
- 先訓練一個車輛分類的網絡——CNN圖像分類網絡
- 對整張圖像預測——輸入整張圖像,然後選擇紅色小框進入預測網絡,判斷紅色框內有沒有汽車
2.1.2 滑動窗口的卷積實現
滑動窗口算法可以用卷積方式實現,以提高運行速度,節約重複運算成本。
這裏的關鍵就是將全連接層改爲卷積層。改之前的滑動窗口需要反覆進行CNN正向計算,改之後用卷積代替滑動窗口,不管原始圖片多大,只需要進行一次CNN正向計算,就可以得到所有滑動窗口的預測結果,因爲這裏面共享了很多重複計算部分。
- 在卷積層上應用滑動窗口提高了整個算法的效率
- 但是缺點是:邊界框的位置可能不夠準確
2.1.3 滑動窗無法完全覆蓋目標的問題
滑動框由於size和step的原因,無法正好覆蓋目標,這時該怎麼辦?這些邊界框沒有一個能完美匹配汽車的位置。
且有些時候最完美的邊界框甚至不是一個正方形,而是長方形。有沒有辦法讓這個算法的輸出更加精準呢?YOLO
you only look once。
第一個格子裏面什麼都沒有,其標籤的第一個Pc=0。然後這張圖有兩個對象,YOLO的做法是取兩個對象的中點,然後中點在哪個格子裏,這個對象就屬於哪個格子。
網格劃分的越小,一個網格內可能就只有一個目標的中心,就不會把多個目標都劃在一個網格內,這樣便於區分開多個目標。
3.數據增強 data augmentation
垂直鏡像對稱
隨機裁剪:不是一個完美的數據增強方法,但在實踐中還是很有用的,隨機裁剪構成了很大一部分的真實圖片。
彩色轉換:在RGB三個通道上加上不同的失真值。在實踐彙總,RGB的值是根據某種概率分佈來決定的。使得算法對照片的顏色變化更魯棒。