
ソフトウェア開発者は、コンピュータービジョンとオブジェクト検出タスクを解決するために、数年にわたって機械学習ライブラリを積極的に使用しています。 ただし、このようなタスクの実装(および各機械学習モデルの設計、展開、適切なトレーニング、構成、インストールが必要)には通常、深い知識とスキルが必要です。 新しいIBM PowerAI Vision製品を使用すると、これを回避できます。 この製品は、機械学習の実装の詳細に進むことなく、独自のモデルをトレーニング、カスタマイズ、およびテストできるインターフェイスを提供します。
このチュートリアルでは、PowerAI Visionを使用してシステムをトレーニングし、アプリケーション内のオブジェクトを検出および認識するために使用できる、すぐに使用できるREST APIサービスを作成する方法を示します。
PowerAI Vision-テクノロジープレビュー
2017年12月の時点で、PowerAI Visionは、Power SystemsサーバーにインストールされるTechnology Previewソフトウェア製品( developerWorksページから無料でダウンロード可能)としてテストできます。 このようなサーバーがない場合は、SuperVesselクラウドでこの製品をテストできます(完全無料)。
ご注意 このマニュアルでは、PowerAI Vision Technology Previewバージョン3.0の使用方法について説明します。
挑戦する
この記事の目的は、機械学習を使用してオブジェクトを検出する基本について説明し、PowerAI Visionインターフェースを使用してそのような学習を実装する方法を示すことです。 これでできることは次のとおりです。
- オブジェクト検出のためのデータセット(DataSet)の作成とタグ付け
- トレーニングされたモデルをトレーニングしてデータセットに適用する
- RESTサービスを使用したモデルのテスト
フレームワークのセットアップ、GPUアクセラレーターの接続と使用、RESTサービスのデプロイと構成の詳細は、製品内で自動的に実行されます。 ただし、一部のトレーニング設定は管理インターフェイスから利用できます。
最終結果は、すぐに使用できるオブジェクト検出用のREST APIです。
認識には何が必要ですか?
サンプル画像のコレクション。
実装するシナリオに基づいて、独自の画像コレクションを作成できます。 PowerAI Visionが答えるのに役立つ質問を次に示します。
- 画像内のオブジェクトはどこにありますか?
- 画像にはいくつのオブジェクトがありますか?
たとえば、コカコーラのボトルの写真を撮ります。 私たちの目標は、画像やビデオクリップのボトルを見つけて数えるアプリケーションを作成することです。
PowerAI Visionを電力システムにインストールする
Nvidia GPUがインストールされたIBM Powerサーバーが既にある場合は、テスト用にPowerAI Visionをインストールできます。 リンクに従って、「オンプレミス」-「今すぐダウンロード」を選択します。 PowerAI Visionをダウンロードしてインストールします。

ご注意 この記事の例では、PowerAI製品をテストするためのクラウドベースのサービスであるSuperVesselを使用していることを前提としています。
どれくらい時間がかかりますか?
SuperVesselクラウドでモデルを準備および展開する手順にはそれほど時間はかかりません(1時間未満)が、モデルのトレーニングを考慮すると、プロセス全体には1時間半かかります。 もちろん、この時間はデータセットの複雑さやその他の要因に依存します。
モデルを作成してトレーニングする
SuperVessel Cloudの使用
SuperVesselクラウドサービスにサインアップします (無料です)。
データセット(DataSet)を作成する
PowerAI Visionは、2つの機械学習モデルをサポートしています。
- オブジェクト検出-画像内のオブジェクトの検出と認識
- 画像分類-画像内のオブジェクトの分類
PowerAIビジョンオブジェクト検出モデルを使用すると、画像内のオブジェクトを検出および認識し、その数を計算できます。 この記事では、この特定のモデルのトレーニングについて検討します。
モデルをトレーニングするための新しいデータセットを作成します。
- [マイデータセット]ビューで、[データセットの追加]ボタンをクリックし、ドロップダウンリストで[オブジェクト検出用]を選択します。

- データセットに名前を付けて(たとえば、「Coke Bottles」)、「Add Dataset」をクリックします。

- 1つまたは複数の画像をグレーの長方形にドラッグしてダウンロードするか、「一部を選択」ボタンをクリックして、ローカルディスクから画像を選択してロードします。

- zipアーカイブに複数の画像を一度にアップロードできます。

ご注意 zipファイルをダウンロードし、ダウンロード後にファイルのサムネイルが表示されない場合、ダウンロードは失敗しています。 特殊文字やスペースなしで小文字のファイル名を使用してみてください。 ファイルを個別にダウンロードして、問題の原因となったファイルを特定してください。
タグとタグオブジェクトを作成する
- +アイコンをクリックして新しいタグを追加し、1つ以上のタグを作成します。 認識されるオブジェクトのタイプごとに、個別のタグを作成する必要があります。
- 画像内のオブジェクトをマークします(このようなプロセスマークアップを呼び出しましょう)-最初にタグをクリックし、次に画像上で対応するオブジェクトの周りをクリックします。その結果、境界ボックスが表示されます。 このタグのオブジェクトのマークアップが完了したら、[保存]をクリックします。
- 最初に写真内のすべてのタグに対してこのプロセスを繰り返し、次にすべての画像に対してこのプロセスを繰り返します。 このようなタグ付き画像の例を次に示します。

