首页 > 其他分享 >关于REACT2024挑战赛

关于REACT2024挑战赛

时间:2024-01-10 14:44:27浏览次数:32  
标签:reaction 3dmm 16 listener 128 关于 REACT2024 挑战赛 256

关于REACT2024

首先,挑战赛官网如下:https://sites.google.com/cam.ac.uk/react2024/home
这个挑战赛的任务是:建立一个机器学习模型,在双人交互的背景下,通过说话者的视频、音频、表情等数据,生成听者的面部反应并要保证反应的合理性(FRDist and FRCorr)、多样性(FRVar, FRDiv, and FRDvs)、同步性(FRSyn)、真实性(FRRea)。


DATASET

  • NoXI: NOvice eXpert Interaction dataset]
  • RECOLA: REmote COLlaborative and Affective dataset
    这两个数据集都是需要找官方并签协议书的,然后官方会发送将两数据集混合筛选好的数据集。(缺点是OneDrive下载数据集会丢失文件)

数据集主要分为以下四部分:

  • 1)cropped_face (“Speaker-Listener”视频, mp4格式)
  • 2)3D_FV_files (“Speaker-Listener”3DMM系数, npy格式)
  • 3)Audio_files (“Speaker-Listener”音频,wav格式)
  • 4)Emotion (“Speaker-Listener”面部数据,15个面部动作单元(AU)+2个面部影响参数+8个面部表情(中性、开心、悲伤等), csv格式)

为便于网络读取,加快训练速度,我将mp4数据打包成npy数据[seq_len, img_size[0], img_size[1]],其他不变。


Challenge Tasks

1、Offline Multiple Appropriate Facial Reaction Generation (Offline MAFRG)

输入:说话者的audio_clips和video_cilps, 实际seq_len=751,训练时随机从中裁切256帧作为patch
输出:listener_emotion, listener_3dmm, distribution (latend_dim的分布,这个涉及VAE,暂时对其还不是很了解)

2、Online Multiple Appropriate Facial Reaction Generation (Online MAFRG)

输入:说话者的audio_clips和video_cilps,实际seq_len=751,训练时随机从中裁切256帧作为patch
输出:listener_emotion, listener_3dmm, distribution


Metrics

  • Facial reaction correlation (FRCorr)面部反应相关性
  • Facial reaction distance (FRDist)面部反应距离
  • Appropriate facial reaction prediction accuracy (ACC)合适面部反应预测准确度
  • Diverseness among generated facial reactions (FRDiv)生成的面部反应的多样性
  • Facial reaction variance (FRVar)面部反应差异
  • Diversity among facial reactions generated from different speaker behaviours (FRDvs)不同说话者行为产生的面部反应的多样性
  • Facial reaction realism (FRRea)面部反应真实性
  • Synchrony (FRSyn)同步性
Metric

任务实现细节

Offline MAFRG(以TransVAE为例)

1、将video、audio、emotion、3dmm随机从751帧里抽取256帧作为patch,包括speaker_video_clip [B, 256, 224, 224], speaker_audio_clip [B, 256, 78], speaker_emotion [B, 256, 25], speaker_3dmm [B, 256, 58], listener_video_clip, listener_audio_clip, listener_emotion, listener_3dmm, listener_reference (listener_video[0],是原751帧的第一帧) [B, 1, 224, 224];

2、将speaker_video_clip通过Conv3D得到x[B, 256, 128],speaker_audio_clip通过Linear得到y[B, 256, 128],将x和y拼接cat在一起再通过Linear得到speaker_behaviour_feature[B, 256, 128];

3、speaker_behaviour_feature通过Linear得到x, shape不变,同时创建两个可学习参数mu_token和logvar_token, shape和x一样,并随机初始化torch.randn,然后拼接cat在一起得到x [B, 2+256, 128], 再通过一层TransformerEncoder (mask全为0,不遮蔽),得到z [B, 2+256, 128], 令mu和logvar分别等于z[0]和z[1],logvar再exp()和pow(0.5)得到std,对mu和std取正态分布dist [B, 128],然后rsample一个值motion_sample [B, 128] (mu + eps*std, eps随机从标准正态分布中采样);

