Androidアプリに機械学習を追加する方法

著者: Peter Berry
作成日: 16 Lang L: none (month-012) 2021
更新日: 1 J 2024
Anonim
Androidアプリ開発 超入門 10 〜画面を追加 / レイアウトxmlで文字を仮置きする tools:〜 30代からのプログラミング【2020年版】
ビデオ: Androidアプリ開発 超入門 10 〜画面を追加 / レイアウトxmlで文字を仮置きする tools:〜 30代からのプログラミング【2020年版】

コンテンツ


機械学習(ML)は、モバイルユーザーに革新的で説得力のあるユニークなエクスペリエンスを作成するのに役立ちます。

MLをマスターしたら、それを使用して、主題に基づいて写真を自動的に整理するアプリ、ライブストリーム全体で人の顔を識別および追跡するアプリ、画像からテキストを抽出するアプリなど、さまざまなアプリケーションを作成できます。

しかし、MLは初心者向けではありません。強力な機械学習機能を使用してAndroidアプリを強化したい場合、どこから始めますか?

この記事では、たとえあなたがMLの力をあなたの指先に置くことを約束するSDK(ソフトウェア開発キット)の概要を提供します。 ゼロ MLエクスペリエンス。この記事の終わりまでに、画像にラベルを付けたり、バーコードをスキャンしたり、顔や有名なランドマークを認識したり、他の多くの強力なMLタスクを実行したりできる、インテリジェントなMLベースのアプリの作成を開始するための基盤が整います。

Googleの機械学習キットをご覧ください

TensorFlowやCloudVisionなどのテクノロジーのリリースにより、MLはより広く使用されるようになりましたが、これらのテクノロジーは気弱な人には向いていません!通常、ニューラルネットワークとデータ分析の深い理解が必要です。 始まった TensorFlowなどのテクノロジーを使用します。

たとえあなたが 行う MLである程度の経験があるため、機械学習を活用したモバイルアプリの作成には時間がかかり、複雑で費用のかかるプロセスになる可能性があり、独自のMLモデルをトレーニングするために十分なデータを入手し、それらのMLモデルを最適化して、モバイル環境。あなたが個人の開発者であるか、リソースが限られている場合、MLの知識を実践することはできないかもしれません。

MLキットは、大衆に機械学習をもたらすためのGoogleの試みです。

内部的には、ML Kitには、Cloud Vision、TensorFlow、Android Neural Networks APIなど、広範なMLの知識を通常必要とするいくつかの強力なMLテクノロジーがバンドルされています。 MLキットは、これらの専門MLテクノロジーを、画像からテキストを抽出し、バーコードをスキャンし、写真の内容を識別するなど、一般的なモバイルユースケース用の事前トレーニングモデルと組み合わせます。


MLの予備知識があるかどうかに関係なく、ML Kitを使用してAndroidに強力な機械学習機能を追加できます そして iOSアプリ–テキスト認識APIや言語識別APIなどの一部のデータをMLキットの正しい部分に渡すだけで、このAPIは機械学習を使用して応答を返します。

MLキットAPIを使用するにはどうすればよいですか?

MLキットは、Firebaseプラットフォームの一部として配布されるいくつかのAPIに分割されています。 ML Kit APIを使用するには、Android Studioプロジェクトと対応するFirebaseプロジェクトの間に接続を作成し、Firebaseと通信する必要があります。

MLキットのほとんどのモデルは、ダウンロードしてローカルで使用できるオンデバイスモデルとして利用できますが、一部のモデルはクラウドでも利用できます。これにより、アプリはデバイスのインターネット接続を介してMLを使用したタスクを実行できます

それぞれのアプローチには独自の長所と短所がありますので、特定のアプリにローカル処理とリモート処理のどちらが最適かを判断する必要があります。両方のモデルのサポートを追加して、ユーザーが実行時に使用するモデルを決定できるようにすることもできます。あるいは、現在の条件に最適なモデルを選択するようにアプリを構成することもできます。たとえば、デバイスがWi-Fiに接続されている場合にのみクラウドベースのモデルを使用します。

