topics

이미지 분할

이미지 분할이란 무엇인가요?
IBM Maximo Visual Inspection 알아보기
3D 박스의 디자인 그래픽

이미지 분할은 디지털 이미지를 개별 픽셀 그룹, 즉 이미지 세그먼트로 분할하여 물체 감지 및 관련 작업에 정보를 제공하는 컴퓨팅 비전 기법입니다. 이미지 분할은 이미지의 복잡한 시각적 데이터를 특정 모양의 세그먼트로 파싱하여 더 빠르고 고급화된 이미지 처리를 가능하게 합니다.

이미지 분할 기술은 간단하고 직관적인 휴리스틱 분석부터 최첨단 딥 러닝 구현까지 다양합니다. 기존 이미지 분할 알고리즘은 색상이나 밝기 등 각 픽셀에 대해 높은 수준의 시각적 특징을 처리하여 객체 경계와 배경 영역을 식별합니다. 주석이 달린 데이터 세트를 활용하는 머신 러닝은 이미지에 포함된 특정 유형의 객체와 영역을 정확하게 분류하도록 모델을 훈련하는 데 사용됩니다.

이미지 분할은 매우 다양하고 실용적인 컴퓨팅 비전 방법으로서 의료 영상에서 진단을 보조하는 것부터 로봇 공학 및 자율 주행 자동차의 이동 자동화, 위성 이미지에서 관심 물체를 식별하는 것에 이르기까지 다양한 인공 지능 사용 사례를 갖고 있습니다.

관련 내용 IBM 뉴스레터 구독하기
이미지 분할 vs. 객체 감지 vs. 이미지 분류

이미지 분할은 이미지 분류와 객체 감지에서 한 단계 더 발전한 것으로, 고유한 컴퓨터 비전 기능의 집합입니다.

이미지 분류는 전체 이미지에 클래스 레이블을 적용합니다. 예를 들어, 간단한 이미지 분류 모델을 학습시켜 차량 이미지를 '자동차' 또는 '트럭'으로 분류할 수 있습니다. 기존의 이미지 분류 시스템은 개별 이미지 특징을 개별적으로 처리하지 않기 때문에 정교함에 한계가 있습니다.

객체 감지는 이미지 분류와 객체 위치 파악을 결합하여 객체가 위치한 '바운딩 박스'라는 직사각형 영역을 생성합니다. 객체 감지 모델은 차량 이미지에 단순히 '자동차' 또는 '트럭'이라는 레이블을 지정하는 대신 이미지에서 자동차 또는 트럭을 찾을 수 있는 위치를 표시할 수 있습니다. 객체 감지는 이미지 내의 여러 요소를 분류하고 각 요소의 너비와 높이를 대략적으로 추정할 수 있지만 정확한 경계나 모양을 식별할 수는 없습니다. 따라서 기존 객체 감지 모델은 바운딩 박스가 겹쳐져 있는 밀집된 객체를 묘사하는 데 한계가 있습니다.

이미지 분할은 픽셀 수준에서 시각적 데이터를 처리하며, 다양한 기술을 사용해 개별 픽셀에 특정 클래스나 인스턴스에 속하는 것으로 주석을 달 수 있습니다. '고전적인' 이미지 분할 기술은 색상과 강도와 같은 각 픽셀의 고유한 특성('휴리스틱'이라고 함)을 분석하여 주석을 결정하는 반면, 딥 러닝 모델은 정교한 패턴 인식을 위해 복잡한 신경망을 사용합니다. 이 주석의 출력은 이미지에서 각 클래스(일반적으로 다른 객체, 특징 또는 영역에 해당)의 특정 픽셀별 경계와 모양을 나타내는 분할 마스크입니다.

일반적으로 이미지 분할은 시맨틱 분할, 인스턴스 분할, 판옵틱 분할이라는 세 가지 유형의 작업에 사용됩니다.

시맨틱 클래스: 'Thing' 및 'Stuff'

