このチュートリアルでは、ドローンによる航空画像、Watson Studio、Watson Visual Recognition を使用して、山火事の被害を受けた近隣地区を調査し、焼けた家と無傷の家を特定する方法を説明します。
学習の目的
このチュートリアルを完了すると、以下の方法がわかるようになります。
- IBM Cloud 内で稼動する Watson Studio を使用して Visual Recognition モデルを作成する
- ドローンから画像をキャプチャーし、それらの画像を圧縮して 1 つのクラスにする
- 画像内のオブジェクトを識別するようにモデルをトレーニングする
- 識別されたオブジェクトにスコアを付けてカウントする
前提条件
このチュートリアルに従うには、IBM Cloud ライト・アカウントを使用できます。
- IBM Cloud アカウントを作成します。
- IBM Cloud にログオンします。
所要時間
このチュートリアルの所要時間は約 15 分です。
ステップ 1: ドローンについて理解する
おもちゃから産業用の使用ケースに至るまで、利用できるドローンにはさまざまなタイプがあります。今ではドローンの多くにカメラが組み込まれ、空中動画を保管したり、地上にストリーミング配信したりできるようになっています。ライブ配信の動画フレームを使用すれば、フレームをサンプリングし、それらの画像を Watson Visual Recognition に送信して分類することができます。
- ポケット・サイズのトイ・ドローン
- Tello (Node-RED を使用して Tello ドローンを制御)
- 愛好家用ドローン
- 商用ドローン
ステップ 2: 画像をキャプチャーする
ドローンを飛ばして体験できる面白いことの 1 つは、空中という独特な視点から動画や写真をキャプチャーすることです。ドローンで識別対象のオブジェクトの画像をキャプチャーすれば、それらの画像を使用して、対象オブジェクトを自律的に識別するよう視覚認識モデルをトレーニングできます。
このチュートリアルで用意している以下の 3 つの ZIP ファイルには、ドローンで撮影した画像が集められています。これらの画像を使用して、2018 年に西海岸で発生した壊滅的な山火事で被害を受けた近隣地区を識別します。画像はトレーニング・セットとして使用します。
- 焼けた家のドローン航空画像 – BurnedHomes.zip
- 無傷の家のドローン航空画像 – AerialHomes.zip
- ネガティブ・クラスとして使用する森、道路、川のドローン航空画像 – NotHomes.zip
出典: USA Today 記事の他、さまざまなインターネット・ソース
ステップ 3: Watson Studio をセットアップする
このセクションでは、Watson Studio アカウントを作成してから、プロジェクトを作成し、複数のクラスの画像を識別する Watson Visual Recognition モデルを作成します。
Cloud Object Storage サービス・インスタンスを作成する
- Cloud Object Storage サービス・インスタンスを作成するために、IBM Cloud のカタログにアクセスします。
- IBM Cloud のカタログ内で 「Object (オブジェクト)」 を検索します。
「Object Storage (オブジェクト・ストレージ)」 サービス・タイルをクリックします。
「Create (作成)」をクリックします。
Watson Studio サービス・インスタンスを作成する
- IBM Cloud のカタログから Watson Studio サービス・インスタンスを作成します。
IBM Cloud のカタログ内で 「Studio」 を検索します。
「Watson Studio」 サービス・タイルをクリックします。
「Create (作成)」をクリックします。
Watson Studio サービス・インスタンスが作成されたら、「Get Started (開始)」をクリックするか、Watson Studio にアクセスします。
IBM Cloud アカウントを使用してログインします。
入門チュートリアルに従って、Watson Studio の概要を学びます。
Watson Studio プロジェクト
プロジェクトは、使用するリソースを整理するためのワークスペースです。リソースには、データなどのアセット、共同作業者、ノートブックやモデルなどの分析ツールがあります。
新しいプロジェクトを作成する
- 「Create a Project (プロジェクトの作成)」をクリックします。
「Standard (スタンダード)」タイルを選択し、「Create Project (プロジェクトを作成)」ボタンをクリックします。
プロジェクトに 「Wildfire Burned Homes (山火事で焼けた家)」 という名前を付けます。前のステップで作成した Cloud Object Storage インスタンスにデータが取り込まれます。
「Create (作成)」をクリックします。
これで、プロジェクトをセットアップして Watson Visual Recognition を関連付ける準備が整いました。
アセットを Watson Studio プロジェクトに追加する
アセットを追加するには、「Assets (アセット)」タブをクリックします。
新しい Visual Recognition モデルを作成する
新しい Visual Recognition モデルを作成するには、「New Visual Recognition model (新規 Visual Recognition モデル)」 をクリックします。
新しい Watson Visual Recognition サービス・インスタンスをプロビジョニングする
プロジェクトを Watson Visual Recognition サービス・インスタンスに関連付ける必要があります。それには、ウィンドウ内の 「click here (ここをクリック)」 リンクをクリックして、新しいサービスをプロビジョニングします。
Watson Visual Recognition サービス・インスタンスを作成する
- 「Lite (ライト)」プランを選択し、このプランのフィーチャーを確認します。
- 一番下までスクロールダウンして、「Create (作成)」をクリックします。
Visual Recognition モデルの名前を変更する
デフォルトのカスタム・モデル名は記述的ではないため、名前を変更しましょう。
鉛筆アイコンをクリックして、名前を編集します。
モデルの名前を 「Count Burned Homes (焼けた家の件数)」 に変更します。
カスタム・クラスを Watson Visual Recognition モデルに追加する
新しいクラスを作成するために、「+」記号をクリックします。
このクラスに 「Burned Home (焼けた家)」 という名前を付けます。
「Create (作成)」をクリックします。
2 つ目のクラスを追加するために、再度 「+」 記号をクリックします。
このクラスには 「Intact Home (無傷の家)」 という名前を付けます。
「Create (作成)」をクリックします。
ZIP ファイルを Watson Studio プロジェクトにアップロードする
ドローン航空画像が含まれる ZIP ファイルを用意しておきました。次の 3 つのファイルです。
- BurnedHomes.zip
- AerialHomes.zip
「Browse (参照)」をクリックします。オペレーティング・システムに固有のファイル・ダイアログが開きます。
- 3 つの ZIP ファイル (BurnedHomes.zip、AerialHomes.zip、NotHomes.zip) をまとめて選択します。
ZIP ファイルを Watson Studio プロジェクトにアップロードします。
ZIP ファイルをカスタム・クラスにドラッグする
右側のナビゲーションから BurnedHomes.zip ファイルをドラッグして Burned Home クラスにドラッグします。
ZIP ファイルに含まれる画像が Burned Home クラスに追加されます。
右側のナビゲーションから AerialHomes.zip ファイルをドラッグして Intact Home クラスにドラッグします。
右側のナビゲーションから NotHomes.zip ファイルをドラッグして Negative クラスにドラッグします。
Watson Visual Recognition カスタム分類器をトレーニングする
- 「Train Model (モデルをトレーニング)」をクリックします。
画像に対するモデルのトレーニングが完了するまで数分待ちます。
モデルのトレーニングが完了したら、「Click here (ここをクリック)」リンクをクリックしてモデルを表示し、テストします。
ステップ 4: モデルをテストする
- クラスとモデルの詳細を確認します。
「Test (テスト)」タブをクリックします。
サンプル画像で Watson Visual Recognition カスタム分類器をテストする
- このリンク先の UK Daily Mail の記事にアクセスし、カリフォルニア州で壊滅的な被害を受けた地域のドローン画像のいくつかをダウンロードします。
ダウンロードした画像を参照して、「Test (テスト)」ページにロードします。または、画像を 「Test (テスト)」 ページにドラッグしてロードすることもできます。
Watson Visual Recognition カスタム分類器から返されたスコアを調べます。
アプリケーション内にWatson Visual Recognition カスタム・モデルを実装する
この Watson Visual Recognition カスタム分類器モデルをアプリケーション内に統合するには、さまざまなプログラミング言語を使用できます。
「Implementation (実装)」タブをクリックして、コード・スニペットを確認します。
モデルで画像を分類するには、以下のコード・スニペットを使用します。完全な API 仕様は、このリンク先のページで参照できます。
API エンドポイント
https://gateway.watsonplatform.net/visual-recognition/api
認証
curl -u "apikey:{apikey}" "https://gateway.watsonplatform.net/visual-recognition/api/{method}"
画像の分類 (GET)
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&classifier_ids=CountBurnedHomes_1382538940"
画像の分類 (POST)
curl -X POST -u "apikey:{apikey}"-F "images_file=@fruitbowl.jpg" -F "threshold=0.6" -F "classifier_ids=CountBurnedHomes_1382538940" "https://gateway.watsonplatform.net/visual-recognition/api/v3/classify?version=2018-03-19"
まとめ
このチュートリアルでは、ドローンによる航空画像、Watson Studio、Watson Visual Recognition を使用して、山火事の被害を受けた近隣地区を調査し、焼けた家と無傷の家を特定する方法を説明しました。IBM Cloud 内で稼動する Watson Studio 内で Visual Recognition モデルを作成する方法、ドローンから画像をキャプチャーして 1 つのクラスとして圧縮する方法、画像内のオブジェクトを識別するようにモデルをトレーニングする方法、識別されたオブジェクトにスコアを付けてカウントする方法を把握できたはずです。