fire717 / movenet.pytorch

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

backbone:mobilenetv2的结构问题 #40

Open ZouZhuoliang opened 1 year ago

ZouZhuoliang commented 1 year ago

非常感谢您的工作,作为一个菜鸟想请问一下网络结构总体是mobilenetv2的backbone+fpn,但Mobilenetv2以matlab的结构版本或者最常见的版本是224的input,而且依据原论文中stride为1(可残差连接)的有1+3+1=5个,而在您的代码Mobilenetv2的forward中我注意到仅有3次残差连接,且原论文中mobilenetv2无上采样层unsample,这是什么原因导致您选择了将mobilnetv2进行了以下改动?或者是我理解错误?或者是说采用了Inverted Residuals这种mobilenet的特色结构的在业界均可称作以mobilenet为backbone

fire717 commented 1 year ago
  1. input和网络结构是独立的,因为全卷积结构,理论可以支持任何input,唯一影响的是任务head,movenet(light版本)的head是48x48,4倍下采样得到,反推输入就是192
  2. 可以对比原始论文和网上mobilenetv2的开源实现,会发现结构是一致的,upsample是为了结合fpn所以不算对mobilnetv2的改动。
ZouZhuoliang commented 1 year ago

好的,尽管我的问题非常基础,但仍能得到您及时回答,非常感谢,其中我的问题中关于残差连接我应该理解错了,那应该是FPN的残差连接,但在关于mobilenetv2的内容中我没找到其他的残差连接相关的代码,也就是说原mobilenetv2的残差连接在movenet中其实都是删除了的么(为了进一步验证,我尝试用netron将onnx模型可视化,但仍无法查看到层级之间的连接关系,因为关于残差连接的大部分写法都采用的是function而非module),因此冒昧的再次向您确认情况确是如此么? 还有一个问题就是header的尺寸为何选择了48,这里有什么说法么,因为我打算使用240的输入,即header的输入尺寸变为了60,在能正确运行的情况下,不知道这样是否会产生不利的影响,能否说说您的看法