[go: up one dir, main page]

この記事は Hoi Lam による Android Developers Blog の記事 "Full spectrum of on-device machine learning tools on Android" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

このブログ投稿は、 Android 11 に関する重要な内容を毎週取り上げる #11WeeksOfAndroid シリーズの一部です。第 2 週は、機械学習がテーマです。





1 週間を通じて、Android のオンデバイス機械学習(ML)のさまざまな側面を取り上げてきました。私たちは、実に多様な ML ツールを利用しています。この点は、できたてのアプリから定着しているアプリまで、開発のどの段階でも変わりません。また、設計や製造、エンジニアリングなどの役割や、初心者からエキスパートまでのスキルレベルによって変わるものでもありません。

設計 - 差別化のための ML


「ユーザーに目を向ければ他はすべてついてくる」というのは Google 社内でよく使われる寸言ですが、現在の機械学習の時代にあって、この言葉がますます意味を持つようになっています。Google のデザイン アドボケートである Di Dang は、ユーザーの問題と ML の長所が交わる唯一の交差点を見つけることの重要性を強調しています。往々にして、チームはユーザーのニーズを見失った機械学習のアイデアを追い求めがちです。





Di は、ML 製品の意思決定を行う際に「人にうれしいAIのための UXデザインガイド People + AI Guidebook(日本語・コミュニティによる翻訳版)」を活用する方法と、ML の設計や開発に特有の精度や再現率などのトピックについて Read Along アプリを例に挙げて説明しています。チームがインスピレーションを得るために、Di による Read Along チームへのインタビューもご覧ください。


オンデバイスに完全フォーカスした新しい ML Kit


オンデバイス機械学習をソリューションとして使うべきだと判断した場合、それを最も簡単に実装する方法は、ML Kit のようなすぐに使える SDK を活用することです。Google がトレーニングした洗練されたモデルや処理パイプラインが、使いやすい Kotlin / Java のインターフェースを通して提供されています。ML Kit はオンデバイス ML 用に設計、構築されました。オフラインで動作し、プライバシーが強化されており、リアルタイム ユースケースで高いパフォーマンスを発揮します。しかも、無料です。また先日、ML Kit をスタンドアロン SDK にして、Firebase アカウントがなくても利用できるようにしました。build.gradle ファイルに 1 行追加するだけで、アプリに ML 機能を組み込むことができます。






Jetpack ライフサイクル サポートや、Google Play Services を通して顔の輪郭モデルを使用することでアプリのサイズを 20 MB も節約できるオプションなど、新機能も追加しています。また最近、大きな期待を寄せられていた機能がもう 1 つ追加され、画像のラベル付け物体検知および物体トラッキングにおいて、Google モデルを独自のモデルと交換できるようになりました。これは、特に簡単に TensorFlow Lite モデルをアプリに追加する方法の 1 つです。ByteArray を操作する必要は一切ありません!

TensorFlow Lite と Android ツールによるカスタマイズ


ML Kit が提供するベースモデルでは満足できないデベロッパーはどうすればいいでしょうか?まず参照すべき場所は、TensorFlow Hub です。ここから Google や多数のコミュニティが提供する TensorFlow Lite モデルをダウンロードして、すぐに使うことができます。米国のスーパーマーケットの 10 万点の商品からトマトの病気の分類まで、選択は皆さん次第です。





Firebase AutoML Vision Edge を利用できるだけでなく、TensorFlow Model Maker(イメージ分類 / テキスト分類)を使えば、Python で数行書くだけで独自のモデルを構築することもできます。TensorFlow Hub か Model Maker で TensorFlow Lite モデルを取得したら、ML Kit の画像のラベル付け物体検知および物体トラッキングを使って Android アプリに簡単に組み込むことができます。オープンソースのソリューションを使いたい方は、Android Studio 4.1 ベータ版に含まれている ML モデル バインディングを利用すると、使いやすい Kotlin / Java ラッパーで TensorFlow Lite モデルをラップできます。Android アプリにカスタムモデルを追加する作業は、今までになく簡単になっています。詳しくは、こちらのブログをご覧ください

今こそオンデバイス ML の時代



Android Developer Challenge の入賞者からもわかるように、今まさにオンデバイス機械学習の時代が到来しています。かつてはクラウドやスーパーコンピュータだけのものだった ML 機能が Android スマートフォンで利用できるようになりました。一歩踏み出して、11 Weeks of Android のコードラボに挑戦してみましょう。

Android オンデバイス機械学習は急速に進化を続けているプラットフォームです。機能強化リクエストや改善案のフィードバックは、ユースケースと合わせてお知らせください(TensorFlow Lite / ML Kit)。今こそオンデバイス ML の時代です。

機械学習の関連情報


#11WeeksOfAndroid 動画コンテンツの全プレイリストはこちらから、それぞれの週の詳しい内容はこちらからご覧いただけます。毎週新しい分野を取り上げますのでご期待ください。Twitter や YouTube のフォローもお願いします。ご覧いただき、ありがとうございました!