ローカルモデルを選択すると、ユーザーがアクティブなインターネット接続を持っているかどうかに関係なく、アプリの機械学習機能が常に利用可能になります。すべての作業はローカルで実行されるため、アプリで大量のデータをすばやく処理する必要がある場合、たとえばML Kitを使用してライブビデオストリームを操作する場合、デバイス上のモデルは理想的です。

一方、クラウドモデルはGoogle Cloud Platformの機械学習テクノロジーの力を活用しているため、通常、クラウドベースのモデルはデバイス上の対応モデルよりも高い精度を提供します。たとえば、Image Labeling APIのオンデバイスモデルには400個のラベルが含まれていますが、クラウドモデルは 10,000個のラベル.


APIによっては、クラウドでのみ利用できる機能もある場合があります。たとえば、テキスト認識APIは、クラウドベースのモデルを使用している場合、非ラテン文字のみを識別できます。

クラウドベースのAPIはBlazeレベルのFirebaseプロジェクトでのみ使用できるため、ML Kitのクラウドモデルを使用する前に、従量制のBlazeプランにアップグレードする必要があります。

クラウドモデルを検討することにした場合は、執筆時点で、すべてのMLキットAPIに無料の割り当てがありました。クラウドベースの画像ラベリングを試してみたい場合は、FirebaseプロジェクトをBlazeプランにアップグレードし、1,000未満の画像でAPIをテストしてから、無料で無料のSparkプランに切り替えることができます。ただし、利用規約には時間の経過とともに変化するという厄介な習慣があるため、Blazeにアップグレードする前に小さな活字を必ず読んで、予想外の請求書が当たらないようにしてください!

テキスト認識APIを使用して、画像内のテキストを識別します

テキスト認識APIは、テキストをインテリジェントに識別、分析、処理できます。

このAPIを使用して、画像からテキストを抽出するアプリケーションを作成できるため、ユーザーは面倒な手動データ入力に時間を浪費する必要がありません。たとえば、テキスト認識APIを使用して、問題のアイテムの写真を撮影するだけで、ユーザーが領収書、請求書、名刺、栄養ラベルから情報を抽出して記録できるようにします。

テキスト認識APIを翻訳アプリの最初のステップとして使用することもできます。ユーザーはなじみのないテキストの写真を撮り、APIが画像からすべてのテキストを抽出し、翻訳サービスに渡す準備をします。

ML Kitのデバイス上テキスト認識APIは、ラテン語ベースの言語のテキストを識別できます。一方、クラウドベースの対応物は、中国語、日本語、韓国語の文字を含むさまざまな言語と文字を認識できます。また、クラウドベースのモデルは、画像からスパーステキストを抽出し、密集したドキュメントからテキストを抽出するように最適化されています。アプリで使用するモデルを決定する際に考慮する必要があります。

このAPIを実際に体験したいですか?次に、テキスト認識APIを使用して、任意の画像からテキストを抽出できるアプリケーションを作成するためのステップバイステップガイドをご覧ください。

画像のコンテンツを理解する:Image Labeling API

Image Labeling APIは、追加のコンテキストメタデータを必要とせずに、場所、人、製品、動物などの画像内のエンティティを認識できます。 Image Labeling APIは、検出されたエンティティに関する情報をラベルの形式で返します。たとえば、次のスクリーンショットでは、APIに自然写真を提供し、「森林」や「川」などのラベルで応答しました。

画像のコンテンツを認識するこの機能は、主題に基づいて写真にタグを付けるアプリの作成に役立ちます。ユーザーが送信した不適切なコンテンツを自動的に識別してアプリから削除するフィルター。または高度な検索機能の基礎として。

ML Kit APIの多くは、Image Labeling APIを含む、信頼性スコアを伴う複数の可能な結果を​​返します。プードルの写真に画像ラベリングを渡すと、「プードル」、「犬」、「ペット」、「小動物」などのラベルが返されます。すべてのラベルは、各ラベルに対するAPIの信頼度を示します。願わくば、このシナリオで「プードル」の信頼性スコアが最高になることを願っています。

この信頼スコアを使用して、アプリケーションが特定のラベルを操作する前に満たす必要のあるしきい値を作成できます。たとえば、ユーザーに表示したり、このラベルで写真にタグを付けたりします。

