关键点检测二:HRNet训练MPII跑通代码记录
关键点检测二:HRNet训练MPII跑通代码记录
- 前言
- 下载数据
- 训练数据
- 总结
前言
-
看到评论区有人问标注文件,所以重新编辑一下:
链接:标注文件网盘链接
提取码:87nl -
相关内容:
- 关键点检测一:HRNet数据预处理(MPII)
HRNet整个项目源码我认为无论是项目结构还是变量、函数命名都非常符合中国人的习惯,我看的全过程都非常舒适,所以作为项目小白我通过把源码全部都手敲了一遍狠狠地学习了作者的编程习惯和技巧。
但是在训练代码的时候还是出现了部分小问题,希望通过博客记录一下。
下载数据
MPII数据集官网
MPII下载链接
MPII下载速度挺快的,不用翻墙。但是官方的标注格式是matlab,所以标注文件建议下载HRNet源码里Readme里面提供的链接里去下载作者转化后的json格式的标注。
下载解压后的目录结构如下:

训练数据
我的电脑配置很低,我只是想把代码跑起来,不追求复现原论文的结果,因此我把配置文件稍微改了一下。


然后把路径都配置一下。


python tools/train.py --cfg default.py # 终端执行这条语句
但是会报错:

发现exp、log文件夹都创建在了tools目录下,显然不是我们想要的,所以是路径有问题。修改如下图:

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')
这也就可以跑起来了。

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

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
