顔認識
授業では,ウィリアム・ホガースの「ビール街」と「ジン横丁」を紹介した。 これらの絵画を見たければ,Google検索するとよい。 Google検索の結果,多くの画像が表示される。 これらの画像のオリジナルはどこにあるのだろうか。 レポートや論文を書くときは,常にオリジナルがどれなのか,どこにあるのかを考え,オリジナルを見つけなければならない。
日本語での検索だとなかなか見つからない。 そこで英語で検索してみる。 Beer Street and Gin Lane というWikipediaのページが見つかる。 残念ながら,Wikipediaには「ビール街とジン横丁」の日本語のページはないようである。 Wikipediaで使われている画像はどこから来たものだろうか。
調べると,大英博物館に所蔵されていることがわかる。 そして,CC BY-NC-SA 4.0ライセンスの下,大英博物館の次のページで公開されているところまでたどり着ける。
この画像を自分のパソコンにダウンロードしてみよう。 右下の「Use this image」からダウンロードできる。 似たようなものが4種類あり,ここではAsset numberが16606001のファイルをダウンロードする。 念のため,ダウンロードしてもよいことを確認しておく。 ファイル名は「16606001.JPG」となるはずである。
この画像の中にどういう人がいるか興味あるだろう。 一人ずつ確認することは容易であるが,もしかしたら見落とす可能性もある。 そこで,Pythonを使ってこの画像の顔認識をしてみる。
1 画像の顔認識
Pythonで顔認識は以下のようにして実現できる。
先ほどダウンロードしたファイルを読み込んで,顔認識してみよう。
出力されたファイルを見ると,顔認識されていないように見える。 実際,facesの結果が()であることから,顔認識されていないことが分かる。 プログラミングに間違いがあるだろうか。 もしかしたら,絵画の中の顔は認識できないのかもしれない。 明らかに人物が写っている写真を使って,このプログラムで顔認識できるかどうか,試してみよう。
2 画像の顔認識の別のやり方
顔認識の別のやり方は,例えば以下のようにして実現できる。
最初のインストールに時間がかかる。 これは期待できそうだ。
先ほどダウンロードしたファイルを読み込んで,顔認識してみよう。
出力されたファイルを見ると,4人が顔認識されている。 このモデルは精度が高いことが分かる。 ここでは,retinaface を使って顔認識している。 PyTorchを聞いたことはないだろうか。 興味のある人はいろいろ調べてみよう。