Reviewed by Khanh LeViet - Developer Advocate and  Hidenori Fujii - Google Play Developer Marketing APAC


Google では、機械学習 に特化したイベント 「Google Developers ML Summit」を 9 月 17 日、18 日 (水) に開催します。
本イベントでは、Google I/O 2019 で公開した、People+AI Guidebook (有志の方が翻訳してくれた日本語ドキュメントはこちら) の内容を中心に、”Human-Centered AI Products” をキーワードに機械学習を活用したプロダクトを設計するうえでいかに人間中心設計を考慮するかについてのイベントとワークショップを 2 日に渡って行います。 ※ワークショップ、イベントそれぞれ参加可能です。

イベント概要
名 称 : Google Developers ML Summit vol 4
日 時 : 2019 年 9 月 18 日 ( 水 ) 10 : 00 - 17 : 00
会 場 : 六本木ヒルズ Google オフィス
〒106-6149 東京都港区六本木6丁目10番1号 六本木ヒルズ森タワー 

アジェンダ
9:30 AM 受付開始
10:10 AM - 11:00 AM Socially Responsible AI : Practical Challenges and Lessons Learned (社会的責任とAI : 実践する上での課題と学び)
11:00 AM - 12:00 PM Fairness and Explainability in ML (機械学習における公平性と説明可能性)
12:00 PM - 1:00 PM Designing Human-Centered AI Products (人間中心設計な機械学習プロダクトの作り方)
1:00 PM - 2:00 PM ランチ
2:00 PM - 3:00 PM ML Kit x Material Design : Design Patterns for Mobile Machine Learning(ML Kit x Material Design : 機械学習を用いたモバイルアプリのデザインパターン)
3:00 PM - 4:00 PM Transparent AI: A Framework for ML Model Provenance, Usage & Fairness-Informed Evaluation
4:00 PM - 5:00 PM Q&A セッション

*アジェンダは変更になる可能性があります。

申込方法
本イベントへの申し込み、詳細につきましてはこちらのサイトをご覧ください。
※ 参加可能な方には後日参加証を送付いたします。


ワークショップ概要
名 称:Google Developers ML Summit ワークショップ
日 時: 2019 年 9 月 17 日 ( 火 ) 10 : 00 - 17 : 00
会 場:六本木ヒルズ Google オフィス
〒106-6149 東京都港区六本木6丁目10番1号 六本木ヒルズ森タワー 

アジェンダ
10:00AM : 受付開始
10:30AM - 10:40AM : オープニング
10:40AM - 12:20PM : Workshop Part 1: “Designing Human-Centered AI Products”
12:20PM - 1:00PM : ランチ休憩 ランチは会場でご用意いたします
1:00PM - 2:40PM : Workshop Part 2: “Designing Human-Centered AI Products”
2:40PM - 3:00PM : 休憩
3:00PM - 4:40PM : Workshop Part 3: “Designing Human-Centered AI Products”
4:40PM - 5:00PM : フィードバックセッション

申込方法
ワークショップ申し込みフォームはこちらになります。


また、今回 People + AI Guidebook のチームが来日するので、直接ミーティングを通じて議論をしたい企業、団体等がございましたら、 こちらのフォームよりお申し込みください。 皆様の参加をお待ちしております。

Posted by Takuo Suzuki - Developer Relations Team

Googleでは、機械学習 に特化したイベント 「Google Developers ML Summit」を 7 月 11 日 (木) 11:00 AM より開催します。



本イベントでは、Google のシニアフェローの Jeff Dean をはじめとした、TensorFlow チームが来日し、TensorFlow、Cloud ML、 ML Kit、 など、Google が開発者のみなさんに提供する機械学習ツールについてのセッションを行います。





イベント概要
名 称:Google Developers ML Summit
日 時: 2019 年 7 月 11 日 ( 木 ) 11 : 00 - 18 : 00
会 場:六本木アカデミーヒルズ
〒106-6149 東京都港区六本木6丁目10番1号 六本木ヒルズ森タワー49F 
協力 :TensorFlow User Group, GCPUG



アジェンダ
  • 10:30 AM 受付開始
  • 11:00 AM - 12:00 PM キーノート
  • 12:00 PM - 12:45 PM ランチ休憩 ランチは会場でご用意いたします。
  • 12:45 PM - 6:00 PM ブレイクアウトセッション
  •  GCP ML / ML Kit を中心とした Cloud トラックと、TensorFlow トラックに分かれてセッションを行います。(各部屋の行き来は自由に行えます)

*アジェンダは変更になる可能性があります。


申込方法
本イベントへの申し込み、詳細につきましてはこちらのサイトをご覧ください。
※ 参加可能な方には後日参加証を送付いたします。
みなさまの参加をお待ちしております。

