基本操作ガイド

Basic Guide

BLOCKS の機械学習を使った画像分類の方法

BLOCKS の機械学習を使った画像分類の方法

画像分類タイプは、MLボードのアルファ版として限定公開しています。
ベータ版および正式版のリリース後、アルファ版で生成した ML ボードは、利用できなくなる可能性があります。ご利用にあたっては、ご注意願います。

このドキュメントでは、写真に写っている動物が犬か猫を判定する例を使って、BLOCKS 機械学習の画像分類の使い方を解説します。

犬猫判定の概略図

BLOCKS で機械学習を使った画像分類を行うには、「ML ボード」と「Big Data ボード」を使用します。ML ボードで学習(トレーニング)を行い、Big Data ボードで予測(犬か猫の判定)を行います。対応する画像の形式は、JPEG のみです。

画像分類タイプの概略図

このドキュメントでは、BLOCKS の基本的な操作方法については、解説していません。BLOCKS の基本的な操作方法については、「基本操作ガイド」の「操作方法」の章を参照してください。

BLOCKS でお困りのことがあれば、チャットでのサポートも行っています。このチャットサポートでは、オペレーターとテキスト形式で会話ができます。ご相談の際は、画面左下に表示される「チャットで問い合わせ」をクリックしてください。

受付時間: 平日 10:30 - 18:30

準備

もし、BLOCKS アカウントがない場合は、「トライアルご利用の流れ」を参考にして、無料トライアルを申し込んでください。

BLOCKS の機械学習をすぐ試せるように、必要なデータ一式を準備しました。以下のそれぞれの説明に沿って自身の環境に準備してください。

データ 説明
サンプルデータ

機械学習の画像分類で使用する画像ファイル一式です。学習(トレーニング)と予測で使用する 2 種類の画像ファイルを含んでいます。

  1. サンプルデータのダウンロード

    左のリンクをクリックして、サンプルデータをダウンロードします。サンプルデータは、ZIP 形式で複数のフォルダーやファイルをひとつにまとめています。

  2. ダウンロードしたファイルの解凍

    ダウンロードした ZIP 形式のファイルを解凍します。下図のフォルダー構成でフォルダーやファイルが解凍されます。

    サンプルデータのフォルダー構成図

    トレーニング用の画像ファイルは、分類する種類ごとでフォルダーに分けて配置します。フォルダー名が分類する種類の名称として扱われます。対応する画像ファイルの形式は、JPEG のみです。

    今回の例では、犬と猫に分類するため、それぞれ dog フォルダーと cat フォルダーに分けて、犬と猫の画像ファイルを配置しました(dogcat が分類する種類の名称)。

  3. Google Cloud Storage (GCS) へアップロード

    BLOCKS 機械学習の画像分類では、GCS から画像ファイルを読み取ります。「GCS へファイルをアップロードする方法」を参考にして、blocks_ml_image_example フォルダーを GCS へアップロードしてください。

サンプルフロー

サンプルフローは、「ML ボードオンライン予測」ブロックを使用した最もシンプルな予測フローを準備しました。

  1. サンプルフローのダウンロード

    左のリンクをクリックして、サンプルフローをダウンロードします。

  2. Big Data ボードへインポート

    ダウンロードしたサンプルフローを Big Data ボードへインポートします。

    サンプルフローのインポート方法については、「インポート」を参考にしてください。

トレーニング

まず、100 枚ずつ用意した犬と猫の画像データを使って学習(トレーニング)を行います。BLOCKS では、ML ボードを使ってこのトレーニングを行います。

ML ボードは、以下の手順で作成します。

  1. BLOCKS ボード一覧から「新規ボード作成」ボタンをクリックします。

    新規ボード作成
  2. ML ボード」を選択します。

    ML ボード選択
  3. 画像分類タイプ」を選択します。

    画像分類タイプの選択
  4. ボード名を入力します。

    画像分類タイプのボード名を設定

無料トライアルおよびセルフサービスプランの場合は、画面の案内に沿って以下のステップを進めてください。

  1. GCP サービスアカウントの設定
  2. Google Cloud Machine Learning Engine の設定
  3. ストレージの設定

最後に、設定内容を確認し「完了」ボタンをクリックすると、ML ボードが作成されます。

引き続き、この ML ボードを使って、トレーニングを実施します。「トレーニング開始」ボタンをクリックします。

画像分類タイプのトレーニング開始画面

ここでは、以下の内容でトレーニング情報を設定します。

項目 内容
トレーニング名

トレーニングに名前を付けます。

例えば、「1 回目のトレーニング」などとします。

トレーニングデータアップロード
(フルサービスプランのみ)

フルサービスプランの場合、トレーニングデータのアップロード先に使用する Google Cloud Storage (GCS) の場所が「gs://バケット名」の形式で表示されます。

