チャレンジが求めたこと

システムが一度も見たことのない人について、身体の動きだけを見て、その人がどの感情を演じているのかを言い当てます。これがチャレンジの課題です。

MMAC Challenge の参加者には、感情を演じている人のモーションキャプチャ収録が渡されます。1 本ごとに、その演者が演じるよう指示された感情のラベルが付いています。参加者はこれを使って、学習に使っていない収録の感情を言い当てるシステムを作ります。テスト用の収録のラベルは主催者が手元に持ったままなので、参加者は自分のシステムをテストセットで採点できません。順位は、主催者が運営するリーダーボードが決めます。

顔ではなく身体を読む機械が役に立つのは、読むべき顔がそこにない場面です。相手が遠い、暗い、カメラから顔をそむけている、あるいは顔を撮ること自体が受け入れられない、といった場面がそれにあたります。

収録は DIEM-A(Diverse Intercultural E-Motion Database of Asian Performers)から来ています。Cheng, Tseng, Fujiwara, Schneider, Kitamura が ACII 2025 で公開したデータセットです。1 本の収録は、1 人の演者が 1 つの感情を演じているあいだ、身体に付けた反射マーカーをモーションキャプチャ装置が追いかけたものです。大部分は 57 マーカーの Vicon 装置で撮られ、最初期の日本人演者 5 名だけは 41 マーカーの OptiTrack 装置で撮られています。この 5 名は、ここで使う学習用の分割には入っていません。モデルに届くのは、追跡から出てくる骨格だけです。3 次元で動く 24 個の関節に、身体が部屋のどこにいるかを持つノードを 1 つ足して、合わせて 25 点です。顔の映像も、音声も、場面の映像もありません。収録は 120 フレーム毎秒で、1 本はおよそ 845 フレームです。このページのモデルはどれも、そこから 64 フレームの固定窓を読みます。時間にすると約 0.53 秒の動きで、主催者が配っている参照システムが読む窓と同じ長さです。

選ぶ相手は 12 種類の感情です。anger, contempt, disgust, fear, joy, sadness, surprise, jealousy, shame, guilt, gratitude, pride の 12 種類があり、当てずっぽうに 1 つ選んで当たる確率は 8.3% です。これを大きく上回るのが難しい理由は 2 つあります。意味の近い感情は動きも似ているので、システムは jealousy を contempt と、guilt を sadness や shame と取り違えます。もう 1 つは、人によって動き方の癖が違うことです。2 人が同じ感情を演じたときの開きが、1 人が 2 つの感情を演じたときの開きより大きくなることもあります。チャレンジはこの 2 つ目を課題の中心に据えて、演者を学習用 74 名とテスト用 18 名に分け、両方に出てくる演者を作りませんでした。この分け方があるので、特定の個人の動き方を覚えるだけでは正解できません。

採点は Macro-F1 で行います。12 種類の感情それぞれを別々に採点して 12 個の結果を平均する指標なので、よく出る感情だけ当てて珍しい感情を捨てる戦略では点が伸びません。値は 0 から 100% までです。学習用の分割は、日本人 40 名と台湾人 34 名から取った 7,992 本の収録で、1 感情あたり 666 本ずつ揃っています。テスト用の分割は、日本人 9 名と台湾人 9 名の計 18 名から取った 1,944 本です。

このページで主催者のテストラベルで採点した数字は 1 つだけです。参加者はそのラベルを持っていないからです。その 1 つは最終順位表の結果で、テスト用の演者 18 名に対して Macro-F1 37.23%、正解率 37.50% を記録し、Best Performance Award を受賞しました。ほかの数字はすべて、テストの代役として、ラベルのある学習用演者だけで組んだ評価で測っています。74 名を 10 グループに分け、9 グループで学習して残り 1 グループでテストする手順を、外すグループを入れ替えながら 10 回繰り返します。この 1 回分を fold と呼びます。どの回でも、テストに出てくる人は学習には出てこないので、論文はこの組み方を leave-performers-out と呼んでいます。チャレンジを難しくしている条件を、ラベルが手元にあるデータの上で作り直したものです。順位表の値は、この代役評価が示した範囲の中に収まっています。