画像ラベリングは、デバイス上とクラウドの両方で利用できますが、クラウドモデルを選択すると、デバイス上モデルに含まれる400のラベルと比較して、10,000を超えるラベルにアクセスできます。

Image Labeling APIの詳細については、機械学習で画像のコンテンツを特定するをご覧ください。この記事では、画像を処理し、その画像内で検出された各エンティティのラベルと信頼スコアを返すアプリケーションを構築します。また、このアプリにはオンデバイスモデルとクラウドモデルが実装されているため、選択したモデルに応じて結果がどのように異なるかを正確に確認できます。

式の理解と顔の追跡:Face Detection API

Face Detection APIは、写真、ビデオ、およびライブストリームで人間の顔を特定し、位置、サイズ、向きなど、検出された各顔に関する情報を抽出します。

このAPIを使用して、たとえば最新のヘッドショットの周りのすべての空のスペースを自動的にトリミングすることにより、ユーザーが写真を編集できるようにすることができます。

顔検出APIは画像に限定されません。このAPIを動画に適用することもできます。たとえば、ビデオフィード内のすべての顔を識別し、すべてをぼかしたアプリを作成できます を除く これらの顔は、Skypeの背景ぼかし機能に似ています。

顔検出は 常に リアルタイムで使用するのに十分高速なデバイスで実行されるため、ML KitのAPIの大部分とは異なり、顔検出は じゃない クラウドモデルを含めます。

このAPIには、顔の検出に加えて、探索する価値のあるいくつかの追加機能があります。まず、顔検出APIは目、唇、耳などの顔のランドマークを識別し、これらのランドマークのそれぞれの正確な座標を取得します。この ランドマーク認識 検出された各顔の正確なマップを提供します。ユーザーのカメラフィードにSnapchatスタイルのマスクとフィルターを追加する拡張現実(AR)アプリの作成に最適です。

顔検出APIは、顔も提供します 分類。現在、MLキットは2つの顔の分類をサポートしています:目を開いて、笑顔です。

この分類を、ハンズフリーコントロールなどのアクセシビリティサービスの基盤として使用したり、プレーヤーの表情に反応するゲームを作成したりできます。カメラアプリを作成している場合、誰かが笑っているのか、目が開いているのかを検出する機能も役立ちます。結局のところ、たくさんの写真を撮るのは悪いことではありません。に すべてのショット。

最後に、顔検出APIには顔追跡コンポーネントが含まれています。このコンポーネントは、顔にIDを割り当て、複数の連続した画像またはビデオフレームにわたってその顔を追跡します。これは顔であることに注意してください 追跡 本当の顔ではない 認識。舞台裏では、顔検出APIが顔の位置と動きを追跡し、この顔がおそらく同じ人物に属していると推測していますが、最終的にはその人物の身元を認識しません。

自分でFace Detection APIを試してください!機械学習とFirebase MLキットを使用して顔検出アプリを作成する方法をご覧ください。

FirebaseとMLを使用したバーコードスキャン

バーコードスキャンは、他の機械学習APIほど刺激的ではないかもしれませんが、MLキットの最もアクセスしやすい部分の1つです。

バーコードのスキャンには専門のハードウェアやソフトウェアは必要ありません。したがって、Barcode Scanning APIを使用しながら、古いデバイスや予算のあるデバイスのユーザーを含め、できるだけ多くの人がアプリにアクセスできるようにします。デバイスにカメラが機能している限り、バーコードのスキャンに問題はありません。

ML KitのバーコードスキャンAPIは、印刷およびデジタルバーコードから幅広い情報を抽出できるため、ユーザーが面倒な手動データ入力を行うことなく、現実世界からアプリケーションに情報をすばやく簡単にアクセスできるようにします。 。

