NEXTSCAPE blog

株式会社ネクストスケープの社員による会社公式ブログです。ネスケラボでは、社員が日頃どのようなことに興味をもっているのか、仕事を通してどのような面白いことに取り組んでいるのかなど、会社や技術に関する情報をマイペースに紹介しています。

MENU

Cognitive Services の Face APIで遊んでみたよ。

こんにちは。

 

社員証の写真がとても太っている頃の写真で、見る度に、見えない矢が刺さりまくって心が落武者と化す、松永です。

補正してもいいですか?

 

さて、前回はCognitive ServicesのFace APIの登録までを行いました。

今回は実際にFace APIを使って、いろいろと遊んでみようと思います。

 

 

サンプルプロジェクトの用意

 

まず、Face APIを使うためのサンプルプロジェクトを用意します。

今回はMicrosoftが公式で出しているサンプルプロジェクトを使用します。

https://github.com/microsoft/cognitive-Face-Windows

ダウンロードにはgitを使います。Windows環境の場合は、git for windows をインストールしましょう。

https://git-for-windows.github.io/

私はWindows環境でしたので、以下の手順で実施を行いました。

 

  1. git for windows をインストール
  2. Git Bashを起動(インストールしたら入っている)
  3. cdコマンドでインストールしたいフォルダに移動
  4. git clone https://github.com/microsoft/cognitive-Face-Windows
  5. git submodule init
  6. git submodule update

githubのページにも同様のものが記載されています。

これでサンプルプロジェクトがインストールされました。

続いて、Visual Studio 2015を起動します。

ちなみに、2012ですとサンプルプロジェクトはエラーになりますのでご注意下さい。

ファイル>開く>プロジェクト/ソリューションを選択し、

サンプルプロジェクトのcognitive-Face-Windows>Sample-WPF>FaceAPI-WPF-Samples.slnを選択します。

ソリューションが開いたら、Startボタンを実行します。

すると、Microsoft ProjectOxford Face Samplesという画面が出てきます。

ここまで実行できればサンプルプロジェクトの設定は完了です。

Face APIを試してみる

 

APIを試す前に、まず、最初の画面でKeyを登録します。

KeyはAzureのアカウント画面のKey1の値を設定します。

f:id:nextscape_blog:20210910154829j:plain

上のMANAGE>Keysを選択すると表示される。

f:id:nextscape_blog:20210910164717j:plain

最初にKeyを入力する。

 

Keyを入力して、SaveKeyボタンを押してKeyを登録します。

これで準備は完了です。

それでは サンプルプロジェクトを使ってFace APIをいくつか試してみましょう。

ちなみに画像については、いつもプレゼンなどの画像でも使わせてもらっている『ぱくたそ』さんの画像を使わせて頂きました。

https://www.pakutaso.com/

顔を認識するFace Detection

 

まずは、左メニューからFace Detectionを選択してみます。

これは顔認識のサンプル画面です。

写真を選択すると、写真の中から顔を識別して、右に表示します。

年齢、性別、顔の表情、眼鏡ありなしも判断して表示しています。

f:id:nextscape_blog:20210910164758j:plain

この画像では男性、29歳くらい、笑顔で、眼鏡なしと判定されている。

 

複数人の写真も認識してくれます。

f:id:nextscape_blog:20210910164816j:plain

顔ごとに情報を判定する。

 

同じ顔を抽出するFace Find Similar

Face Find Similarは、画像一覧の中から指定画像の人と同じ画像を抽出する機能です。

右下にあるSimilar Toが類似の画像となります。

f:id:nextscape_blog:20210910164832j:plain

f:id:nextscape_blog:20210910164857j:plain

左が画像グループで、右が特定したい顔を持つ画像。

下のSimlar Toには、右の顔と似た顔の人物が写っている画像が抽出される。

 

同じ顔でグループビングを行う、Face Grouping

Face Groupingは、画像フォルダから顔別にグループ化する機能です。

f:id:nextscape_blog:20210910164917j:plain

左の画像グループの中から、同じ顔の画像毎にグルーピングする。

一番下はグループ化できなかった写真。

 

これを見ると同じ人でも眼鏡をかけたり、表情がことなると別人として判断されるようですね。

同一人物かを判断する、Face Verification

Face Verificationは2つの写真の人物が同じ人か、別人かを判断します。

同じ人物であれば、verifyの値が1に近づき、赤の他人であれば0に近くなります。

f:id:nextscape_blog:20210910164940j:plain

f:id:nextscape_blog:20210910165002j:plain

左と右で画像を判断し、Verify値を表示する。

上の写真は同じとして判断しているが、下の写真では別人として判断している。

 

意外と簡単にできるFace API

今回初めてFace APIを触ってみましたが、それでもサクサクと進める事が出来ました。

これだけ簡単に顔認識ができるようになるとは、驚きですね。

尚、Free版は1分あたり20回までと使用制限があるので、連続だと試せません。ご注意を。

ちなみに今回のFace APIは、弊社で行っているAzureもくもく会という、

その名の通り、皆で集まってAzureについてもくもく作業をする集まりの中で試してみました。

次回は10月に開催予定ですので、Azureに興味のある方は是非是非お気軽にご参加くださいませ。

http://azure-mokumoku.connpass.com/event/38873/

また、弊社ではCognitive Serviceのような最先端の技術に興味のある仲間も募集しております

ということで、CognitiveServicesのAPIは他にもあるので、今後もいろいろと試してみたいと思います。