この研究で分かったこと

互いに違う間違いをするモデルを束ねたほうが、私たちが作れたどの単一モデルよりよく当たりました。そして、モデルが何を読んでいるかという説明を、絵に描く代わりに検証にかけました。

36.80 ± 4.00% 提出した 11 モデルのシステムの Macro-F1 10 回の試行の平均とばらつき。どの回も、学習に使っていない演者でテストしています
+11.07 pp 主催者の参照モデルを同じ分割で学習し直した値より高い、Macro-F1 のパーセントポイント その参照モデルは 25.73 ± 4.03%。利得はその +43% にあたり、チャンスレベル 8.3% のおよそ 4.4 倍です
ρ = +0.500 vs +0.033 モデルが使った身体部位の順位と、動作分析の専門家が挙げる部位の順位の一致 +0.033 は、動きのふつうの計測値から作った対照の値です。提出したシステム自体では +0.517 になります

この分割で学習し直すと、主催者が参照用に配っているシステム STGCN++ の Macro-F1 は 25.73 ± 4.03% にとどまります。STGCN++ は骨格をグラフとして扱い、関節をノード、骨をエッジに対応させるモデルです。ここで提出したシステムは 36.80 ± 4.00% に届きます。11.07 パーセントポイント高く、これを +11.07 pp と書きます。

この差を生んだのは、モデルどうしの食い違いであって、より良い 1 つのモデルではありません。11 個のモデルがそれぞれ 12 種類の感情に点を付け、システムはその点を平均します。平均には学習も調整も入れていません。11 個は 4 通りの作り方に分かれていて、作り方が違うモデルは違う間違いをするので、この分かれ方そのものが効きます。graph convolution、attention、hybrid MLP、そして他の動作データであらかじめ学習させ、ここでは重みを変えずに使うモデルの 4 つです。1 つのモデルを大きくしても、同じことは起きませんでした。私たちが学習できた最良の単一モデルは 30.05 ± 3.48% です。間違え方がどれだけ離れているかは、次の節で測っています。

もう半分の仕事は、その説明を検証にかけることでした。検証は 6 つ行い、6 つとも報告します。5 つが肯定で、1 つが否定です。中心になる肯定は Laban Movement Analysis に関するものです。これは、動作の専門家が身体の動きを記述するのに使う語彙で、頭がどれだけ前に垂れているか、体幹がどれだけ傾いているかといった言葉でできています。データから学習したものではなく、人が書いたものです。頭、腕、脚、胴の 4 領域を、モデルがどれだけ使ったかで並べ、同じ 4 領域をこの書かれた属性で並べ直すと、2 つの並び順は Spearman ρ = +0.500 で一致します。+1 なら並び順が完全に同じ、0 なら無関係、−1 なら正反対です。動きのふつうの計測値から作った対照では +0.033 にとどまり、およそ 15 倍の開きがあります。sadness では、モデルが使った部位は、専門家が挙げる部位と一致します。頭が前に垂れ、頭の高さが下がり、体幹が前に傾く姿勢です。

この研究が主張することは、これらの数字だけを見て想像するより控えめです。見出しの数字は、ラベルのある学習用演者を使った 10 回の代役評価であって、順位表の値ではありません。隠れテストでの順位表の値 Macro-F1 37.23% は、ばらつきの付かない 1 つの数字です。Macro-F1 が 37% 前後という絶対値は低く、これを良い数字だとは言いません。限界のセクションに、それぞれを、その範囲を縛る検証と一緒に書いています。

結果

下の表の各行は、同じ 10 回の試行で、学習に使っていない演者に対して採点しています。行どうしをそのまま比べられます。