각 유형의 이미지 분할 작업의 차이점은 시맨틱 클래스(주어진 픽셀이 속하는 것으로 결정될 수 있는 특정 범주)를 처리하는 방식에 있습니다.

시맨틱 클래스에는 컴퓨터 비전의 용어로 두 가지 유형이 있습니다. 각 유형은 정확하고 효과적인 분할을 구현하기 위해 서로 다른 기술에 적합합니다.

Thing은 '자동차', '나무', '사람'과 같이 특징적인 모양을 가진 객체의 클래스입니다. 일반적으로 Thing은 셀 수 있으며 명확하게 정의되는 인스턴스가 있습니다. 예를 들어 모든 자동차에는 바퀴가 있지만 바퀴는 자동차가 아닌 것과 같이, 사물 자체와 구별되는 구성 부분이 있을 뿐만 아니라 한 인스턴스에서 다음 인스턴스까지 크기 차이가 상대적으로 적습니다.

Stuff는 '하늘', '물', '풀'과 같이 형태가 없고 크기가 매우 다양한 시맨틱 클래스를 의미합니다. 일반적으로 Stuff는 셀 수 있으며 명확하게 정의되는 개별 인스턴스가 없습니다. Thing과 달리 Stuff는 구별되는 별개의 부분이 없습니다. 풀잎과 풀밭은 모두 똑같이 '풀'입니다.

일부 클래스는 특정 이미지 조건에서 ThingStuff 모두 될 수 있습니다.예를 들어, 대규모의 사람들은 각각 뚜렷한 모양을 가졌으며 셀 수 있는 Thing인 '사람'으로 해석될 수도 있고, 무정형의 단일 '군중'으로 해석될 수도 있습니다.

대부분의 객체 감지 작업은 주로 Thing 클래스에 초점을 맞추지만, 하늘, 벽, 바닥, 지면 등 Stuff가 시각적 맥락의 대부분을 구성한다는 점을 고려하는 것이 중요합니다. 도로에 있는 금속 물체는 보통 자동차이고, 배 뒤의 파란색 배경은 물일 가능성이 높으며, 비행기 뒤의 파란색 배경은 하늘일 가능성이 높은 것처럼 사물을 식별하는 데 필수적인 데이터 포인트는 Stuff이며, 그 반대의 경우도 마찬가지입니다. 이는 딥 러닝 모델에서 특히 중요합니다.

시맨틱 분할

시맨틱 분할은 가장 간단한 이미지 분할 유형입니다. 시맨틱 분할 모델은 모든 픽셀에 시맨틱 클래스를 할당하지만 다른 컨텍스트나 정보(예: 객체)는 출력하지 않습니다.

시맨틱 분할은 모든 픽셀을 Stuff로 취급하며 StuffThing을 구분하지 않습니다.

예를 들어, 도시의 거리에서 특정 클래스를 식별하도록 학습된 시맨틱 분할 모델은 Thing(차량이나 전봇대 등)과 Stuff(도로와 보도 등)의 각 관련 클래스에 대한 경계와 윤곽을 나타내는 분할 마스크를 생성하지만 동일한 클래스의 여러 인스턴스를 구분하거나 그 수를 세지는 않습니다. 예를 들어, 한 대씩 일렬로 주차된 자동차들은 단순히 하나의 긴 '자동차' 세그먼트로 취급될 수 있습니다.

인스턴스 분할

인스턴스 분할은 시맨틱 분할의 우선순위를 뒤집습니다. 시맨틱 분할 알고리즘은 개별 인스턴스를 고려하지 않고 각 픽셀의 시맨틱 분류만을 예측하는 반면, 인스턴스 분할은 각각의 개별 객체 인스턴스의 정확한 모양을 묘사합니다.

인스턴스 분할은 Stuff에서 Thing을 분리하고 Stuff를 무시하므로 대략적인 바운딩 박스 대신 정확한 분할 마스크를 출력하는 보다 발전된 형태의 객체 감지로 설명할 수 있습니다.

