最終更新日:
U-Netとは
こんにちは。スキルアップAIの岩永です。私は現在、ディープラーニングを用いた異常検知の研究をしています。
前回の記事でセグメンテーションについて、概括的に解説しました。本記事では、セグメンテーションの分野で大きなブレークスルーを起こし、現在も広く活用されているU-Net[1]について解説していきます。
1.U-Netの概要
U-Netは、Olafらによって生物医学のために開発された、セマンティックセグメンテーション用のモデルです。
図1にU-Netの構造を示します。図1を見るとわかるようにアルファベットの「U」のような形をしていることから、U-Netと名付けられました。このU-Netはエンコーダとデコーダから成るモデルです。
図1. U-Netの構造
(参考文献[1]より引用)
1-1.エンコーダ
U-Netのエンコーダは、入力された画像を何度か畳み込み、その画像の特徴を抽出します。エンコーダには、ResNetなどの画像分類で優れた成果を収めているモデルの構造をほぼそのまま活用できます。
この時、基本とするネットワーク構造のことを「backbone」と呼びます。これは、U-Netに限ったことではなく、物体検出やセグメンテーションにおいては一般的な考え方です。
学習用のデータが少ない場合は、画像分類用のデータセットなどで訓練されたbackboneを利用することで、U-Netとしての精度を上げることができます。
1-2.デコーダ
U-Netのデコーダは、エンコーダによって抽出された特徴を受け取り、逆畳み込み(deconvolution)と呼ばれる通常の畳み込みと逆の処理を行い、入力画像と同じサイズの確率マップを出力します。
逆畳み込みによって、特徴マップを大きくすることをアップサンプリングといいます。アップサンプリングは、小さな特徴マップを大きな特徴マップにする処理ですが、単純にアップサンプリングしてしまうと、物体の位置情報をうまく捉えることができません。
そこで、U-Netでは、各階層において、エンコーダの特徴マップをデコーダの特徴マップに連結させることにしました。図1のグレーの矢印がこの連結を意味します。
これによって、エンコーダ側の大きな特徴マップの情報がデコーダ側に伝わるようになり、アップサンプリッグ時に物体の位置情報を捉えやすくなりました。
2.U-Net の特徴
U-Net の最大の特徴は、先述したとおり、エンコーダの特徴マップをデコーダの特徴マップに連結させることです。エンコーダで生成された特徴マップを複製し(Copy)、切り出し(Crop)、そしてデコーダの特徴マップに連結(Concatenate)します。
このような特徴マップの接続は、一般的に「スキップ接続」と呼ばれます。U-Net におけるスキップ接続の目的は、エンコーダ側の大きな特徴マップの情報をデコーダ側に伝えることです。これにより、ピクセル単位での分類精度を高めることができます。
3.U-Netの応用手法
U-Netが発表されて以降、様々な派生手法が提案されています。ここでは、それらの一部を紹介します。
3-1. U-Net++ [2]
U-Net++は、エンコーダとデコーダの繋がりを密(dense)にしたU-Netです。
図2にU-Net++の構造を示します。図2の緑色部分はデコーダです。このように、エンコーダとデコーダの繋がりを密にすることによって、エンコーダ側が持っている特徴マップ情報をデコーダ側にうまく伝えられるようになります。
U-Net++は、1つのU-Netの中に小さなU-Netが入っているような構造から、Nested U-Netとも呼ばれます。
図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によく似た構造ですが、畳み込みおよび逆畳み込みの一部が再帰構造になっています。
畳み込みを再帰構造にすることで、パラメータを増やすことなく、何度も畳み込みを実行できることになります。
図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次元画像に対応しています。
図4. 3D U-Netの構造
(参考文献[4]より引用)
4.もっと詳しく学びたい方へ
本記事では、セグメンテーションの分野で広く活用されているU-Netをご紹介しました。スキルアップAIの現場で使えるディープラーニング基礎講座では、さまざまな深層学習手法について、理論的側面やNumPyを用いた実装などを学ぶことができます。ぜひ受講をご検討ください。
スキルアップAIでは、毎週水曜日に実践的AI勉強会「スキルアップAIキャンプ」を開催しています。勉強会では、様々な実践的テーマを取り上げ、データ分析・AI開発の実務力アップにつながるヒントをご提供します。講師が参加者の皆さんからの質問や悩みに答えるコーナーもあります。
興味がある方はぜひ参加してみてください!
5.参考文献
[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).
[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)
[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).
【監修】スキルアップAI 取締役CTO 小縣信也
AI指導実績は国内トップクラス。「太陽光発電発電量予測および異常検知」など、多数のAI開発案件を手掛けている。日本ディープラーニング協会主催2018E資格試験 優秀賞受賞、2019#1E資格試験優秀賞受賞。著書「徹底攻略ディープラーニングE資格エンジニア問題集」(インプレス)。
配信を希望される方はこちら
また、SNSでも様々なコンテンツをお届けしています。興味を持った方は是非チェックしてください♪
公開日: