딥러닝/image reconstruction

U-Net 완전 정리

uchanee 2026. 3. 12. 01:41

왜 이렇게 많이 쓰이고, 구조는 어떻게 생겼으며, 무엇이 강점일까?

딥러닝 기반 의료영상 논문이나 segmentation 논문을 보다 보면 정말 자주 보이는 모델이 있다. 바로 U-Net이다.
처음에는 이름도 단순하고 구조도 그리 복잡해 보이지 않아서 “그냥 CNN 하나 아닌가?” 싶었는데, 조금만 들여다보면 왜 이 구조가 의료영상 분야에서 오래 사용되었는지 금방 이해할 수 있다.

U-Net은 단순히 성능이 좋아서 유명한 모델이 아니다.
의료영상처럼 데이터가 많지 않고, 정확한 위치 정보가 중요하며, 출력도 픽셀 단위로 정교해야 하는 문제에 매우 잘 맞는 구조이기 때문에 널리 쓰이게 되었다.

이번 글에서는 U-Net이 왜 등장했는지부터 시작해서, 구조적 특징, 동작 원리, 장점과 한계, 그리고 MRI reconstruction 같은 문제와는 어떻게 연결되는지까지 차근차근 정리해 보려고 한다.


1. U-Net은 왜 등장했을까?

U-Net을 이해하려면 먼저 semantic segmentation 문제를 떠올려야 한다.

일반적인 이미지 분류(classification)는 이미지 한 장 전체를 보고 “이건 고양이인지, 강아지인지”처럼 하나의 라벨을 예측하는 문제다.
반면 segmentation은 완전히 다르다. 이미지 안의 각 픽셀마다 어떤 클래스인지를 예측해야 한다.

예를 들어 의료영상에서는 다음과 같은 문제가 많다.

  • 이 CT에서 종양은 어디인가
  • 이 현미경 이미지에서 세포 경계는 어디인가
  • 이 MRI에서 특정 장기 영역은 어디인가

즉, 출력은 이미지 한 장이 아니라 입력과 같은 해상도의 픽셀 단위 지도(mask)가 되어야 한다.

여기서 어려운 점이 생긴다.

  • 무엇이 있는지도 알아야 하고
  • 어디에 있는지도 알아야 한다

CNN은 점점 아래로 갈수록 더 추상적인 특징을 잘 뽑지만, pooling을 반복하면 공간 해상도가 줄어든다.
즉, “이게 뭔지”는 잘 알게 되지만, “정확히 어디 있는지” 정보는 점점 흐려질 수 있다.

U-Net은 바로 이 문제를 해결하기 위해 등장한 구조다.


2. U-Net이라는 이름은 왜 붙었을까?

이 모델 이름이 U-Net인 이유는 구조를 그려 보면 알 수 있다.
전체 네트워크 모양이 영어 알파벳 U자 형태를 닮았기 때문이다.

왼쪽에서는 해상도를 줄이면서 특징을 추출하고,
오른쪽에서는 다시 해상도를 키우면서 출력을 복원한다.

즉, 아주 단순하게 말하면 U-Net은 다음 구조다.

  • 왼쪽: downsampling path, encoder, contracting path
  • 오른쪽: upsampling path, decoder, expansive path

그리고 이 둘 사이를 연결하는 것이 U-Net의 핵심인 skip connection이다.


3. U-Net의 전체 구조 한눈에 보기

U-Net은 크게 세 부분으로 나눌 수 있다.

1) Contracting path(Encoder)

입력 이미지를 점점 작은 해상도로 줄이면서 더 고수준의 특징을 추출하는 부분이다.

보통 각 단계는 다음 순서로 이루어진다.

  • 3×3 convolution
  • 활성화 함수(ReLU 등)
  • 다시 3×3 convolution
  • 활성화 함수
  • 2×2 max pooling

이 과정을 반복할수록 feature map의 공간 크기는 줄어들고, 채널 수는 늘어난다.

즉,

  • 해상도는 줄어들고
  • 특징 표현력은 커진다