バーコードスキャンAPIがバーコードを認識して解析できるデータタイプは9つあります。

  • TYPE_CALENDAR_EVENT。 これには、イベントの場所、主催者、開始時刻と終了時刻などの情報が含まれます。イベントを宣伝する場合は、ポスターやチラシに印刷されたバーコードを含めるか、ウェブサイトにデジタルバーコードを掲載することができます。潜在的な出席者は、バーコードをスキャンするだけで、イベントに関するすべての情報を抽出できます。
  • TYPE_CONTACT_INFO。 このデータタイプには、連絡先のメールアドレス、名前、電話番号、役職などの情報が含まれます。
  • TYPE_DRIVER_LICENSE。 これには、運転免許証に関連付けられている通り、市、州、名前、生年月日などの情報が含まれています。
  • TYPE_EMAIL。 このデータタイプには、メールアドレス、メールの件名、本文が含まれます。
  • TYPE_GEO。 これには、特定のジオポイントの緯度と経度が含まれます。これにより、ユーザーと場所を簡単に共有したり、ユーザーが自分の場所を他のユーザーと共有したりできます。ジオバーコードを使用して、ユーザーの現在地に関する有用な情報を表示したり、場所ベースのモバイルゲームの基礎として場所ベースのイベントをトリガーしたりすることもできます。
  • TYPE_PHONE。 これには、電話番号と番号のタイプが含まれます。たとえば、職場の電話番号か自宅の電話番号かが含まれます。
  • TYPE_SMS。 これには、SMSに関連付けられたSMS本文テキストと電話番号が含まれます。
  • TYPE_URL。 このデータ型には、URLとURLのタイトルが含まれます。 TYPE_URLバーコードのスキャンは、入力ミスやスペルミスをせずに、長く複雑なURLをユーザーが手動で入力するよりもはるかに簡単です。
  • TYPE_WIFI。 これには、Wi-FiネットワークのSSIDとパスワードに加えて、OPEN、WEP、WPAなどの暗号化タイプが含まれます。 Wi-Fiバーコードは、Wi-Fi認証情報を共有する最も簡単な方法の1つであり、ユーザーがこの情報を誤って入力するリスクを完全に排除します。

Barcode Scanning APIは、Codabar、Code 39、EAN-8、ITF、UPC-Aなどの線形形式、およびAztec、Data Matrix、QR Codeなどの2D形式など、さまざまなバーコードのデータを解析できます。

エンドユーザーの作業を容易にするため、このAPIはサポートされているすべてのバーコードを同時にスキャンし、バーコードの向きに関係なくデータを抽出することもできます。したがって、ユーザーがスキャンするときにバーコードが完全に上下逆になっても問題ありません!

クラウドでの機械学習:Landmark Recognition API

ML KitのLandmark Recognition APIを使用して、画像内の有名な自然のランドマークと構築されたランドマークを識別できます。

このAPIに有名なランドマークを含む画像を渡すと、そのランドマークの名前、ランドマークの緯度と経度の値、およびランドマークが画像内で発見された場所を示す境界ボックスが返されます。

Landmark Recognition APIを使用して、ユーザーの写真に自動的にタグを付けるアプリケーションを作成したり、ユーザーがエッフェル塔の写真を撮影していることをアプリが認識した場合など、よりカスタマイズされたエクスペリエンスを提供することができます。このランドマーク、またはユーザーが次に訪問したいと思うかもしれない同様の近くの観光名所を提案します。

MLキットでは通常、Landmark Detection APIはクラウドベースのAPIとしてのみ利用できるため、デバイスがアクティブなインターネット接続を持っている場合のみ、アプリケーションはランドマーク検出を実行できます。

Language Identification API:国際的な視聴者向けの開発

今日、Androidアプリは、さまざまな言語を話すユーザーによって世界中のあらゆる場所で使用されています。

ML Kitの言語識別APIは、文字列を取得し、記述されている言語を判別することで、Androidアプリを国際的な視聴者にアピールするのに役立ちます。言語識別APIは、アラビア語、ブルガリア語、中国語、ギリシャ語、ヒンディー語、日本語、ロシア語。