인스턴스 분할은 시맨틱 분할보다 더 어려운 작업입니다. 같은 클래스의 사물이 서로 맞닿아 있거나 겹쳐 있는 경우에도 인스턴스 분할 모델은 각각의 모양을 분리하고 결정할 수 있어야 하는 반면, 시맨틱 분할 모델은 단순히 한데 묶어 놓을 수 있습니다. 예를 들어, 두 모델이 이 도시 거리 이미지에서 주차된 차량을 어떻게 처리하는지 살펴보세요.

인스턴스 분할 알고리즘은 일반적으로 문제에 대해 2단계 또는 원샷 성 접근 방식을 취합니다. 영역 기반 컨볼루션 신경망(R-CNN)과 같은 2단계 모델은 기존의 객체 감지를 수행하여 제안된 각 인스턴스에 대한 바운딩 박스를 생성한 다음, 각 바운딩 박스 내에서 보다 정교한 분할 및 분류를 수행합니다. YOLO(You Only Look Once)와 같은 원샷 모델은 객체 감지, 분류, 분할을 동시에 수행하여 실시간 인스턴스 분할을 달성합니다.

원샷 접근 방식은 더 빠른 속도를 제공하는 반면(정확도는 떨어짐), 2단계 접근 방식은 더 높은 정확도를 제공합니다(속도는 떨어짐).

판옵틱 분할

판옵틱 분할 모델은 모든 픽셀의 시맨틱 분류를 결정하고 나아가 이미지의 각 객체 인스턴스를 구분하여 시맨틱 분할과 인스턴스 분할의 이점을 모두 제공합니다.

판옵틱 분할 작업에서 각 픽셀은 시맨틱 레이블과 '인스턴스 ID'로 주석이 지정되어야 합니다. 동일한 레이블과 ID를 공유하는 픽셀은 동일한 객체에 속하며, Stuff로 판단되는 픽셀의 경우 인스턴스 ID는 무시됩니다.

따라서 판옵틱 분할은 컴퓨팅 비전 시스템에 주어진 이미지에 대한 포괄적이고 전체적인 이해를 가능하게 합니다. 판옵틱 분할의 매력은 분명하지만, 일관되고 계산 효율이 높은 방식으로 판옵틱 분할을 달성하는 것은 쉽지 않은 과제입니다.

과제를 해결하려면 두 가지 상반된 방법론을 통합해야 합니다. 시맨틱 분할 모델은 Thing의 개별 인스턴스를 무시하고 모든 픽셀을 Stuff 취급하는 반면 인스턴스 분할 모델은 Stuff를 무시하고 개별 Thing을 분리합니다. 두 가지 모델 유형 모두 서로의 기능을 완전히 수행하지는 못합니다.

판옵틱 분할 모델의 초기 시도는 단순히 두 모델을 결합하여 각 작업을 개별적으로 수행한 다음 후처리 단계에서 그 결과물을 결합하는 방식으로 이루어졌습니다. 이 접근 방식에는 두 가지 큰 단점이 있습니다. 많은 계산 오버헤드가 필요하며 시맨틱 분할 네트워크에서 출력되는 데이터 포인트와 인스턴스 분할 네트워크에서 출력되는 데이터 포인트 간의 불일치로 인해 문제가 발생하게 됩니다.

최신 판옵틱 분할 아키텍처는 딥 러닝에 대한 보다 통합된 접근 방식을 통해 이러한 단점을 피하는 것을 목표로 합니다. 대부분은 입력 이미지에서 특징을 추출하고, 추출된 데이터를 '전경 브랜치'와 '배경 브랜치' 또는 '시맨틱 헤드'와 '인스턴스 헤드'와 같은 병렬 브랜치로 공급한 다음 가중치 시스템을 사용하여 각 분기의 출력을 병합하는 특징 피라미드 네트워크(FPN)와 같은 '백본' 네트워크를 기반으로 구축됩니다. 제안된 판옵틱 아키텍처로는 EfficientPS, OANet, PanopticFPN, UPSNet, SOGNet, BGRNet, AUNet, FPSNet, SpatialFlow 등이 있습니다.

