建議使用後面的 EdgeBoxes 進行邊框預測,比滑動窗口快且準確。如果大家感興趣,也建議使用 faster rcnn SPN 層中的 anchor 技術。
《SVM 物體分類和定位檢測》這一系列博文結束了。
總結一下我使用的最佳方法流程吧。
-
先使用 HoG 提取特徵 feature
-
使用 PCA 對 feature 進行降維,然後使用 PSO 優化參數 C 和 gamma,降維的目的是加快 PSO 運行速度,否則太慢,但分類效果降低
-
使用第一步獲得的 feature 和第二步獲得的參數訓練一個初始 SVM 模型
-
使用 Hard Negative Mining 優化 SVM 模型
-
使用滑動窗口進行檢測,最後使用 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