fire717 / movenet.pytorch

A Pytorch implementation of MoveNet from Google. Include training code and pre-trained model.
MIT License
374 stars 87 forks source link

模型的主体结构有相关的论文可以参考吗 #20

Open ljl86092297 opened 2 years ago

ljl86092297 commented 2 years ago

您好,您的模型结构主要是采取了哪篇论文,可以把论文共享一下吗,我想学习一下谢谢。

fire717 commented 2 years ago

Readme说了,backbone是mobilenet. 谷歌博客和我的分享文章也都写了。 head部分的话,没有论文,应该是谷歌自己设计的,本身也是姿态估计中常见的head,没啥创新点,发不了论文吧。

ljl86092297 commented 2 years ago

很感谢您的回答, 在模型的损失函数中,headmap损失为什么在求差以后 loss 还要在乘以target*8+1 这是有什么原因吗? 您可以解答一下或者有相关链接让我自主学习一下吗? image

ljl86092297 commented 2 years ago

还有一个问题,图中 image _bone_idx 为何最大值只有6,如果需要检测17个关键点 是否需要再自己重新设定这个列表值。

ljl86092297 commented 2 years ago

您好关于这些损失函数的设置有相关的论文可以参考吗? 我刚接触这方面 想学习一下,不是很理解为什么需要这样设置损失函数。

fire717 commented 2 years ago
  1. 这个相当于对正负样本加权,对于一个heatmap,关键点区域很小,背景区域很大,就会出现正负样本不平衡的情况,此时的mask背景为0,关键点高斯核最大值为1.可以乘以8再加1,就变成背景为1,关键点最大值为8,这就变成了一个权重,相当于高斯核loss放大8倍,背景的loss不变
  2. 17关键点是要重新设置,你可以直接遍历两两组合,也可以这样手动指定。这里7个点是我的场景只有7个点。而且实际测试这个多少个点、多少个组合,好像对整体精度影响并不大,就忘记改了
  3. 这个没啥专门讲的论文吧,相当于基础知识了,可能一些论文中会作为一个小点提一下就过了,你要学习只有多读多看
ljl86092297 commented 2 years ago

感谢您,所以这个8就是一个经验所得。

ljl86092297 commented 2 years ago

关于您生成label 的offset 图中 small 的值就是large//4, 为什么需要这么多操作呢? image

还有这里 为什么需要中心点关于图一半进行分类, 为什么中心点的左右两边的值不等。 image

ljl86092297 commented 2 years ago

第二幅图是label2reg函数内的

fire717 commented 2 years ago

offset文章中写过,这种缩放的会有偏移 第二个其它issue提到过,你翻翻