기존 이미지 분할 기법

기존의 이미지 분할 기법은 픽셀의 색상 값(및 밝기, 대비 또는 강도와 같은 관련 특성)의 정보를 사용해 특징을 추출하며, 시맨틱 분류와 같은 작업을 위해 간단한 머신 러닝 알고리즘으로 빠르게 학습시킬 수 있습니다.

딥 러닝 기반 분할 방법은 더 정밀하고 정교한 이미지 분석, 특히 많은 컨텍스트 정보가 필요한 판옵틱 분할과 같은 작업을 수행할 수 있으나, 기존 방법이 비용과 계산 부담이 훨씬 적고 특정 문제를 더 효율적으로 해결할 수 있습니다.

일반적인 기존(또는 '클래식') 이미지 분할 기법은 다음과 같습니다.

  • 임계값: 임계값 방식은 이진 이미지를 생성하여 픽셀의 강도가 주어진 '임계값' 이상인지 이하인지에 따라 픽셀을 분류합니다. Otsu의 방법은 클래스 내 변동을 최소화하는 임계값을 결정하는 데 자주 사용됩니다.
  • 히스토그램: 이미지에서 특정 픽셀 값의 빈도를 표시하는 히스토그램은 임계값을 정의하는 데 자주 사용됩니다. 예를 들어 히스토그램은 배경 픽셀의 값을 유추하여 객체 픽셀을 분리하는 데 도움이 될 수 있습니다.
  • 가장자리 감지: 가장자리 감지 방식은 밝기나 대비의 불연속성을 감지하여 객체 또는 클래스의 경계를 식별합니다.
  • 워터셰드: 워터셰드 알고리즘은 이미지를 회색조로 변환한 다음 각 픽셀의 '고도'가 밝기에 따라 결정되는 지형도를 생성합니다. '계곡', '능선', '집수 분지'가 형성되는 위치에서 지역, 경계 및 물체를 유추할 수 있습니다.
  • 영역 기반 분할: 하나 이상의 '시드 픽셀'로 시작하는 영역 확대 알고리즘은 비슷한 특성을 가진 인접 픽셀을 함께 그룹화합니다. 알고리즘은 응집력이 강하거나 분할적일 수 있습니다.
  • 클러스터링 기반 분할: 비지도 학습 방법인 클러스터링 알고리즘은 시각적 데이터를 비슷한 값을 가진 픽셀 클러스터로 나눕니다. 일반적인 변형은 K-평균 클러스터링으로, 여기서 k는 클러스터의 수입니다. 픽셀 값은 데이터 포인트로 표시되고, 임의의 포인트 k가 클러스터의 중심(이하 '중심')으로 선택됩니다. 각 픽셀은 가장 가까운, 즉 가장 유사한 중심을 기준으로 클러스터에 할당됩니다. 그런 다음 각 클러스터의 평균으로 중심을 재배치하고 클러스터가 안정화될 때까지 반복할 때마다 중심을 재배치하는 프로세스를 반복합니다. 이 프로세스는 여기에 시각적으로 설명(ibm.com 외부 링크)되어 있습니다.
딥 러닝 이미지 분할 모델

주석이 달린 이미지 데이터 세트를 학습한 딥 러닝 이미지 분할 모델의 신경망은 시각 데이터에서 기본 패턴을 발견하고 분류, 감지 , 분할에 가장 관련성이 높은 두드러진 특징을 식별합니다.

컴퓨팅 요구 사항과 학습 시간의 균형을 찾아야 하는 점에도 불구하고 딥 러닝 모델은 지속적으로 기존 모델을 능가하며 컴퓨터 비전 분야에서 가장 지속적인 발전의 기반을 형성하고 있습니다.

