Face API の Client SDK(.NET Core版)だと、現状ではCognitive Services のAPIで公開されているFaceAttributeの一部しか取得できないです。
FaceAttributeについて具体的には、前回の記事内の、Face APIの概要のfaceAttributesです。もちろんEmotionも取得できます。
ということで、プロジェクトをForkして全部使えるようにしてみました♪
faceattributes-addってブランチです。
環境関連
一応書いておきます。
- Visual Studio 2017(Enterprise)
- C#
- Face API - V1.0
これを書いている時点では、プルリクしてないです。大した更新ではないですが、Fork元にテストプロジェクトがないしテストプロジェクト無しでプルリク出したら迷惑かなーっと思いまして。そもそも私も一部のメソッドしか試してないので。
動作確認の準備…
私が動作確認をするために試した方法をメモしておきます。
今回作ったプロジェクトを参照するか、今回作ったプロジェクトからNuget Packageを作ってそれを参照するかという方法で動作確認ができます。
今回は、Nuget Packageを作って動作検証しました。VS2017だと、ソリューションエクスプローラーでプロジェクトを右クリック > パック
を選んであげるとNuget Package(nupkgファイル)が作れちゃいます。
その前にcsprojを編集して、Nuget PackageのVersionを適当に設定してあげた方が無難でしょうか。今回はVersionを1.1.100、ソリューション構成をRelease
にしてパックしました。bin > Release の直下にnupkgファイルができます。
後は使いたいプロジェクトでnupkgファイルを読み込めばOKです。
動作確認
.NET Coreのコンソールプロジェクトを作って動作確認してみます。 手順は端折ってますが、プロジェクトを作ってNuget Packageで読み込んでみると…Version 1.1.100のものが読み込めていることが確認できます。
動作確認用のコードはざっくりとこんな感じで。
画像は、MicrosoftのCognitive ServicesのFace APIのサイトで紹介されている画像のリンクを使わせて頂きました(上記コード15行目)で指定しています。
上記のコード36行目でFace APIのFace Detection(顔の検知)をコールしています。パラメーターを指定してあげると、期待通りのデータが取得できました。以下Detectした結果のjsonです。ヘルメットやメガネもちゃんと認識できていることが確認できます。