11 個のモデルが学習した数値は、合わせて 12.98 M です。1 本の収録に答えるには、同じ 64 フレームの窓を 11 個すべてに通し、そのスコアを平均するだけで、当てはめた重みは使いません。確率ではなく生のスコアを平均する、それだけで +1.15 pp 稼げます。あるモデルが他より大きな値を出しているせいではありません。先に全モデルのスコアを同じ広がりに揃え直しても +0.99 pp が残り、各モデルが 12 種類の感情を並べた順序だけを残しても +0.69 pp が残ります。

主要な結果表
結果表を ../assets/data/results.json から読み込んでいます …
表 1. 再現したベースライン、最良の単一モデル、そして束ねた 2 つのシステムについて、Macro-F1 と accuracy を並べています。+11.07 pp は、再現したベースラインの行と、提出したシステムの行との差です。1 行目は、92 名の演者すべてを使って主催者自身が報告した数字です。そのまま引用しただけで走らせ直してはいないので、私たちの結果ではなく外部の目安です。

参加者が一度もラベルを見ない主催者の隠れテストでは、提出したシステムは最終順位表で Macro-F1 37.23%、正解率 37.50% を記録し、チャレンジの Best Performance Award を受賞しました。演者 18 名に対する 1 つの値でばらつきを付けられないので表 1 には入れていません。10 回の試行から出た 36.80 ± 4.00% の範囲の中に収まっています。

図 1. 利得は段階を追って積み上がります。棒は 10 回の試行の Macro-F1 の平均で、ひげはそのばらつきです。隣の青い印は、同じシステムをもう 1 通りの方法で採点した値です。10 回分すべての、学習から外した演者に対する答えを集めて 1 回で採点したもので、その区間は、集めた答えを何度も引き直して求めた 95% 区間です。束ねたシステムは最良の単一モデルを約 6.8 pp 上回り、再現したベースラインに対する改善は 10 回すべてでゼロを超えます(試行を引き直したときの 95% 区間は [9.86, 12.33] pp、演者を丸ごと引き直したときは [9.14, 12.17] pp)。

適用範囲 36.80 ± 4.00% は、ラベルのある学習用演者を使った 10 回の代役評価から出た値です。交差検証であって、リーダーボードの順位ではありません。主催者の隠れテストでは、同じシステムが Macro-F1 37.23%、正解率 37.50% を記録しました。ばらつきの付かない 1 つの数字で、代役評価の範囲の中に収まっています。

束ねるとなぜ効くのか

11 個のモデル(論文ではメンバーと呼びます)が同じ収録で揃って間違えることは少なく、結果を 1 つのメンバーが背負ってもいません。

2 つずつ取り出して見ると、どの収録で間違えるかの相関は 0.15 から 0.43 のあいだに収まります。いちばん低いのは、他の動作データであらかじめ学習させたモデルで、残りとの違いがいちばん大きいものです。この研究の題にある orthogonal errors(直交する誤り)とは、これのことです。メンバーは互いに違う方向へ間違えるので、平均すると誤りが積み上がらずに打ち消し合います。相関が中くらいでも冗長とは限りません。間違え方がいちばん似ている 2 つのメンバーは、それでも単独の寄与ではいちばん大きいものです。事前学習のブロックを 4 つまとめて外すと −2.91 pp 下がるので、利得は 4 通りの作り方に散らばっていて、どれか 1 つから出ているのではありません。

図 2. どのメンバーを外しても精度は下がります。各棒は、そのメンバーが平均から抜けたときに Macro-F1 がどう動くかで、基準は、10 回分の答えをひとまとめにして採点した 36.94% です。11 個すべてが負で、−0.84 pp から −0.09 pp までの幅に入ります。どのメンバーも寄与していて、突出したものはありません。損失がいちばん小さい 2 つは graph convolution 系のメンバーで、互いにもっとも重なっています。事前学習のメンバー 4 つを同時に外すと −2.91 pp 下がり、単独のどのメンバーより大きくなります。