이미지 분할에 사용되는 주요 딥 러닝 모델은 다음과 같습니다.

  • 완전 컨볼루션 네트워크(FCN): 시맨틱 분할에 자주 사용되는 FCN은 고정된 레이어가 없는 컨볼루션 신경망(CNN)의 일종입니다. 인코더 네트워크시각적 입력 데이터를 컨볼루션 레이어를 통해 전달하여 세분화 또는 분류와 관련된 특징을 추출하고, 이 특징 데이터를 압축(또는 다운샘플링)하여 불필요한 정보를 제거합니다. 그런 다음 이 압축된 데이터를 디코더 레이어로 공급하여 추출된 특징 데이터를 업샘플링함으로써 분할 마스크로 입력 이미지를 재구성합니다.
  • U-Net: U-Net은 FCN 아키텍처를 수정하여 스킵 연결을 통한 다운샘플링 시 데이터 손실을 줄이고, 정보와 기울기가 신경망을 통해 이동할 때 일부 컨볼루션 레이어를 선택적으로 우회하여 보다 세밀한 정보를 보존할 수 있도록 합니다. U-Net라는 이름은 레이어의 배열을 보여주는 다이어그램 모양에서 유래했습니다.
  • Deeplab: U-Nets와 마찬가지로 Deeplab은 수정된 FCN 아키텍처입니다. 스킵 연결 외에도 희석(또는 '아트러스') 컨볼루션을 사용하여 추가적인 계산 능력 없이도 더 큰 출력 맵을 생성합니다.
  • Mask R-CNN: Mask R-CNN은 인스턴스 분할을 위한 선도적인 모델입니다. Mask R-CNN은 각 잠재적 인스턴스에 대한 바운딩 박스를 생성하는 영역 제안 네트워크(RPN)와 확인된 각 바운딩 박스 내에서 분할 마스크를 생성하는 FCN 기반 '마스크 헤드'를 결합합니다.
  • 트랜스포머: 자연어 처리에서 GPT 및 BLOOM과 같은 트랜스포머 모델의 성공에 힘입어 컨볼루션 레이어 대신 주의 메커니즘을 사용하는 비전 트랜스포머(ViT)와 같은 새로운 모델이 컴퓨터 비전 작업에서 CNN 성능과 비슷하거나 그 이상의 성능을 발휘하고 있습니다.
딥 러닝 모델을 위한 학습 데이터 세트

딥 러닝 모델은 이미지 세그먼트의 경계를 매핑할 뿐만 아니라 각 세그먼트가 나타내는 StuffThing을 예측하기 위해 주석이 달린 대규모 데이터 세트에서 특정 시맨틱 클래스를 인식하도록 훈련됩니다. 이렇게 미리 레이블이 지정된 이미지에서 딥 러닝 모델은 각 레이블의 일반적인 패턴과 픽셀 값을 추론합니다.

자율 주행 자동차를 위한 컴퓨터 비전 시스템은 '사람', '자동차', '차선', '정지 표지판' 등의 시맨틱 클래스로 레이블이 지정된 이미지로 학습하지만, 의료 영상 모델의 경우 특정 클래스의 신체 조직이나 종양 및 기타 병리를 인식하기 위한 최적화가 필요합니다.

훈련 데이터 세트는 인간 전문가가 사전에 주의 깊게 레이블을 지정해야 하며 이는 매우 힘든 작업일 수 있습니다. 대부분의 이미지 분할 모델은 대규모 오픈 소스 데이터 세트를 사용합니다. 이러한 공개 데이터 세트는 학습된 모델의 성공 여부를 평가할 때 '기준'으로도 활용되며, 성능 메트릭은 종종 학습 데이터 세트의 주석과 정확히 일치하는 결과의 백분율로 표현됩니다.

