IBM Cloud Blog

Watson Studioで素早く簡単にAI/ディープラーニング!- Visual Recognitionによる画像認識③

記事をシェアする:

第3回 カスタム・モデルの作成

→ 第1回 → 第2回

前回は、Watson Visual Recognitionがデフォルトで用意している学習済みモデルを使って、画像認識を「体験」してみました。今回は、ユーザー自身の用途に応じた画像認識のために、学習を通じたカスタム・モデルを作成します。

0. データの準備

カスタム・モデルの作成では、AIに対して、いわゆる教師あり学習を行います。まず、そのためのデータを準備する必要があります。一般に学習データ数が多いほど精度は上がりますが、一方で学習データの「質」にも注意が必要です(例えば、汎用性を持たないデータは過剰適合*という問題を引き起こします)。また、収集したデータを全て学習用に当てるのではなく、一部は学習後のモデルの精度を確認するためのテスト用データとします。このように、質の良いデータを十分な個数準備するということが、重要(かつ手間のかかる)作業になります。
どれくらいのデータ数を準備すれば良いかですが、まず、Watson Visual Recognitionでは、各クラスに少なくとも10個の画像データが必要です。大抵の場合、おおよそ数十個の学習データで良い精度が実現できます。ただし、一般には、必要なデータ量は目標とする識別精度、対象データや学習データの質等に依存します。

以下の例では、Visual Recognitionのチュートリアル用サンプルとして用意されている犬の画像データを使います。3犬種(ビーグル犬、ゴールデン・リトリバー、ハスキー犬)を画像で識別するモデルを作成します。(ちなみに、データ数は各犬種あたり20個です)

1. プロジェクトの作成

Watson Studioにログインして、「Create a project」を選択します。

Create a project画面で、Visual Recognitionを選択します。ダイアログ画面ではリージョンを選択(2019年4月現在US Southのみ)します。

New project画面で、プロジェクト名(Name)と説明(Description)を記入して、Createボタンをクリックします。(ライトプランご利用の場合、カスタム・モデルは1つしか作成できません。ここでWatson Visual Recognitionのインスタンスが表示されない場合、既に作成済みでないか確認してください)

この時点で、新規プロジェクトが作成され、Default Custom Modelのトレーニング画面になります。

2. ファイルのアップロード

画像データは、クラスごとにZIPファイルにします。デフォルトでは、ZIPファイル名からサフィックスを除いた名称がクラス名になります(クラス名はアップロード後に変更できます)。
右側のペインのUpload to projectに、作成したZIPファイルをドラッグ&ドロップするか、Browseボタンでファイル選択画面を表示して対象ファイルを選びます。

対象ファイルがアップロードされると、右下のペイン「Add from project」にファイル名がリストされます。リストで、学習に利用するZIPファイルのチェック・ボックスを選択し、選択後に「Add to model」をクリックします。

中央の画面に、各ファイル(クラス)の画像内容が表示されます。ZIPファイル名から設定されたデフォルトのクラス名を変更する場合は、鉛筆アイコンをクリックして、新規クラス名を入力します。

3. 学習のための準備 — 負例データの作成

識別の対象ではないが、識別の精度を上げるために、対象外であることを学習させることができます。このようなデータを負例(Negative)データと呼びます。今回は、この負例データとして、猫の画像を使用します。負例データは必須ではありませんが、識別の精度を高めるために有効です。
All imagesをクリックして、全画像データを表示し、「cat」でフィルタリングします。全ての猫画像を選択したら、Classifyをクリックします。

Classify images画面で、クラスとしてNegativeを選択します。これで、猫画像は負例データとして分類されました。

My Classesをクリックし、学習画面に戻ります。

空になったCatsクラスのゴミ箱アイコンをクリックして、Catsクラスを削除します。
これで、学習の準備が整いました。

 

4. 教師あり学習の実行

「Train model」ボタンをクリックして、学習を開始します。

学習が始まると、上部に以下のメッセージが表示されます。学習には、それなりに時間を要します(この例では、10分以上かかりました)

学習が終わると、以下のメッセージが上部に表示されます。

 

5. テスト

作成したモデルをテストしてみましょう。左上部の「Default Custom Model」のリンクをクリックします。

表示された画面で、Testタブを選択します。

前回と同じように、中央のペインにテスト用の画像をドラッグ&ドロップします。作成したモデル(識別器)に基づいた結果が各画像の下に表示されます。

「Edit and Retrain」をクリックすると、先の学習の画面に戻ります。ここで、新しい学習用データを追加アップロードして、新規のクラスを追加できます。(その他、クラスの分割なども可能ですが、留意事項があります。詳細は、最後のURLリストの2)を参照ください。)

6. 補足 — APIの利用

ここまで、Watson StudioからのVisual Recognitionの利用について述べてきました。ただし、実際の利用では、APIを呼び出すプログラムが必須になってきます。各言語からのAPIの利用のための情報は、Testタブの隣の「Implementation」タブにあります。

API呼び出し時のクレデンシャル情報である API Keyは、IBM Cloudの画面に戻って、Watson Visual Recognitionのサービス資格情報画面で入手できます。API Keyは「ダウンロード」でファイルとしてダウンロードするか、API鍵欄にあるコピーアイコンをクリックしてクリップ・ボードにコピーして利用するか、あるいは「資格情報」をクリックして表示することが可能です。

また、直接プログラミングしたり、URLでAPIを呼び出す他に、グラフィカルなアプリケーション作成が可能なNode-REDから、Watson Visual Recognitionを利用することもできます。参考リンクの3を参照ください。

3回にわたってWatson StudioでWatson Visual Recognitionを利用について、簡単なサンプルを使った操作手順に触れつつ、ご紹介してきました。この記事が画像認識を実際の業務で活用するための一助になれば幸いです。

*) 過剰適合(overfitting)は、過学習(overtraining)或いは、パラメータ過多(overparametrized)等の結果、学習データに過度に最適化され、本来の対象であるテスト・データ以外のデータの判別がうまくいかない現象です。詳細は、例えば、以下URLを参照ください。

 

(参考リンク)

  1. カスタム・モデルの作成
  2. 分類器のトレーニングに関するガイドライン
  3. DevOps をコグニティブおよび人工知能システムに適応させる
  4. Qiita 記事「IBM Watson Visual Recognition Custom Class + Node-RED で簡単画像認識」2019年1月版
  5. サンプル・データ
More IBM Cloud Blog stories

IBM Cloud上で GxP に準拠したシステムの構築: ホワイトペーパー発行のお知らせ

IBM Cloud Blog, IBM Cloud News

IBM Cloud上でGxPに準拠したシステムを構築するためのホワイトペーパーを発行しました ライフサイエンス ...続きを読む


サイバー戦隊 CIS! 6つのパワーが今、一つに

IBM Cloud Blog

#始めようCIS Webアプリケーションのセキュリティーとパフォーマンスの両方を向上させるクラウド・サービス「 ...続きを読む


IBMエッジ・コンピューティングとは

IBM Cloud Blog

エッジ・コンピューティングとは 自動車から製造機器、ATM、採掘機器に至るまで、私たちがビジネスを行うために使 ...続きを読む