44
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

顔認識AIで似ている有名人を検索するLINEbotを作ってみた

Last updated at Posted at 2018-07-28

:star: 作ったもの

:star: 使い方

  • 次のボタン、QRコード、もしくは@dxg4720jでID検索すると友達に追加できます

友だち追加

tfmAaAleOy.png

  • 画像を送ると似ている有名人(女性)の検索結果を返します
  • 「画像をもっと見る」で登録されている画像一覧を見ることができます
  • 「Wikipediaで開く」でその人のWikipediaを参照できるようにしました
  • Wilkipediaで閲覧数の多い人を優先的に約900人を登録しています
  • テキストを送った場合、登録されている氏名と一致した時は画像一覧を返します

:star: 実装の概要

  • 登録する名前の一覧を用意する
  • Google画像検索で名前を検索し、httpsの画像の一覧を用意する
  • MicrosoftのFaceAPIを使用して画像から顔を検出して登録し、学習させる
  • 2枚目以降は顔識別を行い、定めた閾値以上の場合は同一人物と判断して顔画像を追加し、再び学習させる
  • これを人数分繰り返す
  • LINEからwebhookを受け取るAPIを用意する
  • 画像が送られてきた場合、FaceAPIで顔検出を行ってfaceIdを取得する
  • 続けて顔識別を行って似ている顔を取得して返すようにする

:star: 簡単な補足

:pencil: 登録する名前の一覧

:pencil: Google画像検索から画像を取得

:pencil: Microsoft FaceAPI

  • MicrosoftのCognitiveServicesのうちFaceAPIを使用して顔検出・顔識別を行っています。
  • まずLargePersonGroupを作成し、先ほど取得した名前でPersonを作成し、顔検出の結果を登録し、トレーニング(学習)を行います
  • 2枚目以降は顔識別を行い、定めた閾値以上の場合は同一人物と判断して顔画像を追加し、再び学習させています
  • FaceAPIではどんな画像が登録されているか分からないため、別途、誰にどの画像を登録したのかを保存しておく必要があります。
  • また、APIのRateLimitが1分あたり20回までなので、連続してAPIを叩く場合は間隔をあける必要があります
  • GoogleCloudのAutoMLでも同じようなことができるはずですが、APIのコール回数の無料枠が少ない(月1000回)なので、FaceAPI(月30000回)にしました

:pencil: LINE MessagingAPI

:star: 余談

  • 登録されていない名前の場合は新たにデータを追加できるようにしたいですね
44
31
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
44
31

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?