4、创建time_queries(zeros[B, 256, 128])并加上positionembedding得到tgt,并创建tgt_mask[n_head*B, 256, 256],上三角矩阵,然后升维motion_sample至[B, 1, 128]并令其为memory,将三者送入一层TransformerDecoder得到listener_reaction,令其作为tgt和memory再加上tgt_mask送入一层TransformerDecoderTransformerDecoder得到listener_reaction [B, 256, 128];

5、listener_reaction通过Linear得到listener_3dmm_out[B, 256, 58],最后将listener_reaction和listener_3dmm_out拼接cat在一起得到x[B, 256, 128+58],通过两层Linear(128+58 -> 128 -> 25)得到listener_emotion_out [B, 256, 25];

6、最后输出listener_3dmm_out、listener_emotion_out、dist

Online MAFRG(以TransVAE为例)

1、将video、audio、emotion、3dmm随机从751帧里抽取256帧作为patch(与offline task一致);

2、设置window_size(16),将256帧划分为256//16=16个时间段

3、第一次创建listener_reaction_3dmm(zeros[B, window_size, 224, 224])和listener_reaction_emotion(zeros[B, window_size, 25]);

4、当计算第i(i=1,2,..16)个时间段的listener_reaction时,先取前i个时间段(包括第i个)的speaker_video[B, (i *16), 58]和speaker_audio[B, (i *16), 78],然后得到speaker_behaviour_feature[B, (i *16), 128],同时注意第1个时间段后续计算与offline一样,也就是说不使用下面5-8的方法

5、将speaker_behaviour_feature、listener_reaction_3dmm和listener_reaction_emotion拼接cat得到fuse [B, (i *16), 128+58+78],通过Linear得到encoded_feature [B, (i *16), 128];

6、令past_reaction_3dmm和past_reaction_emotion为前i-1个时间段的listener_reaction_3dmm[B, (i-1 *16), 58]和listener_reaction_emotion[B, (i-1 *16), 25];

7、将encoded_feature按offline的第3点处理方法得到motion_sample [B, 128]和dist [B, 128],然后再将motion_sample通过offline的第4点处理方法得到listener_reaction [B, 16, 128],然后将past_reaction_3dmm通过Linear得到past_reaction_3dmm[B, (i-1 *16), 128]并令past_reaction_3dmm_last = past_reaction_3dmm[:, -1] ([B, 16, 128]),也就是最接近第i个时间段的那帧;

8、创建tgt_mask [n_head*B, (i *16), (i *16)],将listener_reaction通过Linear得到listener_reaction,shape不变,然后将listener_reaction与past_reaction_3dmm拼接cat得到all_3dmm [B, i *16, 128],令all_3dmm为tgt和memory,加上tgt_mask通过一层TransformerDecoder得到listener_3dmm_out [B, i *16, 128],然后再取第i段的16帧为新的listener_3dmm_out [B, 16, 128],再将其送入LSTM(input = listener_3dmm_out, (h_0 = past_reaction_3dmm_last, c_0 = past_reaction_3dmm_last)),得到listener_3dmm_out [B, 16, 128],最后通过Linear得到最终listener_3dmm_out [B, 16, 58];

LSTM

9、与offline第5点类似,通过listener_3dmm_out得到最终的listener_3dmm_out [B, 16, 58]和listener_emotion_out [B, 16, 25];

10、将listener_reaction_3dmm和listener_reaction_emotion逐段cat,dist逐段append,最后得到[B, 16*16, 58/25]和[128]的数据。


标签:reaction,3dmm,16,listener,128,关于,REACT2024,挑战赛,256
From: https://www.cnblogs.com/Ricardo24/p/17952950

