AI:ソフトウェア・オプション

  • 機械学習モデルをアプリに統合する方法を学ぶ
  • アプリ統合のコードを書き始める

このレッスンのアクティビティ:

モデルの統合

そろそろ、あなたのチームは 

  • 訓練されたそのAIモデルは健康なデータセットを使って訓練された。
  • テスト済み新しい多様なデータでモデルをテストした

しかし、そのままにしておくことはできない! 

モデルに行動を起こさせたい アクションを実行させたい。

次のことが必要です。 モデルをアプリに実装する必要があるに実装する必要があります。

brain hovering over a computer chip

プラットフォームの選択

どのプラットフォームを使ってアプリをコーディングするかは、あなた次第だ:

  1. モバイルアプリのコーディングプラットフォームの好み
  2. モデルの学習に使用したプラットフォーム

以下は、ユニット5で取り上げた機械学習プラットフォームである。それぞれをクリックすると、モデルをアプリに統合するためのオプションが表示されます。 

Teachable Machineは非常に汎用性の高いプラットフォームです。モデルをクラウドに保存することも、ファイルとして保存することもできるので、コーディング・プラットフォームとの統合には多くの選択肢があります。

このビデオでは、モデルをエクスポートする方法を説明します。

  • App Inventorには、Fabiano Oliveira氏によって提供されたTeachable Machine Image Classification拡張機能があり、拡張機能引き出しからダウンロードしてインポートできます。
  • Teachable Machineは、機械学習ライブラリであるTensorflowと統合するためのコード・スニペットを提供する。3つのコード・スニペット・オプションが用意されている:
    • Tensorflow.js - Javascript言語により、ウェブページやウェブアプリを作成できます。
    • Tensorflow -ウェブアプリケーションを作成するためのPython言語。
    • Tensorflow Lite -モバイルアプリを作成するためのJava言語。 

3つのコード・スニペットはすべて、コピーするモデル・ファイルとコードを提供します。言語によっては、ライブラリやコードエディタをインストールする必要があるかもしれません。説明書へのリンクはコード・スニペットと一緒に提供されています。 

以上が、Tensorflow.jsオプションを使用する手順だ:

    1. コードをコピーし、コンピュータ上の新しい空白のテキストファイルに貼り付けます。
      teachable machine code snippet
    2. index.html(または拡張子が.htmlの他の何か)として保存してください。 
    3. ファイルをウェブブラウザで開いてください。モデルに基づいてウェブカメラで撮影した画像を分類できる基本インターフェースが表示されます。
    4. ウェブカメラではなく、分類対象の画像をアップロードできるようにしたい場合、このコードが機能します。(提供:Chris Hoyean Song)元のコードスニペットからモデルURLをこのファイルにコピーすることを忘れないでください。 

TensorflowとTensorflow Liteのオプションでは、ソフトウェアとコーディング・ライブラリのインストールが異なります。詳細な手順については、githubサイトを確認してください。

テクノベーションの統合: Python、App Inventor

現在、Machine Learning for Kidsの統合で、ジュニアとシニア部門で完全に機能しているのはPythonだけだ。 

Machine Learning for KidsモデルのPythonへの統合についてもっと学ぶには、このページのワークシートの1つを試してみてください。Make Type ドロップダウンから Python を選択します。 

MIT App Inventorは統合のためのオプションですが、すべてのデータセットタイプが完全に動作するわけではありません。あなたのデータセットがApp Inventorと互換性があることを確認するには、Machine Learning for Kidsのウェブサイトをチェックしてください。 

エクステンションは、アプリに機能を追加する外部コンポーネントですが、App Inventor のコア コンポーネントには含まれません。

App Inventorの分類器ウェブサイト(画像音声)を使用して画像または音声モデルをトレーニングしたら、App Inventorの拡張機能を使用して、そのモデルをモバイルアプリで活用します。 

App Inventor用のAIエクステンションの使用方法は、以下の手順を参照してください。

App Inventorのエクステンションはすべてここで入手でき、ダウンロードしてApp Inventorにインポートして使用できます。お使いのモデルに適したエクステンションを選択してください。

  1. デザイナーパレットのExtensionをクリックします。
  2. 拡張機能のインポートをクリックします。
  3. Choose Fileをクリックし、上記の拡張機能ページからダウンロードした拡張機能ファイルを選択します。
  4. インポートボタンをクリックして、エクステンションとそのブロックをインポートします。
import window

また、プロジェクトにWebViewerコンポーネントを追加する必要があります。WebViewer コンポーネントは User Interface ドロワーにあります。

以下の例では、画像分類器の設定方法を示しますが、モデルが音声を扱う場合、音声分類器でもほぼ同様の手順で動作します。

