1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

CGを使って機械学習のデータを作ってみよう~Synthesized Data Augment その② 学習編

Posted at

#1. 前回のおさらい
 __機械学習__を進める上で、必要不可欠なの学習データをCGの技術を使って効率よく構築する方法を研究していこう。前回は、学習データの水増しの技術Data AugumenntにCGの合成技術を使ってみた。基本となる画像学習データから、目的の部分(今回は人のセグメンテーション)をマスクとして抜き出し、背景をインペイントして、新たに別の背景と合成する手法を説明しました。こうすることで、背景と人物の様々な組み合わせの学習データを増やすことができるのである。
 今回は、増やした学習データを使ってどれくらいの効果が出ているかを実際にUnetで学習してみて検証してみよう。

0001.jpg 0001.png 0001_clenBG_.jpg0002.jpg 0002.png 0002_clenBG_.jpg
 = 0001_0002_clenBG_.jpg 0002_0001_clenBG_.jpg
<人物と背景を分離して、それぞれを入れ替えて新しい画像を構築する。>

#2. 概要
 機械学習を成功させるには、数多くの学習データが必要になるが、もちろん手作業で構築するには限界があるので、それをCGの手法を使って、簡単に効率化が可能かどうかを検証していきたい。
 前回のSynthesized Data Augmentで学習データを拡張したデータを使って、実際に学習して検証してみる。
 検証内容は、元の学習データと同数の新たに再合成して作られた学習データとの性能の違いをチェックし、次にSynthesized Data Augmentの真骨頂である更なる学習データの拡張によって、学習結果がどのように変化してみるかを検証したい。

#3. U-netの実装
 __U-net__は機械学習のモデルの中でもポピュラーで、実装も比較的楽で結果も良いので、今回のような実験的な検証には向いているといえる。
u-net-architecture.png

 U-netの詳しい解説は省略しますが、U-netは対になった画像(人物の映った画像とそのマスク画像)の学習データを入力して、画像データから人物のマスク画像を学習することができます。今回の検証では、学習が成功すれば、新しい画像を入力すると、人物が映っているところだけをマスクを生成することができる。

今回U-netは簡単なKerasの実装を使いました。

インプットのイメージサイズは256x256ピクセルです。
まずは元のデータも合成データも同じ1000枚で100エポック学習してみた。

#4. U-netの学習結果の検証

Default Dataset
Precision_average: 0.946
Recall_average: 0.955
Fscore_average: 0.948
IoU_average: 0.905

Sythesized Dataset
Precision_average: 0.969
Recall_average: 0.912
Fscore_average: 0.939
IoU_average: 0.886

Default Dataset & Sythesized Dataset
Precision_average: 0.976
Recall_average: 0.949
Fscore_average: 0.962
IoU_average: 0.927

Default(Defaultのデータセット)、Sythesized(合成した)データセット、MIX(二つをミックスしたデータセット)で検証してみたところ、Precisionは、SythesizedとMIXがDefaultよりも精度が高いことがわかる。かわりにRecallは、Defaultの精度が良かった。総合的にFscoreやIoUを見る限り、MIXが一番良いのがわかる。
推論画像を確認してみる。
Default Dataset
default.png

Sythesized Dataset
synth.png

Default Dataset & Sythesized Dataset
mix.png

画像で比べてみても、若干だがDefaultよりもMIXの方が画像の中のノイズが少なくなっているのがわかると思う。また、Defaultのエッジ付近のピクセルがMIXの方が滑らかになっているように思える。

今回は、同じデータセットであっても、マスクで切り取って合成することで、精度を向上できる可能性があることがわかった。
こちらの論文でも同じようなことが言われています。
https://arxiv.org/abs/2012.07177

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?