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

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

More than 1 year has passed since last update.

: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: 余談

  • 登録されていない名前の場合は新たにデータを追加できるようにしたいですね
mikan3rd
なんでも自分で作ってみたい盛りのエンジニア3年生。 ReactとPythonがちょっと書ける。
https://lapras.com/public/PSOCHNH
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
ユーザーは見つかりませんでした