ぞんがいすこやかに

今のところクラウドメインです。タイトルに意味はないです。

Logic App Service × Face APIでお手軽に顔認識処理を実装してみる

ご無沙汰です。

今回はAzureのLogic App Service × Face APIで顔認識を試してみます。
というのも、某イベントでは顔認識を活用して参加者の表情から感情を読み取ってセッションの関心度
を測っていると聞いてなかなかおもしろそうだったので、早速自社のイベントにも取り入れようと思い色々と
試し始めています。要は思いつきってやつですね。
多分10分ぐらいで出来ちゃいます。


今回使うメインで使うサービスはこの2つ
azure.microsoft.com

azure.microsoft.com


アーキテクチャ

今回のアーキテクチャはこんな感じです。


f:id:kamoppusan:20180822162638p:plain


スマホで撮影した写真をOnedriveアプリでアップしてblobに転送。
blobの写真をFaceAPIに渡して分析するといった簡単なフローです。
分析結果のテキストはblobに保管します。

FaceAPIを作成

まずは分析するためのFaceAPIを作成します。

https://portal.azure.com/#create/Microsoft.CognitiveServicesFace


f:id:kamoppusan:20180822170404p:plain

最初はフリープランで作成しましょう。
作成できたら一旦FaceAPIは置いてLogicAppsを作り込んでいきます。
この画面は後ほど使うので残しておきます。

Logic Apps作成

https://portal.azure.com/#create/Microsoft.EmptyWorkflow


f:id:kamoppusan:20180822170950p:plain

ちゃちゃっと必要項目を埋めて作成しましょう。


f:id:kamoppusan:20180822171332p:plain

作成したLogicAppsを開くと初期デザイナー画面が表示されます。
空のロジックを選択して新規作成します。

OneDriveに写真が置かれたらblogに転送

今回の処理はスマホからonedriveに写真がアップロードされたタイミングをトリガーとしています。
Onedriveのトリガーを作成します。

f:id:kamoppusan:20180822172125p:plain

この画面で様々な要素を選択できます。
onedriveで絞り込んで対象トリガーを選択。


f:id:kamoppusan:20180822172214p:plain

選択するとOnedriveのログイン処理を求められますので対象アカウントでログインしましょう。
あとは写真アップロード先のフォルダと試行タイミングを設定。


写真をblobに転送

Onedriveの写真をblobに転送します。
ぶっちゃけOnedrive上でも処理できますが、容量の関係やAzure上で色々いじる際にblobにあったほうが何かと便利なので移動しています。この辺りはお好みでどうぞ。

f:id:kamoppusan:20180822173025p:plain

新しいステップをクリックすると次のステップを作成できます。


f:id:kamoppusan:20180822173056p:plain


blobの作成を選択します。
アップロード先のストレージアカウントを選択しましょう。
作成していない方は新たにストレージアカウントとblob作成してください(ここでは省略するのでググってください)


f:id:kamoppusan:20180822173252p:plain

フォルダーのパス:任意のフォルダー
Blob名:ファイル名
Blobコンテンツ:ファイルコンテンツ

Blob名等は動的に前ステップから引き継ぐことが出来ます。便利。


FaceAPIで写真を分析(detectface)

さて、ここからがある意味本番ですね。
FaceAPIの処理を設定します。

f:id:kamoppusan:20180822173738p:plain


f:id:kamoppusan:20180822173906p:plain

ここでは最初に作成したFaceAPIの情報を入力していきます。
先程作成したFaceAPIを開きます。


f:id:kamoppusan:20180822174918p:plain


f:id:kamoppusan:20180822174928p:plain

1~3を記載します。
特に3のSiteURLは必須になっていませんが、空欄だとエラーになるので注意です(ドハマリしました・・・)


f:id:kamoppusan:20180822180444p:plain

ImageURLはBlobのURLとblobパスを設定
これでFaceAPIの設定は完了です。

分析結果を保存

最後に分析結果のテキストをBlobに保存します。
for each処理を使います。

f:id:kamoppusan:20180822181204p:plain


f:id:kamoppusan:20180822182600p:plain


画像の保存先と保存対象を設定。
これで完成。

動作確認

てなわけで早速動作確認です。
今回はMSのCEO、サディア・ナデラ氏で試してみる。
画像はwikipediaから拝借。

f:id:kamoppusan:20180822181721j:plain

Onedriveにアップしてみましょう。


f:id:kamoppusan:20180822183444p:plain


f:id:kamoppusan:20180822183450p:plain

