U-Netとは　セグメンテーションシリーズ②

こんにちは。スキルアップAI編集部です。

<目次>
1.はじめに
2.U-Netの概要
3.U-Netの応用手法
4.もっと詳しく学びたい方へ
5.参考文献

# 1. はじめに
[前回の記事](https://www.skillupai.com/blog/segmentation1/)でセグメンテーションについて、概括的に解説しました。
本記事では、セグメンテーションの分野で大きなブレークスルーを起こし、現在も広く活用されているU-Net[1]について解説していきます。

# 2. U-Netの概要
U-Netは、Olafらによって生物医学のために開発された、セマンティックセグメンテーション用のモデルです。
図1にU-Netの構造を示します。図1を見るとわかるようにアルファベットの「U」のような形をしていることから、U-Netと名付けられました。このU-Netはエンコーダとデコーダから成るモデルです。
<img width="600" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/b56e47d8-cf44-5cbd-3dac-d22cd96a7ad2.png">
図1. U-Netの構造
(参考文献[1]より引用)

**2-1.エンコーダ**
U-Netのエンコーダは、入力された画像を何度か畳み込み、その画像の特徴を抽出します。エンコーダには、ResNetなどの画像分類で優れた成果を収めているモデルの構造をほぼそのまま活用できます。
この時、基本とするネットワーク構造のことを「backbone」と呼びます。これは、U-Netに限ったことではなく、物体検出やセグメンテーションにおいては一般的な考え方です。
学習用のデータが少ない場合は、画像分類用のデータセットなどで訓練されたbackboneを利用することで、U-Netとしての精度を上げることができます。

**2-2.デコーダ**
U-Netのデコーダは、エンコーダによって抽出された特徴を受け取り、逆畳み込み(deconvolution)と呼ばれる通常の畳み込みと逆の処理を行い、入力画像と同じサイズの確率マップを出力します。

逆畳み込みによって、特徴マップを大きくすることをアップサンプリングといいます。アップサンプリングは、小さな特徴マップを大きな特徴マップにする処理ですが、単純にアップサンプリングしてしまうと、物体の位置情報をうまく捉えることができません。
そこで、U-Netでは、各階層において、エンコーダの特徴マップをデコーダの特徴マップに連結させることにしました。図1のグレーの矢印がこの連結を意味します。
これによって、エンコーダ側の大きな特徴マップの情報がデコーダ側に伝わるようになり、アップサンプリッグ時に物体の位置情報を捉えやすくなりました。

# 3. U-Netの応用手法
U-Netが発表されて以降、様々な派生手法が提案されています。ここでは、それらの一部を紹介します。

**3-1. U-Net++ [2]**
U-Net++は、エンコーダとデコーダの繋がりを密(dense)にしたU-Netです。
図2にU-Net++の構造を示します。図2の緑色部分はデコーダです。このように、エンコーダとデコーダの繋がりを密にすることによって、エンコーダ側が持っている特徴マップ情報をデコーダ側にうまく伝えられるようになります。
U-Net++は、１つのU-Netの中に小さなU-Netが入っているような構造から、Nested U-Netとも呼ばれます。
<img width="600" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/b185e8eb-04a2-d180-63a0-64dac66bed84.png">
図2. U-Net++の構造
(参考文献[2]より引用)

**3-2.R2U-Net [3]**
R2U-Net は、U-Netに、Residual構造と、時系列分析などでよく用いられる再帰構造を導入したモデルです。Residual構造は、ResNetの基本構造のことです。この2つの構造を採用していることが、名称の由来です(Recurrent Residual U-Net; R2U-Net)。
図3にR2U-Netの構造を示します。図3のループしている矢印は再帰構造を表しています。U-Netによく似た構造ですが、畳み込みおよび逆畳み込みの一部が再帰構造になっています。
畳み込みを再帰構造にすることで、パラメータを増やすことなく、何度も畳み込みを実行できることになります。
<img width="600" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/c669603b-7816-7f64-3ca9-7e2b41e14498.png">
図3. R2U-Netの構造
(参考文献[3]より引用)

**3-3.3D U-Net [4]**
3D U-Net は、U-Netを3次元に拡張したモデルです。MRI画像などの3次元画像を対象としたセグメンテーションを行えます。
図4に3D U-netの構造を示します。全体的な構造は、U-Netほぼそのままですが、3次元畳み込みを用いることにより、3次元画像に対応しています。
<img width="600" alt="" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/c571bb83-5e82-9f74-3352-61dd304b70a5.png">
図4. 3D U-Netの構造
(参考文献[4]より引用)

# 4. もっと詳しく学びたい方へ
本記事では、セグメンテーションの分野で広く活用されているU-Netをご紹介しました。スキルアップAIの[現場で使えるディープラーニング基礎講座](https://www.skillupai.com/deep-learning/)では、様々な深層学習手法について、理論的側面やNumPyを用いた実装などを学ぶことができます。ぜひ受講をご検討ください。

セグメンテーションシリーズ①「深層学習を用いたセグメンテーションの紹介」は[こちら](https://qiita.com/skillup_ai/items/04e4f752a38eda5292fc)

# 5. 参考文献
[1] [O. Ronneberger, P. Fischer, and T. Brox: U-net: Convolutional networks for biomedical image segmentation, in International Conference on Medical image computing and computer-assisted intervention, Springer, pp. 234–241 (2015).](https://arxiv.org/pdf/1505.04597.pdf)
[2] [Z. Zhou, M. M. R. Siddiquee, N. Tajbakhsh, and J. Liang: Unet++: A nested u-net architecture for medical image segmentation, in International Conference on Medical image computing and computer-assisted intervention, pp. 3–11 (2018).](https://arxiv.org/pdf/1807.10165.pdf)
[3] [M. Z. Alom, M. Hasan, C. Yakopcic, T. M. Taha, and V. K. Asari: Recurrent residual convolutional neural network based on u-net (r2unet) for medical image segmentation, in Computer Vision and Pattern Recognition, (2018)](https://arxiv.org/ftp/arxiv/papers/1802/1802.06955.pdf)
[4] [Ö. Çiçek, A. Abdulkadir, S. S. Lienkamp, T. Brox, and O. Ronneberger: 3d u-net: learning dense volumetric segmentation from sparse annotation, in International conference on medical image computing and computer-assisted intervention, Springer, pp. 424–432 (2016).](https://arxiv.org/pdf/1606.06650.pdf)
# 25卒向け！AIエンジニアになるための長期インターンプログラム参加者募集中！
25卒学生向けに、AIの基礎を学びながら就活も一括サポートする無料カリキュラムを提供しています。
修了するとE資格の受験資格も獲得できるプログラムとなっています！

<img width="700" alt="長期インターン" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/889700/bfce4c26-1ebe-c54d-bacb-e804048a7a08.png">

**特長①AIエンジニアやデータサイエンティストの基礎が身に付く**
AIジェネラリスト基礎講座や機械学習のためのPython入門講座など、市場価値向上のための基礎を習得。

**特長②AI・データ分析領域の優良求人を紹介**
非公開求人や選考直結型インターンをご紹介し、早期内定の獲得をサポート。

**特長③長期インターンプログラム専用の学生コミュニティ参加可**
学生同士で就活情報をシェアしたり、学習を進めるうえでアドバイスをしあったりできるコミュニティに参加可能。

＞＞[長期インターン詳細](https://bit.ly/3pXW5JM)

☆☆☆
スキルアップAIのメールマガジンでは会社のお知らせや講座に関するお得な情報を配信しています。
配信を希望される方は[こちら](https://share.hsforms.com/1_XlReV-4Te-zcxCl9lhffA2mtef)

また、SNSでも様々なコンテンツをお届けしています。興味を持った方は是非チェックしてください♪
Twitterは[こちら](https://twitter.com/SkillupAi)
Facebookは[こちら](https://www.facebook.com/skillupai)
LinkedInは[こちら](https://www.linkedin.com/company/skillup-ai)