liam_sun
liam_sun
谢谢。这些信息我之前看过,也测试过官方的multipose模型。另外,也修改了代码,Multipose已经可以训练起来。不过,后处理的部分,通过netron观察,跟singlepose不太一样,并不是取出6个点(center的index,需要先做Maxpool,再做topK=6的处理),然后每个点和singlepose相同处理。我这样试验过,效果比官方模型差。主要是netron中看到的一些操作,比较难跟实际的op对应起来。我再研究看看。
目前应该还没有开源的代码,连singlepose的训练代码都没有开源。
谢谢指点。我修改的只是center weight,算法就是上面贴出来的,我提前生成了这个档,并且在代码里面做了调整,比如: movenet_loss.py _center_weight_path = 'lib/data/thunder_weight_center.npy' 关键点的权重矩阵,我想你说的是这个: _range_weight_x = np.array([[x for x in range(64)] for _ in range(64)]) _range_weight_y = _range_weight_x.T 等差数列,我已经修改48为64了。
OK,我再查一下。按理训练正常收敛,推理不应该是这个样子,目前我训练到: e33_valacc0.73361.pth epoch 33, val精度73%的样子。
Hi author, 请教一下,boneLoss里面,设定了bone_idx,看起来像是针对你自己数据集做的设置。如果按照原生coco 17个关键点的设定,这个bone_idx应该如何设置呢?Thanks.
是的,我是这样理解的。不过如果按照原生coco的关键点索引: _bone_idx = [[0,1],[1,2],[2,3],[3,4],[4,5],[5,6],[2,4]] 代码中的[2,3]表示右眼跟左耳的连接,这个似乎不太合理,所以我才有此一问,是不是这是适配你自己的数据集的关键点。 另外还有几个问题想请教一下: 1. 之前我修改代码进行thunder model训练后,推理结果不正常,原因是forward里面做了mean/std的预处理,而由于我自己写了处理视频的代码,又做了一次同样处理,所以造成这个结果。修正后看起来结果就正常多了,不过效果一般。想请问一下,你的数据集除了有清洗后的coco,其它诸如yoga/fitness等标注,是自己从video中抽取图片进行标注,还是网上有现成的数据可用? 2. 有什么可视化手段或者工具来观察数据集的关键点分布吗? 谢谢指点!!
好的,了解了。我想观察的是分布区域。因为我看到之前你的那篇文章里提到:关键点区域面积分布。我想这应该是看样本的area指标,然后做直方图分析,这样理解对吗?
好的,多谢指点,我再研究看看,有问题再跟你请教。
请教一下,我自己改写shufflenetv2作为backbone,采用width mult 1.0的输出channel,基于原生的coco(用你的make_coco_data_17keypooints.py做了过滤),看起来训练的时候,很快Loss就不再下降,val acc则开始下降。 直接使用代码中的movenet_mobilenetv3.py(看起来像shufflenetv2做了一点改动),训练也是同样现象。 请问有什么建议吗?
了解。不过我这边的实验看起来,直接使用movenet_mobilenetv3.py training会不收敛。我自己改写的shufflenetv2,也是同样现象。我再研究看看。