关键点检测二:HRNet训练MPII跑通代码记录

关键点检测二:HRNet训练MPII跑通代码记录

  • 前言
  • 下载数据
  • 训练数据
  • 总结

前言

  • 看到评论区有人问标注文件,所以重新编辑一下:
    链接:标注文件网盘链接
    提取码:87nl

  • 相关内容:

    • 关键点检测一:HRNet数据预处理(MPII)

HRNet整个项目源码我认为无论是项目结构还是变量、函数命名都非常符合中国人的习惯,我看的全过程都非常舒适,所以作为项目小白我通过把源码全部都手敲了一遍狠狠地学习了作者的编程习惯和技巧。
但是在训练代码的时候还是出现了部分小问题,希望通过博客记录一下。

下载数据

MPII数据集官网
MPII下载链接
MPII下载速度挺快的,不用。但是官方的标注格式是matlab,所以标注文件建议下载HRNet源码里Readme里面提供的链接里去下载作者转化后的json格式的标注。
下载解压后的目录结构如下:
关键点检测二:HRNet训练MPII跑通代码记录_第1张图片

训练数据

我的电脑配置很低,我只是想把代码跑起来,不追求复现原论文的结果,因此我把配置文件稍微改了一下。
关键点检测二:HRNet训练MPII跑通代码记录_第2张图片
关键点检测二:HRNet训练MPII跑通代码记录_第3张图片
然后把路径都配置一下。
关键点检测二:HRNet训练MPII跑通代码记录_第4张图片
关键点检测二:HRNet训练MPII跑通代码记录_第5张图片

python tools/train.py --cfg default.py # 终端执行这条语句

但是会报错:
关键点检测二:HRNet训练MPII跑通代码记录_第6张图片
发现explog文件夹都创建在了tools目录下,显然不是我们想要的,所以是路径有问题。修改如下图:
关键点检测二:HRNet训练MPII跑通代码记录_第7张图片

root = pathlib.Path(__file__).parent.parent.parent # 获得项目的根目录
# 然后把目录都改成下面这样
# basic settings
_C.OUTPUT_DIR = str(root / 'exp')
_C.LOG_DIR = str(root / 'log')
_C.DATA_DIR = str(root / 'data')

_C.DATASET.ROOT = str(root / 'data/mpii')

这也就可以跑起来了。
关键点检测二:HRNet训练MPII跑通代码记录_第8张图片

总结

  1. 工程项目中路径的设置很重要,学会Pathlib,比用os.path方便得多。
  2. HRNet通过CfgNode来管理神经网络的参数我觉得很方便,可以用在自己的项目里,唯一不方便的地方是看开源的代码大家都用的全大写字母,表明这是常量,确实很专业,但自己敲代码的时候真的很容易敲错。
  3. 学会使用log:每种配置单独一个文件夹,里面放log文件和训好的模型。多级目录如果用os.mkdir需要多个判断是否存很麻烦,而Path.mkdir(parents=True, exist_ok=True)一句话就可以搞定。
    关键点检测二:HRNet训练MPII跑通代码记录_第9张图片

你可能感兴趣的:(2D关键点检测,计算机视觉,pytorch)