技術ブログ

Developers's blog

画像セグメンテーションのためのU-net概要紹介

2019.11.11 田村 和樹
ニューラルネットワーク 機械学習 画像認識
画像セグメンテーションのためのU-net概要紹介

U-netとは

U-netはFCN(fully convolution network)の1つであり、画像のセグメンテーション(物体がどこにあるか)を推定するためのネットワークです。

生物医科学(biomedical)の画像のセグメンテーションを行うために2015年に発表されました。

(論文URL : https://arxiv.org/abs/1505.04597)

この記事では、まずU-netの中で行われている処理についてを1〜4章でまとめ、それらの組み合わせであるU-netをまとめたいと思います。

目次

1.Semantic segmentation

2.fully convolution network(FCN)

3.deconvolution

4..skip-conection

5.U-netの仕組み

1.Semantic segmentation

画像のピクセルそれぞれをクラス分類するタスクです。

(MNISTなど)画像のクラス分類と異なるのは、画像全体をクラス分類しない点です。

ピクセルごとのクラス分類ができると、以下のような出力を得られます。

Alt text

by https://devblogs.nvidia.com/image-segmentation-using-digits-5/

2.fully convolution networt(FCN)

一般的なCNNでは畳み込み層と全結合層がありますが、FCNはこの全結合層を畳み込み層に置き換えたものです。

全結合層を畳み込み層に置き換えることで、「物体がなにであるか」という出力から「物体がどこにあるか」という出力になります。

Alt text

by https://arxiv.org/abs/1411.4038

画像上部分が画像全体のクラス分類で、画像下部分はヒートマップで猫がどのあたりにいるかネットワークが把握していることがわかります。

3.deconvolusion

1つ上の画像のヒートマップは入力画像に畳み込み処理を何度も行い、とても小さくなっています。

これに1番上のような出力が得られるような処理を行なっていきます。

このような処理を「up sampling」といい「deconvolution」が有名です。

日本語だと「逆畳み込み」といい、畳み込み処理の逆処理だと思ってください。

CNNで畳み込み層のフィルターの要素を学習していくように、逆畳み込み層のフィルターも同じように学習できます。

4.skip-conection

畳み込み処理を加えていくと、ネットワークが「物体が何であるか」についての特徴を抽出していきますが、poolingの影響で「物体がどこにあるか」についての特徴は失われていきます。

畳み込み処理を行なった後で、逆畳み込みを行なっても物体の位置情報は満足に復元できない場合があります。

それを解決するのがskip-conectionです。

これは畳み込みを行なった後、特徴マップを保持しておいて、後で逆畳み込みをする画像に足し合わせる処理です。

上で提示した車の画像に用いると以下のようになります。

Alt text

by : https://devblogs.nvidia.com/image-segmentation-using-digits-5/

推定する領域(色のついた部分)がシャープになっていることがわかります。

5.U-netの仕組み

U-netには上でまとめた

・fully convolution network(FCN)

・deconvolution

・skip-conection

が使われています。

構造は以下のようになっています。

Alt text

by : https://arxiv.org/abs/1505.04597

左右対象でアルファベットの「U」に似ていることから、「U-net」と呼ばれているそうです。

大雑把に左側の処理では画像の畳み込みを行い、右側では逆畳み込みをskip-conection(中央矢印)からの情報を参考に行なっているイメージです。

まとめ

U-netの内部で行われる処理について、ざっくりと説明しました。

まとめると・・・

・画像全体のクラス分類(MNISTなど)からFCNとdeconvolutionを使い、物体の位置情報を出力できるようになった

・skip-conectionを用いて畳み込みによって失われる位置情報を保持しておくと、より精密な領域を出力できる

・U-netは上記2つを上手く組み合わせている

こちらの記事ではPythonで実装を行い、学習している様子を紹介しています。


定期的にメルマガでも情報配信をしています。
ご希望の方は問い合わせページに「メルマガ登録希望」とご連絡ください。


Twitter・Facebookで定期的に情報発信しています!

関連記事

【物体検出】SSD(Single Shot MultiBox Detector)の解説

概要 先日の勉強会にてインターン生の1人が物体検出について発表してくれました。これまで物体検出は学習済みのモデルを使うことが多く、仕組みを知る機会がなかったのでとても良い機会になりました。今回の記事では発表してくれた内容をシェアしていきたいと思います。 あくまで物体検出の入門ということで理論の深堀りや実装までは扱いませんが悪しからず。 物体検出とは ディープラーニングによる画像タスクといえば画像の分類タスクがよく挙げられます。例としては以下の犬の画像から犬

記事詳細
【物体検出】SSD(Single Shot MultiBox Detector)の解説
ニューラルネットワーク 物体検知
【論文】

概要 小説を丸ごと理解できるAIとしてReformerモデルが発表され話題になっています。今回はこのReforerモデルが発表された論文の解説を行います。 自然言語や音楽、動画などのSequentialデータを理解するには広範囲における文脈の依存関係を理解する必要があり困難なタスクです。"Attention is all you need"の論文で紹介されたTransformerモデルは広くこれらの分野で用いられ、優秀な結果を出しています。 例えば機械翻訳

記事詳細
【論文】"Reformer: The Efficient Transformer"の解説
ニューラルネットワーク 論文解説
【論文】

機械学習では、訓練データとテストデータの違いによって、一部のテストデータに対する精度が上がらないことがあります。 例えば、水辺の鳥と野原の鳥を分類するCUB(Caltech-UCSD Birds-200-2011)データセットに対する画像認識の問題が挙げられます。意図的にではありますが訓練データを、 水辺の鳥が写っている画像は背景が水辺のものが90%、野原のものが10% 野原の鳥が写っている画像は背景が水辺のものが10%、野原のものが90% となるように

記事詳細
【論文】"Distributionally Robust Neural Networks"の解説
ニューラルネットワーク 機械学習 論文解説
強力な物体検出M2Detで動画の判別する(google colaboratory)

はじめに この記事では物体検出に興味がある初学者向けに、最新技術をデモンストレーションを通して体感的に知ってもらうことを目的としています。今回紹介するのはAAAI19というカンファレンスにて精度と速度を高水準で叩き出した「M2Det」です。one-stage手法の中では最強モデル候補の一つとなっており、以下の図を見ても分かるようにYOLO,SSD,Refine-Net等と比較しても同程度の速度を保ちつつ、精度が上がっていることがわかります。 ※https:

記事詳細
強力な物体検出M2Detで動画の判別する(google colaboratory)
ニューラルネットワーク 機械学習 画像認識

お問い合わせはこちらから