点击上方↑↑↑“OpenCV学堂”关注我
来源:公众号 新智元 授权
兄弟们又来学技术啦!
今天讲的是人体动作识别(Human Action Recognition),也就是通过模型识别出图片、视频中的人体动作姿势。
最近Reddit的一个网友突发奇想,如果把模型用在成人内容领域,那一定可以大大增加色情视频的鉴别和搜索的准确度。
据作者称,他建立的深度学习模型以图像RGB、骨架(Skeleton)和音频作为输入,对视频中的演员姿势识别准确度已经可以达到75%了。
不过并非只是模型的简单迁移,训练过程也遇到了一些技术上的难关,主要是因为摄像机位置在视频中经常会变换。
小编根据网友的描述推测,拍摄成人电影的摄像机可能是没有固定机位、或机位变换次数多,而人体动作识别的模型通常应用于监控视频等有固定位置的摄像机。
作者还表示,训练数据集相对较小也是一个问题,他只有大约44小时的训练数据,并且影片中的人物位置通常距离很近,所以大多数视频很难得到准确的姿势估计,也就没有办法将所有的位置纳入基于skeleton的模型中。
一个比较新奇的发现是,输入流中的音频信号,对于4个action的分类是有提升效果的,不过也只是对某些action有用。
帖子一出,也是获得了技术大咖们的一致点赞。
一切都是为了科学!
不过网友们也立刻明白了作者的核心诉求:求资源!
有网友表示,你要么能得到海量的资源支持,或者一点也拿不到。
也有人表示他曾经也做过类似的项目,他遇到的问题主要是高度嘈杂的场景和非常不稳定的摄像机。真正困难的场景是有3个以上演员参与的场景,会让实体的区分会变得很困难。
并且他表示对2人以上的sex position没有概念,所以看到这个模型如此容易地达到这么高的准确率,感觉有点受挫,想看看楼主是怎么实现的。
最慷慨的网友当场表示,我愿意赞助数据集!视频大小140.6TB,时长达到11年6个月,包括6416位表演艺术家,还有46.5GB的图片。
有网友跟着评论,替自己搞科研的朋友同求资源。
至于这项研究有什么意义,网友表示应用前景可大了!以后在资源网站上检索,可以按照指定的position对视频进行过滤,而不只是传统的标签、标题、类别等等。
正经的科学
原作者公开了源代码,表示他的目的是看看最先进的人类动作识别(HAR)模型在色情领域的表现如何。
代码链接:https://github.com/rlleshi/phar
HAR是深度学习领域中一个相对较新的、活跃的研究领域,其目标是从各种输入流(如视频或传感器)中识别人类行为。
从技术角度看,色情领域很有趣,因为它有一些与众不同的难点,如光线变化、遮挡以及不同摄像机角度和拍摄技术的巨大变化(POV、专业摄像师)使得位置与动作识别变得困难。两个相同的位置与动作,可能存在多个不同的相机视角拍摄,从而完全混淆了模型的预测。
作者收集到的数据集非常多样,包括各种录音,如POV、专业拍摄的、业余的、有无专门摄像人员的等等,还包括各种环境、人和摄像机的角度。
作者也表示,如果只使用专业团队拍摄的影片,这个问题可能不会特别严重。
根据收集到的数据集,作者总结了17个动作的识别,如亲吻等,不过动作的定义可能是不全面的,也可能有概念上的重叠。
其中作者把抚触把玩(fondling)当作一个占位符,没有其他动作类别检测到的时候,就将其视为抚触把玩,不过作者在标注数据过程中发现,44小时的影片数据中只得到了48分钟的抚触把玩数据。
项目的实现基于MMAction2,它是一个基于PyTorch的视频理解开源工具箱,可以对人体的骨架动作进行识别等。
取得SOTA结果的模型是通过基于三个输入流的三个模型的后期集成得到的。
与只使用基于RGB的模型相比,可以取得明显的性能改进。由于可能不止一个动作可能同时发,并且一些动作/位置在概念上是重叠的,所以评价标准以前两名的预测准确性作为性能度量。
目前多模态模型的准确率为~75%。但由于数据集相当小,总共只进行了约50次实验,因此有很大的改进空间。
首先介绍一下在性能和运行时间上都表现最好的多模态(Rgb + 骨架 + 音频)模型。
作者对视频RGB流使用TimeSformer,对骨架流使用poseC3D,以及用于音频流的resnet101。
这些模型的结果通过集成在一起,因为这些模型的重要性不同,所以微调后的权重是分别是0.5, 0.6和1.0
另一种方法是一次用两个输入流训练一个模型(即rgb+skeleton和rgb+audio),然后将它们的结果集成起来。
但在实际上,这个操作是不可行的。
因为如果模型的输入包含音频输入流,它只能对某些动作,比如deepthroat由于咽喉反射导致音调比较高,而对于其他动作,则不可能从其音频中获得任何的有效特征,从音频的角度来看,他们是完全相同的。
同样,基于骨架的模型只能用于那些姿势估计准确度高于某个置信度阈值的情况(对于这些实验,所用的阈值是0.4)。
例如,对于scoop-up或the-snake等高难度稀有动作,由于画面中人体位置比较接近,在大多数相机角度下很难得到准确的姿势估计(姿势变得模糊,混合在了一起),会对HAR模型的准确性产生了负面的影响。
对于诸如 doggy, cowgirl或missionary等普通动作来说,姿势估计的效果都不错,可以用于训练一个HAR模型。
如果我们有一个更大的数据集,那么我们可能会有足够多的难分类姿势的实例,再用基于骨架的模型训练所有的17个动作。
根据目前的SOTA文献,基于骨架的模型优于基于RGB的模型。当然,理想情况下,姿势估计模型也应该在sex domain中进行微调,以获得更好的整体姿势估计。
对于RGB输入流,基于注意力的TimeSformer架构实现了3D RGB模型的最佳结果,推理速度也非常快(~0.53s/7s clips)。
RGB模式总共有~1.76万个训练片段和~4900个评价片段,并应用了各种数据增强技术,如重新缩放、裁剪、翻转、颜色反转、高斯模糊、弹性变换、仿生变换等。
基于骨架模型的最佳结果是由基于CNN的PoseC3D架构实现的,模型的推理速度也很快(~3.3s/7s clips)。
姿势数据集比原始的RGB数据集要小得多,只有33%的帧的置信度高于0.4,所以最终测试集只有815个片段,且目标类别仅为6个。
基于语音的模型使用了一个简单的ResNet 101,jiyu Audiovisual SlowFast,推理速度非常快(0.05s/7s clips)。
对语音的预处理为从数据集中剪掉不够响亮的音频。通过修剪最安静的20%的音频,取得了最佳效果。总共有大约5.9万个训练片段和1.5万个验证片段。
参考资料:
https://www.reddit.com/r/MachineLearning/comments/va0p9u/p_r_deep_learning_classifier_for_sex_positions/