[250512월717H] 컴퓨터 비전 이론 (5) Image Segmentation

윤승호·2025년 5월 12일

큰일이다. 이제 막 탐지 끝났는데 더 어려워진다.

학습시간 09:00~02:00(당일17H/누적717H)


◆ 학습내용

1. Image Segmentation

  • Object Detection은 "객체 단위"로 경계 상자를 찾아내고 분류함
    → 예: ‘사람’이 어디 있는가?
  • Segmentation은 "픽셀 단위"로 분류함
    → 예: 어떤 픽셀이 사람이고, 어떤 픽셀이 도로인가?
  • Segmentation을 통해 정확한 경계 정보 획득 가능
    세밀한 영역 분석에 필수
  • 대표 응용 분야:
    • 자율주행 (차선, 보행자 인식 등)
    • 의료 영상 분석 (종양 검출 등)
    • 위성 영상 (농지, 도로, 건물 분할 등)

Segmentation 종류:

종류객체 구분배경 구분예시
Semantic고양이, 사람, 배경
Instance고양이 A, B, 사람 A, B
Panoptic둘 다

대표 모델:

모델구조 특징출력 형식강점단점
FCNConv-only, Skip전체 픽셀간단, 빠름경계 흐림
U-NetU자형 대칭전체 픽셀정밀, 의료 특화일반용도 한계
Mask R-CNNDetection + Mask객체별 마스크정밀, 유연성복잡, 느림

2. Semantic Segmentation

  • 각 픽셀에 ‘무엇인지’ 태그를 부여
  • 개별 객체는 구분하지 않음
  • Patch 기반 분류: 이미지에서 타겟 픽셀 주변 패치를 CNN에 넣어 중심 픽셀 클래스 예측
  • 단점: 연산량 큼, 국소 정보만 학습
  • CNN은 보통 이미지 전체를 분류하기 위해 설계됨 → 출력이 1개 벡터
  • Segmentation은 픽셀 단위 예측이 필요함 → 출력 해상도 = 입력 해상도
방법설명
Nearest Neighbor가장 가까운 픽셀 값 복사
Bed of Nails값을 그대로 복사, 나머지는 0
Max UnpoolingMaxPooling 위치 기억해서 복원
Bilinear Interpolation4개 픽셀로 보간, 매끄러움
Deconvolution (Transposed Conv)학습 가능한 필터로 복원, 더 선명함

(1) FCN

  • Fully Convolutional Networks, 2014년
  • 최초의 end-to-end 세그먼테이션 학습 구조
  • 다양한 backbone에 적용 가능
  • skip connection으로 공간 정보 보완 가능
  • 기존 CNN에서 완전 연결층(Fully Connected Layer)을 제거
  • 대신 모든 연산을 Convolution만 사용
  • 어떤 크기의 이미지에도 대응 가능

구조:
1. Convolution Layer → Feature 추출
2. 1x1 Convolution → Class 채널 수로 변경
3. Upsampling → 입력과 동일한 크기 복원
4. Loss 계산 → Cross Entropy(Pixel-wise)

장점:

  • End-to-End 훈련
  • 다양한 Backbone 가능 (VGG, ResNet 등)
  • Skip Connection을 통해 정보 보존
    단점:
  • 단순 업샘플링이라 경계 복원 한계
  • 복잡한 장면에서 성능 저하 가능

(2) U-Net

  • 의료 영상에 특화된 세그멘테이션 네트워크, 2015년
  • 인코더-디코더 대칭 구조 + 스킵 연결
  • 인코더 (Contracting Path)
    • 3x3 Conv + ReLU → 특징 추출
    • 2x2 MaxPool → 해상도 감소
  • 디코더 (Expansive Path)
    • 업샘플링
    • 대응되는 인코더 특징맵과 Concatenate (Skip Connection)
    • 3x3 Conv 2번 + ReLU
  • 최종 출력
    • 1x1 Conv로 클래스 수만큼 출력 채널 생성 → Softmax

데이터 처리 전략:

  • Overlap Tile 전략: 큰 이미지 → 겹치는 타일로 자르기

  • Mirroring: 경계 넘어간 부분을 대칭으로 채우기

  • Elastic Deformation(탄성변형) 등 다양한 Augmentation

손실 함수:

  • Pixel-wise Softmax + Cross Entropy
  • 경계 픽셀에 가중치 부여

장점:

  • 소량 데이터에서도 성능 우수
  • 경계 복원에 탁월
  • 빠른 연산으로 실시간 응용 가능

단점:

  • 메모리 사용 많음
  • 주로 의료 영상에 특화됨
  • padding 보정 신경 써야 함

