水曜ワトソンカフェvol.26 TensorflowとWatson ML

水曜ワトソンカフェvol.26 TensorflowとWatson ML

Watsonで画像分類や物体検出では、Watson Visual Recognitionが定番ですが、Core MLモデルを除いてインターネット接続が必須です。今回は、Watson Visual Recognitionとは別に、Watson Machine Learningを用いて、TensorFlow Lite/TensorFlow.js対応モデル作成について紹介します。

49844569246a6d183a5551bb74895e2a?s=128

Kohei Nishikawa

July 08, 2020
Tweet

Transcript

  1. 水曜ワトソンカフェ vol.26 #bmxug #w2cafe TensorFlowとWatson MLによる 画像分類アプリ作り 水曜ワトソンカフェvol.26 2020/07/08 1

  2. 水曜ワトソンカフェ vol.26 #bmxug #w2cafe 西川浩平 / Kohei Nishikawa 2 ✓

    IBM Champion for Cloud 2017 – 2019 ✓ IBM Champion for Developer 2020 ✓ IBM Cloud Users Group(BMXUG) 運営 ✓ 開志専門職大学 情報学部 講師 ✓ 千葉大学病院 メディカルイノベーション戦略プログラム 講師 (~21年3月)として、AI(Watson)を用いた機械学習演習講義 を担当予定。 Twitter : @kolinz
  3. 水曜ワトソンカフェ vol.26 #bmxug #w2cafe IBM User Group Conference 3 皆様のご参加、誠にありがとうございました。

    運営事務局およびスピーカーとして、至らぬ点が多々あったかと思いますが、無事に閉幕しました。 基調講演と各ブレイクアウトセッションの録画を下記にて公開しております。 https://www.youtube.com/playlist?list=PLzsbY0rm6etEgy9WKHK1QYiw8-8ehEh7z 各資料はConnpassにて公開中。 https://iugc.connpass.com/event/176351/presentation/
  4. 水曜ワトソンカフェ vol.26 #bmxug #w2cafe 着想に至った経緯 4 U.S. Air Force uses

    Kubernetes for new B-21 Stealth Bomber https://www.techcrates.com/u-s-air-force-uses- kubernetes-for-new-b-21-stealth-bomber/ インターネットに直接接続できない環境では、Watson Visual Recognition (Watson VR) が使えない。 IoTデバイスやエッジコンピュータ上で処理できるモデルが必要 になり、IBM Cloud Annotations を用いて、TensorFlow (TensorFlow.js)対応のモデルを作成することにした。 • 画像分類 • 物体検出 航空機や船舶搭載のコンピュータで、センサーデバイスや調査 用ドローン制御などエッジコンピューティング案件が増える筈。
  5. 水曜ワトソンカフェ vol.26 #bmxug #w2cafe Watson Visual Recognitionの長所と短所 5 長所: 画像認識モデルをクラウド側に手軽に外だしできること。最小10枚から学習できる。

    短所: Core ML用モデルを除き、原則インターネット接続が必須であること。 学習 データ Watson Visual recognition
  6. 水曜ワトソンカフェ vol.26 #bmxug #w2cafe TensorFlow 6 https://www.tensorflow.org/?hl=ja 一度は聞いたことがある人も多い機械学習用のおーぷソースライブラリ。2015年にGoogleが公開。 使用するデバイスなどに寄り、モデル作成と推測(例 画像認識など)に使用するライブラリがわかれる

    場合がある。 対象 推測の実行 モデル作成 PythonやC、Go、Javaアプリなど TensorFlow TensorFlow モバイルデバイス向け (Android/iOSなど) TensorFlow Lite TensorFlow または、Watson Machine Learning エッジデバイス・IoTデバイス向け TensorFlow Lite Node.js・Node-RED向け TensorFlow.js Webアプリ向け TensorFlow.js
  7. 水曜ワトソンカフェ vol.26 #bmxug #w2cafe Watson ML 7 https://www.ibm.com/jp-ja/cloud/machine-learning Watson Machine

    Learning。IBM Cloud 上で機械学習モデルを作成できるWatsonサービスの1つ。 クレジットカード不要、無料のIBM Cloud ライト・アカウントの対象に含まれる。 Watson Studioからよく使う。今回は、IBM Cloud Annotationsで使用します。
  8. 水曜ワトソンカフェ vol.26 #bmxug #w2cafe 事前準備 8 IBM Cloud Annotationsを使用する前に、下記を準備しておきます。 ✓

    クレジットカード不要かつ無料の IBM Cloud ライト・アカウントに登録 ✓ Object Storage を有効化 >> IBM Cloud カタログ、サービス → カテゴリ ストレージ ✓ Machine Learning を有効化 >> IBM Cloud カタログ、サービス → カテゴリ AI / Machine Learning ✓ 学習させる画像は、アノテーションで用いるラベル別に、最低21枚以上用意すること。 Watson Visual Recognitionが、最低10枚で学習可能に対して、倍の画像データになります。 ✓ テスト用画像。IBM Cloud Annotationsで学習させた後の動作確認に使用します。ラベル別に1~2枚。 ✓ たっぷりと数時間の余裕。IBM Cloud Annotationsで学習させた後、モデルをダウンロードする際に数時 間かかることがあります。
  9. 水曜ワトソンカフェ vol.26 #bmxug #w2cafe IBM Cloud Annotations 9 https://cloud.annotations.ai/ Webブラウザ上で、Watson

    MLとCloud Object Storageを用いてTensorFlow Lite / TensorFlow.js / Core ML 対応の画像分類モデルと物体検出モデルが作成可能。無料のIBM クラウド ライト・アカウント または、クレジットカード登録済みのIBM Cloud 環境があればOK。 Continue with IBM Cloud をクリックしてログイン
  10. 水曜ワトソンカフェ vol.26 #bmxug #w2cafe IBM Cloud Annotations 操作 10 Object

    Storage 上にアノテーション に用いる画像データをアップロード する場所(バケット)を入力します。 入力後、Confirm をクリックして次 の画面へ ログイン後、「Start a new project」をクリック。 Annotation Typeとして、どちらか を選びます。 Classification 画像分類 Localization 物体検出 選択後、Confirm をクリックして次 の画面へ。
  11. 水曜ワトソンカフェ vol.26 #bmxug #w2cafe 画像分類モデルの作り方.1 11 Annotation Typeで、「Classification」 を選んだ後、左図の画面が表示されます。 学習データとなる動画や静止画をアップ

    ロードします。 動画は自動でスライスされます。 画像を選び、ラベル付けします。
  12. 水曜ワトソンカフェ vol.26 #bmxug #w2cafe 画像分類モデルの作り方.2 12 ラベル付けが完了した後、画面右上の「Train model」をクリックします。 学習に使用するWatson MLをインスタンスを指定します。

    事前準備で有効にしておいた、Machine Learning (Watson ML)を選び、「Train」をクリックします。 ステータスが「completed」になるまで待ちます。 「completed」になれば、「Download model」をクリック することで、 TensorFlow Lite / TensorFlow.js / Core ML 対応の画像分類モデルが一括でダウンロードされます。 ダウンロードに時間がかかりますので、要注意。
  13. 水曜ワトソンカフェ vol.26 #bmxug #w2cafe ダウンロードした画像分類モデルZipファイルの中身 13 TensorFlow Lite 対応モデル -

    Androidアプリ、Pythonなどで活用。 Core ML 対応モデル – iOS/Macアプリ向け。 TensorFlow.js 対応モデル - Node-REDやWebアプリ向け。JavaScript。
  14. 水曜ワトソンカフェ vol.26 #bmxug #w2cafe 画像分類モデルのテスト 14 モデルのダウンロードが可能になると、左図のよ うに画像をドラッグ&ドロップし、テストするこ とができます。 テスト用画像をアップロードし、確認します。

    テスト用画像を用いることで、左図のように画像 分類結果を確認することができました。
  15. 水曜ワトソンカフェ vol.26 #bmxug #w2cafe 物体検出モデルの作り方.1 15 Annotation Typeで、「Localization」を選んだ後、左図の画面が表 示されます。 学習データとなる動画や静止画をアップロードします。

    動画は自動でスライスされます。 ラベルを作成します。 境界ボックス(bounding boxes)を範囲指定し、作成したラベルを 付与します。 ラベルを 作成 境界ボックスを 範囲指指定 幾つか手動でラベル付けし た後に、Auto label で一気 にラベル付けするのもあり。
  16. 水曜ワトソンカフェ vol.26 #bmxug #w2cafe 物体検出モデルの作り方.2 16 ラベル付けが完了した後、画面右上の「Train model」をクリックします。 学習に使用するWatson MLをインスタンスを指定します。

    事前準備で有効にしておいた、Machine Learning (Watson ML)を選び、「Train」をクリックします。 ラベルの対象画像が20枚を超えない場合は、左図のよう に警告文が表示されます。 ステータスが「completed」になるまで待ちます。 「completed」になれば、「Download model」をクリック することで、 TensorFlow Lite / TensorFlow.js / Core ML 対応の画像分類モデルが一括でダウンロードされます。 ダウンロードに時間がかかりますので、要注意。
  17. 水曜ワトソンカフェ vol.26 #bmxug #w2cafe ダウンロードした物体検出モデルZipファイルの中身 17 TensorFlow Lite 対応モデル -

    Androidアプリ、Pythonなどで活用。 Core ML 対応モデル – iOS/Macアプリ向け。 TensorFlow.js 対応モデル - Node-REDやWebアプリ向け。JavaScript。
  18. 水曜ワトソンカフェ vol.26 #bmxug #w2cafe 物体検出モデルのテスト 18 モデルのダウンロードが可能になると、左図のよ うに画像をドラッグ&ドロップし、テストするこ とができます。 テスト用画像をアップロードし、確認します。

    テスト用画像を用いることで、左図のように物体検出結果を確認 することができました。とはいえ学習データが少ないと精度が低 いのでよろしくありません。
  19. 水曜ワトソンカフェ vol.26 #bmxug #w2cafe 画像分類サンプル 19 IBM Cloud Annotationsで、マスク装着を検出する画像 分類モデルを作り、ダウンロード。ダウンロードした

    TensorFlow.js対応モデルをRaspberry Pi に移設、アプリ でモデルを使用した例。 Cloud Annotations デモアプリを使用。 Raspberry Pi 4 + ディスプレイ + ケース TensorFlow.js 対応モデル マスク装着状態の画像を分類 分類前
  20. 水曜ワトソンカフェ vol.26 #bmxug #w2cafe 物体検出サンプル 20 IBM Cloud Annotationsで、マスク装着状態を検出する モデルを作り、ダウンロード。ダウンロードした

    TensorFlow.js対応モデルをRaspberry Pi に移設、アプ リでモデルを使用した例。 Cloud Annotations デモアプリを使用。 Wearing mask マスク装着状態を検出 Negative = マスクなし状態を検出 対象を 撮影 対象を 撮影 Raspberry Pi 4 + ディスプレイ + ケース TensorFlow.js 対応モデル USB接続 Webカメラ USB接続 Webカメラ
  21. 水曜ワトソンカフェ vol.26 #bmxug #w2cafe 本日に間に合わず、継続開発中 21 https://developer.ibm.com/components/node-red/patterns/develop-a-machine-learning-iot- app-with-node-red-and-tensorflowjs/ IBM Developer記事「Develop

    a machine learning IoT app with Node-RED and TensorFlow.js」 をベースに開発中。とはいえ、Cloud AnnotationデモのReact アプリを改造した方が早いかもしれない とも思いつつ。 Cloud Annotations で作成した TensorFlow.js 対応モデルの読 み込みについて試行錯誤中。 Raspberry Pi に接続されたカメラ で撮影した画像を処理に回す。
  22. 水曜ワトソンカフェ vol.26 #bmxug #w2cafe TensorFlowとWatson VR比較 22 ここまでご紹介しました「TensorFlow」と「Watson Visual Recognition」を比較してみます。

    TensorFlow + Watson ML Watson Visual Recognition 精度 学習に用いたデータに依存。 そこそこ精度が良い。 Webブラウザ上でモデル作成 〇 〇 Core ML対応 iOS/macなどApple系アプリへの 組み込み 〇 〇 Android対応 〇 × Raspberry Pi など組込み 〇 × Webアプリに組込み 〇 × インターネット経由で利用 〇 〇 インターネット接続 無くても良い。 必須 ラベルあたりの最低学習データ数 21枚 10枚
  23. 水曜ワトソンカフェ vol.26 #bmxug #w2cafe Day1 ご清聴、ありがとうございました。