关键点检测实战:HRNet训练MPII代码记录

前言

  • 看到评论区有人问标注文件,所以重新编辑一下: 链接:标注文件网盘链接 提取码:87nl
  • 相关内容: 关键点检测一:HRNet数据预处理(MPII)

HRNet整个项目源码我认为无论是项目结构还是变量、函数命名都非常符合中国人的习惯,我看的全过程都非常舒适,所以作为项目小白我通过把源码全部都手敲了一遍狠狠地学习了作者的编程习惯和技巧。

   但是在训练代码的时候还是出现了部分小问题,希望通过博客记录一下。

下载数据



   MPII下载速度挺快的,不用翻墙。但是官方的标注格式是matlab,所以标注文件建议下载HRNet源码里Readme里面提供的链接里去下载作者转化后的json格式的标注。

   下载解压后的目录结构如下:
在这里插入图片描述

训练数据

我的电脑配置很低,我只是想把代码跑起来,不追求复现原论文的结果,因此我把配置文件稍微改了一下。
在这里插入图片描述
在这里插入图片描述

   然后把路径都配置一下。
在这里插入图片描述
在这里插入图片描述

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

但是会报错:
在这里插入图片描述

   发现explog文件夹都创建在了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')

这也就可以跑起来了。
在这里插入图片描述

总结

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

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空