このAPIは、ユーザーが提供したテキストを処理するアプリケーションに貴重な追加機能となります。このテキストには言語情報がほとんど含まれないためです。翻訳の最初のステップとして、翻訳アプリで言語識別APIを使用することもできます 何でも、使用している言語を知っていることです!たとえば、ユーザーがデバイスのカメラをメニューに向けると、アプリは言語識別APIを使用してメニューがフランス語で書かれていることを判断し、Cloud Translation APIなどのサービスを使用してこのメ​​ニューを翻訳することを提案します(おそらく、テキスト認識APIを使用してテキストを抽出した後ですか?)

問題の文字列に応じて、Language Identification APIは複数の潜在的な言語を返し、信頼性スコアを伴うため、検出された言語のうちどれが正しいかを判断できます。執筆時点では、MLキットは同じ文字列内の複数の異なる言語を識別できませんでした。

このAPIがリアルタイムで言語識別を提供することを保証するために、言語識別APIはデバイス上のモデルとしてのみ利用可能です。

近日公開:スマート返信

Googleは今後、ML KitにAPIを追加する予定ですが、1つの最新のAPIについては既に知っています。

ML Kitウェブサイトによると、今後の Smart Reply API 現在のコンテキストに適合するテキストのスニペットを提案することにより、アプリケーションでコンテキストメッセージング応答を提供できます。このAPIについて既に知っていることを基にすると、Smart Replyは、Androidアプリ、Wear OS、Gmailで既に利用可能な提案応答機能に似ているようです。

次のスクリーンショットは、提案された応答機能が現在Gmailでどのように見えるかを示しています。

次は何ですか? TensorFlow LiteとMLキットの使用

MLキットは、一般的なモバイルユースケース用の事前構築モデルを提供しますが、ある時点で、これらの既製モデルを超えて移動したい場合があります。

TensorFlow Liteを使用して独自のMLモデルを作成し、MLキットを使用して配布することができます。ただし、MLキットの既製のAPIとは異なり、独自のMLモデルを操作するには、 重要な MLの専門知識の量。

TensorFlow Liteモデルを作成したら、それらをFirebaseにアップロードできます。Googleは、それらのモデルのホスティングとエンドユーザーへの提供を管理します。このシナリオでは、MLキットはカスタムモデルのAPIレイヤーとして機能し、カスタムモデルの使用に伴う手間のかかる作業の一部を簡素化します。最も注目すべきは、MLキットがモデルの最新バージョンをユーザーに自動的にプッシュするため、モデルを微調整するたびにアプリを更新する必要がないことです。

最高のユーザーエクスペリエンスを提供するために、アプリケーションがTensorFlow Liteモデルの新しいバージョンをダウンロードする前に満たす必要がある条件を指定できます。たとえば、デバイスがアイドル状態、充電中、またはWi- Fi。 MLキットとTensorFlow Liteを他のFirebaseサービスと一緒に使用することもできます。たとえば、Firebase Remote ConfigとFirebase A / B Testingを使用して、異なるモデルを異なるユーザーセットに提供します。

事前に構築されたモデルを超えて移動したい場合、またはMLキットの既存のモデルがニーズを十分に満たしていない場合は、Firebaseの公式ドキュメントで、独自の機械学習モデルの作成について詳しく知ることができます。

まとめ

この記事では、Googleの機械学習キットの各コンポーネントを見て、各MLキットAPIを使用したい一般的なシナリオをいくつか取り上げました。

Googleは将来、さらにAPIを追加することを計画しているので、次にどの機械学習APIをMLキットに追加したいと思いますか?以下のコメントでお知らせください!

の第274版へようこそ!先週の大きな見出しは次のとおりです。今週、Google Aitantに厄介なニュースがありました。人々があなたのGoogleアシスタントの録音を聞いていることがわかります。数週間前にアマゾンが録音を削除しないことについて話しましたので、この夏にはすでにテーマがあります。ありがたいことに、すべての音声ではありません。ただし、文字起こしは、文字起こしの目的でスニペットを聞きま...

ファーウェイ・コンシューマー・ビジネス・グループのCEO、リチャード・ユは最近、折り畳み式のファーウェイ・メイトX(これまでリリースされていない)を使用して空港で捕まった。まだ発売されていないデバイスの使用を隠すのではなく、カメラのために喜んでハミングアップし、匿名の写真家が電話のクローズアップショットをつかむことさえ可能にしました。...

読者の選択