分類器からモデルをリンクするには、まず分類器のウェブサイトからモデルをダウンロードします、 

  1. 選択する PersonalImageClassifer コンポーネントを選択します。
  2. プロパティパネルで、モデルの下の「なし」をクリックし、ダウンロードしたmodel.mdlファイルをアップロードします。(ファイル名は自由に変更できますが、拡張子が.mdlでなければなりません)。
  3. の下にある「なし」をクリックします。 Webビューアをクリックして WebViewerコンポーネントを選択します。
screenshot of webviewer in app inventor

「InputMode」プロパティに注意してください。このプロパティは「Video」または「Image」のいずれかに設定できます。ビデオを選択した場合、WebViewerに表示されるビデオフィードを継続的に分類しようとします。画像を選択した場合、分類対象の画像を取得するためにカメラまたはImagePickerコンポーネントを追加する必要があります。画像分類を機能させるには、WebViewerコンポーネントが依然として必要です。

inputmode for webviewer

次のビデオでは、ユニット 5 の健康な果物および病気の果物のモデルを App Inventor に追加して、携帯電話のカメラを使って健康な果物と病気の果物を識別できるモバイル・アプリを作成する方法をご覧ください。

パート2では、分類器のブロックをコーディングします。

App Inventor のすべての拡張機能は こちらからでダウンロードでき、App Inventor にインポートして使用できます。お使いのモデルに適したエクステンションを選択してください。

  1. デザイナーパレットのExtensionをクリックします。
  2. 拡張機能のインポートをクリックします。
  3. Choose Fileをクリックし、上記の拡張機能ページからダウンロードした拡張機能ファイルを選択します。
  4. インポートボタンをクリックして、エクステンションとそのブロックをインポートします。

また、プロジェクトにWebViewerコンポーネントを追加する必要があります。WebViewer コンポーネントは User Interface ドロワーにあります。

以下の例では、画像分類器の設定方法を示しますが、モデルが音声を扱う場合、音声分類器でもほぼ同様の手順で動作します。

分類器からモデルをリンクするには、まず分類器のウェブサイトからモデルをダウンロードします、 

  1. PersonalImageClassifer コンポーネントを選択してください。
  2. プロパティパネルで、モデルの下の「なし」をクリックし、ダウンロードしたmodel.mdlファイルをアップロードします。(ファイル名は自由に変更できますが、拡張子が.mdlでなければなりません)。
  3. WebViewerの下にある "None "をクリックし、プロジェクトに追加したばかりのWebViewerコンポーネントを選択します。

screenshot of webviewer in app inventor

「InputMode」プロパティに注意してください。このプロパティは「Video」または「Image」のいずれかに設定できます。ビデオを選択した場合、WebViewerに表示されるビデオフィードを継続的に分類しようとします。画像を選択した場合、分類対象の画像を取得するためにカメラまたはImagePickerコンポーネントを追加する必要があります。画像分類を機能させるには、WebViewerコンポーネントが依然として必要です。

inputmode for webviewer

以下のビデオでは、第5週で作成した健康な果物と病気の果物のモデルをApp Inventorに追加し、携帯電話のカメラを使って健康な果物と病気の果物を識別できるモバイルアプリを作成する方法をご覧ください。

パート2では、分類器のブロックをコーディングします。

Ximilarで作られたモデルは、APIを使ってアプリに統合することができます。 Thunkable の Web API コンポーネントを使って、Ximilar のようなプラットフォームからの外部モデルをアプリに統合することができます。注:ThunkableのAPIについては、次のユニットで取り上げます。 ユニット5のサンゴAIモデルをThunkableモバイルアプリに組み込むPrathamのビデオの後編をご覧ください。

アクティビティ:AIモデルの統合

所要時間:60分以上

選択したプラットフォームに基づいて統合する

  1. 学習したAIモデルをプロジェクトに追加するために、特定のプラットフォームで何が必要かを確認します。
  2. 選択したプラットフォームで新しいプロジェクトを作成し、モデルを追加します。どのように行うかは、特定のプラットフォームのプロセスによって異なります。
  3. アクションを起こす!コンポーネントとコードをプラットフォームに追加して、モデルからの予測に基づいてプロジェクトがアクションを起こせるようにしましょう。

振り返り

AIアプリのアクション部分のコーディングが始まりました!ここで、あなたのモデルの結果と、それが実際にできることを見ることができます!

プロジェクトの進捗状況を確認するために、プロジェクトプラン/キャンバスをチェックする良い機会です。使用しているプラットフォームや、プロジェクトの目標を達成するために必要なステップに基づいて、タイムラインやタスクを調整したくなるかもしれません。

コードが動作するようになったら、ユーザーと一緒にチェックする時間です。アプリをテストし、フィードバックをくれる人を見つけましょう。

checklist

主な用語のおさらい

  • ソフトウェア- コンピュータやデバイス上で動作するプログラムやアプリケーションを指す。
  • 拡張機能- 既存のプログラムに機能を追加するソフトウェアバンドル

追加リソース

Teachable MachineとCoralを使ったマシュマロ選別機。

より高度なAIツールに関するビデオをご覧ください!