Project報告的なこと、技術的なことこの広告は、90日以上更新していないブログに表示しています。以前の記事でも顔認証等の機能を持つ無料API「face++」を取り上げました。famirror.hateblo.jp「face++」には、顔を認識するだけではなく、顔を判別する機能もあります。今回は、双子姉妹のフリー素材アイドル、「MIKA☆RIKA」のお二人を区別してみようと思います。mika-rika-free.jpAPI解説face++は中国のWebサービスで、顔認証だけでなく、顔の判別や検索など、様々な機能を持つ無料APIです。www.faceplusplus.com「face++」の基本的な使い方に関しては以前の記事をご覧ください。famirror.hateblo.jp今回はface++の様々な機能を駆使して、顔の判別を行います。目標こちらがMIKAさんです。こちらがRIKAさんです。申し訳ないのですが、私にはほとんど見分けがついていません。お二人の顔を「face++」に学習させ、学習させてない写真を与えた時に正確に名前を当てれるかどうか確かめます。顔を解析まずは、顔を解析するところから始まります。これは前回使った、顔認識の機能「/detection/detect」を使用します。Face++「https://apicn.faceplusplus.com/detection/detect」に以下のパラメータをつけてGETもしくはPOST送信することでJSON形式の結果を取得することができます。画像URLよって以下のような形のURLをGET送信することになります。Secret&gtはご自身のものに書き換えてください。先ほど載せたMIKAさんの写真で試してみます。"http://mika-rika-free.jp/wp-content/uploads/business_43_mika.jpg"}ここで、必ず「face_id」をメモしておきます。同様に、複数枚の写真で解析を行い、「face_id」を取得します。今回はそれぞれ10枚、合計20枚の解析を行いました。顔の解析ができたら、それを一人の人として紐付けを行います。face++の「/person/create」という機能になります。Face++「https://apicn.faceplusplus.com/person/create」に以下のパラメータをつけてGETもしくはPOST送信することで人を作成し、その人に対して顔の情報を追加することができます。登録する顔のidコンマ区切りで指定よってMIKAさんを登録する場合、以下のような形のURLをGET送信することになります。Secret>&person_name=MIKA&face_id=55b2b67fd170e5494648664412654d77,1f71...face_idは先ほどの顔解析でメモしておいたものになります。成功すると以下のようなJSONが帰ってきます。""}10枚の顔がMIKAさんとして登録されました。ここで取得したperson_idをメモしておいてください。顔情報を追加した後には、学習をしなければなりません。face++の「/train/verify」機能を使います。Face++「https://apicn.faceplusplus.com/train/verify」に以下のパラメータをつけてGETもしくはPOST送信してください。人の名前よってMIKAさんの場合、以下のような形のURLをGET送信することになります。Secret>&person_name=MIKA以下のようなjsonが帰って来れば成功です。"ae43f311bd6c4bacbb1c852a63873127"}RIKAさんについても同じことをして、二人のユーザーを登録します。次に、二人を一つのグループに追加します。face++の「/group/create」という機能になります。Face++「https://apicn.faceplusplus.com/group/create」に以下のパラメータをつけてGETもしくはPOST送信することでグループを作成し、そこに人を追加することができます。以下のような形のURLをGET送信して、二人を一つのグループ「MIKARIKA」に追加します。Secret>&group_name=MIKARIKA&person_id=e0681cccb671163f814c57be1ce53f47,83db9a2b81bd15df869ff7586995c579以下のようなJSONが返って来れば成功です。""}また、人に顔情報を追加した時と同様、グループに人を追加した場合は学習をさせなければなりません。face++の「/train/identify」機能を使用します。http://www.faceplusplus.com/train_identify/「https://apicn.faceplusplus.com/train/identify」に以下のパラメータをつけてGETもしくはPOST送信してください。グループの名前よって、以下のような形のURLをGET送信することになります。Secret>&group_name=MIKARIKA以下のうようなjsonが帰って来れば成功です。"dea63fb74d9545a1b0296f4688e65534"}判別機能を試してみる学習が終わったので、いよいよ次は結果を見ていきましょう。画像に写っている人物がグループの中に誰に一番似ているかを調べられる「/recognition/identify」の機能を使います。Face++「https://apicn.faceplusplus.com/recognition/identify」に以下のパラメータをつけてGETもしくはPOST送信することでJSON形式の結果を取得することができます。画像URLよって以下のような形のURLをGET送信することになります。Secret>$group_name=MIKARIKA&url=<画像URL>さて、こちらはMIKAさんです。この画像をface++に送って判断してもらうと、次のようなJSONが返ってきました。"0ffb3220b43547e6b69cc2bb5d674f9f"}MIKAさん可能性が約60%、RIKAさんの可能性が約33%とい事で、無事にMIKAさんだと判断してくれました。他にも数枚テストしてみましたが、一度も間違えずに答えてくれています。双子でもちゃんと区別されています。学習させる画像数を増やせばもっと精度は高くなると思いますので、よかったらチャレンジしてみてください。OpenCVでは顔を簡単に認識することができます。API月別アーカイブリンクはてなブログブログをはじめる週刊はてなブログはてなブログProはてなブログをはじめよう!famirrorさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。