Posted by Takuo Suzuki - Developer Relations Team


Google I/O Extended: Recap Live Japan 2019 は、Google Play が主催する開発者向けのイベントです。

Google I/O 2019 の発表内容をベースに、一部は最新の情報を追加。数ある I/O のコンテンツから、有益な最新技術とビジネスの情報を約 2 時間に厳選してお伝えしました。イベント中に #RecapLiveJP にて投稿されたご質問へ回答する Q & A も収録されています。なお、セッションごとの動画をまとめたプレイリストも公開しています。





また、各スピーカーによるおすすめの Google I/O'19 動画も、こちらのプレイリストよりご覧ください。

デベロッパーの皆さまがさらにより良いサービス・アプリを開発するヒントとなりましたら幸いです。

Posted by Tomoko Tanaka - Developer Product Marketing Manager, Google Play

この記事は Christiaan Prins と Max Gubin による The Firebase Blog の記事 "ML Kit expands into NLP with Language Identification and Smart Reply" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。



         
Christiaan Prins                               Max Gubin
プロダクト マネージャー             ソフトウェア エンジニア

本日は、ML Kit に 2 つの新機能がリリースされたことをお知らせします。それは、言語識別スマート リプライです。

この 2 つの機能は、イメージや動画の処理に特化していた既存の API とは違うことに気づいた方もいらっしゃるでしょう。ML Kit が目指しているのは、分野を問わず ML を活用してもらえるように、強力で使いやすい API を提供することです。そのため、自然言語処理(NLP)用のソリューションで ML Kit を拡張できたことをうれしく思っています。
NLP は、文字や音声などの自然言語データの分析や生成を扱う ML の一分野です。今回、すばらしいことに、テキストの言語を識別する API と、チャットアプリで応答候補を提案する API の提供を開始できました。どちらの機能も、ML Kit SDK の最新バージョンがあれば完全に端末上だけで動作します。対応しているのは、iOS(9.0 以降)および Android(4.1 以降)です。


以前のメッセージの内容を元に応答を提案する
メッセージング アプリに登場している新機能に、通知アクションやアプリ内部でいくつかの応答候補をユーザーに提案するというものがあります。この機能は、忙しいときにすばやく応答したい場合や、長いメッセージを書き始める場合に極めて便利です。
新しい Smart Reply API を使うと、皆さんのアプリでも短時間で同じことを実現できます。この API は、会話内の直近 10 個のメッセージに基づいて提案を行いますが、以前のメッセージが 1 個しかなくても動作します。これは完全に端末上だけで動作するステートレスな API なので、メモリにメッセージの履歴を保持することも、サーバーにメッセージを送信することもありません。

textPlus アプリは、スマート リプライを使って応答候補の提案を行っている。
私たちは、スマート リプライが十分実用に耐えられるように、textPlus などのパートナーと密に連携してきました。そして現在、最新バージョンの textPlus アプリには、アプリ内で応答候補を提案する機能が実装されています(上のスクリーンショット)。
皆さんのアプリにも、簡単な関数を呼び出すだけでスマート リプライを追加することができます(この例では Kotlin を使っています)。
val smartReply = FirebaseNaturalLanguage.getInstance().smartReply
smartReply.suggestReplies(conversation)
        .addOnSuccessListener { result ->
            if (result.status == SmartReplySuggestionResult.STATUS_NOT_SUPPORTED_LANGUAGE) {
                // The conversation's language isn't supported, so the
                // the result doesn't contain any suggestions.
            } else if (result.status == SmartReplySuggestionResult.STATUS_SUCCESS) {
                // Task completed successfully
                // ...
            }
        }
        .addOnFailureListener {
            // Task failed with an exception
            // ...
        }
スマート リプライのインスタンスを初期化し、直近のメッセージのリストを suggestReplies に渡すと、コールバックで提案のリストを含む result を受け取ることができます。
Smart Reply API の詳しい使い方については、ドキュメントをご覧ください。
さらに詳しく...
デベロッパーとしてこの新しい API をアプリに組み込むのは簡単ですが、内部で何が行われているのかについて知りたい方もいるでしょう。スマート リプライの中枢部分には、TensorFlow Lite で実行される機械学習モデルと、SentencePiece テキスト エンコーディング [1] および Transformer [2] に基づく最新アーキテクチャが存在します。
しかし、API の開発を始めたときに気づいたのですが、デベロッパーがアプリで使えるソリューションを提供するために必要なのは、中核となる提案モデルだけではありませんでした。たとえば、悪口に応答する場合や個人的な不幸や困難が起きている場合は提案を避けられるように、問題となる可能性があるトピックを検知するモデルを追加しました。また、中核となるモデルのトレーニングが行われていない言語に対して提案を行うことがないように、言語識別の機能も含めました。スマート リプライ機能は、まず英語のサポートからリリースされます。