이 단계의 목적은 이미지의 세부 픽셀보다도,
“무슨 구조가 존재하는가”를 더 추상적으로 이해하는 것이다.


2) Bottleneck

U-Net의 가장 아래쪽, 즉 U자의 바닥 부분이다.
여기서는 가장 작은 공간 해상도에서 가장 많은 채널 수를 가진 feature map을 다룬다.

이 부분은 네트워크가 입력 이미지를 가장 압축된 표현으로 이해한 상태라고 볼 수 있다.
즉, 전체 문맥(context)을 가장 많이 담고 있는 지점이다.


3) Expansive path(Decoder)

이제 반대로 해상도를 다시 키우면서 segmentation mask를 복원하는 단계다.

여기서는 보통 다음을 반복한다.

  • up-convolution 또는 transposed convolution
  • feature map 크기 증가
  • encoder에서 넘어온 feature와 concat
  • 3×3 convolution
  • 활성화 함수

즉, 압축된 고수준 특징을 바탕으로 다시 공간 해상도를 회복하면서,
최종적으로 원래 입력 크기와 비슷한 segmentation 출력을 만든다.


4. U-Net의 진짜 핵심: Skip Connection

U-Net을 그냥 encoder-decoder라고만 이해하면 절반만 이해한 것이다.
이 모델의 핵심은 skip connection에 있다.

왜 skip connection이 필요한가?

encoder를 거치면서 pooling을 여러 번 하면, 고수준 특징은 잘 얻지만 정밀한 위치 정보가 많이 사라진다.
그런데 segmentation에서는 “대충 이 근처에 종양이 있음”이 아니라, 정확히 어느 픽셀이 종양인지 알아야 한다.

그래서 U-Net은 encoder의 각 단계에서 나온 feature map을 decoder의 대응 단계로 직접 전달한다.
이렇게 하면 decoder는

  • 아래쪽에서 올라온 추상적 의미 정보와
  • 위쪽에서 온 정밀한 위치 정보를

동시에 활용할 수 있다.

즉, skip connection은
무엇인지에 대한 정보와 어디인지에 대한 정보를 다시 결합하는 장치라고 이해하면 된다.


5. U-Net 구조를 조금 더 직관적으로 이해해 보기

개인적으로 U-Net은 이렇게 이해하면 가장 쉬울 것 같다.

왼쪽 경로

“이 이미지에 어떤 구조가 있는지 점점 추상적으로 이해하는 과정”

오른쪽 경로

“그 구조가 정확히 어디에 있는지를 다시 복원하는 과정”

skip connection

“위치 정보를 잃지 않게 중간중간 힌트를 주는 장치”

즉, U-Net은 단순히 이미지를 압축했다가 다시 키우는 것이 아니라,
문맥(context)과 위치(localization)를 동시에 잡기 위해 설계된 구조라고 볼 수 있다.


6. 원래 U-Net 논문에서 중요했던 포인트

U-Net이 처음 제안된 배경은 biomedical image segmentation이었다.
이 분야는 일반 이미지 분야와 비교했을 때 다음과 같은 특징이 있다.

  • 데이터 수가 적다
  • 정답 마스크를 만드는 비용이 크다
  • 정확한 경계 정보가 매우 중요하다
  • 작은 객체나 얇은 구조를 잘 잡아야 한다

원저자들은 이런 환경에서 다음을 중요하게 봤다.

1) 적은 데이터로도 학습 가능해야 한다

의료영상에서는 대규모 라벨 데이터셋을 만들기 어렵다.
그래서 data augmentation이 특히 중요했고, U-Net 논문에서도 augmentation이 크게 강조된다.

2) end-to-end로 픽셀 단위 예측이 가능해야 한다

patch classification처럼 픽셀마다 따로 예측하는 방식은 비효율적일 수 있다.
U-Net은 전체 이미지를 넣고 segmentation map 전체를 한 번에 출력하는 구조로 효율성을 높였다.

3) 정밀한 localization이 가능해야 한다

