Mr.Fire
Mr.Fire
Um...Data control...Maybe you mean Dataloader (from image loading to label making before put into network)? It's in `lib/data/data_tools.py` Or if you mean how to do data augmentation, all augmentation function...
这些问题readme和谷歌博客其实都有答案, 就不能先看看再提问吗? 1. 原始模型因为有大量非开源内部数据训练(_Evaluations on the Active validation dataset show a significant performance boost relative to identical architectures trained using only COCO._ ),在没有同样数据训练的情况下,你没办法比较复现的模型效果是否一致 2. movenet本身追求的是轻量级,是嵌入式设备的实时性,因此精度上肯定比不上sota模型(比如bottom-up的openpose、top-bottom的hrnet),只能说在有足够、高质量的数据下还是能取得不错的精度 3. In readme part3:_Surely this...
C++加载模型跟模型本身无关,你转onnx后可以用C++版本的torch、onnxruntime、opencv等各种框架加载,也可以再转tengine、tnn、mnn、ncnn、tensorrt等推理框架再加载。
你指的是模型输出的数据后处理吗? 那个其实一开始我是放在模型里的,但是考虑可移植性,才从模型拿出来。 因为其中的argmax之类的算子很多框架是不支持或者有问题,比如我常用的TNN不支持五维数据。 原始的movenet是用的tflite,因此支持相关算子。但是tflite相比NCNN、MNN、Tengine、TNN等专门的框架其实性能差很多,除非只处理单张,一般要求实时性的都不会用tflite(或者你硬件性能够好)。 如果你的目标只是移植安卓,完全可以用我说的那些框架,速度会快很多,进而再满足实时性的前提下你可以用更大的模型或者尺寸来提升精度。 后处理那块其实不难,移植C++实现参考python代码写其实花不了多少时间,C++也有opencv。
实际上那个是非常早的尝试,并没有保留代码。一开始自己复现的考虑就是原始tflite模型包含了后处理因而不好部署,所以自己复现很早就把模型和后处理分开了,这样分离开也方便早期复现的时候debug。
Readme说了,backbone是mobilenet. 谷歌博客和我的分享文章也都写了。 head部分的话,没有论文,应该是谷歌自己设计的,本身也是姿态估计中常见的head,没啥创新点,发不了论文吧。
1. 这个相当于对正负样本加权,对于一个heatmap,关键点区域很小,背景区域很大,就会出现正负样本不平衡的情况,此时的mask背景为0,关键点高斯核最大值为1.可以乘以8再加1,就变成背景为1,关键点最大值为8,这就变成了一个权重,相当于高斯核loss放大8倍,背景的loss不变 2. 17关键点是要重新设置,你可以直接遍历两两组合,也可以这样手动指定。这里7个点是我的场景只有7个点。而且实际测试这个多少个点、多少个组合,好像对整体精度影响并不大,就忘记改了 3. 这个没啥专门讲的论文吧,相当于基础知识了,可能一些论文中会作为一个小点提一下就过了,你要学习只有多读多看
offset文章中写过,这种缩放的会有偏移 第二个其它issue提到过,你翻翻
v3 is just for test and it's acc is lower than v2 in my test, also origin movenet backbone is v2, so if u wanna use this I suggest v2....
1. As for this repo, inputs are just : (1,3, 192, 192), its the MoveNet Lightning version . If u wanna use other size, u need to change the weight...