リンクをクリックすると、ウェブブラウザーの別タブで Google Cloud Console が開き、この GCS にアクセスできます(プロジェクト設定の GCP アクセスで登録した Google アカウントによるログインが必要)。

今回は、「準備」で既にトレーニングデータをアップロードしているため、使用しません。

画像フォルダー

トレーニングに使用する画像ファイルをアップロードしたフォルダーを指定します。

ここでは、gs://my-bucket/blocks_ml_image_example/training/ と指定します。

バケット名 my-bucket の部分は、ご自身の環境のバケット名に読み替えてください。

トレーニング用の画像ファイルは、分類する種類ごとでフォルダーに分けて配置します。フォルダー名が分類する種類の名称として扱われます。対応する画像ファイルの形式は、JPEG のみです。

今回の例では、犬と猫に分類するため、それぞれ dog フォルダーと cat フォルダーに分けて、犬と猫の画像ファイルを配置しました(dogcat が分類する種類の名称)。

トレーニングの経過制限時間

トレーニングにかける最大の時間を指定します。

ここでは、初期値の 180 (3 時間)のままとします。

トレーニングの説明

トレーニングの説明を記入します。

今回は、空欄のままとします。

開始」ボタンをクリックすると、トレーニングが始まり、トレーニング状況を確認できます。

ML ボード画像分類タイプ詳細画面

トレーニングが終わるとステータスが成功に変わり、「適用」ボタンが表示されます。「適用」ボタンをクリックすると、Big Data ボードを使って予測が行えます。

予測

予測は、Big Data ボードで行います。今回用意したフローは、以下のとおりです。

画像分類オンライン予測フロー

予測は「ML ボードオンライン予測」ブロックを使用します。このブロックは、変数に設定された予測データと ML ボードを使って予測を行います。今回は、「オブジェクト生成」ブロックを使って、予測に使う画像ファイルへの情報を変数に設定します。

予測データの設定方法は、「オブジェクト生成」ブロックを使用する方法以外にもいろいろとあります。「ML Board オンライン予測ブロックを使ったいろいろな予測の方法」で紹介しています。実際の活用にあたっては、これらの中から適切な方法を選択してください。

以下に、各ブロックのプロパティの設定値を示します(初期値と異なる設定と重要なプロパティのみ)。提供のサンプルフローでは、「ブロックメモ」プロパティに各ブロックの動作説明を記載していますが、ここでは省略します。

ブロック
(カテゴリー)
プロパティ
オブジェクト生成
(基本)
結果を格納する変数

_

データ
画像分類タイプ予測データサンプル

バケット名 my-bucket の部分は、ご自身の環境のバケット名に読み替えてください。

ML ボードオンライン予測
(機械学習)
GCPサービスアカウント 複数の GCP サービスアカウントがある場合は、適切な GCP サービスアカウントを選択
MLボード名 先ほど作成した ML ボード名を選択
予測因子データの変数 _.data
予測結果変数 _
ログへ出力
(基本)
ログへ出力する変数 _

このフローを実行するには、フローの開始ブロックのプロパティ内にある「」ボタンをクリックします。

実行が成功するとログに以下のような内容が出力されます。ログは、画面最下部の「ログ」と書かれた灰色のバーをクリックし、ステータスが「成功」の部分をクリックすると表示されます。

{
  "predictions": [
    {
      "score": [
        0.9999089241027832,
        9.108754602493718e-05
      ],
      "key": "gs://my-bucket/blocks_ml_image_example/prediction/sample_01.jpg",
      "label": "cat"
    },
    {
      "score": [
        0.0008647672948427498,
        0.9991353154182434
      ],
      "key": "gs://my-bucket/blocks_ml_image_example/prediction/sample_02.jpg",
      "label": "dog"
    }
  ]
}

"score""key""label" が予測結果です。

  • "score": 分類ごとの予測の確からしさです。"score" の最初の要素が "cat"(猫)で、2 番目の要素が "dog" (犬)です。
  • "key": 予測に使用した画像ファイルへの GCS URL です。
  • "label": 予測結果です。

この予測結果は、以下のとおりです。

画像ファイル 予測結果
画像分類の予測サンプル画像(猫)
sample_01.jpg
99.9% の確からしさでです。
画像分類の予測サンプル画像(犬)
sample_02.jpg
99.9% の確からしさでです。

このように、BLOCKS の画像分類は、画像ファイルをフォルダーごとに分けて準備するだけの簡単さです。

最後に、BLOCKS の画像分類用に準備する画像ファイルの留意事項をまとめておきます。

  • 極端な縦横比の画像は、正しく分類できない可能性があります。
  • トレーニングに使用する画像ファイルは、分類する種類ごとにフォルダーを分けて配置します。
  • そのフォルダー内には JPEG 形式の画像ファイルのみを配置します(更にフォルダーを作って整理しない)。