顔画像から年齢を推測する機械学習サイト「How Old Do I Look」が登場
[2015 年 5 月 4 日]
マイクロソフトのチームでは、開発者向けのカンファレンス Microsoft Build 2015 のデモ用に、新しくリリースされたばかりの顔認識 API を使った Azure の簡単でインテリジェントなデモサービスをリリースしました。人の年齢を推測する https://how-old.net というサービスです。このサイトでは、ユーザーがアップロードした画像の中から API が顔を見つけ出し、その年齢と性別を判定するというものです。現在のところ、このAPIでは顔の場所と性別はとても正確に同定できますが、年齢はそれほど正確ではありません (特にアジア人の年齢は若めに出ます)。それでも、ユーザーがちょっと試して楽しむには十分な精度があります。
また、バックエンドでは Power BI を使って、どの国と地域からどれくらいの画像がアップされているのか、もしくはインターネット上の検索画像を使っているのかなどをリアルタイムに見ることができるようになっています。
動作の仕組み
驚くかもしれませんが、フロントエンドの Machine Learning API を使った顔認証のサービスの構築から、バックエンドのリアルタイム分析の仕組みの構築までを完了するのに、2~3人の開発者が 1 日で作り上げることができました。これは、Azure の API を使うと素早くクリエイティブなサービスを構築できるという良い例です。このサービスは以下の 3 つの部分から成り立っています。
- 画像内の人間の性別と年齢を認識して抽出する。
- 上記で抽出したデータのインサイトをリアルタイムで得る。
- 上記の結果を得るためにリアルタイムダッシュボードを作成する。
1. 性別と年齢を抽出する
Azure Machine Learning ギャラリーには、顔や音声の認識など、Bing や Microsoft Research によって開発された Project Oxford と呼ばれる完結したインテリジェントサービスのセットが存在します。顔認識 API には機能を手軽に試せるデモページがあり、写真の中の顔情報をJSON 形式でテキストで出力できます。
年齢や性別のほかに、画像がアップロードされた場所 (緯度・経度)やアップロード元デバイスの UserAgent 等の情報も得ることができます。
[ { "event_datetime": "2015-04-27T01:48:41.5852923Z",
"user_id": "91539922310b4f468c3f76de08b15416", "session_id": "fbb8b522-6a2b-457b-bc86-62e286045452",
"submission_method": "Search",
"face": { "age": 23.0, "gender": "Female" },
"location_city": { "latitude": 47.6, "longitude": -122.3 },
"is_mobile_device": true, "browser_type": "Safari", "platform": "iOS", "mobile_device_model": "IPhone"
} ]
2. リアルタイム分析
この Web サイトからのリアルタイムデータのパターンを理解するには、新しくリリースされた Microsoft Azure ストリーミングサービスを活用します。
これにはまず、高度にスケールし一秒あたり何百万ものイベントを受信できるパブリッシュ・サブスクライブ受信器である Azure Event Hub を使います。 ユーザーが画像をアップした時に Event Hubs API で JSON 文書をストリームします。この時、写真自身、メール、ログインセッション、ユーザー名など、ユーザーを特定する情報は何も保存されず、JSON 文書だけが Azure Event Hubs にストリームされるというのが特徴です。
その次に、数千ものユーザーがリアルタイムでアップロードする画像の処理の想定が必要で、これに Azure Stream Analytics (ASA) というサービスを使います。ASA は、フルマネージドの低遅延、高スループットのストリーム処理ソリューションです。これにより、送信されてきたデータ数のカウントを合計してダッシュボードに表示できるようにします。
3. リアルタイムダッシュボード
リアルタイムダッシュボードの表示には Power BI を活用できます。ストリーミング分析ジョブの出力に Power BI を選択して、https://app.powerbi.com でデータセットとテーブルを選ぶだけです。追加のコーディングは不要です。
参考
さあ、構築方法の概要が分かったところで、早速このサービスを試してみましょう!
この文章は以下の原文を要約したものです:
- 2015/5/4: Fun with ML, Stream Analytics and PowerBI – Observing Virality in Real Time (Cortana Intelligence and Machine Learning Blog)