残った誤りは、課題そのものが曖昧なところに落ちます。意味の近い感情のあいだで、jealousy は contempt に、guilt は sadness や shame に流れ、モデルの最大確信度が 62% 程度にとどまることとも整合します。演者ごとの Macro-F1 はおよそ 4 倍の幅で変わり、その半分ほどは、どのモデルにとってもその演者が難しいことから来ていて、残りの半分は、どのモデルが見ているかで決まります。平均が打ち消すのは後者で、次のセクションの説明が読み取るのも同じ食い違いです。

検証された説明

ここに載せた説明にはどれも、失敗しうる検証が付いています。6 つのうち 1 つは実際に失敗しました。

モデルがどこを見たかを描いた絵は、間違っていると示す手立てがありません。飾りで描いた絵も、本物の絵も、見た目が同じだからです。そこで、主張ごとに、失敗しうる検証を組みました。身体のある部位を隠し、そこにノイズを足し、動き方を編集して、答えが変わるかを見ます。検証は学習を終えたあと、提出したシステムに入っている強いメンバー 1 つに対して走らせるので、Macro-F1 のコストは 0 pp で再学習も要りません。中心になる 2 つは、11 モデルのシステム自体でももう一度走らせました。

指した部位を本当に使っている 合格

論文 Table 3: Faithful

モデルが重要と呼んだ部位を隠すと、重要でないと呼んだ部位を隠したときより精度が大きく落ちます。隠す量を横軸、精度を縦軸に取ったときの 2 本の曲線の差は、6 部位で +0.124 ± 0.031 で、どの試行でも正でした。追跡している 25 点すべてに切り分けると +0.199 です。

ノイズを足しても順位が動かない 合格

論文 Table 3: Stable

部位の順位は、入力に小さなランダムノイズを足してもほとんど動きません。足す前と後の一致は Spearman ρ = +0.983 ± 0.039 で、1 位の部位は一度も入れ替わりません。ノイズで順位が動いてしまうなら、それは偶然の産物で、下に挙げる一致も意味を持ちません。

動作分析の専門家と一致する 合格

論文 Table 3: Semantically grounded

モデルが使った部位は、書かれた Laban 属性と ρ = +0.500 で一致し、動きのふつうの計測値から作った対照は +0.033 にとどまります。感情を丸ごと引き直したときの 95% 区間は [+0.150, +0.733] で、各感情の中で領域のスコアを並べ替えると、これほど強い一致は千回に一度も出ません(p < 0.001)。

編集すると答えが動く 合格

論文 Table 3: Behaviourally corroborated

動きを編集すると答えが動きます。いちばん影響が大きいのは頭を固定する編集で、正解の感情のスコアが Δp_true = −0.0164 下がり、41% の答えが変わります。腕を強調する編集では 23.1% が変わります。部位を隠すことと動きを編集することは種類の違う干渉ですが、どちらも頭と首を 1 位に置きます。

書き出した説明が裏づけを持つ 合格

論文 Table 3: Grounded narration

システムは判断ごとに、その理由を言葉にしたカードを出します。監査した 50 枚のうち、元のスコアが支えていない主張を含むものは 0 枚でした。カードは定性的なものなので、根拠の数字だけを載せ、正解率は載せません。

特定のフレームを指せない 否定を報告

論文 Table 3: Frame localization

64 フレームの窓の中では、どのフレームも他より特別に重いということがありません。フレームの重要度は、完全に均一な場合のおよそ 98.7%、感情ごとに平均すると 99.5% です。1 つ目の検証が測る差は、時間の側では約 +0.002 で、身体の側の +0.124 とは大きく違います。モデルの手がかりは空間の側にあります。ここで言えるのは、1 つのフレームが答えを決めているわけではない、というところまでです。モデルが時間を無視しているという意味ではありません。収録を逆再生すると精度は動きます。

