| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
Tags
- java
- 다이나믹 프로그래밍
- 우선순위큐
- lv2
- 백준
- 그리디
- cpp
- 자바
- 이분탐색
- c++
- C
- level2
- dp
- 프로그래머스
- 최적화
- BFS
- 컴퓨터비전
- 누적합
- Stack
- JavaScript
- 다이나믹프로그래밍
- 2018 KAKAO BLIND RECRUITMENT
- kotlin
- 구현
- 컴퓨터 비전
- dfs
- level3
- 동적계획법
- 코틀린
- 임베디드
Archives
- Today
- Total
코드를 느껴바라
컴퓨터 비전 : 영상 분할 (Image Segmentation) 본문
영상 분할 (Image Segmentation) != 에지 검출의 접근 방법
영상 분할은 하나의 영상을 의미 있는 여러 영역으로 나누는 작업입니다.
예를 들어, 사람 얼굴을 영상에서 추출하거나, 배경과 물체를 구분하는 작업이죠.
분할이 잘 되어야 이후의 객체 인식, 추적, 이미지 편집 등이 정확하게 이루어질 수 있습니다.
1. 영상에서 영역을 분할하는 기본 원리
기본 개념:
- 영상 분할이란 영상을 여러 서로 겹치지 않는 영역으로 나누는 것.
- 각 영역 안의 화소는 서로 비슷한 성질(명암, 색상 등)을 가지고 있어야 하고,
다른 영역과는 다르게 구분되어야 합니다.
이 기본 원칙을 만족하면서도 상황에 따라 다양한 기법이 등장했습니다.
2. 초창기 주류 알고리즘
대표 기법:
- 임계화(Thresholding) -> 오츄 알고리즘, 적응형 임계화 방법
- 영상의 밝기 값에 따라 두 그룹(예: 배경/물체)으로 나눔.
- 예시: 밝기가 일정 값보다 크면 물체, 작으면 배경.
- 군집화 (Clustering)
- 화소의 색상/밝기 정보를 군집으로 묶음.
- 대표적으로 K-means 알고리즘 사용.
한계:
- 임계화는 조명 변화나 복잡한 배경에서 성능이 떨어짐.
- 군집화는 화소 간의 공간적 위치를 고려하지 않아서, 서로 떨어져 있어도 비슷한 색상이면 같은 군집으로 묶일 수 있음.
3. 그래프 알고리즘 (Graph-based Methods)
원리:
- 영상을 그래프로 표현:
- 화소 = 노드, 화소 간의 연결 = 에지.
- 에지의 가중치는 두 화소가 얼마나 비슷한지 나타냄.
- 그래프 절단(Graph Cut):
- 최소 절단(min-cut)을 찾아 영상 분할.
- 물체와 배경을 가장 효율적으로 구분할 수 있음.
장점:
- 공간적 정보와 색상/명암 유사도를 모두 고려함.
- 복잡한 영상에서도 효과적인 분할 가능.
4. 민시프트 알고리즘 (Mean-Shift)
원리:
- 군집화(clustering) 기반.
- 화소의 위치 + 색상 정보를 함께 고려해서,
비슷한 화소들을 하나의 영역으로 묶음.
과정:
- 각 화소에서 시작 → 주변 이웃들의 평균 위치로 이동 →
이동이 멈출 때까지 반복 → 군집의 중심(모드) 찾기. - 중심(모드)이 비슷한 것끼리 하나의 영역으로 묶음.
장점:
- 에지(경계)를 잘 보존하면서 분할.
- 엣지 스무딩 효과: 영역 내부는 부드럽게, 경계는 또렷하게.
- 기존 K-means를 통한 군집화에서 거리가 멀어도 색상이 비슷하면 같은 그룹으로 묶이는 문제를
mean-shift는 위치도 고려하기 때문에 해결할 수 있음.
단점:
- 계산량이 많아서 속도가 느림 (최적화 필요).
5. 워터셰드 알고리즘 (Watershed)
원리:
- 영상을 지형(terrain)으로 보고, 물이 고이는 유역(watershed)을 찾아서 분할.
- 낮은 밝기값 = 계곡, 높은 밝기값 = 산.
과정:
- 에지 강도 맵 생성 →
- 낮은 곳(계곡)부터 물을 채우듯이 퍼뜨림 →
- 서로 다른 유역이 만나는 곳에 댐(경계)을 쌓음.
장점:
- 항상 폐곡선(닫힌 경계선)을 생성 → 영역이 명확히 나뉨.
단점:
- 잡음에 민감 → 너무 많은 영역(과분할) 생성 가능.
→ 이를 개선한 다양한 변형 알고리즘이 존재.
6.대화식 물체 분할 (Interactive Object Segmentation)
대화식 물체 분할은 사용자가 직접 관심 있는 물체를 선택하거나 조작하여
컴퓨터가 그 물체를 정확하게 분할하는 방법입니다.
주로 사진 편집, 의료 영상 처리, 객체 추적 등에 활용됩니다.
- 사용자가 초기 입력(곡선, 점 등)을 주고,
이를 바탕으로 정확한 경계선을 자동으로 찾아주는 방식입니다.
대표적인 기법은 다음과 같습니다:
6.1 능동 외곽선 (Active Contour, 스네이크)
원리:
- 초기 곡선(컨투어)을 설정하고,
곡선이 물체의 경계에 도달할 때까지
에너지 최소화를 통해 이동시키는 방법입니다.
에너지 구성:
- 내부 에너지: 곡선이 너무 휘거나 찢어지지 않도록 부드럽게 만듦.
- 외부 에너지: 영상의 에지(경계) 근처로 곡선을 끌어당김.
장점:
- 경계를 부드럽게 따라감.
단점:
- 초기 곡선 설정에 민감.
- 복잡한 형태(구멍, 섬 등)는 처리 어려움.
활용: 물체 외곽을 매끄럽게 잡아야 할 때 사용.
6.2 지능 가위 (Intelligent Scissors)
원리:
- 사용자가 마우스로 물체 경계를 대략적으로 지정하면,
시스템이 최적 경로(에지)를 따라 자동으로 경계선을 생성합니다. - Dijkstra 알고리즘을 활용해
화소 간 가중치(에지 강도)를 고려하여
최소 비용 경로를 계산합니다.
장점:
- 실시간으로 경계선을 확인 가능.
- 사용자 직관을 활용하면서도 자동 경계 보정.
단점:
- 복잡하거나 흐릿한 경계에서는 성능 저하.
활용: GIMP 같은 이미지 편집 프로그램에서 사용.
6.3 레벨 셋 (Level Set)
원리:
- 곡선을 함수 형태로 표현 (등고선으로 암시적 표현).
- 물체의 경계를 따라 함수 값이 0이 되는 곡선을 찾습니다.
- 복잡한 형태 변화(구멍, 분리된 영역 등)를 자연스럽게 처리.
장점:
- 토폴로지 변화에 강함 → 구멍, 섬 있는 구조도 처리 가능.
- 곡선을 명시적으로 표현하지 않아 수학적으로 유연함.
단점:
- 계산량이 많고 구현이 복잡.
활용:
- 의료 영상에서 복잡한 장기 분할.
- 형태 변화가 큰 물체를 처리할 때 사용.
6.4 그래프 절단 (Graph Cut) & GrabCut
- 그래프 절단: 영상을 그래프로 모델링 → 최소 절단(min-cut)을 찾아 물체와 배경을 분할.
- GrabCut: 그래프 절단을 대화식으로 개선한 방식.
→ 사용자가 대략적인 사각형을 그리면,
내부는 물체, 외부는 배경으로 추정 →
반복적으로 물체/배경 모델을 개선하며 경계를 정교화. - OpenCV에서 GrabCut 함수 제공.
활용:
- 사진 편집, 자동 물체 추출 등에 널리 사용.
| 기법 | 원리 | 장점 | 단점 |
| 능동 외곽선 (스네이크) | 초기 곡선 → 에너지 최소화로 경계 탐색 | 부드러운 경계 | 초기 위치 민감, 복잡한 형태 어려움 |
| 지능 가위 | 마우스 경로 + 에지 따라 자동 경계 생성 | 직관적, 실시간 경계 확인 가능 | 흐릿한 경계에 약함 |
| 레벨 셋 | 함수로 곡선을 암시적으로 표현, 토폴로지 변화 가능 | 복잡한 형태, 구멍 처리 가능 | 계산량 많음 |
| 그래프 절단 / GrabCut | 그래프 모델링 → 최소 절단으로 분할 | 경계 정확, 자동화 가능 | 그래프 구성 복잡, 메모리 요구 |
반응형
'CS > 컴퓨터 비전(Computer Vision)' 카테고리의 다른 글
| 컴퓨터 비전 : Lucas-Kanade와 Horn-Schunck 완전 정리 (0) | 2025.06.16 |
|---|---|
| 컴퓨터 비전 : 특징 기술(Feature Descriptor) (0) | 2025.04.24 |
| 컴퓨터 비전 : 지역 특징 검출(Local Feature Detection) (0) | 2025.04.24 |
| 컴퓨터 비전 : 에지 검출(Edge Detection) (0) | 2025.04.24 |
| 컴퓨터 비전 : 영상처리의 기본 개념과 핵심 기법들 (0) | 2025.04.23 |