roboflowブログ

 roboflowチュートリアル
第4回 roboflow:データ増強(オーグメンテーション)
こんにちは、システムズナカシマの松浦です。

今回は、roboflowの特徴的な機能の一つであるデータ増強(オーグメンテーション)の方法について解説します。

本記事をお読みになる前に、アカウントをお持ちでない方(サインアップ)、ワークスペース・プロジェクトの準備がお済みでない方は以下の記事をご確認ください。

第1回:ワークスペースとプロジェクトの作成(1/2)(2/2)
第2回:データのアップロード
第3回 roboflow:アノテーション(1/2)(2/2)

また、roboflowで何ができるか、概要を知りたい方は「はじめてのroboflow」の記事をご参照ください。


データ増強(オーグメンテーション)は、画像処理を利用し画像を拡大・縮小したり、回転させるなどして学習データを増強する機能です。

AIモデルを構築する際に、はじめから十分な学習データを収集するのは大変な作業です。
そんな時にデータ増強(オーグメンテーション)を利用し、初期の学習データを短時間で整備することができます。

roboflowは、画像処理ライブラリーで最も有名なOpenCVのパートナーでもあり、画像処理を用いた強力なデータ増強(オーグメンテーション)機能を提供しています。

roboflow データ増強(オーグメンテーション)
アノテーションデータのReview申請
まず初めに、前回までの手順にて作成したデータをDatasetとして登録する必要があります。

Datasetとして登録するには、Reviewを行いApproved(承認)される必要があります。自分にアサインされているアノテーションのバッチを選択すると「Submit For Review」ボタンが表示されるので押下します。

バッチを選択します。

roboflow アノテーションデータのReview申請
続けて「Submit For Review」ボタンを押下します。

roboflow Submit For Review
アノテーションデータのReview
Reviewの一覧に表示されているバッチを選択します。

roboflow アノテーションデータのReview

Review画面が表示されますが、ここでは「Approve All」ボタンを押下し一括で承認を行います。

続けて、画面右上の「Add Approved to Dataset」ボタンを押下し、承認された画像をDatasetとして登録します。

roboflow 承認された画像をDatasetとして登録
※「Annotated」に表示されている画像を選択すると、一枚づつ確認・承認を行うことができます。

Datasetとして登録する際に画像を「学習(Train)・評価(Valid)・テスト(Test)」に分割します。その際の割合を設定し「Add Images」ボタンを押下します。

※初期のTrain(70%):Valid(20%):Test(10%)で問題ありません。

roboflow 学習(Train)・評価(Valid)・テスト(Test)
データセットの作成
左側に表示されているメニューの「Versions」ボタンを押下します。

roboflow データセットの作成
画面がデータセットの作成画面に切り替わります。以下を順に実行しデータセットを作成していきます。

1.Preprocessing(前処理):画像の前処理、自動画像向きの判定、リサイズ等を指定します。
2.Augmentation(データ増強):データ増強の種類を選択します。
3.Create(データ生成):オーグメンテーションを利用し何倍のデータを生成するかを指定します。

roboflow オーグメンテーション
Preprocessing(前処理)
「Preprocessing」は、データセットの全ての画像に適用されます。「Add Preprocessing Step」ボタンを押下します。


roboflow Preprocessing(前処理)
前処理として利用できるものが表示されます。

roboflow オーグメンテーション機能
機能 概要 説明
Auto-Orient 画像向き補正 EXIF情報を無視して画像の向きを判定します。
Isolate Objects 対象物の画像保存 バウンディングボックスの範囲で画像を生成します。物体検出のデータを画像分類のデータに変換する際に利用します。
Static Crop 分割 画像を決まった領域で分割します。
Resize サイズ補正 指定した縦横長さに画像サイズを調整します。通常、AIモデルの入力画像サイズにそろえる際に利用します。
Grayscale グレースケール 画像をグレースケールに変換します。
Auto-Adjust Contract コントラスト自動調整 画像のコントラストを自動で調整します。
Tile タイル状に分割 画像を縦・横指定した数に分割します。対象物が小さい場合にタイル状に分割することで学習し易くなります。
Modify Classes クラス補正 特定のクラスをデータセットから除外したり、クラス名を別のものに変更することができます。
Filter Null NULLフィルター 学習用のデータに含めるNULL画像(背景画像)の無効化する割合を設定します。0%を指定した場合全て利用されます。
Filter by Tag Tagフィルター 画像に対して設定したタグ文字列にてデータを絞り込みます。