検証によって身体の分け方が違います。隠す検証は 6 部位で行い、追跡している 25 点すべてでも報告しています。Laban との比較は、頭・腕・脚・胴の 4 領域で行います。2 つ目の検証で足すノイズは σ = 0.02 です。

提出した 11 モデルのシステムでも、Laban との一致は ρ = +0.517(95% 区間 [+0.333, +0.700]、p = 0.001)で、部位を隠したときの差は 10 回の試行すべてで正のままです。この結果は、1 つのメンバーだけでなく、提出したシステムそのものを説明します。動きの編集は、モデルがその動きに頼っていることを裏づけますが、因果を証明しません。隠すことと編集することの一致それ自体は、6 部位で ρ = 0.49、p = 0.33 と示唆にとどまるので、主張は +0.500 対 +0.033 の対比のほうに置いています。

図 3. モデルが使った部位が、同じ動きを動作分析の専門家が記述する言葉とどれだけ一致するかを、感情ごとに示します。各行は 4 領域についての 2 通りの並び順を比べたものなので、1 行が取りうる値は少なく、どの行も単独では主張を支えません。一致が正になるのは、メンバーでは 12 感情中 10(p = 0.039、中央値 ρ = +0.70)、提出したシステムでは 12 感情中 11(p = 0.001)です。凡例の kinematics control が、動きのふつうの計測値から作った対照です。

この研究が主張しないこと

以下の限界には、それぞれの範囲を縛る検証を添えています。

うまくいかなかったことも記録の一部です。同じ感情の収録どうしを学習中に引き寄せる方法、収録ごとに 4 つの専門モデルのどれかへ振り分ける方法、場面の説明文との対応づけ、画像と文章を読むモデルの答えを写し取る方法、学習後に確信度をつけ直す方法は、この組み方のもとでいずれも失敗するか、結果を悪くしました。設計が単一モデルの改良ではなくモデルどうしの食い違いへ向かったのは、これらがあったからです。

用語

表と図は論文の言葉づかいのままです。ここに挙げるのは、そこに出てくるのに本文では使っていない語です。

STGCN++
主催者が参照用に配っているモデル。骨格をグラフとして扱い、関節をノード、骨をエッジに対応させます。
LPO、leave-performers-out
このページの冒頭で説明した組み方。学習の収録とテストの収録の両方に出てくる人はいません。
logit-mean
11 個のモデルを束ねる方法。各モデルが感情ごとに出す生のスコアを、確率に直す前に平均します。平均には学習も調整も入れていません。
pooled out-of-fold
図 2 が軸に使っている言い方。10 回分すべての、学習から外した演者に対する答えを集めて 1 回で採点するもので、36.94% になります。見出しの 36.80 ± 4.00% は、1 回ずつ採点して 10 個を平均したほうです。1 つのシステムに対する別々の約束事なので、混ぜて読めません。
kinematics control
図 3 が凡例に使っている言い方。動きのふつうの計測値、つまり各関節の速さ、加速度、可動域、エネルギーから作った対照です。
trainable params
モデルが学習中に決める数値の個数で、表 1 の列見出しがこの言葉を使っています。11 個のモデルで合わせて 12.98 M です。

引用

ページ番号と DOI は、予稿集が公開されるまで空けています。

@inproceedings{nishida2026orthogonal,
  title     = {Orthogonal Ensembles and Tested Explanations for
               Performer-Independent Body-Motion Emotion Recognition},
  author    = {Nishida, Naoto and Ishiguro, Yoshio},
  booktitle = {2026 International Conference on Affective Computing and
               Intelligent Interaction Workshops and Demos (ACIIW)},
  year      = {2026},
  note      = {MMAC Challenge: Cross-Cultural Emotion Recognition from
               Body Movements}
}

論文は MMAC Challenge の ACII 2026 Workshops 予稿集に収録されます。プレプリントは arXiv で読めます:arxiv.org/abs/2609.02510。コードは github.com/nawta/diema-challenge にあります。