テキストの一部から言語を識別する
与えられたテキスト文字列が何語かというのは、検出が難しいものの役に立つ情報です。言語に依存する機能は、たくさんのアプリに搭載されています。たとえば、スペルチェック、テキストの翻訳、スマート リプライなどの機能が思い浮かぶでしょう。言語を特定したい場合、ユーザーに尋ねる代わりに、新しい Language Identification API を使うことができます。

ML Kit は、110 種類の言語のテキストを認識します。通常は、いくつかの単語さえあれば、正確に判断できます。また高速に処理でき、iOS や Android を搭載したスマートフォンでは、1 ミリ秒から 2 ミリ秒以内に応答を返します。
Smart Reply API と同じように、関数を呼び出すことで言語を識別できます(この例では Kotlin を使っています)。
val languageIdentification =
    FirebaseNaturalLanguage.getInstance().languageIdentification
languageIdentification
    .identifyLanguage("¿Cómo estás?")
    .addOnSuccessListener { identifiedLanguage ->
        Log.i(TAG, "Identified language: $identifiedLanguage")
    }
    .addOnFailureListener { e ->
        Log.e(TAG, "Language identification error", e)
    }
identifyLanguage 関数に何文字かのテキストを渡すと、コールバックで BCP-47 言語コードを受け取ることができます。確実に言語を識別できない場合、ML Kit は未確定(undetermined)を示すコード und を返します。Language Identification API から、可能性のある言語のリストとその信頼値を受け取ることもできます。
Language Identification API の詳しい使い方については、ドキュメントをご覧ください。


さっそく使ってみましょう
ML Kit を拡張して自然言語 API を提供できることをとても嬉しく思っています。ぜひ 2 つの新しい NLP API を試してみて、感想をお聞かせください。お気づきの点などは、いつでも Firebase Talk Google Group からご連絡ください。

さらのほかの API やカテゴリを追加して ML Kit を拡張し、皆さんが今まで以上にスマートな体験をユーザーに提供できるようになることを楽しみにしています。Google I/O での ML Kit の発表もお楽しみに。

Reviewed by Khanh LeViet - Developer Relations Team


Google I/O 2019 で発表されたコンテンツから、日本のデベロッパー様へ向けて最新技術とビジネスの情報を発信する、Google I/O Extended: Recap Live Japan 2019 の YouTube Live 配信を行います。

YouTube Live を通して、Google デベロッパー アドボケイトがお伝えする情報を広くお届けするとともに、さらに、Twitterでハッシュタグ #RecapLiveJP がついた投稿からピックアップした皆さまからの質問に直接お答えいたします。

なお、万全を期して望みますが、機器や回線の状況によりYouTube Live の配信ができない場合もございます。その際はご理解くださいますようお願いいたします。

YouTube Live 配信スケジュール:

日時:6 月 7 日(金) 16 時 30 分 - 18 時 30 分 (予定)
配信 URL:こちらよりご覧いただけます。

プログラム:

  • オープニング:松内 良介 / パートナー デベロッパー アドボケイト
  • Android & Google Play:荒木 佑一 / デベロッパー プログラム エンジニア
  • Gaming:松田 白朗 / デベロッパー アドボケイト
  • Firebase & ML Kit:Khanh LeViet / デベロッパー アドボケイト
  • ML & AI:佐藤 一憲 / スタッフ デベロッパー アドボケイト, Cloud Platform
  • Design:鈴木 拓生 / デベロッパー リレーションズ プログラム マネージャー
  • Web & Chrome:えーじ / デベロッパー アドボケイト
  • Q & A:松内 良介 / パートナー デベロッパー アドボケイト
*プログラムは予告なく変更になることがあります。



Posted by Tomoko Tanaka - Developer Product Marketing Manager, Google Play




5 月 7 日から 9 日にかけ、米国カリフォルニア州 マウンテンビューで Google I/O 2019 が開催されました。数ある I/O のコンテンツから、Google Play チームは、有益な最新技術とビジネスの情報を約 2 時間に厳選してお伝えする Google I/O Extended: Recap Live Japan 2019 を 6 月 7 日 16 時 30 分より行います。

セッションは、Google デベロッパー アドボケイトが日本語でお伝えし、さらに、皆さまからの質問に直接お答えいたします。なお、当イベントの内容は、アプリ、ゲームを開発 / 運営されているデベロッパー様を対象としております。

本イベントへの申し込み、詳細につきましてはこちらのサイトをご覧ください。

スケジュール:

日時:6 月 7 日(金) 16 時 30 分 - 21 時 00 分 (予定)*
場所:グーグル 東京オフィス (六本木ヒルズ)
最寄駅:六本木
内容:セッションと懇親会 *

