insightface项目Retinaface训练方法

【背景】最近由于公司项目需要,花了点时间入门了一下深度学习算法。选择deepinsight/insightface项目的Retinaface算法练手,按照项目说明的training步骤无法直接运行,这里把踩过的坑都记录一下。

#下载源码:

 

https://github.com/deepinsight/insightface.git

#环境部署

insightface项目Retinaface训练方法_第1张图片

这里用的是MXNet的框架,MXNet和CUDA的环境部署不在本文档的范围内,大家自行百度,我的环境是ubuntu 18.04.3\python 3.7\CUDA 10\cudnn7.5,硬件是一块GTX 1080,显卡驱动是nvidia-driver-430(由于显卡算力有限,我没有训练处自己的模型,但是不影响本文的介绍的整体流程)

第二步我跳过不执行

第三步期间会要求安装一些依赖,用pip安装,直接用原生的源地址就可以了。

#数据准备

insightface项目Retinaface训练方法_第2张图片

第一步很重要,要用作者自己准备的标注,不能用widerface自己的标注。下载以后解压出来里面有三个文件夹test、train、val,把train路径里面的label.txt复制到第三步的路径里面。

第二步就是下载,原来的数据集是再百度云,现在迁移到了腾讯云,没差,对应没有会员的人来说都一样慢。这里要用官方的版本,有些版本把所有的图片都放到了一个目录下面,也无法训练。

第三步要注意是在RetinaFace文件夹路径下再创建data文件夹,下图是我的文件路径。

insightface项目Retinaface训练方法_第3张图片

#训练

insightface项目Retinaface训练方法_第4张图片

前两步没什么需要强调的问题,我再第步运行的时候遇到两个问题,第一个是再Pycharm里面,设置环境变量没有生效,所以我直接再代码里面修改了使用的GPU,再train.py的359行,直接改成了cvd = '0,1,2'.strip(),其中0, 1, 2指的是你训练时候要用的GPU。

insightface项目Retinaface训练方法_第5张图片

第二个问题是启动配置里面没有OHEM_MODE的默认配置,所以导致执行到下面内容的时候抛出异常:

这里我直接在rcnn/config.py加了config.TRAIN.OHEM_MODE = 1。但是我并不明白OHEM算法,也不知道这个模式选择对训练结果有什么影响,希望知道的小伙伴在评论中帮忙解答一下。

接下来就是漫长的训练过程了,由于设备性能有线,要完成10000轮 WIDERFACE 数据集的训练,需要233天....所以只能先学习到这里了,等借到了更强劲的设备以后再把模型训练出来试试效果如何~

你可能感兴趣的:(insightface项目Retinaface训练方法)