hans

hans

【機器學習】【Python】五、滑動窗口 + SVM + NMS 用於定位 ---- 《SVM物體分類和定位檢測》


建議使用後面的 EdgeBoxes 進行邊框預測,比滑動窗口快且準確。如果大家感興趣,也建議使用 faster rcnn SPN 層中的 anchor 技術。


《SVM 物體分類和定位檢測》這一系列博文結束了。

總結一下我使用的最佳方法流程吧。

  1. 先使用 HoG 提取特徵 feature

  2. 使用 PCA 對 feature 進行降維,然後使用 PSO 優化參數 C 和 gamma,降維的目的是加快 PSO 運行速度,否則太慢,但分類效果降低

  3. 使用第一步獲得的 feature 和第二步獲得的參數訓練一個初始 SVM 模型

  4. 使用 Hard Negative Mining 優化 SVM 模型

  5. 使用滑動窗口進行檢測,最後使用 NMS 進行邊框回歸

目前有 2700 個正樣本,2700 個負樣本,只經過 PSO 優化參數後訓練好模型,分類測試準確率為 84%。測試集有 1200 個負樣本,700 個正樣本。

但是檢測框的精確度不高,誤檢測很多。

------------【2017.07.10 更新】-------------------------------------------------------------------------------------------

對檢測代碼進行了一些修改,對數據集進行了一些處理。通過 PSO 優化參數後的 SVM 模型測試準確率約為 85.6%,以 100 像素為步長完成 HNM 後的模型準確率將為 83% 左右,但是檢測誤檢測降低很多。後來我又以 50 像素為步長重新 HNM,現在的模型進行檢測效果已經很不錯,誤檢測很少,正確檢測雖然不穩定,但已經滿足需求了。我使用 100 像素做步長,最後對 3.9W 特徵訓練 SVM 模型,模型大小 116M。我使用 50 像素做步長,最後對 9W 多特徵訓練 SVM,模型大小 190M。

多說一句,我使用 HoG 對每張圖片提取了 2900 多特徵。在做 PSO 的時候,之前一直是使用 PCA 將其降維到 500。為了追求更好的效果,後來我都是降維到 2000 做 PSO。雖然會慢很多,但效果好一點。


最新代碼 Github 地址: https://github.com/HansRen1024/SVM-classification-localization

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。