您的位置:首页 > 编程语言 > Python开发

【Machine Learning】【Python】五、Sliding Window + SVM + NMS for Localization ---- 《SVM物体分类和定位检测》

2017-07-05 09:54 435 查看
建议用后面EdgeBoxes做边框预测,比SW快一点准一点。如果大家感兴趣,也建议用faster rcnn SPN层中的anchor技术。
--------------------------------------------------------------------------
《SVM物体分类和定位检测》这一系列博文结束了。

总结一下我用着最好的方法流程吧。

1. 先HoG提取特征feature
2. 用PCA对feature降维然后用PSO优化参数C和gamma,降维的目的是加快PSO运行速度,否则太慢,但分类效果降低
3. 用第一步拿到的feature和第二步拿到的参数训练一个初始SVM模型
4. 用Hard Negative Mining优化SVM模型
5. 用滑窗进行detection,最后用NMS做边框回归

目前2700正样本,2700负样本,只经过PSO优化参数后训练好模型,分类测试准确率84%。测试集1200负样本,700正样本。
但是检测框的精确不高,误检测很多。

------------【2017.07.10 更新】-------------------------------------------------------------------------------------------
对detection代码修改了一点,对数据集进行了一些处理。通过PSO优化参数后的SVM模型测试准确率85.6%左右,以100像素为步长做完HNM后的模型准确率将为83%左右,但是detection误检测降低很多。后来我又以50像素为步长重新HNM,现在的模型做detection效果已经很不错,误检测很少,正确检测虽然不稳定,但是已经满足需求了。我用100像素做步长,最后是对3.9W特征训练SVM模型,模型大小116M。我用50像素做步长,最后是对9W多特征训练SVM,模型大小190M。
多说一嘴,我用HoG对每张图片提取了2900多特征。在做PSO的时候,之前一直是用PCA给降维到500。为了追求更好的效果,后来我都是降维到2000做PSO。虽然会慢很多,但效果好一点。
-------------------------------------------------------------------------------------------------------------------------------------
最新代码Github地址: https://github.com/HandsomeHans/SVM-classification-localization
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: