悠唐破坏王段艺璇嵌入骨髓里的打call之力首次披露,杨晔表现中规中矩。骨灰级打call教学视频www.bilibili.com
上次比较了一下三大框架,后来知道AlphaPose是beta版本,不算公平:)。
他们也重现了我跑的实验,有了很大的提升。具体在评论区。
因此我觉得再构造一些图片,然后人工评估,意义不是很大,清明假期,想来欠一个公平的比较,而且我觉得AlphaPose效果过了这么久了,应该不错,而且是Pytorch(我喜欢),所以我一方面可以做一个有趣的活,另外一方面可以再来一次火星撞地球的比较。
玄学开始
指标1 人气
人气这个东西很玄,一方面和不同pose框架的效果有关,另外一方面也考验项目的可用性(比如需要一大堆安装包,项目太乱无法阅读,没有release好的东西都会降低项目的可用性),此外人气也和宣传效果等因素有关。
由于这个指标太玄,地区差异大,我就选取了bilibili关键词检索结果,一方面pose是计算机视觉领域,对视频网站有重要影响,另外一方面bilibili野生技术协会还算比较出名,总体接近框架使用人群,如图:
就指标1来看,国内人气上,OpenPose > AlphaPose >> DeeperCut。我个人体会来看,OpenPose夺冠还是能理解的,毕竟有编译好的东西,相关文档使用也比较全,win版本下下来,cpu和gpu都能跑,多简单。而AlphaPose, 则自己去cmake吧。。。
然后github的star和fork也一定程度反映出受欢迎程度,至于citation,也行。可以看出来,无论是star还是citation,都表明OpenPose的受欢迎程度高于其他。
实战
前面提到了pose estimation是理解人类行为非常关键的一步,而人类的行为包括运动,舞蹈等,而这次想要搞的就是打call,嗯,就是打电话!
首先选取一段较为专业的打call教学视频,前面教学部分跳过,直接进入打call部分。
https://www.bilibili.com/video/av47605673www.bilibili.com本来想要直接输入视频的,但是我发现实在太卡,几次电脑直接死机了,还是硬核搞吧。
首先把视频转为图片,然后对每一个图片进行pose标注,然后再利用标注的点自己画一个“骨灰级“打call视频。
机器配置:Ubuntu16 I7-4700MQ 8G RAM
和之前一样的原因,穷,只用CPU,并且为了统一比较,在linux进行。
因此,需要编译OpenPose的CPU版本,有小坑(网络很不好,子目录caffe要记得git拉回)
AlphaPose手动去掉项目中的``.cuda
```, 如PyTorch CPU version
然后pose-tensorflow问题不大,只装cpu版本的tensorflow即可。
然后对4317个图片进行pose标注,记录下标注的点信息。具体每种方法的点数也稍有不同,具体的output参看Openpose的说明。
指标2 实战之速度
时间上,AlphaPose表现出很好的速度, 是最快的,一晚上就完事了,而别的框架实在是太慢了。。。OpenPose差点把我机器跑坏了。。。。当然有机器的朋友们直接怼GPU即可...
速度上: AlphaPose > DeeperCut > OpenPose
指标3 实战之输出和最后效果
当然除了速度外,质量也非常重要
这个方面,我个人的总结是,OpenPose > AlphaPose > DeeperCut。
原因如下,首先,三者的输出稍有不同,我稍微统一了一下,都是17个点,但是为了效果,我手动计算了一个点的位置,和OpenPose接近,而为了效果,取消了脸上的点,用鼻子作为中点,画个圆。然后做了一些简单的清洗和排序,得到了开头的视频。
这个视频我觉得还是能支持我的观点的,也就是OpenPose表现很好,也很稳定。然后AlphaPose也很不错,那么观点坏在的就是头太抖,也就是对于鼻子位置的标注不稳定。如下图,在两张非常接近的情况下, AlphaPose对于鼻子的标注位置是不如OpenPose稳定的,类似的细节很多,所以,AlphaPose我个人觉得效果不如OpenPose。不过考虑到速度,额,也还行.
然后我DeeperCut的坑点就比较多了??比较多的是标点错误,和神秘的左上角???
总结
OpenPose很棒但是没钱的人玩起来很痛苦,AlphaPose差强人意:) 我喜欢Pytorch
然后deepercut。也许是我姿势不对...
都骨灰了,你会打call