Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Watson Visual Recognition カスタム画像分類モデル作成とNode-REDによる画像判定プログラム開発

1,102 views

Published on

2019年4月現在、期間制限なし/クレジットカード登録なしに無料で使える「IBM Cloud ライトアカウント」を前提に、画像判定AIの「Watson Visual Recognition」を用いて、自分で撮影した画像を判定するプログラムを開発するチュートリアルです。

Published in: Technology
  • Login to see the comments

Watson Visual Recognition カスタム画像分類モデル作成とNode-REDによる画像判定プログラム開発

  1. 1. 平成31年4月 IBM Cloud チュートリアル 誰でも無料で使えるIBM Cloud ライトアカウントによる画像判定AI活用 1Kohei Nishikawa
  2. 2. 平成31年4月 書いた人 西川 浩平 • 2019 IBM Champions for Cloud / IBM’s External Advocate • クラウド・ブロックチェーン・AI・IoT・業務システムなどの研究・開発・ ヘルプデスク・事業企画・マーケティング・人材育成・大学図書館スタッフ などを経験 • 連絡先 • Twitter:@kolinz • Facebook: https://www.facebook.com/kohei.nishikawa 2Kohei Nishikawa
  3. 3. 平成31年4月 チュートリアル概要 2019年4月現在、期間制限なし/クレジットカード登録なしに無料で使える「IBM Cloud ライトアカウ ント」を前提に、画像判定AIの「Watson Visual Recognition」を用いて、自分で撮影した画像を判定 するプログラムを開発するチュートリアルです。 対象年齢 • 講師補助あり:小学校高学年以上 • 講師補助なし:高校生以上 講師に必要なスキル • IBM Cloud ライトアカウント以上を用いた開発経験を有すること。 • コードを書いたことがあること。 • AI開発経験を有すること。 • AIの活用について、例を交えて話すことができること。 • 受講者からの質問に対し、プログラミングについて助言できること。 3Kohei Nishikawa
  4. 4. 平成31年4月 IBM Cloud 登録 下記URLにアクセスし、無料で使用できるIBM Cloud ライトアカウントに申込みます。一部機能制限 がありますが、クレジットカード登録不要で、2019年4月現在、利用期間制限がありません。 申し込み後は、メールにてアカウントのアクティベーションし、ログインします。 IBM Cloud ライト・アカウント https://www.ibm.com/jp-ja/cloud/lite-account 4Kohei Nishikawa
  5. 5. 平成31年4月 IBM Cloudにログイン https://cloud.ibm.com/にアクセスし、登録したIBM ID(=メールアドレス)でログインします。 5Kohei Nishikawa
  6. 6. 平成31年4月 IBM Cloud カタログ カタログにアクセスすると、IBM Cloudで使用可能な各サービスのカタログ画面が表示されます。 カタログ画面から、各サービスの利用を開始することができます。 h 今回の使用 カテゴリー メニュー表示 IBM Cloud カタログ https://cloud.ibm.com/catalog 6 h カタログとともに ダッシュボードや リソースリストは よく使用します。 Kohei Nishikawa
  7. 7. 平成31年4月 IBM Cloud ダッシュボード ダッシュボードから、IBM Cloudについての稼働状況など一覧で確認することができます。 IBM Cloud ダッシュボード https://cloud.ibm.com/ 7 クリックで、「リソース リスト」へ移動 Kohei Nishikawa
  8. 8. 平成31年4月 IBM Cloud リソースリスト リソースリストにアクセスすると使用中のサービスやアプリが表示されます。使用中のサービス確認や サービスを停止したりすることもできます。 IBM Cloud ダッシュボード https://cloud.ibm.com/resources 各名前をクリックすると、 詳細が表示されます。 8Kohei Nishikawa
  9. 9. 平成31年4月 Node-RED環境の構築 「Node-RED Starter」をクリック IBM Cloud にログイン、画面右上 の「カタログ」をクリックします。 カタログ画面のフィルタに「node- red」と入力し、Node-RED Starterを探します。 アプリ名を入力します。 アプリ名は、英数字を推奨。 日本語も使えます。 ホスト名を入力し ます。こちらは英 数字です。 ここをクリック して作成します。 「Cloud Foundryアプリの作成」画面 が表示されますので、「アプリ名」と 「ホスト名」を入力し、画面右下の 「作成」をクリックします。 「ホスト名」は、他の人が既に使って いるものは使用できません。ユニーク である必要があります。 Node-RED用のサーバーがセットアッ プされ、しばらくした後に、「http:// ホスト名.(ドット)ドメイン」 でアク セスできるようになります。 9Kohei Nishikawa
  10. 10. 平成31年4月 Node-RED起動 上図のように起動するまで、5分前後かかります。「実行中」と表示されれば、Node-REDサーバーが 正常起動し、利用可能になったことになります。「アプリURLにアクセス」をクリックし、Node-RED にアクセス制限用のパスワードを設定します。 ここをクリック 10 再起動は こちら Kohei Nishikawa
  11. 11. 平成31年4月 Node-RED パスワード設定.1 Node-REDにアクセスすると最初にアクセス 制限のためのパスワードを設定することを求 められます。 画面下の「Next」をクリックします。 ここをクリック ここをクリック Node-REDを使用するための「Username」 と「Password」を入力、画面下の「Next」 をクリックします。 Passwordを忘れた場合は、アプリを作り直 す必要がありますので、忘れないでください。 11Kohei Nishikawa
  12. 12. 平成31年4月 Node-RED パスワード設定.2 Node-REDで使用できるサンプル等の説明が 表示されます 画面下の「Next」をクリックします。 ここをクリック ここをクリック 「Finish the install」の画面が表示されましたら、 「Finish」ボタンをクリックして終了です。 12Kohei Nishikawa
  13. 13. 平成31年4月 Node-REDにログイン 「https://ホスト名.(ドット)ドメイン」に アクセスします。 (例 https://course-app.mybluemix.net) ここをクリック 登録した「Username」と 「Password」でログイン先ほど設定した「Username」と「Password」 でログインします。 Node-REDの基本操作については、下記のオン ラインドキュメントをご覧いただくか、講師ま でご質問ください。 https://nodered.jp/docs/user-guide/editor/ 13Kohei Nishikawa
  14. 14. 平成31年4月 下準備 14 判定してほしい解となる正例(Positive)画像をZip形式で圧縮 します。学習には最低10枚必要で、様々な角度や異なる画像 である必要があります。 判定してほしい解を導き出すために、逆の負例(Negative)画 像を用意し、Zip形式で圧縮します。学習には最低10枚必要 で、様々な角度や異なる画像である必要があります。 カスタム画像分類モデルでは、正例(Positive example)と負例(Negative example)画像をそれぞれ 学習させ、画像分類を実行しますので、それぞれの学習データとなる画像ファイルを最低10枚は用 意する必要があります。 Kohei Nishikawa
  15. 15. 平成31年4月 Watson Studioの起動 15 Watson Studioで、撮影した写真を用いたカスタム画像分類器を作成 し、Node-REDで、画像認識するまでを説明します。 IBM Cloud カタログでWatson Studioを選び、Liteプランで、サービ ス作成します。 Watson Studioが起動したら、 「Get Started」をクリックし ます。 Kohei Nishikawa
  16. 16. 平成31年4月 プロジェクトの作成.1 16 英語で表示される案内の画面を閉じます。「Create Project」を クリックし、「Visual Recognition」にマウスを合わせると表示 される「Create Project」をもう一度クリックします。 Visual Recognitionのリージョン(データセンター)を選択する画 面では、2019年2月現在、パブリック版のIBM Cloudでは、 「US South」のみ選択することができます。 Kohei Nishikawa
  17. 17. 平成31年4月 プロジェクトの作成.2 17 プロジェクト名を入力します。プロジェクト名は英数字、説明は日本語で大丈夫です。 Kohei Nishikawa
  18. 18. 平成31年4月 学習用画像アップロード準備 18 下図のようにカスタム画像分類モデルのプロジェクト画面が表示されます。 画面右側の「1.Upload to project」の点線の枠に、下準備で用意したZip形式に圧縮した画像ファイル をドラッグ&ドロップで、アップロードします。 Kohei Nishikawa
  19. 19. 平成31年4月 正例画像のアップロード 19 画像分類で判定させたい結果のもとになる画像、正例(Positive)画像をアップロードします。 ここでは、撮影した新幹線 N700系の画像をアップロードし、画像分類のPositive画像とします。 画面右側の「1.Upload to project」で、画像データをまとめた 「n700series.zip」をアップロードします。 デフォルトでは、アップロードしたZipファイル名が、画像判定 時の判定結果(クラス)名になります。 アップロードした「n700series.zip」にチェックを入れ、「Add to model」をクリックします。 判定結果(クラス)名が複数必要である場合は、 「1.Upload to project」への画像ファイルを集めたZipファイルのアップロード と、「Add to model」の操作を繰り返します。 Kohei Nishikawa
  20. 20. 平成31年4月 負例画像のアップロード 20 正例、つまりPositive画像を判定するために、負例、つまり、Negative画像をアップロードします。 ここでは、新幹線ではない車両ということで、E657系の車両を撮影し、使用しています。 画面右側の「1.Upload to project」で、画像データをまとめた 「e657.zip」をアップロードします。 アップロードした「e657.zip」 にチェックを入れ、画面中央付 近の「Negative」にドラッグ& ドロップします。 ドラッグ&ドロップすることで、 Negative画像に割り当てられま す。 Kohei Nishikawa
  21. 21. 平成31年4月 画像の学習 21 Positive画像が「n700series.zip」クラスに格納され、Negative画像は、「Negative」クラスに格納 されています。画面中央右上の「Train Model」をクリックし、学習を開始しましょう。 Kohei Nishikawa
  22. 22. 平成31年4月 学習結果の確認 22 「Training successful」と表示されれば学習完了です。今回のように画像がPositiveとNegative合わ せて20枚程度であれば、数分で学習は完了します。メッセージ内の「here」をクリックします。 ここ 「Test」タブをクリックし、テスト画面に 学習に用いなかった画像ファイルを用いて、 正解時のクラス名が表示されるかどうか確 認します。 Kohei Nishikawa
  23. 23. 平成31年4月 Model IDの確認 23 学習結果のテスト後、「Overview」のタブを確 認しましょう。表示されている「Model ID」を メモしておきます。Node-REDなどで画像分類を 行う際に必須です。 「Implementation」タブでは、学習した カスタム画像分類モデルを、各プログラミ ング言語別に用いる方法について、英語で 解説しています。 Kohei Nishikawa
  24. 24. 平成31年4月 Node-RED上で画像分類.1 24 学習させたカスタム画像分類モデルを用いて、Node- REDで画像分類を試します。 作成するフローは、左図になります。「inject」ノー ドに指定したインターネット上の画像ファイルのURL を用いて、学習させたカスタム画像分類モデルにて、 どのように判定されるか見ていきます。 先ず、学習させたカスタム 画像分類モデルが入ってい る「Visual Recognition」 サービス画面を開き、API 鍵を確認、メモ帳やエディ タにメモしておきます。 Kohei Nishikawa
  25. 25. 平成31年4月 Node-RED上で画像分類.2 25 「inject」ノードのペイロードに、 インターネット上の画像ファイル のURLを入力します。ここでは、 Wikipediaにある、新幹線N700系 の画像ファイルのURLを入力して います。 「function」ノードに、学習させ たカスタム画像分類モデルの 「Model ID」を記述し、左図のよ うにコードを書きます。 Kohei Nishikawa
  26. 26. 平成31年4月 Node-RED上で画像分類.3 26 「visual recognition」ノードには、 先程メモしておいたAPI鍵を入力し ます。 Detectは、「Classify an image」 とし、Languageを「Japanese」と します。 「visual recognitionノードを編 集」画面内で完了をクリック後、 debugノードを配置し、「visual recognition」ノードを含めて、す べてのノードを線で結びます。 最後に、画面右上の「デプロイ」を クリックし、動作を確認します。 Kohei Nishikawa
  27. 27. 平成31年4月 Node-RED上で画像分類.4 27 「inject」ノードの左側のボタンをクリックすることで、「inject」ノードで指定している画像データ を用いて画像分類が実行され、判定結果がデバッグ結果として表示されます。 「inject」ノードと「debug」ノードを、セキュリティ重視であれば「Mattermost」、外から気軽に使えることを 重視するのであれば「LINE」や「Slack」に置き換えることで、メッセージに添付された画像ファイルを判定し、 結果を返す仕組みに作り変えることができます。 Kohei Nishikawa
  28. 28. 平成31年4月 End of The Documents Bluemix Users Group:https://bmxug.connpass.com/ 28Kohei Nishikawa

×