プログラム*:

  • オープニング:松内 良介 / パートナー デベロッパー アドボケイト
  • Android & Google Play:荒木 佑一 / デベロッパー プログラム エンジニア
  • Firebase & ML Kit:Khanh LeViet / デベロッパー アドボケイト
  • ML & AI:佐藤 一憲 / スタッフ デベロッパー アドボケイト, Cloud Platform
  • Design:鈴木 拓生 / デベロッパー リレーションズ プログラム マネージャー
  • Web & Chrome:えーじ / デベロッパー アドボケイト
  • Gaming:松田 白朗 / デベロッパー アドボケイト
  • Q & A:松内 良介 / パートナー デベロッパー アドボケイト
  • 懇親会


*プログラムは予告なく変更になることがあります。




Posted by Tomoko Tanaka - Developer Product Marketing Manager, Google Play

この記事は プロダクト マネージャー Christiaan Prins による The Firebase Blog の記事 "ML Kit adds face contours to create smarter visual apps" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

ビジュアルなアプリを開発中またはこれから開発予定の方なら、ML Kit に新しく追加された顔輪郭検出を気に入ってくれるはずです。ML Kit を使うと、コンピュータ ビジョンによる顔検出など、多くの一般的な機械学習(ML)ユースケースを活用することができます。

写真に写った人の頭のどこに帽子をかぶせるべきかを知ることも、目の上に眼鏡を配置することも、左目の上に片眼鏡を置くことも、ML Kit の顔検出を使えば実現できます。この投稿では、Android と iOS の両方で優れたビジュアルなアプリを開発できる新しい顔輪郭機能について説明します。

顔輪郭の検出

いくつかの設定オプションを指定するだけで、顔の輪郭を細かく検出することができます。輪郭とは、顔の形と、目、鼻、口などの顔のパーツを表す 100 以上の点の集合です。

下のイメージの例をご覧ください。人が眉毛を上げても、輪郭の点はそれに合わせて動いています。高度なカメラアプリは、この点を使ってユーザーの顔に独創的なフィルタや芸術的なレンズを適用することができます。

