SegFormer 구조 분석 – 트랜스포머 기반

구조분석 사진

이미지 분할 모델을 실무에 적용하려 할 때 가장 고민되는 부분은 ‘정확도와 속도’라는 두 마리 토끼를 어떻게 잡을 수 있는가였습니다. 기존 CNN 기반 모델은 경량화는 가능하지만 정밀한 경계 추출이 어려웠고, 반대로 트랜스포머 기반 모델은 정확하지만 너무 무거웠습니다. 그 사이에서 SegFormer는 성능과 효율을 모두 만족시키는 모델로 등장하였고, 특히 그 구조적인 설계가 매우 인상 깊었습니다. 본 글에서는 SegFormer의 내부 구조를 중심으로 트랜스포머 기반이 어떻게 이미지 분할 문제에 적절히 적용되었는지를 상세히 분석하겠습니다.

SegFormer의 전체 구조 개요

SegFormer는 크게 두 부분으로 구성되어 있습니다. 첫째는 트랜스포머 기반의 인코더(Encoder)이며, 둘째는 매우 단순화된 디코더(Decoder)입니다. 전체 구조는 입력 이미지를 Hierarchical하게 처리하는 MiT(Mix Vision Transformer) 백본 인코더를 통해 특징을 추출한 뒤, MLP 기반의 디코더로 이를 복원하여 시맨틱 분할 결과를 출력하는 방식입니다.

전통적인 분할 모델에서는 인코더-디코더 구조가 CNN을 기반으로 하고 있으며, 풀링(pooling)과 업샘플링(upsampling) 단계를 반복합니다. 그러나 SegFormer는 이 접근에서 벗어나, 인코더에는 트랜스포머 기반 계층형 아키텍처를 적용하였고, 디코더는 복잡한 업샘플링이나 스킵 연결 없이 다층 퍼셉트론(MLP)만을 사용합니다. 이러한 구조 덕분에 파라미터 수는 줄이면서도 성능은 기존 모델과 동등하거나 그 이상을 유지할 수 있게 되었습니다.

SegFormer는 B0부터 B5까지 다양한 크기의 백본을 제공하며, 각각은 연산량과 정확도 측면에서 선택의 폭을 넓혀줍니다. 예를 들어 B0는 모바일 환경에서도 동작할 정도로 경량화되어 있고, B5는 높은 정확도가 필요한 분야에 적합합니다. 이와 같은 계층적 설계는 실제 산업 응용에서 매우 유용하게 작용합니다.

MiT 백본: Hierarchical Transformer Encoder

SegFormer의 인코더 역할을 하는 MiT(Mix Vision Transformer)는 기존 트랜스포머 구조와는 다소 차이가 있습니다. 일반적인 ViT(Vision Transformer)는 전체 이미지를 동일한 크기의 패치로 나누고, 이를 평탄화(flatten)하여 1차원 시퀀스로 처리합니다. 그러나 이 방식은 국소적인 정보를 놓칠 수 있고, 고해상도 이미지에서는 연산량이 급격히 증가합니다.

MiT는 이러한 문제를 해결하기 위해 CNN의 장점인 지역성(locality)을 일부 도입하였습니다. 입력 이미지를 계층적으로 나누고, 각 단계에서 서로 다른 해상도와 채널 수를 가진 특징맵을 생성합니다. 초기 단계에서는 더 세밀한 정보를, 후반 단계로 갈수록 더 추상적인 정보를 처리할 수 있게 하여, 전체적인 문맥과 국소 정보의 균형을 맞추는 구조입니다.

또한, MiT는 기존 트랜스포머의 self-attention 메커니즘을 공간 감쇠(spatial reduction) 방식으로 최적화하였습니다. 기존 self-attention은 연산량이 입력 크기의 제곱에 비례하는 반면, MiT는 연산 복잡도를 줄이기 위해 key와 value의 해상도를 줄여서 attention 연산을 수행합니다. 이를 통해 성능 저하 없이 속도를 크게 향상시킬 수 있게 되었습니다.

각 레이어에서는 patch embedding을 통해 입력 특징을 정리하고, 이어지는 트랜스포머 블록에서 self-attention과 feed-forward 네트워크가 적용됩니다. 이러한 블록은 각 계층마다 반복되며, 최종적으로 네 개의 단계에서 각각 다른 크기의 특징맵을 출력합니다. 이 출력들은 모두 디코더로 전달되어 최종 분할 결과 생성에 사용됩니다.

MLP 기반 디코더: 단순함 속의 효율

SegFormer의 또 다른 큰 특징은 디코더의 단순함입니다. 기존 분할 모델에서는 디코더에서 복잡한 업샘플링 구조, skip connection, convolutional fusion이 사용되는 경우가 많습니다. 예를 들어 U-Net은 인코더의 중간 출력들을 skip connection으로 디코더에 연결하고, 이를 convolution으로 통합하여 고해상도 정보를 복원합니다.

그러나 SegFormer는 이러한 복잡한 설계를 모두 생략하고, MLP(Multi-Layer Perceptron)만으로 구성된 디코더를 사용합니다. 인코더에서 출력된 네 개의 특징맵은 크기가 다르기 때문에, 먼저 이들을 동일한 해상도로 보간하여 맞추고, 각 특징맵에 독립적인 MLP를 적용하여 정보를 정제합니다. 이후 이들을 단순히 합쳐 최종 분할 맵을 생성합니다.

MLP 기반 디코더는 매우 간단한 구조임에도 불구하고, 인코더가 충분히 풍부한 정보를 전달하기 때문에 복잡한 연산이 필요하지 않습니다. 이 접근은 연산량과 메모리 사용량을 크게 줄이는 동시에, 높은 추론 속도를 유지할 수 있게 해줍니다. 또한 디코더 구조가 간단하므로, 배포 환경에서 최적화가 용이하고, 다양한 플랫폼에 적용하는 데도 유리합니다.

결과적으로 SegFormer는 복잡한 후처리 없이도 고해상도 분할 결과를 빠르게 생성할 수 있으며, 다양한 응용 분야에서 유연하게 활용될 수 있습니다. 특히 실시간 처리나 경량 모델이 요구되는 환경에서 매우 효과적입니다.

결론 – 구조적 설계가 만든 성능과 속도의 균형

SegFormer는 트랜스포머 기반의 이미지 분할 모델 중에서도 구조적 간결함과 연산 효율성을 동시에 달성한 대표적인 사례입니다. 계층형 인코더인 MiT 백본을 통해 전역 문맥과 지역 정보를 모두 활용하며, 단순한 MLP 디코더를 통해 빠른 추론과 효율적인 배포를 가능하게 합니다.

제가 직접 적용해 본 프로젝트에서도, 복잡한 모델을 사용했을 때보다 SegFormer가 훨씬 빠르게 추론을 수행하였고, 그럼에도 불구하고 정확도는 비슷하거나 더 뛰어났던 경우가 많았습니다. 특히 다양한 해상도의 데이터에 대응하기 쉬운 구조라서, 입력 사이즈에 민감하지 않고 안정적인 결과를 보여주었습니다.

이미지 분할 분야에서 정확도만큼이나 속도와 효율성이 중요한 환경이라면, SegFormer는 매우 합리적인 선택이 될 수 있습니다. 향후 분할 모델을 선택하거나 구조를 참고할 때, SegFormer의 구조적 설계는 충분히 좋은 기준점이 될 것입니다.

댓글

이 블로그의 인기 게시물

모델 평가 지표 정리 – 정확도, 정밀도, F1 Score까지

선형회귀와 로지스틱 회귀 – 가장 기초적인 예측 모델들

지도학습 vs 비지도학습 – 머신러닝의 대표 학습 방식 비교