成功するとこんな感じでログに表示されます。


f:id:kamoppusan:20180822183609p:plain

Blobにも結果が保存されていますね!


分析結果確認

では軽く答え合わせしてみます。

"gender":"male","age":43.0

ちゃんと男性と識別していますね。
サディア氏は現在51歳前後なので、結構近い。
そもそも撮影時の年齢がわからないと比較にならないという。

glasses":"ReadingGlasses"}

メガネ判定も正解。

{"moustache":0.1,"beard":0.1,"sideburns":0.1}

青ひげレベルのひげも判定してる!


まとめ

Logic App Service × Face APIで簡単に写真を分析する処理を実装できました。
Logic App Serviceを触るのは初めてでしたが、コードを書かずに簡単に処理を組めるのはなかなか強力ですねー。
今回FaceAPIでは画像の処理だけを行いましたが、学習した人物を判定することも可能です。
最近流行りの画像判定アプリなんかもノンコーディングでお手軽に作成できちゃいますね。
ほんとすごい便利な時代になったなぁ。

AzureのUpdate ManagementでVMの更新管理をしてみる

Azureの便利な管理ソリューション第2弾です。
今回はUpdate Management機能を使ってVMのWindowsUpdate等の更新管理をしてみたいと思います。
面倒なWindowsUpdateをコンパネ上でよろしく管理してくれる素敵機能と聞いて黙っていられませんね。

この辺りを参考に作業をしてみます。
docs.microsoft.com


更新管理を有効にする

更新管理を有効にしたいVMを選択して更新プログラムを有効化します。

f:id:kamoppusan:20180517133559p:plain


更新管理に必要な下記が有効じゃない場合はこの画面で自動的に有効化されるようです。
自分で作成する場合は事前に作成しておきましょう。


f:id:kamoppusan:20180517134255p:plain


有効化を押すと設定が開始されます。


f:id:kamoppusan:20180517134340p:plain


スケジュール設定

15分ぐらい放置しましたがまだ終わらないようなのでその間に自動更新設定をします。

f:id:kamoppusan:20180517134749p:plain


f:id:kamoppusan:20180517134825p:plain

毎週木曜日の5時から更新が行われる設定にしました。
適用するプログラム、スケジュール間隔等、この
画面で細かく設定できます。


f:id:kamoppusan:20180517135108p:plain

できました。うーん簡単。

更新の確認

数時間程で反映されました。
単発スケジュールを設定して更新の動作確認をしてみます。

f:id:kamoppusan:20180518164048p:plain


f:id:kamoppusan:20180518164347p:plain

こんな感じでコンパネ上から進捗状況を確認できます。
このまましばらく放置。


f:id:kamoppusan:20180522104808p:plain

メンテナンスウィンドウが短かくて全部完了しませんでした。
流石に30分は短すぎたようなので、本番はもう少し余裕をもたせたほうが良さそうです(最低でも60分以上はもったほうがいいかも?)




費用

最後に費用。
サービス利用料自体は無料。あとはLog Analyticsのログ保存料ぐらい。Good。

まとめ

管理がめんどうなVMの更新作業をOSログイン不要でコンパネ上で完結できるのは運用効率を格段に向上させる可能性が高まりそうですね。
複数台構成になればなるほど効果を発揮しそうなサービスです。
更新失敗時どうすんのーとか、実際の運用してみないと見えてこない部分があると思うのでしばらく使ってみて発見があればまた別の記事としてポストしたいと思います。
ではまた。

Azure Log Analyticsを使ってみる

 

 

先日参加したGlobal Azure Bootcamp 2018@Tokyoで「Azureはログ管理機能が結構いけてるよー」「監視機能が多すぎて逆につらい」みたいな話を聞いてきました。

 

行った際のゆるレポはこちら↓

kamoppusan.hatenablog.com

 

とりあえずAzureに慣れていく一発目として紹介されていたAzure Log Analyticを使ってみることにしました。

 

azure.microsoft.com

 

ざっと見た感じAWSのCloudWatchLogsかな?という印象を持ちましたがとりあえず触ってみないとわからんやろーということで触ってみました。

 

ワークスペースを作成

リソース一覧からLog Analyticsを検索してワークスペースを作成

 

f:id:kamoppusan:20180510154037p:plain

f:id:kamoppusan:20180510154200p:plain

 

ワークスペース名とプランを選んで作成。

お試しなのでフリープランを選択。

 

f:id:kamoppusan:20180510154355p:plain

 