この点の集合を検出するために必要なのは、わずか数行のコードだけです。
lazy var vision = Vision.vision()
let options = VisionFaceDetectorOptions()
options.contourMode = .all
let faceDetector = vision.faceDetector(options: options)
輪郭の点をリアルタイムに更新することもできます。理想的なフレームレートを実現するために、顔検出ツールにはデフォルトで fast モードが設定されています。
顔の点を検出する準備ができたら、イメージまたはバッファを ML Kit に送って処理してもらいます。
faceDetector.process(visionImage) { faces, error in
  guard error == nil, let faces = faces, !faces.isEmpty else { return }
  for face in faces {
    if let faceContour = face.contour(ofType: .face) {
      for point in faceContour.points {
        print(point.x) // the x coordinate
        print(point.y) // the y coordinate
      }
   }
}      
ML Kit は、イメージと同じスケールで輪郭の x および y 座標を表すの配列を返します。

顔のパーツの位置検出

顔検出ツールは、顔のランドマークも検知することができます。ランドマークとは、鼻、目、耳、口などの顔のパーツを表す包括的な用語です。この機能のパフォーマンスは、I/O で ML Kit をリリースしてから大幅に改善しています。

ランドマークを検知するには、landmarkMode オプションを指定して顔検出ツールを設定します。
lazy var vision = Vision.vision()
let options = VisionFaceDetectorOptions()
options.landmarkMode = .all
let faceDetector = vision.faceDetector(options: options)
その後、ツールにイメージを渡すと、検出したランドマークの座標を受け取って処理できます。
faceDetector.process(visionImage) { faces, error in
  guard error == nil, let faces = faces, !faces.isEmpty else { return }
  for face in faces {
    // check for the presence of a left eye
    if let leftEye = face.landmark(ofType: .leftEye) {
      // TODO: put a monocle over the eye [monocle emoji]
      print(leftEye.position.x) // the x coordinate
      print(leftEye.position.y) // the y coordinate
    }
  }
}

ML Kit で開発したアプリに期待

今回の新機能が、皆さんのビジュアルなアプリにスマートな機能を簡単に組み込む際に役立つことを期待しています。ML Kit による顔検出の詳細は、iOS または Android 向けのドキュメントに記載されています。ぜひ活用してみてください。

Reviewed by Khanh LeViet - Developer Relations Team

この記事は デベロッパープログラムマネージャー、Ibrahim Ulukaya による The Firebase Blog の記事 "See how ML Kit and ARKit play together" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


私たち Firebase チームは、Hanley Weng さんの「CoreML-in-ARKit」プロジェクトの進展を楽しみにしてきました。このプロジェクトでは、シーン内で検出された画像の上に 3D のラベルを表示することができます。オンデバイス検出の応答は高速ですが、チームでは、このオンデバイス モデルのスピードに、クラウドベースのソリューションから得られる正確さを加えた新たなソリューションを開発したいと考えました。それが、私たちの「MLKit-ARKit」プロジェクトで開発したアプリです。今回は、このアプリをどのように実現したかについてご紹介します。

全体の仕組み

Firebase 向け ML Kit は、Google Cloud の持つ機械学習(ML)の専門知識を、高機能と使いやすさを兼ね備えたパッケージにして Android アプリや iOS アプリに提供するモバイル SDK です。使いやすい Base API が揃っており、独自のカスタム TFLite モデルを作成する機能もあります。

ARKit は Apple が提供するフレームワークです。デバイスのモーション トラッキング、カメラによるシーン キャプチャ、高度なシーン処理といった機能に加えて表示も手軽であることから、AR アプリ開発を簡略化できるツールとなっています。これらのテクノロジーを基に、iOS デバイスの前面または背面カメラを使用するさまざまな AR アプリを開発することができます。

このプロジェクトでは、背面カメラで撮影した ARKit フレームをキューにプッシュします。そのフレーム内のオブジェクトを検出する処理を ML Kit で実行します。

ユーザーが画面をタップすると、検出されたラベルの中で信頼度が最大値のものが ML Kit から返されます。そしてそれを元に 3D のふきだしテキストが作成されて、ユーザーのシーンに追加されます。

ML Kit が果たす役割

ML Kit は、機械学習の利用経験を問わず、すべてのモバイル デベロッパーが簡単に機械学習を導入できるツールです。より高度な使用状況に対応する必要がある場合、ML Kit で独自の TFLite モデルを作成することも可能ですが、一般的なユースケースの場合は使いやすい Base API を実装できます。テキスト認識、画像のラベル付け、顔検出などのユースケースに対応できるこれらの API は、Google Cloud でトレーニングされたモデルを利用しています。私たちのサンプルアプリでは、画像のラベル付けを使用します。

Base API は、オンデバイスとクラウドベースという 2 種類の方法で利用できます。オンデバイスの API は無料で使用でき、ローカルで実行されます。クラウドベースの場合はより正確で精度の高い応答が得られます。クラウドベースの Cloud Vision API は、最初の API 呼び出し 1,000 ユニットについては無料で利用でき、それ以上になると利用料金が発生します。Google の Cloud Vision API に基づくフルサイズ モデルの機能を利用できます。

両者を活かした方法

私たちのアプローチでは、画像にラベル付けする ML Kit のオンデバイス API を使用して、60 fps のフレームレートを維持しながら結果のライブフィードを取得することにします。ユーザーが画面をタップしたときに、現在の画像でクラウドの画像ラベル付け用 API に対し非同期呼び出しを起動します。より精度の高いこのモデルから応答を受け取ると、3D ラベルがすぐに更新されます。つまり、オンデバイス API を継続的に実行し、その結果を最初の情報源として使用しながら、より正確な Cloud API をオンデマンドで呼び出して、その結果を後からオンデバイスのラベルと置き換えるのです。

どちらの結果が表示されるか

オンデバイス API ではすべての処理がリアルタイムでローカルに実行されます。一方、Cloud Vision API では Google Cloud バックエンドへのネットワーク リクエストを実行し、大規模で精度の高いモデルを活用します。私たちはこちらの方がより正確な応答だと考えて、アプリでは、オンデバイス API で提供されたラベルを、Cloud Vision API から結果が返され次第、その結果に置き換えています。

試してみましょう

1. プロジェクトのクローンを作成します。

$ git clone https://github.com/FirebaseExtended/MLKit-ARKit.git

2. ポッドをインストールし、.xcworkspace ファイルを開いて Xcode でプロジェクトを確認します。

1. $ cd MLKit-ARKit
2. $ pod install --repo-update
3. $ open MLKit-ARKit.xcworkspace

3. サンプルアプリに Firebase ML Kit を設定します。

1. アプリに Firebase を追加する手順を行います。
2. iOS プロジェクトのバンドル ID として「com.google.firebaseextended.MLKit-ARKit」を指定します。
3. アプリに Firebase を追加する際に生成された GoogleService-Info.plist ファイルをダウンロードします。
4. Xcode で、アプリに GoogleService-Info.plist ファイルを(Info.plist の次に)追加します。

この時点で、アプリはオンデバイスの認識を利用できるようになるはずです。

4. (省略可能)サンプルアプリに Cloud Vision API を設定します。

1.Firebase プロジェクトを Blaze プランに切り替えます。
Cloud Vision API を使用できるのは Blaze レベルのプロジェクトのみです。以下の手順でプロジェクトを Blaze プランに切り替えて従量課金制のお支払いを有効にしてください。
  1. Firebase コンソールでプロジェクトを開きます。
  2. 左下で現在選択されている Spark プランの横にある [変更] リンクをクリックします。
  3. Blaze プランを選択し、Firebase コンソールに表示される手順に沿って請求先アカウントを追加します。
    ★ クラウドのラベル検出機能は、1 か月あたり最初の 1,000 ユーザーまで無料で利用できます。料金設定について詳しくは、こちらをクリックしてください。
2.Firebase コンソールの [ML Kit] セクションに移動し、上部にある [クラウドベースの API を有効化] をオンにします。

以上の設定で、アプリでは Cloud Vision API から得られたより正確な結果をラベルに適用できるようになります。

Posted by Hak Matsuda - Developer Relations Team

Googleでは、機械学習 に特化したイベント 「Google Developers ML Summit」を 3 月 20 日 (水) 10:30 より開催します。



本イベントでは、TensorFlow、Cloud ML、 ML Kit、 Actions on Google など、Google が開発者のみなさんに提供する機械学習ツールについてのセッションとハンズオンを Google 社員とGoogle Developer Expert により行います。特に午後はハンズオンに特化しています。



イベント概要

名 称:Google Developers ML Summit

日 時: 2018 年 3 月 20 日 ( 水 ) 10 : 30 - 17 : 00

会 場:六本木アカデミーヒルズ / Google 東京オフィス  

〒106-6149 東京都港区六本木6丁目10番1号 六本木ヒルズ森タワー49F 

協力 :TensorFlow User Group, Assistant Developer Community Japan



タイムテーブル (※変更の可能性あり)


10:30 AM - 10:45 AM
キーノート

Keynote / Opening

ルーム A
鈴木 拓生
Developer Relations Program Manager

10:45 AM - 11:15 AM
機械学習の概要
Machine Learning  overview
ルーム A
佐藤一憲 / Kaz Sato
Developer Advocate

11:15 AM - 11:45 AM
TensorFlow 2.0: Machine Learning Made Easy
TensorFlow 2.0: Machine Learning Made Easy
ルーム A
Laurence Moroney
Developer Advocate

11:45 AM - 12:15 PM
Cloud ML API 入門
Cloud ML API introduction
ルーム A
大薮 勇輝 / Yaboo Oyabu
Machine Learning Specialist

12:15 PM - 12:35 AM
ML Kit 事例紹介 (仮)
ML Kit case studies
ルーム A 
堀江 亮介 / Ryosuke Horie
Android Tech Lead , ZOZO テクノロジーズ
Khanh LeViet
Developer Advocate, Google
12:35 PM - 1:00 PM
Actions on Google 事例紹介 (仮)
Actions on Google update
ルーム A 
1:00 PM - 1:45 PM
ランチ休憩
ランチは会場でご用意いたします。
ルーム A

1:45 PM - 2:00 PM
コードラボ会場へ移動
ランチは会場でご用意いたします。
ルーム A


コードラボ / CODELABS 2:00PM - 5:00 PM
TensorFlow コードラボ
TensorFlow Codelabs

Actions on Google コードラボ
Actions on Google Codelabs

GCP ML API コードラボ
GCP ML API Codelabs

ML Kit コードラボ
ML Kit Codelabs



申込方法



本イベントへの申し込み、詳細につきましてはこちらのサイトをご覧ください。
※ 参加可能な方には後日参加証を送付いたします。


みなさまの参加をお待ちしております。



Posted by Takuo Suzuki - Developer Relations Team

Googleでは、機械学習 に特化したイベント 「Google Developers ML Summit」を 12 月 14 日 (金) 11:00 より開催します。

本イベントでは、TensorFlow、Cloud ML、 ML Kit、Edge TPU, Actions on Google など、Google が開発者のみなさんに提供する機械学習ツールについてのセッションを Google 社員とGoogle Developers Experts により行います。
本イベントの 14 日は、カンファレンス DAY として、12 をセッションを通じて様々な機械学習ツールに対しての理解を深めていただき、15 日には実際に機械学習のツールを使ったワークショップを予定しています。
※15日のワークショップについての詳細は、後日公開いたします。

イベント概要
イベント名Google Developers ML Summit
日程: 2018 年 12 月 14 日(金) 11:00 - 17:00 (開場: 10:30)
場所:虎ノ門ヒルズ
定員 :500 名
主催 :Google
協力TensorFlow User Group, Assistant Developer Community Japan

タイムテーブル: (※変更の可能性あり)




申込方法
本イベントへの申し込み、詳細につきましてはこちらのサイトをご覧ください。
※ 参加可能な方には後日参加証を送付いたします。


みなさまの参加をおまちしております。


Posted by Takuo Suzuki - Developer Relations Team

この記事は プロダクト マネージャー、Brahim Elbouchikhi による Google Developers Blog の記事 "Introducing ML Kit" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。

現在の変化の速い世界では、ユーザーのアクティビティに適合したり、驚くべきスマートさでユーザーを楽しませたりするインテリジェントなモバイルアプリが求められています。そのため Google は、モバイル向けの開発で機械学習が重要なツールになると判断しました。そこで今回、5 月 8 日の Google I/O でベータ版の ML Kit を発表しました。ML Kit は、モバイル デベロッパーに Google の機械学習に関する専門知識を Firebase 上の強力で使いやすいパッケージとして提供する、新しい SDK です。この SDK を発表することができ、とても嬉しく思っています。

スキルレベルに関係なく使える機械学習


多くのデベロッパーにとって、機械学習を使い始めることが難しい場合があります。通常、新規の ML デベロッパーは、フレームワークなどを使用して低レベルモデルを実装することに伴う複雑性を理解するために膨大な時間を費やしています。熟練したエキスパートでも、モデルを導入して最適化し、モバイル端末上で実行するには、骨の折れる作業が必要になることがあります。機械学習の複雑さ以外にも、特に世界中のユーザーを対象にした場合、トレーニング データを取得することはコストも時間もかかるプロセスになる可能性があります。

ML Kit を使用すると、機械学習に関する専門知識のレベルに関係なく、機械学習を使って Android や iOS に魅力的な機能をビルドすることができます。次に詳細について説明します。

一般的なユースケースでの本番使用に対応


ML Kit では、機械学習を使ってみたいと考えている初心者のために、次の一般的なモバイル ユースケースに対応したすぐに使える 5 つの(「基本」)API を用意しています。
  • テキスト認識
  • 顔検出
  • バーコード スキャン
  • 画像ラベル付け
  • ランドマーク認識

これらの基本 API を使用すると、ML Kit にデータを渡すだけで、直感的な応答が返されます。例: 早期デベロッパーの 1 つである Lose It! では、ML Kit を使用して、最新バージョンのカロリー記録アプリにいくつかの機能を組み込んでいます。このアプリは ML Kit のテキスト認識ベースの API とカスタムビルドされたモデルを使用して、製品ラベルから栄養成分をすばやく取得し、画像に表示された食品内容物を入力します。



ML Kit では、端末上の API および Cloud API が共通のシンプルなインターフェースで提供されるため、デベロッパーの要件に最適な API を選択することができます。端末上の API はデータをすばやく処理し、ネットワーク接続がない場合でも動作します。クラウドベースの API は Google Cloud Platform の機械学習テクノロジーの能力を活用して、より高レベルの精度を実現します。

Firebase コンソールでこれらの API がどのように機能するかをご覧ください。



注意: 今後数か月のうちに、2 つの追加 API をリリースする予定です。最初の 1 つは、アプリでコンテキスト メッセージング応答をサポートできるようにするスマート リプライ API です。もう 1 つは、顔検出 API に追加される高密度の等高線検出機能です。こちらでサインアップして、これらの API をお試しください。

カスタムモデルのデプロイ


デベロッパーが機械学習に習熟していて、ユースケースに適した基本 API がない場合、ML Kit ではデベロッパー独自の TensorFlow Lite モデルをデプロイできます。これらのモデルを Firebase コンソールを介してアップロードするだけで、モデルがホストされ、アプリのユーザーにモデルのサービスが提供されます。つまり、モデルが APK / バンドルから切り離され、アプリのインストール サイズが削減されます。また、ML Kit はモデルにサービスを動的に提供するため、アプリを再度公開しなくてもモデルを常に更新することができます。

ただし、問題もあります。アプリの機能の増加に伴い、そのサイズも拡大するため、アプリストアでのインストール率が低下し、過大なデータ量がユーザーに負担をかける可能性があります。モデルのサイズが数十メガバイトに達する場合があるため、機械学習によりこの傾向がさらに悪化する可能性があります。したがって、Google では、モデルの圧縮に投資することにしました。具体的には、トレーニング データとともに完全な TensorFlow モデルをアップロードし、その後、圧縮された TensorFlow Lite モデルを受け取れるようにする機能の実験を行っています。この機能の背後にあるテクノロジーは急速に進化しており、この機能を試してフィードバックをお寄せいただけるデベロッパーを探しています。ご興味のあるデベロッパーは、こちらからお申し込みください。

他の Firebase プロダクトを使った改善


ML Kit は Firebase を通じて利用できるため、幅広い Firebase プラットフォームを簡単に活用できます。たとえば、Remote ConfigA/B テストを使用すると、複数のカスタム モデルを試すことができます。アプリ内の値を動的に切り替えて最適な設定に調整し、ユーザーに使ってほしいカスタム モデルをすぐに交換できます。ユーザー区分を作成して、複数のモデルを並行して試すこともできます。

他にも次のような例があります。

使ってみる


ML Kit を使ってビルドされたアプリを見るのを楽しみにしています。多くの早期デベロッパーと同じように、このプロダクトが皆さんのお気に入りになることを願っています。



すぐに Firebase コンソールにアクセスして、ML Kit ベータ版の使用を開始してください。ご意見やフィードバックがありましたら遠慮なくお知らせください。皆さんからのご連絡をお待ちしています。



Reviewed by Kaz Sato - Staff Developer Advocate, Google Cloud