经常使用Stable Diffusion出图的小伙伴们可能都苦坏手久矣。尽管已经陆陆续续有了非常多的方法,比如:ControlNet的OpenPose、inPainting、甚至是做出了很多手部的深度图等等方式,但是只有大量出图,又有这非常精确控制需求的小伙伴心里最清楚,这些方法或者无法打到稳定、准确,或者非常麻烦复杂,或者需要掌握一定的ps修图能力……
不过,国人再次提升了CN控图的上限,这就是来自IDEA-Research(粤港澳大湾区数字经济研究院)的全身姿态估算模型。这是几位作者:Zhendong Yang, Ailing Zeng, Chun Yuan, Yu Li。
他们是怎么做到的呢?
首先,据官方介绍,他们是使用了两段蒸馏的方法实现的。同时,训练的基础是来自MMPose和ControlNet。
ControlNet已经如雷贯耳了,有兴趣看这篇帖子的图友应该已经用的熟的不能再熟了。那么MMPose又是何方神圣,可能就没那么多人知道了。
MMPose是来自另一个国人团队,香港中文大学-商汤科技联合实验室(Open-MMLab)的项目,他们在B站有自己的官方账号(OpenMMLab的个人空间),他们出品的所有视频,UP几乎是每期必看!
我们还是继续回来说说DWPose吧!所谓两段蒸馏是什么意思呢?摘抄论文的简要如下:
“第一阶段,是提炼设计了一种权重递减策略,同时利用教师(Teacher)的中间特征和最终对数,以及可见和不可见的关键点,从头开始监督学生(Student)。
第二阶段,对学生模型本身进行提炼,以进一步提高成绩。与之前的自我知识提炼不同,这一阶段作为即插即用的训练策略,只需 20% 的训练时间即可对学生的大脑进行微调。
由于数据限制,我们探索了 UBody 数据集,该数据集包含现实生活中应用的各种面部表情和手势。综合实验表明,我们提出的方法简单而有效。我们在 COCO-WholeBody 上取得了新的一流性能,将 RTMPose-l 的全身 AP 从 64.8% 显著提高到 66.5%,甚至超过了 RTMPose-x 教师 65.3% 的 AP。我们发布了一系列不同尺寸的模型,从很小到很大,以满足各种下游任务的需要。我们的代码和模型可通过Github上的项目存储库获取。”
官方也展示了一些示例图,来对比DWPose和OpenPose在人体姿态估算上的区别。
以上4组图片,都使用了包含双手的源图,并且脸部再画面中的分辨率也比较小,说明了作者团队在研发这款模型的过程中挑战了比较高的难度。从Keypoints图就能看出来对于源图手部细节的估算远远超过传统的OpenPose。
官方还给出了在COCO 2017数据集上做的多项测试对比结果。(个人推测对比图Arch里面,t应该就是teacher模型,s应该是student模型,m是混合了两者,最终得到了两个不同输入分辨率的latest模型,如果不对,请大佬们予以指正)。最良心的是,不同版本的pth模型都给出了百度网盘的下载链接,突出显示了国人团队为国人用户考虑的周到!
Git上很快就有另一位国人跟进并重构了模型的推理,并放出了自己的对比。
当我在今天(2023年8月5日)下午18点多看到CN更新的时候,相当激动,迫不及待地在群里和群友们分享了这个重要的消息。并马上上手开始写这篇帖子。不过非常可惜的是,当我一边更新WebUI一边写稿的时候,发现更新之后mmpose模块一直加载失败,再试还是失败……
到了20点之后发现ControlNet已经版本回退到了1.1.234,给出的原因是更新的代码中使用了mmcv 和 detectron这两个危险列表中的项目,合并了DWPose的新版本在Ubuntu上可以成功安装并运行,但是在4台Windows系统上更新全部报错(来自lvmin大佬的亲自测试,居然大佬突然亲自现身,可见这个DWPose有多强!国人威武!mmcv是一个视觉基础库,希望不会给DWPose加入CN带来太大的阻碍吧)
不过,这么好的国人AI之光项目,相信很快就能再次修复这个问题!