ジブリの公式Webサイトで、過去に映画化された作品の静止画像を無料でダウンロードできます。しかも「常識の範囲でご自由にお使いください。」以外の縛りがありません。さすがジブリ、太っ腹。
https://www.ghibli.jp/info/013344/
そこで公開されている1178枚を自分のパソコンにダウンロードして、これで作品ごとにクラスタリングできないかチャレンジします。でも人間の目で見ても、映画を見ていないと、例えば僕は「耳をすませば」と「コクリコ坂から」は画像だけでは区別できない(ファンの人ごめんなさい)。
そこで絵のタッチが異なっていて、比較的区別しやすい
・かぐや姫の物語
・天空の城ラピュタ
・となりの山田くん
の3作品を選びました。ちょっと甘すぎかな。
宮崎駿っぽい絵としてラピュタを選んだのは、単に僕が好きな作品というだけの理由です。
画像はすべて同一サイズ(幅300,高さ162)で統一されているので、作業がとても楽です。KMeansは横長配列しか受けつけてくれませんので、この画像データを
300×162×3(カラーなので)=145,800
の横長一列の配列に加工する手間だけで、すぐKMeansに入れることができます。
結果は
kaguya acc:0.5800
kaguya failure:0.4200
laputa acc:0.9400
laputa failure:0.0600
yamada acc:0.9400
yamada failure:0.0600
ラピュタと山田くんはともに正解率が0.94であるのに対して、かぐや姫が0.58。原因について考えてみました。この3作品は画像がくっきりしている順に
ラピュタ(とてもくっきり)
かぐや姫(ぼやっとしている)
山田くん(とてもぼやっとしている)
となり、中間のかぐや姫が難しかったようです。失敗の傾向を見ると
かぐや姫をラピュタと間違えたもの:4
かぐや姫を山田くんと間違えたもの:17
ラピュタをかぐや姫と間違えたもの:3
ラピュタを山田くんと間違えたもの:0
山田くんをかぐや姫と間違えたもの:3
山田くんをラピュタと間違えたもの:0
となり、かぐや姫と山田くんを区別するのが難しかったようです。
クラスターの散布図はこのとおり。左から、山田くん、かぐや姫、ラピュタとなります。星印は各クラスターの中心を表します。かぐや姫が山田くんとラピュタの間に入り込んでいます。しかもかぐや姫と山田くんの中間付近と、かぐや姫とラピュタの中間付近に要素が存在し、しかもかぐや姫と山田くんの中間付近のほうが混み合っているのが分かります。このため、かぐや姫をクラスターとして完全に分けるのが困難で、またかぐや姫と山田くんの間違いが多くなっています。グラフを作る都合上、次元削減後の2次元データでクラスタリングしていますので、結果の数字は上記のものと少し異なっていますが、傾向はほぼ同じです。
Comments