
本文首发于知乎专栏“人工智能从入门到逆天杀神”,本文以及本专栏所有算法源代码都可以在神力AI平台获取,如果你没有GPU但需要预训练模型或者你想获取更多开箱即用的AI算法,欢迎加入我们的会员,一杯咖啡即可带你入门AI,传送门:http://manaai.cn。本文欢迎二次转载,但请保留原作版权信息,即该段信息,谢谢合作!
在上一篇文章中,我给大家介绍了如何采用更加先进的特征抽取方式来做目标检测器的回归。于是我们尝试了如何构建一个FPN即特征金字塔。我们在上一篇文章结尾的时候,基本上构建完了所有的代码,但还没有训练并进行测试查看最终结果。
我们由于时间关系仅仅训练了4-5个Epoch,但效果已经非常不错,这一点跟SSD改进很大,任何一阶段算法诸如SSD,DSSD,RefineDet,RFBNet在训练的早期都会出现大量检测结果的情况,这得益于特征金字塔的bottom-up, stop-down的编解码策略以及focal loss的强大选择能力,在训练的早期就可以干掉大部分的背景。具体效果如何:
only 4 epochs result, about 30 epochs the result could be much more accurate:



相应的源代码整体工程文件可以在这里找到:
神力AI(MANA)-国内最大的AI代码平台manaai.cn

预测方式
我们最终实现的模型将所有的检测pipeline和nms集成到了一起,并且采用了GPU实现的nms,即使在python上也不会在nms这一步浪费太多时间。因为我们的时间实在太宝贵了,分秒必争。
预测脚本:
import
整个预测过程还是比较简单,这个预测脚本从文件夹读取所有图片,进行预测。另外在我们的原始工程中,也提供了对webcam和视频文件进行预测的脚本。
总结
通过这个实现,我们得到了一些经验上的收获,总结来说如下:
- 速度相对于二阶段来说够快,精度也很错,关键是能够在短时间内得到一个几乎可用的模型;
- 毫无疑问这个方法如果接上mask head也能有比较不错的表现,原因是它的特征抽象能力很强并且定位很准确,这一点你从一些比较少的类别可以在短时间内精准回归可以看得出来。
在我们完成这边文章的时候,来自MANA AI社区的朋友想让我们实现一个基于fpn+ssd的rbox检测器,简单来说从回归矩形框到回归带有reotation的矩形框,感兴趣的朋友也可以参考他在mana社区发起的讨论:
FPN+RSSD : help in implementing the modeltalk.strangeai.pro
我们将会在接下来的文章中继续实现这些功能:
- mask head加入实现一个能够快速检测+实例分割的检测器;
- 如上一位同学所说,尝试加入rotation量进行回归。