目標檢測的主要任務是檢測輸入影象是否存在給定目標。如存在則返回目標的類別和位置資訊。根據檢測任務的不同可分為目標例項檢測和通用目標檢測。
每一類目標都有屬於它的特殊的特徵,以便人們能夠分辨它們,例如,圓被認為是在幾何形態上到乙個點具有特定距離的目標,這些特徵也被用於機器學習演算法來識別目標的類別。典型的就是人臉識別中,人臉被認為是具有眼睛、鼻子和嘴唇並且具有膚色和合理瞳距的目標。
當前的目標檢測器基本可以劃分為兩類:兩階段檢測器和一階段檢測器。兩階段檢測器一般是基於區域提取(region proposal, a.k.a 候選視窗)的方法。一階段檢測器一般是基於回歸的方法,這類檢測器也是目前使用得較多的檢測器,具有代表性。一般來說,兩階段檢測器效果好,跑得慢;一階段檢測器效果較差但跑得快。
基於候選視窗的目標檢測框架需要在檢測影象上生成大量候選視窗,然後判別這些候選視窗的類別,最終包含感興趣目標的候選框就是目標視窗。典型代表有:r-cnn系列、r-fcn系列和mask r-cnn系列。
r-cnn系列
r-cnn基本框架將檢測任務分為3個步驟:獲取候選區域並進行特徵處理,利用cnn提取固定長度特徵,通過線性分類器進行分類。這類方法在候選區域數量較大時存在執行速度緩慢的問題,對計算效能需求較大。針對這些問題,faster r-cnn提出了區域推薦網路(region proposal network, rpn)進行候選區域推薦,提高了檢測速度。
r-fcn系列
針對faster r-cnn框架roi pooling後特徵不能共享的問題,r-fcn在卷積層使用了包含目標空間位置資訊的位置敏感分布圖,結合殘差網路後,檢測精度和速度都有了提公升。另乙個改進是light head rcnn, 使用了更輕量的r-cnn子網路,雖然檢測精度有所下降,但速度大幅提公升。
mask r-cnn系列
針對faster r-cnn 中roi pooling 採用最近鄰插值導致等比例縮放時空間量化粗糙影響準確定位的問題,mask r-cnn框架提出了roi align 演算法,用雙線性插值替代最近鄰插值,並增加乙個分支,為每個roi輸出二進位制掩碼(mask),提公升了檢測準確度。
基於回歸的目標檢測框架從一幅影象中直接**類概率和邊界框偏移量,沒有推薦預選框和特徵重組的步驟。典型的有yolo和ssd。
yolo
yolo(you look only once),是一種一階段檢測器。yolo 將物體檢測看成回歸問題,不同於r-cnn基於區域性候選框進行**的方式。,yolo利用整張的特徵,將影象劃分成s × s 個方格,每個方格只負責檢測中心落在該方格的目標,每個方格分別計算目標類別的概率值、邊緣框位置和邊緣框的置信度。一步實現了所有區域內含有目類別概率、邊界框、置信度的**。其檢測速度可以滿足實時要求,但
其檢測精度相對於faster r-cnn下降了很多。
yolo v2改進了yolo原有的特徵提取網路,提出了計算複雜度更小、準確率更高的darknet-19。引入anchor 機制,利用k-means 聚類方法在訓練集中聚類計算出更好的anchor 模板,提高了框架召回率。
yolo v3在yolo v2基礎上,設計出了比resnet152綜合性能更好的分類網路darknet-53。針對yolo 和yolo v2 小目標漏檢率高的問題,yolo v3 借鑑了多層特徵融合思想,將深層特徵圖進行上取樣,與淺層特徵圖堆疊在一起進行特徵融合,並且每個候選框可以**多個分類,同時利用logistic loss代替softmax loss,有效地提公升了小目標的檢測精度。
ssdssd(single shot detector)主要針對yolo漏檢率高的問題,在yolo 回歸思想的基礎上,提出了和faster r-cnn 中的anchor box 機制相似的prior box 選框機制。同時為提公升小目標的檢測率設計了特徵金字塔(pyramidal feature hierarchy)結構,其可以通過不同深度的特徵圖**目標,提公升了框架的多尺度目標的檢測能力。ssd在確保了檢測速度的前提下,提公升了檢測精度。
目標檢測的應用領域非常廣泛,這裡提幾個典型應用:
在安全領域,目標檢測可用於人臉檢測和識別,自動異常檢測
在軍事領域,可用於遠端感知目標檢測和**制導
在交通領域,最典型的應用就是自動駕駛,自動駕駛需要目標檢測來確保行進路線安全,還有檢測交通訊號標誌等;另外行人和車流檢測可用於交通排程。
在醫療領域,目標檢測主要用於計算機輔助診斷(computer aided diagnose),用於幫助醫生更好地識別病症和病症類別等。
雖然目標檢測技術已經取得了很大的進步,但基於深度學習的目標檢測框架還面臨很多挑戰:
隨著瀏覽器、手機端、嵌入式裝置對檢測技術的需求,如何在簡化、復用計算的同時又能保證準確率,將是未來的重要創新方向。早期主要通過更多的計算共享。從r-cnn 到yolo,都是更多地共享roi 之間的計算量。目前常用的方法是使用壓縮特徵提取網路。對框架整體上的壓縮設計也可能是一種有效的途徑。yolo-lite 在這方面進行了嘗試,可以實現無gpu 裝置上的實時目標檢測,但檢測精度還有待提高。
小規模資料訓練是實際工程應用中尤其是工業化場景中需要關注的問題。在很多應用領域中,訓練樣本量遠小於pascal voc、ms coco等通用資料集。目前,針對小資料樣本的情況主要採用遷移學習來初始化引數。但對於醫療、軍事等特殊領域,現有大型資料集中沒有目標資料,遷移學習效果會受到影響。
在實際應用中,很多情況下待檢測的目標是特殊目標,如不規則形狀物體、物體遮擋等情況。其檢測難度要遠大於常規目標的檢測。如何有效解決這些問題是未來重要的研究方向。
目前的大部分框架都是針對512×512 或1 000×600 左右解析度的影象。但隨著影象解析度的提公升,未來4k 影象將成為主流。從技術的發展趨勢看,針對大尺度影象的檢測也是目標檢測領域未來的發展方向。
機器學習 1
基本問題的經典演算法 分類 svm 最大熵 adaboost 分類回歸樹 隨機森林 回歸 分類回歸樹 隨機森林 gbdt 排序 gbrank 聚類 k means 結構標註 隱馬爾可夫模型 條件隨機場。機器學習 表示 演算法 特徵的表示 評價 loss cost評價演算法好壞的函式 優化 尋找使評價...
機器學習 1
學習吳恩達機器學習1 3章 主要內容 對機器學習在生活中的應用做了介紹 郵件分類,新聞分類,疾病 房價 機器學習演算法分類及簡要介紹 監督學習 supervised learning 中的單變數線性回歸 linear regression with one variable 損失函式 cost fu...
機器學習(1)
定義 回歸是指把實函式在樣本點附近加以近似的有監督的函式近似問題。這裡,我們來考慮一下以d次方的實數向量x作為輸入,實數值y作為輸出的函式 y f x 的學習問題,在監督學習裡,這裡的函式關係f是未知的,作為輸入數出 樣本 上標為n,下標為1 是已知的。定義 分類是指對已指定的模式進行有監督的模型識...