딥 러닝 이미지 분할 모델에 널리 사용되는 학습 데이터 세트는 다음과 같습니다.

  • COCO(Common Objects in Context): Thing 카테고리 80개와 Stuff 카테고리 91개에 걸쳐 주석이 달린 세그먼트가 있는 이미지 33만 개 이상이 포함된 대규모 데이터 세트입니다.
  • ADE20K: MIT에서 만든 장면 분할 데이터 세트로, 150개 이상의 시맨틱 클래스가 있는 이미지 2만 개 이상이 포함되어 있습니다.
  • Cityscapes: 도시 거리에 초점을 맞춘 대규모 데이터 세트입니다. 다양한 시간대, 계절, 날씨 조건에 걸쳐 도시 50개의 이미지가 포함되어 있습니다.
이미지 분할 사용 사례

이미지 분할은 다양한 분야에서 필수적인 도구가 되었습니다.

  • 의료 영상: 이미지 분할은 방사선 촬영, 자기공명영상(MRI), 초음파, 컴퓨터 단층촬영(CT) 등 다양한 분야에 적용되어 종양 탐지, 뇌 세분화, 질병 진단, 수술 계획 등의 작업을 돕습니다.
  • 자율주행 차량: 자율주행 차량은 이미지 분할을 통해 보행자나 다른 차량과 같은 장애물을 피하고 차선 및 교통 표지판을 식별할 수 있습니다. 로보틱에서도 마찬가지로 내비게이션에 정보를 제공하는 데 사용됩니다.
  • 위성 이미지: 시맨틱 및 인스턴스 분할은 다양한 지형과 지형지물을 자동으로 식별합니다.
  • 스마트 시티: 이미지 분할을 통해 실시간 교통 모니터링 및 감시와 같은 작업이 가능합니다.
  • 제조: 이미지 분할은 로보틱 작업을 지원할 뿐만 아니라 제품 분류와 결함 감지도 지원합니다.
  • 농업: 이미지 분할은 농부가 작물 수확량을 예측하고 제거할 잡초를 감지하는 데 도움이 됩니다.
관련 솔루션
IBM Maximo Visual Inspection

인공 지능 비전 모델의 라벨링, 훈련 및 배포를 위한 직관적인 툴 세트를 통해 코드 없이도 자동화된 시각 검사를 수행할 수 있는 컴퓨팅 비전의 힘을 활용하세요.

IBM Maximo Visual Inspection 알아보기

이미지 분할 리소스 IBM Research: 컴퓨팅 비전

최신 컴퓨팅 비전 시스템은 이미지 인식과 분석에 관해서는 놀라운 정확도를 자랑하지만, 실제로 무엇을 보고 있는지는 이해하지 못합니다. IBM Research에서는 인간처럼 세상을 볼 수 있는 능력을 갖춘 AI 시스템을 설계하고 있습니다.

컴퓨팅 비전 및 이미지 처리 소개

컴퓨팅 비전과 여러 산업 분야의 다양한 응용 분야를 이해하는 데 도움이 되는 초보자용 교육 과정입니다. 이 과정에서는 기본적인 이미지 처리를 위해 Python, Pillow, OpenCV를 활용하고 이미지 분류와 객체 감지를 수행합니다.

IBM Maximo Visual Inspection 시작하기

IBM Maximo Visual Inspection을 시작하여 자산과 제품을 검사하고 나아가 생산 및 품질 문제를 일으킬 수 있는 결함을 식별하기 위한 AI 기반 모델을 만들고 학습시키세요.

다음 단계 안내

인공 지능 비전 모델의 라벨링, 훈련 및 배포를 위한 직관적인 툴 세트인 IBM Maximo Visual Inspection을 통해 코드 없이도 자동화된 시각 검사를 수행할 수 있는 컴퓨팅 비전의 힘을 활용하세요.

IBM Maximo Visual Inspection 알아보기 MVI 데모 살펴보기