用神经网络做权重优化的目标检测项目,融合了CNN、DQN和SVM这三块内容。说白了,就是用强化学习来教一个智能体去找图像里的目标,还挺有意思的。训练是在 Google Cloud GPU 上跑的,效果还不错,跑完能自动框出目标位置。
特征提取靠的是预训练的 CNN,像是先把图像切出几个区域,提取每一块的特征。用Deep Q Network,一步步调整边框的位置,目标就是尽少地移动几次就把对象框出来。再用一个SVM 分类器确认框出来的东西是不是目标类别。
项目结构也清晰,Matlab
代码整理得还行,比较适合用来做强化学习和图像的结合实验。适合已经有点深度学习基础、又想试试强化学习落地的同学。
代码原作者是Tashrif Billah和Alexander Loh,哥伦比亚大学那边搞出来的,研究味挺浓,但你要是会用也能直接上项目。不想用 Google Cloud?没事,本地有 GPU 照样能跑。
运行建议:先从数据集中抽图像和框信息,再搞特征提取,训练那部分可以用你自己的 GPU 资源。代码整体可读性还行,模块拆得清楚。
如果你想看看相关技术的其他实现,比如网络安全、入侵检测、SVM 分类,不妨瞄一眼下面这些:
- 基于神经网络的网络入侵检测 Matlab 源码
- SVM、BP 神经网络、随机森林 Matlab 代码
- 支持向量神经网络(SVNN)MLP 训练方法
- Two-Layer-CNN-on-MNIST-master
,强化学习+图像这个组合,还是蛮值得一试的。如果你对 DQN 感兴趣,或者想找点可落地的目标检测练手项目,这份代码还挺适合拿来研究下的。