• Home »
  • その他 »
  • 佐村河内問題へのコンピュータビジョン的アプローチ

佐村河内問題へのコンピュータビジョン的アプローチ

  • ????????????????????

序論

近年、全聾の作曲家とされた佐村河内守氏がゴーストライターを用いていたことを告白し、同時に障害者手帳の不正受給も疑われ、大きな問題となっている。その報道の中で、佐村河内氏の容姿が多くの著名人と酷似していること、2月の会見と3月の会見で外見が大きく変化したことが話題となった。

具体的には、2月の会見の時点で話題になったものが

であり、3月の会見を踏まえて修正されたものが

である。

ここで興味深いのは、佐村河内氏の顔をコンピュータに学習させ、これらの顔画像から佐村河内氏を正しく見分けさせることができるか、という問題である。本記事では、コンピュータビジョン的な観点からこのような問題に取り組み、初歩的な実験の結果を示す。

なお、ここではゴーストライター問題や全聾問題などについては一切扱わないので注意されたい。ちなみに、筆者は以前に「捏造エピソードが有名なベートーヴェンの楽曲5つ」という記事において佐村河内問題に言及している。

問題設定

まず想定されるタスクは、何らかの方法により佐村河内氏の顔を学習しておき、それをもとに

i2bbEeA (1)

および

9582f755a877bd920de70ffda0bd0a19aac3bfcd1394194772 (1)

から佐村河内氏の顔を特定することであろう。しかしながら、ここでは「何らかの方法により佐村河内氏の顔を学習」する際にどのようなデータを用いるかが問題となる。佐村河内氏の顔画像を手動で多数用意し、それをコンピュータへ覚えこませるのは非常に面倒である。

そこで本記事では、上記の佐村河内画像群(旧)を用いて佐村河内氏の顔を覚えさせ、その結果を元に佐村河内画像群(新)から佐村河内氏を発見させることとする。具体的には、一般的に用いられている顔検出器 [Viola and Jones, IJCV, 2004] を用いて顔画像を抽出し、以下のような佐村河内データセットを構築した。


学習用の画像

佐村河内画像

非佐村河内画像

テスト用の画像: 佐村河内氏はどれ?


以上が佐村河内データセットである。顔検出器の精度が十分ではなく、一部の顔が検出されておらず、また顔ではない部分が検出されているが、手動で修正するのは面倒であるため無視していただきたい。

なお、これは Fine-grained Classification (「犬/鳥」の識別ではなく「柴犬/秋田犬」の識別を行うなど、より詳細なレベルで識別を行うこと)と Transfer Learning (学習に使用するデータと識別対象となるデータの性質が大きく異なる設定での機械学習)が組み合わさった非常に困難なタスクである。

関連研究と手法

上記のタスクを解くためには、顔の類似度を適切に判定する必要がある。これは、コンピュータビジョンにおいて盛んに研究が進められているテーマのひとつである。

筆者は過去に顔画像をもとに似た顔の人が出ている AV を検索するツールを公開したことがあり、また論文『大規模 AV 画像データベースと類似顔画像検索を用いた AV 検索システム』を執筆したこともあるため顔認識関連の知識を持つと思われがちであるが、それほど知識はないのが実情である。そこで、今回この問題に取り組むにあたり、新たに少し関連研究を調査した。以下の記述は素人が片手間に行ったものであることに注意されたい。また、専門的な話題であるため、興味のない読者は読み飛ばしていただきたい。

顔画像を扱うコンピュータビジョンの問題は、顔画像同士の近さを判定する問題、それが誰であるかを判断する問題などを含み、昨年の ICCV (コンピュータビジョンに関する国際会議)では20本以上の論文が発表されている。それらを軽く眺めたところ、どうやら以下の3手法の性能がそれなりに良さそうであることがわかった。ひとつは Dong Chen らによるもの [CVPR, 2013] で、まったく読んでいないからわからないけれど高次元の特徴量を使うそうである。もうひとつは Karen Simonyan らによるもの [BMVC, 2013] で、一般物体認識と呼ばれるタスクで高性能を示す Fisher Vector と呼ばれる画像特徴を利用する。Xiaogang Wang らによるもの [ICCV, 2013] は流行りの Deep Learning を顔認識へと応用し、学習により良好な特徴量を得ている。

これらの3つの手法のソースコードは公開されておらず、どれも自力でプログラムを実装する必要がある。その中で実装がもっとも容易であるのは Simonyan らによるものである。なぜならば、彼らの用いる特徴量は既存の Fisher Vector に細やかな修正を加えたものであり、Fisher Vector の実装はいくつかオンラインで公開されているからである。

そこで本記事では Simonyan らの設定による Fisher Vector を画像特徴として用いる。

学習は、佐村河内氏(旧)の画像を正例とし、偽佐村河内(旧)の画像を負例として線形 SVM により行う。ここで、より安定的な結果を得るため、左右を反転させた顔画像も作成し、学習データに含める。

得られた識別器を佐村河内氏(新)および偽佐村河内(新)の画像へと適用し、その識別結果と、(LIBSVM により得られる)その自信度を出力する。そして、もっとも佐村河内自信度が高いものを佐村河内氏であると判定する。

本記事の実験に用いた MATLAB のコード及び使用した画像は GitHub より入手が可能である。

実験

佐村河内画像群(旧)を用いて佐村河内氏の学習を行い、佐村河内画像群(新)の佐村河内氏らしさを算出した。実験の結果を以下に示す。数値が高いほうが佐村河内氏である自信度が高い。

画像
佐村河内度 0.927 0.869 0.911 0.880 0.978 0.938 0.933 0.894

佐村河内度がもっとも高い画像は

であるとの結果が得られた。なんとこれは、佐村河内氏の3月の会見の画像である!

結論と展望

実験により、佐村河内画像群(旧)のみで佐村河内氏の顔を学習した機械が、佐村河内画像群(新)から佐村河内氏を特定できることが示された。2つの画像で佐村河内氏の外見は大きく変化しているが、それにも関わらず機械は佐村河内氏を選出することが可能である。これは驚くべき結果である。

本設定では、データセットがきわめて小さく、実験の結果が単なる偶然である可能性は否定できない。さらなる検証のため、より大きな佐村河内画像データセットの構築が望まれる。また、実験の結果では佐村河内画像と非佐村河内画像との佐村河内度の差は比較的小さく、識別器はすべてを非佐村河内と判定する。正しい識別結果を返す識別器を得る手法の開発が望まれる。

また、本記事は、たまたまインターネット上で佐村河内画像群を見つけてしまったために書かれたものである。筆者の実感としては、「なんでこんなことしてるんだろ…時間の無駄じゃないの…」である。今後このような事態が引き起こされることのないよう、インターネットの皆様には不要なデータセットの整備を行わないようお願いしたい。