BEACHSIDE BLOG

MicrosoftとかC#を好むレンジャーの個人的メモ

Face APIのDotnetCore版 Client SDK でFaceAttributeを全て取得できるようにする

Face APIClient SDK(.NET Core版)だと、現状ではCognitive Services のAPIで公開されているFaceAttributeの一部しか取得できないです。

FaceAttributeについて具体的には、前回の記事内の、Face APIの概要のfaceAttributesです。もちろんEmotionも取得できます。

ということで、プロジェクトをForkして全部使えるようにしてみました♪

GitHub - beachside-project/Cognitive-Face-DotNetCore: .NET Core SDK for the Microsoft Face API, part of Cognitive Services

faceattributes-addってブランチです。

環境関連

一応書いておきます。

これを書いている時点では、プルリクしてないです。大した更新ではないですが、Fork元にテストプロジェクトがないしテストプロジェクト無しでプルリク出したら迷惑かなーっと思いまして。そもそも私も一部のメソッドしか試してないので。

動作確認の準備…

私が動作確認をするために試した方法をメモしておきます。

今回作ったプロジェクトを参照するか、今回作ったプロジェクトからNuget Packageを作ってそれを参照するかという方法で動作確認ができます。 今回は、Nuget Packageを作って動作検証しました。VS2017だと、ソリューションエクスプローラーでプロジェクトを右クリック > パック を選んであげるとNuget Package(nupkgファイル)が作れちゃいます。

f:id:beachside:20170529173750p:plain


その前にcsprojを編集して、Nuget PackageのVersionを適当に設定してあげた方が無難でしょうか。今回はVersionを1.1.100、ソリューション構成をReleaseにしてパックしました。bin > Release の直下にnupkgファイルができます。

f:id:beachside:20170529173520p:plain


後は使いたいプロジェクトでnupkgファイルを読み込めばOKです。

動作確認

.NET Coreのコンソールプロジェクトを作って動作確認してみます。 手順は端折ってますが、プロジェクトを作ってNuget Packageで読み込んでみると…Version 1.1.100のものが読み込めていることが確認できます。

f:id:beachside:20170529174056p:plain


動作確認用のコードはざっくりとこんな感じで。

画像は、MicrosoftのCognitive ServicesのFace APIのサイトで紹介されている画像のリンクを使わせて頂きました(上記コード15行目)で指定しています。

https://azurecomcdn.azureedge.net/cvt-d9e48028faef95126fd0aa84c22d8872877aac2e96d18d06368b0f9645e9db54/images/shared/cognitive-services-demos/face-detection/detection-3-thumbnail.jpg

上記のコード36行目でFace APIのFace Detection(顔の検知)をコールしています。パラメーターを指定してあげると、期待通りのデータが取得できました。以下Detectした結果のjsonです。ヘルメットやメガネもちゃんと認識できていることが確認できます。


参考

Face API - V1.0 - Face Detect

GitHub - Microsoft/Cognitive-Face-DotNetCore: .NET Core SDK for the Microsoft Face API, part of Cognitive Services