skip connection 덕분에 얇은 세포 경계나 작은 구조도 더 잘 복원할 수 있었다.


7. U-Net의 장점은 무엇일까?

U-Net이 오래 살아남은 이유는 구조가 예쁘기 때문이 아니라, 실제로 여러 장점이 분명하기 때문이다.

1) 구조가 직관적이다

encoder-decoder + skip connection이라는 구성은 이해하기 쉽고, 구현도 비교적 단순하다.

2) localization에 강하다

skip connection 덕분에 위치 정보를 잘 살릴 수 있어서 segmentation 문제에 특히 강하다.

3) 데이터가 많지 않아도 잘 작동하는 편이다

의료영상처럼 데이터가 부족한 환경에서도 비교적 강한 성능을 보였다.

4) 변형이 쉽다

기본 U-Net 구조 위에 attention, residual block, dense block, transformer block 등을 붙여 다양한 변형이 가능하다.

5) segmentation 외에도 넓게 쓰인다

원래는 segmentation용이지만, denoising, super-resolution, restoration, reconstruction 등 image-to-image 문제 전반에 활용된다.


8. U-Net의 한계는 무엇일까?

유명하다고 해서 만능은 아니다. U-Net에도 분명한 한계가 있다.

1) 전역 문맥(global context) 이해에 한계가 있을 수 있다

기본 U-Net은 convolution 중심 구조이기 때문에, 아주 넓은 범위의 전역 상호작용을 잡는 데에는 한계가 있을 수 있다.
물론 receptive field는 깊어질수록 커지지만, transformer류와 비교하면 전역 관계 modeling은 약할 수 있다.

2) 작은 데이터에서 overfitting 위험이 있다

의료영상은 데이터가 적은 경우가 많기 때문에 augmentation과 regularization이 중요하다.

3) 고해상도 입력에서는 메모리 부담이 크다

skip connection으로 중간 feature를 많이 저장해야 하므로, 해상도가 커질수록 GPU 메모리 부담이 커진다.

4) 문제 구조를 직접 반영하지는 않는다

이건 MRI reconstruction과 연결되는 중요한 지점인데, U-Net은 기본적으로 image-to-image mapping 구조다.
즉, 입력 이미지에서 출력 이미지로 바로 매핑하는 데는 강하지만, MRI처럼 측정 물리와 inverse problem 구조가 있는 문제에서는 그것만으로 충분하지 않을 수 있다.


9. U-Net은 segmentation에서만 쓰일까?

처음에는 나도 U-Net이 segmentation 전용 모델인 줄 알았다.
그런데 실제로는 훨씬 더 넓게 쓰인다.

대표적으로 다음과 같은 문제들에 자주 활용된다.

  • 의료영상 segmentation
  • image denoising
  • image restoration
  • super-resolution
  • inpainting
  • MRI reconstruction
  • CT reconstruction 보정
  • low-dose imaging enhancement

즉, U-Net은 사실상
“입력 이미지 하나를 받아 출력 이미지 하나를 만드는 image-to-image 모델의 대표 구조”
라고 봐도 무방하다.


10. MRI reconstruction에서는 U-Net을 어떻게 쓸까?

이 부분이 중요하다.
MRI reconstruction에서 U-Net은 보통 가장 단순한 baseline으로 사용된다.

흐름은 대략 이렇다.

  1. undersampled k-space를 준비한다
  2. IFFT를 해서 zero-filled reconstruction을 만든다
  3. 이 zero-filled image에는 aliasing과 artifact가 존재한다
  4. U-Net이 이를 입력받아 더 깨끗한 reconstruction image를 출력한다

즉, MRI reconstruction에서 U-Net은
image-domain post-processing network처럼 동작한다.

이 방식의 장점은 분명하다.

  • 구현이 쉽다
  • 빠르게 baseline을 만들 수 있다
  • 시각적으로 결과를 확인하기 좋다

하지만 한계도 명확하다.

  • 실제 측정된 k-space와의 일치성을 강하게 보장하지 못할 수 있다
  • physics-based inverse problem 구조를 직접 반영하지 못한다
  • hallucination 위험이 있다