ワークスペースにVMを接続

ログ解析するVMワークスペースに接続。

Azure上のVMはエージェントがインストール済みのようなのでここでは省略。

 

作成したワークスペースから接続するVMを選択

 

f:id:kamoppusan:20180510155028p:plain

 

接続をクリック

f:id:kamoppusan:20180510155348p:plain

 

しばらくすると接続成功(地味に10分ぐらいかかった・・・)

 

f:id:kamoppusan:20180510155742p:plain

反映確認

実際にログが反映されたか確認してみます。

OMSポータルをクリック。

 

f:id:kamoppusan:20180510160304p:plain

 

反映されていますね。

そのまま赤枠をクリック。

 

f:id:kamoppusan:20180510160541p:plain

 

取れてるっぽいですね。

f:id:kamoppusan:20180510161136p:plain

 

 

データ収集

それでは早速Windwosシステムログを収集してみます。

詳細設定からWindowsイベントログでsystemログを検索して保存。

 

f:id:kamoppusan:20180510161609p:plain

 

パフォーマンス関連のデータも設定して保存。

 

f:id:kamoppusan:20180510162213p:plain

 

ログの検索

というわけで取得したログを検索してみます。

ログ検索タブでイベントログを検索。

 

f:id:kamoppusan:20180510162706p:plain

 

表示されましたね。

f:id:kamoppusan:20180510163027p:plain

 

パフォーマンスログも検索できています。

 

f:id:kamoppusan:20180510163312p:plain

 

ダッシュボードに可視化

文字列として確認できましたが、パフォーマンスデータは文字で見たって仕方がないのでダッシュボードで可視化します。

 

ビューデザイナーでCPU使用率のグラフを作成。

折れ線グラフでクエリは下記を入力します(公式から引用)

 

Perf | where CounterName == "% Processor Time" and ObjectName == "Processor" and InstanceName == "_Total" | summarize AggregatedValue = avg(CounterValue) by bin(TimeGenerated, 1m), Computer | render timechart

 

入力したら適用して保存

 

f:id:kamoppusan:20180510170335p:plain

 

概要で作成したビューを確認できます。 

あとはピンマークをクリックすればダッシュボードに表示されるようになります。

 

f:id:kamoppusan:20180510171410p:plain

まとめ

とりあえずログの収集から検索表示まで簡単に設定できました。

ログに条件を掛けてアラート発砲もできますし、ログ保存という目的でもsyslogサーバーを自前で立てる必要がないのはとても嬉しいですね。操作が管理コンソールだけで全て完結する点もなかなか良よさげです。

 オンプレ環境のログも収集できますし、利用の幅がとても広がりますね。

 

Global Azure Bootcamp 2018@Tokyoに参加。ついでにLTしてきた

jazug.connpass.com

 

 

何気にJAZUG初参加だったりします。

品川勤務で参加しやすいロケーションにあったにも関わらずなぜか参加できていなかったので休日で思い切って参加してみることに。

ここでは会全体を感想含めつつゆるーく書きます。

 

f:id:kamoppusan:20180422010305j:plain

 

場所はいつもの品川マイクロソフト

 

 

 

途中、サブウェイのサンドイッチが支給されたりドリンク無料提供だったりAzure300ドルクーポンもお土産にもらえてなかなかに神っています。運営、スポンサーの方々に超感謝ですね。

 

18時ぐらいから懇親会@LT大会スタート。

 

みなさん、5分でこゆい話をされていてガチ感漂っていました。

そんな中私だけ唯一浅いLTでほんとさーせん。

 

www.slideshare.net

 

セッションは全体を通してAzure歴1年ぐらいの私でもついていける内容でした。

とりあえず個人的に印象に残ったことと感想を箇条書きで。 

 

  • Azureのアーキテクチャーセンターは一読しておくべき。これ読み物にして勉強会とかしたらおもしろそう
  • Log Analyticsを筆頭にAzureの監視サービスはとても多機能で使ってみたい。使いこなせば幸せになれそう
  • LogicAppsは色々できそうだけどやりたいことが思い浮かばないからとりあえず触ってみるかー

きっとセッション概要は別の方がまとめてくれると思うので、詳細気になる方はTwitterハッシュタグ(#globalazure #jazug)追えばきっと幸せになります。 

 

途中でセッションが中止になって繰り上がったりトラブルもありましたが、ファシリティも最高だしサブウェイも美味しいしおみやげも色々もらえてとても満足度の高い会でした。運営の皆様に超感謝です。