ヒント。 既にマークされた写真を表示しない場合は、「ラベルのないファイルのみ表示」オプションを使用します。
- [Zipファイルとしてエクスポート]をクリックして、準備済みのデータセットをダウンロードします。 マーキングに時間をかけたので、このzipファイルを使用すると、完了した作業の結果を失わないようにできます。
DL(ディープラーニング)タスクの作成
- [ マイワークスペース]セクションで[ マイDL ]をクリックし、[ 新しいタスクの作成 ]ボタン、[ オブジェクト検出 ]の順にクリックします 。
- Detectorに名前を付け、必要なデータセットを選択したことを確認してから、[ モデルのビルド ]をクリックします。

展開とテスト
- モデルのトレーニングが完了したら(学習プロセスを視覚的に制御できます)、[ 展開とテスト ]をクリックします。

- PowerAI Visionユーザーインターフェイスでビルドされたモデルをテストします。[ 選択 ]をクリックして、検証用のイメージを読み込みます。 ロード後、検出されたオブジェクトを含む画像と認識精度の評価が以下に表示されます。 この例では、99.9%の精度のコカ・コーラのボトル3本

- コマンドラインから、curlコマンドとイメージファイルを使用してRESTサービスのプログラムインターフェイスをテストできます。 JSONは複数のボトルを検出し、それぞれのタグと場所を示していることに注意してください。
$ curl --insecure -i -F files=@coke_bottle_23.png https://ny1.ptopenlab.com/AIVision/api/dlapis/9f9d6787-0183-4a1b-be49-751b6ca16724 HTTP/1.1 100 Continue HTTP/1.1 200 OK Server: nginx/1.9.13 Date: Thu, 14 Dec 2017 21:58:26 GMT Content-Type: application/json Content-Length: 508 Connection: keep-alive Access-Control-Allow-Origin: * Access-Control-Allow-Headers: origin, content-type, accept, authorization Access-Control-Allow-Credentials: true Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS, HEAD Access-Control-Allow-Origin: * { "classified" : [ { "confidence" : 0.9986369013786316 , "ymax" : 578 , "label" : "coca-cola" , "xmax" : 755 , "xmin" : 588 , "ymin" : 29} , { "confidence" : 0.9954010248184204 , "ymax" : 592 , "label" : "coca-cola" , "xmax" : 601 , "xmin" : 437 , "ymin" : 10} , { "confidence" : 0.8161203265190125 , "ymax" : 567 , "label" : "coca-cola" , "xmax" : 426 , "xmin" : 259 , "ymin" : 17}] , "imageUrl" : "http://ny1.ptopenlab.com:443/AIVision/temp/5a26dd3b-d8ba-4e01-8b93-5a43f28e97c7.png" , "result" : "success"}
クラウドベースの無料バージョンでは、REST APIの使用が展開後1時間に制限されています。 サービスが停止したら、再開して作業を再開できます
簡単な要約
機械学習がサンプル画像とどのように機能し、オブジェクト検出APIを作成できるかを見ました。 結果はJSONで結果を返す本格的なREST APIであるため、どのアプリケーションでも簡単に使用できます。
PowerAI Visionはシンプルで使いやすく、学習を加速するGPU機能を提供します。
予測の精度は、テストサンプルの品質とサイズに依存します。 実験に使用されるデータセットが小さすぎる場合、結果の品質に影響する可能性があります...トレーニングの品質は時間とデータに依存します。 データセットを増やして、結果を改善できます。
PS
Opentalks.AIカンファレンスのIBMブースで、 PowerAI Visionを見て、実際に試して、IBMの専門家とプラットフォームを使用するための興味深いシナリオについて議論することができます。
さらに、モスクワのIBM Client Centerの従業員は、 PowerAI Vision、IBM Watson、および認知テクノロジーを使用したユニークな経験を持っています。 そして、彼らはあなたの質問に喜んで答えます 。
さらに読む
英語のオリジナル記事 。
オブジェクト検出 :ウィキペディアのオブジェクト検出。
PowerAI Vision :ディープラーニングとPowerAI開発
TensorFlow Object Detection :TensorFlow Object Detection APIを使用してコンピュータービジョンモデルを強化します
AI記事 :人工知能は人間よりも優れた写真を識別できますか?
開発者から :IBM PowerAI Visionは、より正確に転送学習を高速化します-実際の例
製品に関するいくつかのビデオ:
www.youtube.com/watch?v=0F5w6q0ZpBI
www.youtube.com/watch?v=nWft6tYVdrc
www.youtube.com/watch?v=qHZRnswzqUI