相关文章

  • Threejs——十四、关于深度冲突、重叠、以及加载模型进度条效果实现(附完整代码)
    深度冲突两个模型重叠的模型,通过浏览器旋转预览,会发现模型旋转的时候会发生闪烁。这种情况,主要是两个模型重合,电脑分不清谁在前谁在后,这种情况,可以理解为深度冲突Z-fighting。functionaddBox(){constgeometry=newTHREE.BoxGeometry(10,10,10);//材质constmater......
  • 关于消耗服务器带宽的因素
    关于消耗服务器带宽的因素1、网站布局更改:如果更改网站布局,那么网站页面大小就会增加,用户在访问时获取的数据也会越大,那么对于服务器带宽的消耗当然也就会变得更大。2、流量增长:访客增加的情况下,用户浏览页面数据就会增加,也就会加大对带宽的消耗。3、页面增加:当添加更多页面时,浏览......
  • 关于杂事的思考
    本文于2019年7月20日完成,发布在个人博客网站上。考虑个人博客因某种原因无法修复,于是在博客园安家,之前发布的文章逐步搬迁过来。之前参加部门的述职会议,有同事提出当前的杂事过多,影响效率。杂事指的是啥呢?这里说一下杂事的对立面,本职工作。比如SE,工作应该聚焦在方案的分析和......
  • 关于如何暴力破.解WIFI及防止被别人破开的说明
    以下是一段高深的WiFi代码,具体实现为基于Python的WiFi破*解工具,结合了字典攻*击、暴力破开和优化算法。代码解释与使用方法将分为五个部分进行说明。#函数声明definit_dict():"""初始化字典攻*击用的字符串"""globaldict_path,dict_content......
  • 关于宝塔面板设置了域名访问后但是域名解析有问题导致原有的ip+端口无法访问的解决办
    前言:因为购买了腾讯云的vps,dnspod购买了一个域名,已经将搭建的博客和私有云均做了dns解析,突然想起宝塔也可以这样访问,但是解析出了点问题,默认无法通过域名直接解析服务器公网ip+端口想改好来但是域名和ip形式都已经无法访问,那则呢么办么,看操作  解决步骤:1、登录到vps服务器......
  • 关于腾讯地图geolocation.getLocation 经常定位失败,定位时间过长的解决方法
    今天遇到个项目,腾讯地图定位出现问题,导致地图无法呈现出最近的目标 这是正常的效果,之前一直出现贵州等地点的信息,查看控制台的网络后,发现腾讯的定位失败,要么就是定位时间过长,要20S左右,但是换EDGE浏览器却能正常加载,除了EDGE浏览器都会出现这个问题。随后我去查阅腾讯地图接口......
  • 8 个关于 Promise 的高级用途的技巧
    我发现很多人只知道如何常规地使用promise。在js项目中,promise的使用应该是必不可少的,但我发现在同事和面试官中,很多中级以上的前端仍然坚持promiseInst.then()、promiseInst.catch()、Promise等常规用法等等。即使是async/await他们也只知道它但不知道为什么要使用它。但实际上,P......
  • 关于JavaScript的技巧一
    1.滚动到页面顶部我们可以使用window.scrollTo()平滑滚动到页面顶部。constscrollToTop=()=>{window.scrollTo({top:0,left:0,behavior:"smooth"});};2.滚动到页面底部当然,如果知道文档的高度,也可以平滑滚动到页面底部。constscrollToBottom=()=>{wind......
  • 关于 PWA url 参数 ngsw-bypass=true
    "ngsw-bypass-true"这个参数是与AngularServiceWorker(ngsw)相关的一个选项,用于控制在ServiceWorker中是否绕过缓存,直接请求网络资源。在Angular应用中,ServiceWorker主要负责缓存应用的静态资源,以提高应用的性能和用户体验。首先,让我们了解一下AngularServiceWork......
  • “做了一辈子机器人,深知其困难” | 一场关于机器人的深度对话
    2023年12月19日,深圳市美团机器人研究院学术年会在清华大学深圳国际研究生院成功举办。会议回顾了研究院成立一年来的进展和成果,并邀请了各界专家共同讨论机器人技术的未来发展趋势。从左至右依次为:张鹏、王田苗、张宏、张建伟、汪玉、许华哲在圆桌论坛环节,极客公园创始人兼总裁张鹏......