目標檢測(動手學深度學習)

2021-10-03 02:51:21 字數 2494 閱讀 3216

目標檢測是計算機視覺中的重要任務之一。本系列部落格將總結目標檢測的各類演算法,包括傳統方法、基於cnn的演算法(one stage、two stage)。本文主要對傳統方法進行概述,大部分思想源自網上的部落格和**。

個人觀點,廣義的目標檢測不僅包括物體檢測(object detection),還包括邊緣檢測(border detection)及關鍵點檢測(landmark detection)等。因此本文將涵蓋邊緣檢測及關鍵點檢測的內容。

邊緣檢測,在很多場景下可以看作是影象分割(segmentation)任務(影象分割的邊界往往就是物體的邊緣)。而影象分割也包括傳統演算法和深度學習語義分割;而目標檢測類演算法(如r-cnn)也經常延伸到語義分割。影象分割與目標檢測有著千絲萬縷的關係。本部分主要從影象分割的角度介紹邊緣檢測的方法。傳統的影象分割主要包括:閾值分割、區域生長、分水嶺演算法、微分運算元法、主動輪廓模型、小波變換等方法。這些傳統影象分割方法是計算機視覺的基礎知識,具體此處不贅述。其中微分運算元法很有啟發意義,採用運算元(又稱「核」、「過濾器」)檢測特定模式,啟發我們可以通過設計特定的卷積核來檢測特定的剛性目標。

此處將關鍵點(landmark、benchmark)、特徵點都稱為感興趣點。主要方法包括:harris角點檢測法、sift特徵點檢測法、基於模型的asm或aam法、基於級聯形狀回歸cpr,和基於深度學習的演算法。其中,harris角點檢測法是設計角點檢測運算元,對影象每個畫素都計算響應值,然後確定乙個合適的閾值來檢測角點。基於模型的asm法,是先對標記點所在的物體形狀進行配準對齊,然後通過構建的區域性特徵,進行區域性搜尋和匹配;aam法則在asm法的基礎上加了紋理特徵。

物體檢測大致流程

提取候選框:在輸入影象中提取候選框,通常會採用滑動視窗來進行

提取特徵:採用各種經典模式識別的影象特徵表示的一些方法,如:基於顏色、紋理的方法等,包括低層次特徵,中層次特徵等。各種演算法的差異也就在於此,當採用cnn進行特徵提取時,就形成了r-cnn等一系列深度學習目標檢測方法。

分類器分類:分類器是預先訓練的,使用「等價於」候選框的提取的特徵,在篩選特徵後建立分類器;常使用svm建模。將提取的特徵輸入到分類器後,即可判斷當前候選框是某個物體的可能性大小。

主要是用於人臉檢測。採用 haar 特徵抽取,一般技術框架為:haar-like 特徵提取 + adaboost。

haar-like特徵類似於下圖:

將白色和黑色的畫素值分別求和後再作差,就是haar-like特徵。一幅圖中這樣的特徵非常多,為了優化計算,可以引入積分圖的概念,快速對區域畫素值求和。

hoghistogram of oriented gridients)主要用於灰度圖。採用hog特徵提取,一般技術框架為:hog+svm。

hog通過計算和統計影象區域性區域的梯度方向直方圖來構建特徵。

基本觀點:區域性目標的外表和形狀可以被區域性梯度或邊緣方向的分布很好的描述,即使我們不知道對應的梯度和邊緣的位置。(本質:梯度的統計資訊,梯度主要存在於邊緣的地方)

演算法框架:首先將影象分成很多小的連通區域(塊),我們把它叫做細胞單元,然後採集細胞單元中每個畫素點的梯度和邊緣方向,然後在每個細胞單元中累加出乙個一維的梯度方向直方圖。將直方圖進行歸一化等操作後,得到hog描述子。將檢測視窗中的所有塊的hog描述子組合起來就形成了最終的特徵向量,然後使用svm分類器進行檢測。

計算細節——梯度計算:採用微分運算元進行卷積運算,可以計算每個畫素點的梯度(方向和大小)。

計算細節——生成直方圖:將360度根據需要分割成若干個bin,例如:分割成12個bin,每個bin包含30度,整個直方圖包含12維,即12個bin。然後根據每個畫素點的梯度方向,將其幅值累加到直方圖中。

dpmdeformable parts model)是基於hog+svm改進的方法,對目標的形變具有很強的魯棒性。dpm的本質就是彈簧形變模型。

dpm不僅解決了尺度縮放問題,還通過建立多個模板解決旋轉(視角)視角問題。

dpm是傳統目標檢測演算法的巔峰之作,但其生不逢時,cnn的出現使得目標檢測演算法進入深度學習時代。

sift演算法比較複雜,筆者了解較少,感興趣的可以參考這篇部落格:sift演算法詳解

動手學深度學習

線性回歸的基本要素 模型 為了簡單起見,這裡我們假設 只取決於房屋狀況的兩個因素,即面積 平方公尺 和房齡 年 接下來我們希望探索 與這兩個因素的具體關係。線性回歸假設輸出與各個輸入之間是線性關係 price warea area wage age b price warea area wage a...

深度學習目標檢測

流程狂徒如下 1 使用selective search提取proposes,然後利用cnn等識別技術進行分類。2 使用識別庫進行預訓練,而後用檢測庫調優引數。3 使用svm代替了cnn網路中最後的softmax,同時用cnn輸出的4096維向量進行bounding box回歸。4 流程前兩個步驟 候...

動手學深度學習(一)

其中 w1 和 w2 是權重 weight b 是偏差 bias 且均為標量。訓練資料 損失函式 通常,我們用訓練資料集中所有樣本誤差的平均來衡量模型 的質量 w 1,w 2,b 為使訓練樣本平均損失最小的解 優化演算法 b 代表每個小批量中的樣本個數 批量大小,batch size 稱作學習率 l...