Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Watson画像認識を体験しよう for Call for Code Challenge 20...

Watson画像認識を体験しよう for Call for Code Challenge 2019/ Let's try Watson Visual Recognition for C4C 2019

2019-04-24 (水) Call for Code勉強会: IBM CloudのWatson画像認識&IoTを学ぼう!のセッション 「Watson画像認識を体験しよう for Call for Code Challenge 2019」の資料です。

Kyoko Nishito

April 24, 2019
Tweet

More Decks by Kyoko Nishito

Other Decks in Technology

Transcript

  1. Watson画像認識 を体験しよう ! for Call for Code Challenge 2019 ⽇本アイ・ビー・エム(株)

    Developer Advocate ⻄⼾ 京⼦ Call for Code勉強会: IBM CloudのWatson画像認識&IoTを 学ぼう! 2019-04-24 (⽔) 19:10〜19:50 SNS・写真撮影OK! ハッシュタグ #CallforCode
  2. 5 このセッションについて • ⽬的 Call for Codeで使⽤できるWatson画像認識 APIであるVisual Recognitionの概要と使い⽅ を知る

    • ゴール Visual Recognition APIを試せるようになり、 Call for Code作品のアイディアに使えるよう になる
  3. 6 CALL FOR CODE® チャレンジ 2019 • テーマに沿ったソリューションを構築するインターネットを 通じて参加可能な開発コンテスト •

    今回のテーマは「⾃然災害への対策や回復」または「⼈の健康」 「地域コミュニティが良好な状態になる⽀援すること」 • 18歳以上の開発者、1-5名のチームでIBM Cloudまたは IBM Systems を活⽤したアプリを開発 • 2019/7/29(⽉)11:59PMまでに提出 *⽶国⻄海岸標準時 賞⾦ 最優秀賞: $200,000 (2200万円*相当) 2位、3位: $25,000 (275万円*相当) 4位、5位: $10,000 (110万円*相当) *為替レートによって変動します https://callforcode.org/ https://ibm.biz/c4cjapan
  4. 7 情報を得るためにIBMが提供する 2019 Call for Code チャレンジ コミュニティ に参加しましょう︕ コミュニティでIBMテクノロジーや

    Call for Codeについて学習して、質問 があればコミュニティでAdvocateに質 問ができます。 2019 Call for Code チャレンジコミュニティ IBM CODER PROGRAM 7
  5. 2019 Call for Code チャレンジ コミュニティ IBM CODER PROGRAM参加⽅法 http://ibm.biz/c4cjoin2019

    8 IBM CODER PROGRAMの ダイレクトリンクはこちら: https://ibmcoders.influitive.com/
  6. IBM CODER PROGRAM Discussions → General in Japanese - ⽇本語での⼀般的なやりとり

    で⽇本語で質問可能です 9 IBM CODER PROGRAMのダイレクトリンクはこちら: https://ibmcoders.influitive.com/ ⽇本語検索 で検索
  7. 2019 Call for Code チャレンジ コミュニティ Call for Code Technologies

    → Machine Learningで 本⽇ご紹介するVisual Recognition が使われています 10 Code Patternの日本語訳: https://developer.ibm.com/jp/patterns/classify-vehicle-damage-images/ IBM CODER PROGRAMのダイレクトリンクはこちら: https://ibmcoders.influitive.com/
  8. 17 Watsonの製品・サービス⼀覧 ⼼理系 ⾔語系 Watsonの製品・サービスは⽇々進化しています。 2019年2⽉12⽇現在のPublic Cloud上のサービス⼀覧は以下の通りとなります。 https://www.ibm.com/watson/developercloud/services-catalog.html Watson Assistant

    アプリケーションに⾃然⾔語インターフェースを追加 してエンドユーザとのやり取りを⾃動化 照会応答系 Text to Speech テキスト⽂章を⾳声に変換する Speech to Text ⾳声をテキスト⽂章に変換する Visual Recognition 画像コンテンツに含まれる意味を検出する 知識探索系 ⾳声系 Discovery 先進的な洞察エンジンを利⽤して、データの隠れた価 値を解明し、回答やトレンドを発⾒する Discovery News Discovery上に実装され、エンリッチ情報も付加された ニュースに関する公開データセット Personality Insights テキストから筆者の性格を推定する Language Translator ※2 ⾃然⾔語テキストについて他⾔語へ翻訳を⾏う Natural Language Understanding ※1 ⾃然⾔語処理を通じてキーワード抽出、エンティティ ー抽出、概念タグ付け、関係抽出などを⾏う Natural Language Classifier テキスト⽂章の分類を⾏う(質問の意図推定など) Tone Analyzer(⽇本語未対応) テキストから筆者の感情、社交性、⽂体を解析する Knowledge Studio コーディングなしに、業務知識から⽣成した機械学習 モデルで、⾮構造テキストデータから洞察を取得 画像系 データ分析系 Watson Studio 機械学習モデル向けの作成と学習、データの準備と分 析のための統合環境 Machine Learning 機械学習モデル・深層学習モデルの作成、学習、実⾏ 環境 Knowledge Catalog 分析に必要なデータを加⼯・カタログ化できる分析デ ータ準備環境 ※1 感情分析は⽇本語未対応です。 ※2 ⽇本語翻訳は英⽇・⽇英のみ対応しています。 Watson OpenScale AIに信頼性と透明性をもたらし、判定結果を説明し、 バイアスを⾃動的に排除する Compare and Comply(⽇本語未対応) 契約書や調達仕様書を分析し、⽂書間の⽐較や重要要 素の抽出を⾏う 本⽇ご紹介する内容
  9. 19 Visual Recognition • 画像認識「⼀般種別」(General Tagging): • 画像の特徴を検知し、タグとして抽出しクラス・キーワー ド(⽝、⼭などの⼀般名詞)を⽣成します •

    顔検出(Facial Detection): • イメージ内の⼈物の顔を検出し、顔の⼀般的な年齢層と性 別も⽰します。 • 画像認識「カスタム」: • 識別を⾏いたいクラスのイメージを事前学習させ、 その分類器(Classifier)の出⼒を返します。 事前学習 不要 事前学習 必要 https://www.ibm.com/watson/jp-ja/developercloud/visual-recognition.html
  10. 22 画像認識「カスタム」 識別を⾏いたいクラスのイメージを事前学習させ分類器(Classifier)を作成。 そのカスタム分類器の出⼒を返します。 分類器 Apple クラス (ポジティブ) Banana クラス

    (ポジティブ) Orange クラス (ポジティブ) Vegetable (ネガティブ) Apple 学習データ 分類すべきクラスごとに集められた最低10枚の画像 (適切な分類品質を得るには50枚以上、理想的には200枚) どのクラスにも該当しないネガティブな最低10枚の画像(オプション)
  11. Watson APIの使い⽅の基本 26 1. IBM Cloudにログインして必要なサービスを作成 今回はVisual Recognition を使います 2.

    作成したサービスの資格情報である API KEY(API鍵)、URLを取得 3. 取得したAPI KEY、URLを指定してAPIを呼び出す APIの詳細はこちらから確認 https://cloud.ibm.com/apidocs Visual Recognitionは以下です: https://cloud.ibm.com/apidocs/visual-recognition
  12. 準備するもの (今回はcurlを使います) 28 • IBM Cloudアカウント • ない場合はhttps://ibm.biz/Bd2Wyjから取得 • curl

    • Macは導⼊済みです • Windowsは https://curl.haxx.se/download.html から ダウンロードできます。
  13. Curl (cURL) 29 HTTP Request GET POST ・・・ HTTP Response

    cURL(Client for URLs ) はURL の構⽂を使って データを転送するためのコマンドライン・ ツールです。 このツールはコマンドラインから REST リクエストを送信してWatsonのAPIを 実⾏し、結果を⼊⼿することが可能です。 Windows を使⽤している場合、 cURLは https://curl.haxx.se/download.html からダウンロードできます。 curl
  14. Watson APIの使い⽅の基本 30 1. IBM Cloudにログインして必要なサービスを作成 今回はVisual Recognition を使います 2.

    作成したサービスの資格情報である API KEY(API鍵)、URLを取得 3. 取得したAPI KEY、URLを指定してAPIを呼び出す APIの詳細はこちらから確認 https://cloud.ibm.com/apidocs Visual Recognitionは以下です: https://cloud.ibm.com/apidocs/visual-recognition
  15. 1. IBM Cloudにログインして必要なサービスを作成 今回はVisual Recognition を使います 2. 作成したサービスの資格情報である API KEY(API鍵)、URLを取得

    3. 取得したAPI KEY、URLを指定してAPIを呼び出す APIの詳細はこちらから確認 https://cloud.ibm.com/apidocs Visual Recognitionは以下です: https://cloud.ibm.com/apidocs/visual-recognition Watson APIの使い⽅の基本 37 説明
  16. 1. IBM Cloudにログインして必要なサービスを作成 今回はVisual Recognition を使います 2. 作成したサービスの資格情報である API KEY(API鍵)、URLを取得

    3. 取得したAPI KEY、URLを指定してAPIを呼び出す APIの詳細はこちらから確認 https://cloud.ibm.com/apidocs Visual Recognitionは以下です: https://cloud.ibm.com/apidocs/visual-recognition Watson APIの使い⽅の基本 41 説明
  17. 45 4. 使⽤⽅法の確認(1) curl -u "apikey:{apikey}" "https://gateway.watsonplatform.net/visual- recognition/api/v3/classify?url=https://watson- developer-cloud.github.io/doc-tutorial- downloads/visual-

    recognition/fruitbowl.jpg&version=2018-03-19" {apikey}をIBM CloudのWeb画⾯からコピーしたAPI鍵 と置き換える 通常他のAPIは{url}も指定しますがVisual Recognitionはダラスにしか Regionがなく、urlが固定のためurlが既に記述されています。 説明
  18. 46 4. 使⽤⽅法の確認(2) QUERY PARAMETERS url: 画像のURL https://watson-developer-cloud.github.io/doc-tutorial-downloads/visual- recognition/fruitbowl.jpg version:

    現在は2018-03-19 説明 curl -u "apikey:{apikey}" "https://gateway.watsonplatform.net/visual- recognition/api/v3/classify?url=https://watson- developer-cloud.github.io/doc-tutorial- downloads/visual- recognition/fruitbowl.jpg&version=2018-03-19"
  19. 47 4. ではコマンドを実⾏してみましょう。 コマンドウィンドウまたはターミナルを開きます。 下記のコマンドの{apikey} を⾃分の値に変更して 実⾏してみましょう ! 説明 ここからコピペして変更

    https://ibm.box.com/v/Watson20190424Curl curl -u "apikey:{apikey}" "https://gateway.watsonplatform.net/visual- recognition/api/v3/classify?url=https://watson- developer-cloud.github.io/doc-tutorial- downloads/visual- recognition/fruitbowl.jpg&version=2018-03-19"
  20. 48 5. パラメーターを変更して実⾏してみましょう。 レスポンスを⽇本語に変更します。 Request Headerとして-H "Accept-Language:ja" を追記します。 前回同様{apikey} を⾃分の値に変更して実⾏してみましょう

    ! (Windowsはhttps://ibm.box.com/v/Watson20190424Curlを参照して「⽇本語表 ⽰⽅法」を実施) ここからコピペして変更 https://ibm.box.com/v/Watson20190424Curl 説明 curl -u "apikey:{apikey}" -H "Accept-Language:ja" "https://gateway.watsonplatform.net/visual- recognition/api/v3/classify?url=https://watson- developer-cloud.github.io/doc-tutorial- downloads/visual- recognition/fruitbowl.jpg&version=2018-03-19"
  21. 49 6. オプション 6­1: ⾷べ物に特化した分類クラス foodを使ってみる 6­2: 顔認識 6­3: PC上のファイルの認識(POST)

    (Windowsはhttps://ibm.box.com/v/Watson20190424Curlを参照して 「⽇本語表⽰⽅法」を実施) ここからコピペできます https://ibm.box.com/v/Watson20190424Curl 説明
  22. まとめ 52 1. IBM Cloudアカウントを作ろう 2. Visual Recognitionを試そう 3. Code

    Patternsを参考にしてCall for Codeの ソリューションにVisual Recognitionを使っ てみよう
  23. 55

  24. Watson APIの特徴 57 • REST形式のインターフェイス • ネットワーク経由でアクセス • Java, Python,

    Node.jsなどに対応した APIライブラリ • https://github.com/watson-developer-cloud
  25. Watson API REST形式のインターフェース 58 ・・・ HTTP Request GET POST PC

    HTTP Response JSON JSON Azure AWS GCP IBM Cloud Smart Phone Server 各社クラウド
  26. RESTインターフェースの例 59 クライアント https://gateway.watsonplatform.net/ visual-recognition/api/v3/classify URL: https://gateway.watsonplatform.net/vis ual-recognition/api/v3/classify メソッド: GET

    {"text":["Hello"], "model_id":"en-ja"} Accept-Language:ja Header ②対応する 処理 APIサービス {"text":["Hello"], "model_id":"en-ja"} JSON { "images": [ { "classifiers": [ { "classifier_id": "default", "name": "default", "classes": [ { "class": "バナナ", "score": 0.562, "type_hierarchy": "/果実/バナナ" }, { "class": "果実", "score": 0.788 }, { "class": "規定食 (食品)", "score": 0.528, "type_hierarchy": "/食物/規定食 (食品)" }, { "class": "食物", "score": 0.528 }, { "class": "ハネデュー", "score": 0.5, "type_hierarchy": "/果実/メロン/ハネデュー" }, { "class": "メロン", "score": 0.501 }, { "class": "オリーブ色", "score": 0.973 }, { "class": "レモン・イエロー (色)", "score": 0.789 } ] } ], "source_url": "https://watson-developer-cloud.github.io/doc-tutorial-downloads/visual-recognition/fruitbowl.jpg", "resolved_url": "https://watson-developer-cloud.github.io/doc-tutorial-downloads/visual-recognition/fruitbowl.jpg" } ], "images_processed": 1, "custom_classes": 0 } ①リクエスト 送信 ③レスポンス 送信 {"text":["Hello"], "model_id":"en-ja"} Parameter url=https://watson-developer- cloud.github.io/doc-tutorial-downloads/visual- recognition/fruitbowl.jpg&version=2018-03-19
  27. RESTインターフェースの例(JSONレスポンス拡⼤) 60 {"text":["Hello"], "model_id":"en-ja"} JSON ③レスポンス 送信 { "images": [

    { "classifiers": [ { "classifier_id": "default", "name": "default", "classes": [ { "class": "バナナ", "score": 0.562, "type_hierarchy": "/果実/バナナ" }, { "class": "果実", "score": 0.788 }, { "class": "規定食 (食品)", "score": 0.528, "type_hierarchy": "/食物/規定食 (食品)" }, { "class": "食物", "score": 0.528 }, { "class": "ハネデュー", "score": 0.5, "type_hierarchy": "/果実/メロン/ハネデュー" }, { "class": "メロン", "score": 0.501 }, { "class": "オリーブ色", "score": 0.973 }, { "class": "レモン・イエロー (色)", "score": 0.789 } ] } ], "source_url": "https://watson-developer-cloud.github.io/doc- tutorial-downloads/visual-recognition/fruitbowl.jpg", "resolved_url": "https://watson-developer-cloud.github.io/doc- tutorial-downloads/visual-recognition/fruitbowl.jpg" } ], "images_processed": 1, "custom_classes": 0 }
  28. セッション および 本資料は、IBMまたはセッション発表者によって準備され、それぞれ独⾃の⾒解を反映したものです。それらは情報提供の⽬的のみ で提供されており、いかなる参加者に対しても法律的またはその他の指導や助⾔を意図したものではなく、またそのような結果を⽣むものでもありません。 本講演資料に含まれている情報については、完全性と正確性を期するよう努⼒しましたが、「現状のまま」提供され、明⽰または暗⽰にかかわらずいかな る保証も伴わないものとします。本講演資料またはその他の資料の使⽤によって、あるいはその他の関連によって、いかなる損害が⽣じた場合も、IBMは 責任を負わないものとします。 本講演資料に含まれている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかなる保証または表明を引きだ すことを意図したものでも、IBMソフトウェアの使⽤を規定する適⽤ライセンス契約の条項を変更することを意図したものでもなく、またそのような結果 を⽣むものでもありません。

    本講演資料でIBM製品、プログラム、またはサービスに⾔及していても、IBMが営業活動を⾏っているすべての国でそれらが使⽤可能であることを暗⽰す るものではありません。本講演資料で⾔及している製品リリース⽇付や製品機能は、市場機会またはその他の要因に基づいてIBM独⾃の決定権をもってい つでも変更できるものとし、いかなる⽅法においても将来の製品または機能が使⽤可能になると確約することを意図したものではありません。本講演資料 に含まれている内容は、参加者が開始する活動によって特定の販売、売上⾼の向上、またはその他の結果が⽣じると述べる、または暗⽰することを意図し たものでも、またそのような結果を⽣むものでもありません。 パフォーマンスは、管理された環境において標準的なIBMベンチマークを使⽤した測定と予 測に基づいています。ユーザーが経験する実際のスループットやパフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラミングの量、 ⼊出⼒構成、ストレージ構成、および処理されるワークロードなどの考慮事項を含む、数多くの要因に応じて変化します。したがって、個々のユーザーが ここで述べられているものと同様の結果を得られると確約するものではありません。 記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使⽤したか、またそれらのお客様が達成した結果の実例として⽰されたも のです。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。 IBM、IBM ロゴ、ibm.com、 IBM Cloud、およびIBM Watsonは、 世界の多くの国で登録されたInternational Business Machines Corporationの商標 です。他の製品名およびサービス名等は、それぞれIBMまたは各社の商標である場合があります。現時点での IBM の商標リストについては、 www.ibm.com/legal/copytrade.shtmlをご覧ください。