今回は、学習のテクニックの1つであるデータオーギュメンテーションについてです。ディープラーニングは、学習時に最適化するパラメータ数が多いため、数万枚、数十万枚の学習データが必要と言われています。しかし、十分な量の学習データを用意できないことが多々あります。または、さらに認識性能を高めたいことがあると思います。そんなときに活躍するのが「データオーギュメンテーション」というテクニックです。

データオーギュメンテーションとは?

データオーギュメンテーション(データ拡張)とは、学習データ(訓練データ)の画像に対して平行移動、拡大縮小、回転、ノイズの付与などの処理を加えることで、データ数を人為的に水増しするテクニックです。例えば、3000枚の画像を用意したとして、下記のデータオーギュメンテーションを施したとします。

  • 平行移動:縦横それぞれ-20画素、0画素、20画素
  • 回転:-5°、0°、5
  • 拡大縮小:拡大率0.9, 1.0, 1.1

データオーギュメンテーション後の画像は、3000枚×3×3×3×3=24万3000枚となります。実際に運用する際の入力画像は、学習データに含まれる画像と異なりカメラの距離がやや近かったり、少し傾いていたりということは十分にありえます。データオーギュメンテーションを用いることでデータ数を水増しできるだけでなく、このような画像のずれにたいしてもロバストになるというメリットがあります。

データオーギュメンテーションで用いる処理

データオーギュメンテーションで用いる処理は、前述のものを含めると例えば下記のようなものがあげられます。平行異動、回転、拡大縮小は、実際にとり得る範囲でデータを拡張すると良いでしょう。背景の置換は、屋外の歩行者のように、背景が千差万別な場合に有効です。具体的には、人の領域のみを抽出し、背景をさまざまな画像に置き換える処理を行うことになります。

  • 平行移動
  • 回転
  • 拡大縮小
  • 左右反転
  • 上下反転
  • 射影変換
  • 背景の置換
  • ノイズの付与

など

データオーギュメンテーションの一例

左右反転

左右反転は、人の顔や、人の全身の検出などで有用な処理です。この処理を施すことで、右から見た顔の精度は高いけど、左から見た顔は苦手といったデータの偏りの影響を緩和することも期待できます。

ただし左右反転、上下反転は、識別したい対象によっては適用することができないので注意しましょう。例えば、文字認識の場合、多くの文字は左右、上下を反転させてしまうと存在し得ない文字となってしまいます。

  • 左右反転の例

    図1 左右反転の例

射影変換

識別したい対象がCDのジャケット、本の表紙のように平面の場合は、射影変換によるデータ拡張が有効です。射影変換の概要は図1の通りです。平面パターンは、射影変換により異なる視点から撮影したパターンを生成することができます。

  • 射影変換の例

    図2 射影変換の例

著者プロフィール

樋口未来(ひぐち・みらい)
日立製作所 日立研究所に入社後、自動車向けステレオカメラ、監視カメラの研究開発に従事。2011年から1年間、米国カーネギーメロン大学にて客員研究員としてカメラキャリブレーション技術の研究に携わる。

日立製作所を退職後、2016年6月にグローバルウォーカーズ株式会社を設立し、CTOとして画像/映像コンテンツ×テクノロジーをテーマにコンピュータビジョン、機械学習の研究開発に従事している。また、東京大学大学院博士課程に在学し、一人称視点映像(First-person vision, Egocentric vision)の解析に関する研究を行っている。具体的には、頭部に装着したカメラで撮影した一人称視点映像を用いて、人と人のインタラクション時の非言語コミュニケーション(うなずき等)を観測し、機械学習の枠組みでカメラ装着者がどのような人物かを推定する技術の研究に取り組んでいる。

専門:コンピュータビジョン、機械学習