-
Segmentation부터 DSLR의 이해AI 2026. 2. 10. 09:38
매일 사용하는 스마트폰의 '인물 사진 모드' 뒤에 숨겨진 거대한 인공지능 기술, 이미지 세그멘테이션(Image Segmentation)과 이를 현실로 만드는 광학적 원리를 깊이 있게 파헤쳐 보겠습니다.
단순한 기술 소개를 넘어, 왜 내 사진의 머리카락 끝이 뭉개지는지, 그리고 최신 AI는 이를 어떻게 극복하고 있는지 그 정답을 공개합니다.
이미지 세그멘테이션: 픽셀에 생명력을 불어넣는 작업
컴퓨터 비전 분야에서 객체 검출(Object Detection)이 "어디에 무엇이 있는가"를 사각형 박스(Bbox)로 찾는 것이라면, 세그멘테이션(Segmentation)은 "이 픽셀이 정확히 어떤 객체에 속하는가"를 가려내는 가장 정교한 작업입니다.
단순히 이미지를 분류하는 것을 넘어, 픽셀 단위의 분류(Pixel-level Classification)를 수행하여 객체의 정확한 외곽선(Mask)을 추출하는 것이 목적입니다.
세그멘테이션의 3가지 핵심 유형 (Instance 집중 탐구)
분류 기준에 따라 세그멘테이션은 크게 세 가지로 나뉩니다. 특히 실무에서 중요한 인스턴스 세그멘테이션의 구조를 눈여겨보세요.
① 시맨틱 세그멘테이션 (Semantic Segmentation)
- 개념: "무엇(What)"인가에만 집중합니다.
- 특징: 같은 클래스(예: 사람)라면 개별 구분 없이 동일한 색상으로 표시합니다. 도로 추출이나 지형 분석처럼 객체 각각의 ID가 중요하지 않을 때 사용합니다.
② 인스턴스 세그멘테이션 (Instance Segmentation) - [BBox + Mask]
- 개념: "각각의 객체(Individual)"를 식별합니다.
- 기술적 구조: 단순히 선을 따는 것이 아니라 객체 검출(Detection) + 시맨틱 세그멘테이션이 결합된 형태입니다.
- Step 1 (Bounding Box): 먼저 객체의 위치를 박스 형태로 찾습니다.
- Step 2 (Masking): 찾은 박스 내부에서만 픽셀 분류를 수행하여 정교한 마스크를 생성합니다.
- 모델 예시: Mask R-CNN이 대표적입니다. Faster R-CNN의 Bbox 검출 기능 위에 Mask Branch를 추가하여 "이 박스 안의 어느 픽셀이 진짜 물체인가?"를 한 번 더 계산합니다.
③ 파놉틱 세그멘테이션 (Panoptic Segmentation)
- 개념: 시맨틱 + 인스턴스의 완전체입니다.
- 특징: 배경(하늘, 바다 등 - Stuff)은 덩어리로, 움직이는 객체(사람, 차 등 - Things)는 개별 ID를 부여하여 동시에 분석합니다.
배경 지식: 왜 스마트폰은 DSLR을 따라 하기 힘들까?
우리가 스마트폰 '인물 모드'에서 기대하는 '아웃포커싱'은 광학 용어로 피사계 심도(Depth of Field, DOF) 조절의 결과물입니다.
피사계 심도(DOF)의 물리적 결정 요인
- 조리개($f$-stop): 구멍을 크게 열수록(수치가 작을수록) 심도는 얕아집니다(배경 흐림 강함).
- 초점 거리(Focal Length): 망원 렌즈일수록 배경이 더 뭉개집니다.
- 이미지 센서 크기: DSLR의 대형 센서는 빛의 경로 차이를 크게 만들어 물리적 블러를 자연스럽게 생성합니다.
스마트폰의 한계: 스마트폰은 센서가 너무 작고 렌즈 거리가 짧아 물리적으로는 심도가 매우 깊습니다(모든 곳에 초점이 다 맞음). 따라서 소프트웨어(AI)가 강제로 배경을 계산해서 지워줘야 합니다.