予め「Auto-Orient」と「Resize(640x640)」が、初期の前処理として選択されています。

roboflow Auto-Orient
Augmentation(データ増強)
続けて「Augmentation」を選択します。

「Add Augmentation Step」ボタンを押下すると、データ増強の種類(オーグメンテーションの種類)が一覧表示されます。

roboflow データ増強の種類(オーグメンテーションの種類)
roboflow Add Augmentation Step
画像レベルでのデータ増強(オーグメンテーション)
機能 概要 説明
Flip 反転 画像を縦方向または横方法に反転します。
90°Rotate 90度回転 時計周り・反時計回りに画像を90度回転します。
Crop 切り取り 画像を特定の範囲で切り抜きます。
Rotation 回転 時計周り・反時計回りに指定した角度で回転します。
Shear 歪み 画像を歪ませます。
Grayscale グレースケール 一部の画像をグレースケールに変換します。
Hue 色相 画像の色相を調整します。
Saturation 彩度 画像の彩度を調整します。
Blightness 明るさ 画像の明るさを調整します。
Exposure 露光・露出 画像の露光・露出の調整を行います。
Blur ぼかし 画像に対してぼかしを入れます。フォーカスが当たってい対象物を検出したい場合に利用します。
Noise ノイズ 画像にドット上のノイズを入れます。過学習を抑える効果があります。
Cutout カットアウト 画像の一部をマスクし対象物が隠れた画像を生成します。
Mosaic モザイク 分割した画像を組み合わせモザイク状の画像を生成します。

ここでは、「Flip」で左右反転、「Crop」で部分的に拡大、「Rotation」で左右に5度回転、「Blightness」で暗くした画像・明るくした画像を生成するように設定してみました。

roboflow オーグメンテーションの流れ
バウンディングボックスレベルでのデータ増強(オーグメンテーション)
アノテーションしたバウンディングボックス単位に回転したり、色を変更することができます。

例えば、背景画像はそのままで対象物のみ回転したい場合に有効な機能です。
※例:ベルトコンベヤー上を流れる対象物を上部からカメラで撮影し、その対象物が回転するようなケース

roboflow バウンディングボックスレベルでのデータ増強
Create(データ生成)
最後に、設定したデータ増強(オーグメンテーション)を利用し、データを何倍に増やすかを設定します。
ここでは、「5倍」を選択しています。元は226画像が、オーグメンテーションを実行し858画像に増幅されるのが確認できます。

roboflow Create(データ生成)
「Create」ボタンを押下しデータセットを生成します。
生成されたデータセット
「Create」ボタンの押下でデータの生成が開始され、完了すると以下の画面が表示されます。

roboflow 生成されたデータセット
「View All Images」ボタンを押下すると生成された画像を確認することができます。

roboflow View All Images
元の画像には無かった少し回転した画像などデータ増強(オーグメンテーション)により生成された画像が一覧に表示されます。

roboflow データ増強(オーグメンテーション)
最後に
いかがでしたでしょうか?
今回は、roboflowの特徴的な機能であるデータ増強(オーグメンテーション)について解説しました。
第5回 roboflow:学習とデプロイについてはこちらをご確認ください。
次回は、生成したデータセットを使ってroboflow上でAIモデルの学習、学習したモデルの利用方法について解説したいと思います。楽しみにしておいてください。
システムズナカシマでは、roboflowに関する個別相談・無料デモを行っております。是非お気軽にご相談ください。
■関連記事
はじめてのroboflow
第1回:ワークスペースとプロジェクトの作成(1/2)(2/2)
第2回:データのアップロード
第3回 roboflow:アノテーション(1/2)(2/2)
第4回 roboflow:データ増強(オーグメンテーション)
第5回 roboflow:学習
第6回 roboflow:推論結果の確認
アノテーション・AI学習データ(教師データ)作成・AIモデル構築ツール「roboflow」

お問い合せ

お問い合せはこちら

AI活用の機械学習を自動化するツール「roboflow」についてのご質問・ご相談はこちら

お電話でのお問い合せも受け付けています。お気軽にご相談ください。

03-5821-9761