그래서 MRI reconstruction에서는 보통
U-Net은 baseline,
그리고 더 진지한 방법으로는 VarNet, MoDL 같은 unrolled network가 등장하게 된다.


11. U-Net과 ResNet은 어떻게 다를까?

헷갈리기 쉬운 지점이라 짧게 정리해 두면 좋다.

ResNet

  • 주로 classification backbone으로 유명
  • residual connection을 사용해 깊은 네트워크 학습을 안정화
  • 전형적인 encoder 성격이 강함

U-Net

  • encoder-decoder 구조
  • skip connection으로 위치 정보 보존
  • segmentation/image-to-image에 특화

즉, ResNet은 “특징 추출 backbone” 느낌이고,
U-Net은 “입출력 해상도를 모두 고려하는 복원/분할 구조” 느낌이 더 강하다.


12. U-Net의 주요 변형들

U-Net이 워낙 유명하다 보니 파생 구조도 많다. 이름까지 다 외울 필요는 없지만, 어떤 방향으로 발전했는지는 알아두면 좋다.

1) 3D U-Net

입력이 2D 이미지가 아니라 3D volume일 때 사용한다.
MRI나 CT volumetric segmentation에 자주 쓰인다.

2) Attention U-Net

중요한 영역에 더 집중할 수 있도록 attention mechanism을 붙인 구조다.

3) Residual U-Net

기본 convolution block 대신 residual block을 사용해 더 깊고 안정적인 학습을 노린다.

4) UNet++

skip connection 구조를 더 촘촘하게 설계한 변형이다.

즉, 기본 U-Net은 하나의 출발점이고,
실제로는 문제에 맞게 수많은 확장 버전이 존재한다.


 


13.한줄 요약

짧게 설명해야 한다면 아래처럼 말하면 된다.

“U-Net은 encoder-decoder 구조와 skip connection을 결합한 대표적인 image-to-image 네트워크로, 고수준 문맥 정보와 저수준 위치 정보를 함께 활용할 수 있기 때문에 의료영상 segmentation에서 매우 널리 쓰입니다. MRI reconstruction에서는 zero-filled image를 입력받아 artifact를 줄이는 baseline으로 자주 사용되지만, 측정 물리와 data consistency를 직접 반영하지 않는 한계가 있어 이후에는 unrolled network 같은 방법으로 확장되는 경우가 많습니다.”

이 정도면 상당히 괜찮은 설명이다.

 


16. 마무리 정리

U-Net은 의료영상 분야에서 가장 대표적인 딥러닝 구조 중 하나다.
encoder-decoder 구조를 바탕으로 하면서, skip connection을 통해 localization과 context를 동시에 잡으려는 점이 핵심이다.

이 구조 덕분에 U-Net은 segmentation에서 큰 성공을 거두었고, 이후에는 denoising, restoration, super-resolution, MRI reconstruction 같은 image-to-image 문제 전반으로 확장되었다.

다만 MRI reconstruction처럼 측정 물리와 inverse problem 구조가 중요한 문제에서는 U-Net만으로는 부족할 수 있다. 그래서 실제 연구에서는 U-Net을 baseline으로 사용하고, 그다음 단계로는 data consistency를 포함한 unrolled network나 self-supervised reconstruction 계열로 넘어가는 경우가 많다.

결국 U-Net은
딥러닝 의료영상의 출발점이자, 지금도 여전히 중요한 기준점 역할을 하는 모델이라고 정리할 수 있다.


참고자료

  • U-Net: Convolutional Networks for Biomedical Image Segmentation
  • 3D U-Net: Learning Dense Volumetric Segmentation from Sparse Annotation
  • U-Net++: A Nested U-Net Architecture for Medical Image Segmentation
  • MoDL: Model-Based Deep Learning Architecture for Inverse Problems
  • fastMRI: A Publicly Available Raw k-Space and DICOM Dataset of Knee Images for Accelerated MR Image Reconstruction Using Machine Learning