3. Instance Segmentation

  • 대표 모델: Mask R-CNN(Faster R-CNN + 마스크 분기)
  • detection + segmentation 구조 결합
  • 같은 클래스 내 각 객체마다 분리된 마스크 생성
  • RoIAlign 사용으로 정확한 마스크 정렬
  • Backbone으로 ResNet + FPN 사용

구조:

  1. 입력 이미지 → Resize (800x1024)
  2. Backbone (ResNet101) → Feature Map 생성
  3. FPN → 멀티 스케일 Feature
  4. RPN → RoI 후보 영역 생성
  5. NMS → 겹치는 RoI 제거
  6. RoIAlign → 고정 크기 정렬 (ex. 7x7)
  7. 분기 처리:
    • Classification
    • Bbox Regression
    • Mask Prediction (ex. 28x28 이진 마스크)
  8. 최종 출력: Class, Confidence, Bbox, Mask

RoIAlign:

비교RoIPoolRoIAlign
방식Quantization 후 Pool소수점 좌표 보간
문제경계 정렬 안 됨정밀도 매우 높음
특징성능 하락Keypoint, Mask 정확

4. 보간법

방식특징학습 여부특징 요약
Bilinear Interpolation이웃 4픽셀 평균 기반 예측빠르나 부정확 가능
Deconvolution (Transposed Conv)필터 학습을 통해 업샘플링경계 표현 개선 가능

(1) Linear Interpolation

  • 선형 보간법
  • 두 점 사이의 값을 직선 방정식 기반으로 예측하는 방식
  • 한 방향(x축 또는 y축)에서 중간 지점의 값을 선형 비율로 추정
  • 기준 점: (x₀, y₀), (x₁, y₁)
  • 예측 대상: 중간 좌표 x에 해당하는 y값

(2) Bilinear Interpolation

  • 이중 선형 보간법
  • 2차원 격자에서 4개 점을 이용해 중간 지점의 값을 예측
  • 두 방향(x, y)으로 각각 선형 보간 수행
  • x축 기준으로 아래쪽 두 점 보간 → R₁
  • x축 기준으로 위쪽 두 점 보간 → R₂
  • R₁과 R₂를 y축 기준으로 다시 보간 → 최종값 P

5. RoI 기법 종류

방식주요 특징양자화보간정확도
RoI Pooling정해진 크기로 나눠 max pooling
RoI Warpingaffine 변환 + 보간bilinear★★
RoI Align정확한 실수 좌표에서 보간bilinear★★★

(1) Pooling

  • 입력 특징맵에서 Region of Interest(ROI) 부분을 정해진 크기 (ex: 7×7)로 나눔
  • 각 영역에서 max pooling 수행
  • 단점: 정수 grid로 강제 양자화하므로, RoI 경계 부정확 → 미세한 위치 정보 손실

예시:

RoI 좌표: (23.2, 42.7, 87.6, 140.3) 
→ (23, 42, 87, 140)로 잘림

(2) Warping

  • RoI 영역을 정확히 변형(affine transform)해서 고정된 크기로 변환
  • 위치는 정수로 자르지 않고, 보간법 (Bilinear) 사용해 값을 추정
  • 장점: 연속 좌표 처리 가능
  • 단점: RoI에 특화된 구조가 아님 → 일반적인 Spatial Transformer에 가까움

(3) Align

  • RoI의 좌표값을 실수 좌표 그대로 유지
  • 정확한 위치에서 bilinear interpolation으로 특징값 추출
  • Pooling 없이 정확한 특성 유지
  • Mask R-CNN이 픽셀 단위 마스크를 예측할 수 있는 핵심 기술

6. Instance Segmentation이 배경을 감지하지 못하는 이유?

(1) 기본 구조가 객체 중심이기 때문

  • Instance Segmentation은 객체 단위의 마스크 생성이 목적
  • 즉, 관심 있는 object class (예: 사람, 자동차)에 대해서만 마스크를 생성함
  • "배경"은 객체가 아니기 때문에 굳이 인스턴스로 예측하지 않음

(2) 기술적으로는 Detection 기반이라서

  • 대부분의 인스턴스 분할 모델은 객체 탐지 모델(Faster R-CNN 등)을 기반으로 동작함
  • 이들은 RoI(Region of Interest)를 찾고, 해당 영역에만 마스크를 씌움
  • ➜ RoI 밖의 영역은 관심이 없음 = 배경은 다 무시됨

(3) 그래서 Panoptic Segmentation 등장

  • Semantic과 Instance를 통합하여 객체와 배경을 모두 분리
  • 사람 1, 사람 2처럼 객체도 구분하고, 도로/하늘 같은 배경 클래스도 함께 마스킹
profile
나는 AI 엔지니어가 된다.

0개의 댓글