AI 시각지능 & 멀티모달

AI 시각지능 Instance + Semantic Segmentation(이미지 분할)

수진97 2025. 11. 17. 18:19

안녕하세요~!

오늘 포스팅은 Segmentation에 대해 자세히 살펴보겠습니다!

 

1. 이미지 분할(Image Segmentation)이란?

  • 컴퓨터 비전(Computer vision)의 한 분야
  • 이미지를 몇 개의 영역으로 구분하는 작업
  • 이미지의 공간 영역, 객체들을 픽셀 수준에서 구분하여 라벨을 지정하는 작업

 

2. Segmentation 종류

- 경계박스가 존재하지 않음. 입력 이미지 내 모든 픽셀의 클래스를 예측

 

1) Semantic Segmentation(의미적 분할)

- 픽셀 단위로 클래스만 분류

- 객체 구분(X) : 바둑이, 바순이, 인절미는 슬프지만 모두 그냥 개일 뿐..

❤️바둑이, 바순이, 인절미❤️

 

2) Instance Segmentation(객체 분할)

- 객체 단위로 픽셀 마스크(masks : 객체의 특정 부분만 칠함) 분리

=> 즉, 객체를 픽셀 단위로 분리 + 동일 클래스를 개별 객체로 구분

 

- 객체 구분(O) : 바둑이, 바순이, 인절미는 모두 같은 개라도 서로 다른 친구들

 

출처 : https://data-science-note.tistory.com/31

 

 

 

3. YOLO 모델 세그먼테이션

Object Detection + Instance Segmentation 

- Bounding Box : 객체 탐지

- 클래스 : 객체의 클래스 구분

- 픽셀 마스크 : 인스턴스 별 픽셀 단위 구분

 

1) 모델선언 및 사용

- 모델선언(YOLO 11)

 

- 앞서 불러온 YOLO 11 모델로 image_path에 담긴 이미지 예측 -> 예측 결과를 results에 담고, 탐지된 객체 출력 

 

- 출력 결과

 

- 결과에 담긴 Bounding Box별 좌표Confidence Score 출력 + 예측된 클래스 ID를 통한 클래스 이름 출력까지

 

 

 

 

2)  masks 사용

 

 

 

- masks : 객체별 마스크 정보(픽셀 단위)를 담고 있는 객체

 

- masks.data[i] 안에 첫 번째 객체부터 마지막 객체까지 각 객체별 마스크(0~1값의 텐서)값 들어 있음


- 해당 mask값으로 탐지한 각 객체를 칠한 결과를 확인할 수 있음.

 

 

 

 

 

3) 동영상 탐지

- 동영상 파일로 YOLO 모델이 예측한 결과를 results 변수에 저장

 

 

- 모델로 예측한 결과는 .avi 파일 형식이기 때문에 mp4 형식으로 변환해 줌.

이유 : MP4가 훨씬 범용적으로 쓰이고, 가볍고, 재생 호환성이 좋기 때문, 그리고 훨씬 안정적임!

 

- FFmpeg은 영상/오디오 인코딩·변환·스트리밍을 할 수 있는 강력한 오픈소스 도구
명령어로 영상 변환, 자르기, 합치기, 음성 제거 같은 작업을 할 수 있음.

 

 

- 동영상 재생