차세대 AI 솔루션: 실수를 줄이고 완성도를 높이는 기술
단순히 "사람만 따서 배경을 흐린다"는 1세대 방식은 이제 구식입니다. 최신 스마트폰은 다음의 3단계 메커니즘을 거칩니다.
솔루션 A: Boundary Problem 해결 (Guided Filter & CRF)
경계면이 모호해지는 문제(어깨 위의 옷, 안경테 등)를 해결하기 위해 사용합니다.
- Dense CRF: 픽셀 간의 색상 유사도와 근접도를 계산하여, 마스크가 원본 이미지의 실제 경계선에 딱 달라붙도록 날카롭게 깎아줍니다.
솔루션 B: 단안 심도 추정 (Monocular Depth Estimation) - 핵심!
단순 2D 마스킹의 한계를 극복하기 위해 이미지에서 거리 지도(Depth Map)를 생성합니다.
- 가변 블러링: 인물에서 멀어질수록 블러의 강도($\sigma$)를 점진적으로 높입니다. 이를 통해 발치(조금 흐림)부터 먼 건물(많이 흐림)까지 이어지는 자연스러운 공간감을 재현합니다.
솔루션 C: Image Matting (알파 채널 도입)
'사람이다(1)/아니다(0)'의 이진 구분을 버리고, 투명도($\alpha$) 개념을 도입합니다. 머리카락 한 올이나 투명한 유리잔의 경계를 0과 1 사이의 값으로 표현하여 배경과 부드럽게 합성합니다.
기술의 진화: 모델 아키텍처와 평가 지표
딥러닝 기반 세그멘테이션의 정점은 역시 DeepLab V3+입니다. Atrous Convolution(Dilated Conv)을 사용하여 해상도 손실 없이 넓은 시야를 확보하며, 경계선 인식 능력이 탁월합니다.
어떻게 평가하는가? ($mIoU$)
예측한 마스크와 실제 정답(GT)이 얼마나 겹치는지를 계산합니다.
$$IoU = \frac{Area\ of\ Overlap}{Area\ of\ Union}$$이 값을 모든 클래스에 대해 평균낸 것이 $mIoU$이며, 보통 0.7 이상이면 실무에 적합한 우수한 모델로 평가합니다.
개발자를 위한 실무 코드 (PyTorch 예시)
segmentation-models-pytorch 라이브러리를 사용하면 단 5줄 만에 강력한 사전학습 모델을 불러올 수 있습니다.
import segmentation_models_pytorch as smp # DeepLabV3+ 모델 로드 (ResNet101 인코더 사용) model = smp.DeepLabV3Plus( encoder_name="resnet101", encoder_weights="imagenet", in_channels=3, classes=1 ) # 이제 이 모델에 이미지를 넣어 마스크를 예측하고, Depth Map과 결합하여 # 나만의 인물 사진 모드 알고리즘을 구현할 수 있습니다.이미지 세그멘테이션은 단순히 '그림을 그리는 것'이 아니라, 데이터에 공간적인 생명력을 불어넣는 작업입니다. 모델 아키텍처도 중요하지만, 내가 풀고자 하는 도메인(의료, 자율주행, 사진 보정 등)에 맞는 적절한 후처리와 Loss 함수를 찾는 것이 핵심입니다.
'AI' 카테고리의 다른 글
이미지 인식의 핵심: Inductive Bias, Locality, 그리고 특징 추출의 상관관계 (0) 2026.02.20 세그멘테이션 성능 평가의 핵심: IoU, mIoU, Boundary IoU (0) 2026.02.19 사전학습(Pre-training)의 핵심 (0) 2026.02.06 이미지 인식의 진화: AlexNet에서 VGG16, 그리고 1x1 Conv의 마법까지 (0) 2026.02.05 ResNet(Residual Network)의 깊이 있는 이해 (1) 2026.02.05