16
17

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 5 years have passed since last update.

U-net構造で、画像セグメンテーションしてみた。(1)

Last updated at Posted at 2018-04-02

Kerasの練習がてらU-net構造のモデルで、画像セグメンテーションをしてみた。
画像セグメンテーションと言っても、物体の位置を白に塗り、それ以外を黒にするという2値のみのものです。

今回の物体は、猫が好きなので、猫にしました。

環境

  • Windows10
  • GeForce GTX 1080 ti
  • Python
  • Keras
  • CUDA 9.0

Inputs

neko_01.pngneko_06.pngneko_17.pngneko_60.png

こんな感じの猫がいる画像(60(学習用)+20(評価用))を準備
サイズは、128*128にした。
ただし、入力時は、GrayScale化し、1Channelにして扱った。

Teachers

neko_01.pngneko_06.pngneko_17.pngneko_60.png

こんな感じに、猫がいるところ(猫の範囲)を白にした画像を準備
サイズは、Inputsに同じく128*128。
DVD見ながら自分でアノテーション。
画像処理でうまくエッジが出せなかったので、ペイントツールで、猫の外枠を明らかに違う色で描いてから、エッジ抽出処理して、内側を白に変更した。
2値化して、1Channelで扱う。

モデル

U-netの論文(*1)の通りにすると、Outputのサイズが、inputより小さくなるが、今回は、同じにしたい。
そこで、今回は、Convolutionするときに、paddingをして、サイズを落とさないようにする実装にしてみた。
loss関数は、Dice Coefficient

こんな感じ

Unet_Model.png

学習

バッチサイズ : 5
エポック : 100
で学習実行

学習曲線は、こんな感じ
LearningCurve_1.png

んん、なんか微妙?

結果

学習に使ったデータ

neko_01.pngneko_06.pngneko_17.pngneko_60.png
neko_01.pngneko_06.pngneko_17.pngneko_60.png
neko_01.pngneko_06.pngneko_17.pngneko_60.png

それぞれの列で、上から順に、入力/出力/理想(教師)

出力が真っ白に。。。

検証用データ(学習に使用しなかったデータ)

neko_67.pngneko_72.pngneko_76.pngneko_79.png
neko_67.pngneko_72.pngneko_76.pngneko_79.png
neko_67.pngneko_72.pngneko_76.pngneko_79.png

それぞれの列で、上から順に、入力/出力/理想

やはり、出力が真っ白。。。学習がうまく行ってないのだろうか...
学習曲線も、下がって行っているように見えないし。

まとめ

KerasでU-net構造のモデルを書くことはできたが、
結果を見る限り学習がうまく言ってなさそう。
改良を行い、学習がうまくいくようにしたい。

と、実は、既に、改良を行ってみたので、その結果も書いていこうと思いましたが、
記事が長くなったので、
U-net構造で、画像セグメンテーションしてみた。(2)に続く。

注釈

*1 : 参照 https://lmb.informatik.uni-freiburg.de/people/ronneber/u-net/

16
17
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
16
17

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?