Simple Baselines for Human Pose Estimation代码阅读

simple baseline是coco2017人体关键点检测亚军,他的代码是微软提供的,在python没有类似于springboot等框架的时候,python的代码经常会写的五花八门。作为一个刚入门的小白,通过学习这种规范化的代码可以很好地提升自己对于框架的认知能力。并且微软的代码可以给我提供一个很好的参考。

代码的总体结构如上图所示

  1. data中有coco的ann,images,后一个person_detect_result是MS自己测试出来的框图结果。
  2. experiment是网络训练中保存的参数,一般以yaml格式进行存储。针对不同的resnet,设置了不同的超参数数值。
  3. lib内包含所有工程代码,
    1. core中包含config,evaluate,function,inference,loss四个函数。
    2. dataset包含继承nn.DataSet的JointsDataset,用于实现getitem方法,coco和mpii为从不同数据集获取图像的方法。用于解耦。
    3. models包含pose_resnet,为模型的核心代码,继承了resnet非全连接层写法,并在后方添加了反卷积直接输出。nms方法,用于提升结果精度。
    4. utils方法中包含transform,utils->create_logger, get_optimizer, save_checkpoint,vis保存图像,zipreader.
  4. log记录按时间打的代码
  5. models按不同的数据集,不同的backbone和inputsize记录了不同的ckpt
  6. otuput按数据集->backbone->inputsize打log
  7. pose_estimation包含train和valid两个算法,train的过程也执行了valid算法。

相关文章: