はじめに
BLOCKSの機械学習のサービスを使うと、画像分類が行えます。画像分類を使うと、製品の不良品検査や細胞の病理診断などの画像を使ったさまざまな解析が可能となります。
このチュートリアルでは、写真に写っている動物が犬か猫かを判定する例を使って、BLOCKSの画像分類の使い方を解説します。

画像分類のおおまかな流れ
BLOCKSで画像分類を行うには、「モデルジェネレーター」と「フローデザイナー」を使用します。下図は、モデルジェネレーターとフローデザイナーを使った画像分類の流れです。

まず、モデルジェネレーターで学習(トレーニング)を行います。このトレーニングでは、犬や猫が写った大量の画像データを与えて、犬と猫の特徴を学ばせます。このトレーニングの成果は、モデルと呼ばれます。
次に、フローデザイナーでモデルと犬猫の予測用画像を与えて、予測(犬か猫かの判定)を行います。
BLOCKSの画像分類で対応する画像形式は、JPEG・PNG・GIF・BMPです。トレーニング時のトレーニングタイプがスピード優先の場合は、JPEGのみの対応です。
info_outlineトレーニングタイプについて詳しくは、「モデルジェネレーターヘルプ > トレーニング開始 >画像分類タイプ」の「トレーニングタイプ」の項を参照してください。
画像分類を試してみよう
チュートリアルを進めるにあたって、BLOCKS推奨のウェブブラウザーGoogle Chromeを準備してください。Firefoxでも構いませんが、その場合は一部機能に制限があります(後述)。このチュートリアルでは、Google Chromeの使用を前提にしています。
また、以下のライセンスが必要です。
サービス | ライセンス数 | 補足 |
---|---|---|
モデルジェネレーター | 1 | 未使用のライセンスが必要です。 |
フローデザイナー | 1 | 未使用のライセンスが必要です。利用中のライセンスを使用する場合は5ブロック分の空きが必要です。 |
DataEditor | 1 | 1テーブル分の空きが必要です。 |
info_outline無料トライアルの場合、各サービスは1ライセンス分のみの利用可能です。モデルジェネレーターのライセンスを既に使用している場合は、作成済みのモデルジェネレーターを削除してから本チュートリアルを進めてください。
画像分類を始める前に
まず、画像分類のトレーニングと予測に必要な画像データを準備します。先に述べたように、BLOCKSで画像分類を行うには、モデルジェネレーターを使ったトレーニングが必要です。このトレーニングには、トレーニング用の画像データが必要です。また、予測するための画像データも必要です。このチュートリアルでは、BLOCKSの画像分類がすぐ試せるように、必要なデータ一式を準備しました。
データ | 説明 |
---|---|
file_downloadサンプルデータ |
機械学習の画像分類で使用する画像ファイル一式です。トレーニングと予測で使用する2種類の画像ファイルを含んでいます。 |
-
サンプルデータのダウンロード
上記表のデータ欄のリンクをクリックして、サンプルデータをダウンロードします。サンプルデータは、ZIP形式で複数のフォルダーやファイルをひとつにまとめています。
-
ダウンロードしたファイルの解凍
ダウンロードしたZIP形式のファイルを解凍します。下図のフォルダー構成でフォルダーやファイルが解凍されます。
トレーニング用の画像ファイルは、分類ごとにフォルダー分けして配置しています。フォルダー名が分類名として扱われるため、フォルダー名は分類がわかるようなわかりやすい名前を付けています(日本語不可)。
今回の例では、犬と猫に分類するため、それぞれdogフォルダーとcatフォルダーに分けて、犬と猫の画像ファイルを100枚ずつ配置しました(dogとcatが分類名)。
画像ファイルの形式は、すべてJPEGで統一しています。
-
Google Cloud Storage(GCS)へアップロード
BLOCKSの画像分類では、GCSから画像ファイルを読み取ります。ここでは、解凍されたblocks_ml_image_exampleフォルダーを、GCS Explorerツールを使ってGCSへアップロードします。アップロードの手順は、以下のとおりです。
ウェブブラウザーで、BLOCKSにログインします。
- グローバルナビゲーション左端のmenuをクリック
- [GCS Explorer]をクリック
- 適切なGCPサービスアカウントを選択
既に適切なGCPサービスアカウントが選択されている場合はそのまま
info_outline既にGCPサービスアカウント選択済みでこの画面を表示したい場合は、❷のアイコンをクリックします。
- 末尾が-us-central1-dataのバケット名をクリック
既に適切なバケットが選択されている場合はそのまま
info_outline既に他のバケットもしくはフォルダーを選択している場合で、この画面を表示したい場合は、❷の[バケット一覧]をクリックします。
info_outlineセルフサービスプラン(無料トライアル含む)の場合は、プロジェクト作成時にオプションを選択してバケットが同時に作成されていることを前提としています。
バケットがひとつもない場合は、プロジェクト設定のGCPサービスアカウントの項で、バケットの作成ができます。
既に異なるバケットが作成済みの場合は、そのバケットを選択しても構いません。ただし、そのバケットのストレージクラスとロケーションは、Regionalかつus-central1である必要があります。
- フォルダーに歯車の絵柄のボタンをクリック
- [フォルダアップロード]をクリック
info_outlineFirefoxでは、GCS Explorerのフォルダーのアップロード機能は利用できません(前述の一部機能の制限)。その場合は、まずGCS Explorerのフォルダー作成機能を使って、解凍してできたフォルダー構成をGCS上に再現します。次に、ファイルアップロード機能を使って所定のフォルダー内に各ファイルをアップロードします。ファイルのアップロード方法については、「GCSへファイルをアップロードする方法」を参考にしてください。
フォルダーを選択する画面が表示されます(OSごとに異なる)。以下の画面は、Windowsの例です。
- blocks_ml_image_exampleフォルダーをクリック
- [アップロード]ボタンをクリック
アップロードの確認画面が表示されます。
- [アップロード]ボタンをクリック
しばらくすると、blocks_ml_image_exampleフォルダーがアップロードされます。
これで使い始めに必要な準備は完了です。
モデルジェネレーターを作成しよう
100枚ずつ用意した犬と猫の画像データを使い、モデルジェネレーターでトレーニングを行います。
まず、犬猫の画像分類用のモデルジェネレーターを作成します。

- グローバルナビゲーション左端のmenuをクリック
- [モデルジェネレーター]をクリック
モデルジェネレーターがひとつもない場合は、「モデルジェネレーターとは」の画面が表示されます。

- [利用開始]ボタンをクリック
モデルジェネレーターがひとつ以上ある場合は、作成済みのモデルジェネレーターの一覧が表示されます。

- [追加]ボタンをクリック

- [画像分類タイプ]をクリック
- [次へ]ボタンをクリック

- 名前を入力(例:
犬猫の画像分類
) - [次へ]ボタンをクリック
info_outline無料トライアルおよびセルフサービスプランの場合は、画面の案内に沿って以下のステップを進めてください。

- [完了]ボタンをクリック

- [OK]ボタンをクリック
モデルジェネレーターでトレーニングしよう
引き続き、このモデルジェネレーターを使って、トレーニングを実施します。

- [トレーニング開始]ボタンをクリック

- トレーニング名を入力(例:
1回目のトレーニング
) - folderをクリック

-us-central1-data
で終わるバケット名先頭のアイコンをクリックblocks_ml_image_example
フォルダー先頭のアイコンをクリックtraining
フォルダーをクリック- [選択]ボタンをクリック
このチュートリアルでは、トレーニング名と画像フォルダーの項目以外は、初期設定のままとします。各項目について詳しくは、モデルジェネレーターヘルプを参照願います。

- [開始]ボタンをクリック
トレーニングが始まり、トレーニングの状況が確認できます。

トレーニングの所用時間は、2時間ほどです(時間はサーバー側の状況により前後)。しばらくお待ちください。

トレーニングが成功で終わると、トレーニング一覧の当該トレーニングのステータスが成功に変わります。

- arrow_drop_downをクリック
- [本番用]をクリック
- [適用]ボタンをクリック
適用が完了すると、フローデザイナーを使って予測が行えるようになります。
info_outline適用対象について詳しくは、モデルジェネレーターヘルプの「トレーニングを一覧する」のアクションの項を参照してください。
もし、Google Cloud Platform(GCP)のリソース不足によりトレーニングが失敗する場合は、トレーニング時のマシンタイプを[単一ノード]に変更してトレーニングを再実行してください。
トレーニング失敗の理由の確認方法については、「操作中にエラーとなったら」を参考にしてください。
その他の理由により、トレーニングが失敗する場合は、再度トレーニングを実行してみてください。
フローデザイナーを作成しよう
予測は、フローデザイナーで行います。フローデザイナーのフローテンプレート作成機能を活用すると、簡単に画像分類を予測するためのフローが作成できます。このチュートリアルでは、このフローテンプレートを使った方法を解説します。
まず、フローデザイナーを作成します。

- グローバルナビゲーション左端のmenuをクリック
- [フローデザイナー]をクリック

- [利用開始]ボタンをクリック
info_outline既にフローデザイナーを作成している場合は、「フローデザイナーとは」の画面は表示されません。後で述べるフローデザイナーの一覧画面が表示されます。その場合は、既存のフローデザイナーの名前をクリックして、以降の作業を進めてください。もし無料トライアル以外をお使いで、新たにフローデザイナーを作成できるライセンス枠がある場合は、フローデザイナー一覧画面の左上にある[追加]ボタンをクリックしてください。
info_outlineライセンス不足の場合は、その旨のメッセージが表示されます(管理者の場合は、ライセンス購入画面を表示)。メッセージが表示された場合は、組織の管理者に問い合わせてください(管理者の場合は、ラインセンスを購入してください)。

- 名前を入力(例:
チュートリアル
) - [作成]ボタンをクリック

- [チュートリアルopen_in_new]をクリック
フローテンプレートでフローを生成しよう
新しいタブでフローデザイナーが開きます。引き続き、フローテンプレート作成機能を使って、画像分類の予測を行うフローを生成します。

- [フローテンプレート作成]ボタンをクリック

- [画像分類予測]をクリック
- [次へ]ボタンをクリック

- フロー名を入力(例:
犬猫の画像分類予測
) - [次へ]ボタンをクリック

- [犬猫の画像分類(画像分類)]をクリック
- [バッチ予測]をクリック
バッチ予測は、複数の画像をまとめて予測するのに向いています。 - [次へ]ボタンをクリック

- folderをクリック

- -us-central1-dataで終わるバケット先頭のアイコンをクリック
- blocks_ml_image_exampleフォルダー先頭のアイコンをクリック
- predictionフォルダーをクリック
- [選択]ボタンをクリック

- [次へ]ボタンをクリック
出力データ設定では、簡単に予測結果を確認できるDataEditorを指定します。

- [DataEditor]をクリック
- データ名を入力(例:
犬猫の画像分類予測結果
) - データセットを入力(例:
tutorial
)
画面を下にスクロールします。

- テーブルを入力(例:
image_classification_results
) - ラベル数を
2
に変更 - [次へ]ボタンをクリック
info_outlineDataEditorは、BigQuery上のデータを視覚的に操作できるツールです。BigQueryに関する知識は必要ありませんが、BigQuery上の重要な要素であるデータセットとテーブルは指定する必要があります。Microsoft Excelに例えると、データセットはブックで、テーブルはシートに対応する概念です。

- [配置]ボタンをクリック
これで、予測フローが完成しました。ここで、このフローを保存しておきます。

- [保存]ボタンをクリック
生成したフローで予測をしよう
予測結果を確認しよう
予測結果は、DataEditorのデータとして出力しているので、DataEditorで確認します。別タブにあるBLOCKSの画面(フローデザイナーの一覧画面)に切り替えます。

- グローバルナビゲーション左端のmenuをクリック
- [DataEditor]をクリック

- [犬猫の画像分類予測結果]をクリック

- [テーブル]タブをクリック
- [データを表示]をクリック

各列のそれぞれの意味は、以下のとおりです。
名前 | 説明 |
---|---|
key | 予測に使用した画像ファイル名です(GCS URL形式)。 |
label | 予測結果です。 |
score |
予測結果の確からしさです。数値は、0から1の範囲で、1が100%を示します。 |
score_(0からの数値) |
分類ごとの予測の確からしさです。数値は、0から1の範囲で、1が100%を示します。 |
この予測結果をまとめると以下のようになります。
行 | 画像ファイル | 予測結果 |
---|---|---|
1 | ![]() sample_01.jpg |
|
2 | ![]() sample_02.jpg |
|
操作中にエラーとなったら
本文中で、操作中に一般的に起きそうなエラー(失敗)については、記載しました。
しかし、それ以外の失敗や何度リトライしても失敗するようであれば、グローバルナビゲーション右端のユーザーアイコンをクリックして表示される[お問い合わせ]からエラー内容を添付してお問い合わせください。
エラー内容は、モデルジェネレーターの場合は、トレーニング詳細画面の「エラー内容」で確認できます。以下に、モデルジェネレーターでのエラー内容の確認方法を紹介します。

トレーニング一覧からステータスが[失敗]と表示されているトレーニングのトレーニング名(❶)をクリックします。

トレーニング詳細画面の[エラーログ](❶)をクリックします。[エラーログをコピーする](❷)をクリックすると、エラーログがコピーされます。
フローデザイナーの場合は、先に紹介したログパネルで確認できます。

エラー部分が赤字で表示されます。
エラーの原因を特定するには、エラー部分を中心に前後のメッセージも含めて読み解くと良いです(フローデザイナーは、[エラーログの詳細を表示]チェックボックスをチェック)。
エラーが発生し、何度リトライしても失敗するようであれば、グローバルナビゲーション右端のユーザーアイコンをクリックして表示される[お問い合わせ]からエラー内容をテキストファイル化したファイルを添付してお問い合わせください。エラー内容をテキストファイル化する場合は、赤字のエラー部分だけではなく、すべてのエラーメッセージを含めてください(フローデザイナーは、[エラーログの詳細を表示]チェックボックスをチェック)。
フローデザイナーでエラーが発生する場合は、フローをエクスポートしたJSONファイルも添付してください。
info_outlineお問い合わせについて詳しくは、基本操作ガイドの「お問い合わせ」を参考にしてください。
まとめ
このように、BLOCKSを使うと、画像ファイルをフォルダーごとに分けて準備するだけで、簡単にBLOCKSの画像分類が利用できます。
最後に、BLOCKSの画像分類用に準備する画像ファイルの留意事項をまとめておきます。
- 極端な縦横比の画像は、正しく分類できない可能性があります。
- トレーニングに使用する画像ファイルは、分類する種類ごとにフォルダーを分けて配置します。
- そのフォルダー内にはJPEG・PNG・GIF・BMP形式の画像ファイルを配置します(更にフォルダーを作って整理しない)。トレーニング時のトレーニングタイプがスピード優先の場合は、JPEG形式のファイルのみを配置します。