Help us understand the problem. What is going on with this article?

DeepLearningで似ている芸能人を判定するWebサービスを作りました

More than 1 year has passed since last update.

Courseraの授業を中心に遅ればせながらDeepLearningの勉強をしてきたので、なにかアウトプットしようと思い立ち、写真を撮るとどの芸能人に似ているか判定するWebサービスを作りました。

Who Am I|似ている芸能人診断Webアプリ|有名人探しサイト

使った技術

Siamese Network

DeepLearningで画像処理を行う場合はCNNをSoftmax関数でフィニッシュして分類問題として取り扱うのが普通ですが、Siamese Networkは異なる2つの画像をCNNに通してそれらがどのくらい似ているか(距離が近いか)をSigmoid関数で数値化するというものです。
画像が似ている/異なっているということがどういうことかを覚えさせ、それを予測に用いるモデルです。Courseraの中ではデータセットが少ない場合の選択肢となりうる、顔認識(オフィス入館のための本人認証など)で使われる、といったことが解説されていました。

Flask

めちゃシンプルなサイトなので、いつもはDjangoを使うところFlaskを使ってみました。
評判の通り軽量で、サイトがソッコーで立ち上がりました。こりゃ簡単なサイトを作る時はいいですね。

face_recognition

DeepLearningに渡す前に顔を認識して切り取る処理にface_recognitionというライブラリを使いました。
当初はOpenCVを使っていたのですが、MacへのインストールまはまだしもLinux上でApache経由で使う時に謎のフリーズが発生し解決できなかったのでスイッチしました。
顔認識だけだったらOpenCVよりも断然使いやすいと思います。Web上ではOpenCVはインストールが大変という声が多いですし。

精度

似ている芸能人を上から10人まで表示していて、その中の3人くらいはまあ確かに言われてみれば、みたいな精度です。
芸能人本人の写真で試すと結構な確率で本人が一番似ていると判定するので、やはりこのモデルは同一人物特定に力を発揮するようです。そう考えると例えば工場のラインで商品の異常を見つける異常検知とか、異常のあるもののデータは基本的に少ないので、少ないデータセットでもうまく動かすことのできるこのモデルが利用できるかもしれません。

その他

  • PCならChrome、Firefox、iPhoneならSafari(設定からカメラのアクセスを許可する必要があります)、AndroidならChrome、Firefoxでの動作確認ができています。
  • 撮影/アップロードされた画像は判定したらすぐに削除する作りです。自分だったら顔写真が保存されるのが嫌なのと、サーバー容量を圧迫したくなかったので。
  • iPhoneアプリで類似のものがありましたが、頻繁に使うものでもないのでWebの方が利便性高いと考え開発しました。
  • 結果ページで見せてる画像は著作権的にアウトっぽいので、万が一アクセスが伸びたら使うのやめたほうが良さそう。。
  • 何度やってもバナナマンの日村に似てると判定される。。悲しい。

よかったら遊んでみてください。

Who Am I|似ている芸能人診断Webアプリ|有名人探しサイト

mtitg
データサイエンスの企業でWebエンジニアやってます
datamix
データサイエンスに関わる最適なサービスを継続的に提供することで、企業・地域・社会に属するひとりひとりが、客観的に意思決定する力を高め、自由に、そして平等に活躍できる世界を実現します。
https://datamix.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした