홈
topics
이미지 분할
이미지 분할 기술은 간단하고 직관적인 휴리스틱 분석부터 최첨단 딥 러닝 구현까지 다양합니다. 기존 이미지 분할 알고리즘은 색상이나 밝기 등 각 픽셀에 대해 높은 수준의 시각적 특징을 처리하여 객체 경계와 배경 영역을 식별합니다. 주석이 달린 데이터 세트를 활용하는 머신 러닝은 이미지에 포함된 특정 유형의 객체와 영역을 정확하게 분류하도록 모델을 훈련하는 데 사용됩니다.
이미지 분할은 매우 다양하고 실용적인 컴퓨팅 비전 방법으로서 의료 영상에서 진단을 보조하는 것부터 로봇 공학 및 자율 주행 자동차의 이동 자동화, 위성 이미지에서 관심 물체를 식별하는 것에 이르기까지 다양한 인공 지능 사용 사례를 갖고 있습니다.
이미지 분할은 이미지 분류와 객체 감지에서 한 단계 더 발전한 것으로, 고유한 컴퓨터 비전 기능의 집합입니다.
이미지 분류는 전체 이미지에 클래스 레이블을 적용합니다. 예를 들어, 간단한 이미지 분류 모델을 학습시켜 차량 이미지를 '자동차' 또는 '트럭'으로 분류할 수 있습니다. 기존의 이미지 분류 시스템은 개별 이미지 특징을 개별적으로 처리하지 않기 때문에 정교함에 한계가 있습니다.
객체 감지는 이미지 분류와 객체 위치 파악을 결합하여 객체가 위치한 '바운딩 박스'라는 직사각형 영역을 생성합니다. 객체 감지 모델은 차량 이미지에 단순히 '자동차' 또는 '트럭'이라는 레이블을 지정하는 대신 이미지에서 자동차 또는 트럭을 찾을 수 있는 위치를 표시할 수 있습니다. 객체 감지는 이미지 내의 여러 요소를 분류하고 각 요소의 너비와 높이를 대략적으로 추정할 수 있지만 정확한 경계나 모양을 식별할 수는 없습니다. 따라서 기존 객체 감지 모델은 바운딩 박스가 겹쳐져 있는 밀집된 객체를 묘사하는 데 한계가 있습니다.
이미지 분할은 픽셀 수준에서 시각적 데이터를 처리하며, 다양한 기술을 사용해 개별 픽셀에 특정 클래스나 인스턴스에 속하는 것으로 주석을 달 수 있습니다. '고전적인' 이미지 분할 기술은 색상과 강도와 같은 각 픽셀의 고유한 특성('휴리스틱'이라고 함)을 분석하여 주석을 결정하는 반면, 딥 러닝 모델은 정교한 패턴 인식을 위해 복잡한 신경망을 사용합니다. 이 주석의 출력은 이미지에서 각 클래스(일반적으로 다른 객체, 특징 또는 영역에 해당)의 특정 픽셀별 경계와 모양을 나타내는 분할 마스크입니다.
일반적으로 이미지 분할은 시맨틱 분할, 인스턴스 분할, 판옵틱 분할이라는 세 가지 유형의 작업에 사용됩니다.
각 유형의 이미지 분할 작업의 차이점은 시맨틱 클래스(주어진 픽셀이 속하는 것으로 결정될 수 있는 특정 범주)를 처리하는 방식에 있습니다.
시맨틱 클래스에는 컴퓨터 비전의 용어로 두 가지 유형이 있습니다. 각 유형은 정확하고 효과적인 분할을 구현하기 위해 서로 다른 기술에 적합합니다.
Thing은 '자동차', '나무', '사람'과 같이 특징적인 모양을 가진 객체의 클래스입니다. 일반적으로 Thing은 셀 수 있으며 명확하게 정의되는 인스턴스가 있습니다. 예를 들어 모든 자동차에는 바퀴가 있지만 바퀴는 자동차가 아닌 것과 같이, 사물 자체와 구별되는 구성 부분이 있을 뿐만 아니라 한 인스턴스에서 다음 인스턴스까지 크기 차이가 상대적으로 적습니다.
Stuff는 '하늘', '물', '풀'과 같이 형태가 없고 크기가 매우 다양한 시맨틱 클래스를 의미합니다. 일반적으로 Stuff는 셀 수 있으며 명확하게 정의되는 개별 인스턴스가 없습니다. Thing과 달리 Stuff는 구별되는 별개의 부분이 없습니다. 풀잎과 풀밭은 모두 똑같이 '풀'입니다.
일부 클래스는 특정 이미지 조건에서 Thing과 Stuff 모두 될 수 있습니다.예를 들어, 대규모의 사람들은 각각 뚜렷한 모양을 가졌으며 셀 수 있는 Thing인 '사람'으로 해석될 수도 있고, 무정형의 단일 '군중'으로 해석될 수도 있습니다.
대부분의 객체 감지 작업은 주로 Thing 클래스에 초점을 맞추지만, 하늘, 벽, 바닥, 지면 등 Stuff가 시각적 맥락의 대부분을 구성한다는 점을 고려하는 것이 중요합니다. 도로에 있는 금속 물체는 보통 자동차이고, 배 뒤의 파란색 배경은 물일 가능성이 높으며, 비행기 뒤의 파란색 배경은 하늘일 가능성이 높은 것처럼 사물을 식별하는 데 필수적인 데이터 포인트는 Stuff이며, 그 반대의 경우도 마찬가지입니다. 이는 딥 러닝 모델에서 특히 중요합니다.
시맨틱 분할은 가장 간단한 이미지 분할 유형입니다. 시맨틱 분할 모델은 모든 픽셀에 시맨틱 클래스를 할당하지만 다른 컨텍스트나 정보(예: 객체)는 출력하지 않습니다.
시맨틱 분할은 모든 픽셀을 Stuff로 취급하며 Stuff와 Thing을 구분하지 않습니다.
예를 들어, 도시의 거리에서 특정 클래스를 식별하도록 학습된 시맨틱 분할 모델은 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 등이 있습니다.
기존의 이미지 분할 기법은 픽셀의 색상 값(및 밝기, 대비 또는 강도와 같은 관련 특성)의 정보를 사용해 특징을 추출하며, 시맨틱 분류와 같은 작업을 위해 간단한 머신 러닝 알고리즘으로 빠르게 학습시킬 수 있습니다.
딥 러닝 기반 분할 방법은 더 정밀하고 정교한 이미지 분석, 특히 많은 컨텍스트 정보가 필요한 판옵틱 분할과 같은 작업을 수행할 수 있으나, 기존 방법이 비용과 계산 부담이 훨씬 적고 특정 문제를 더 효율적으로 해결할 수 있습니다.
일반적인 기존(또는 '클래식') 이미지 분할 기법은 다음과 같습니다.
주석이 달린 이미지 데이터 세트를 학습한 딥 러닝 이미지 분할 모델의 신경망은 시각 데이터에서 기본 패턴을 발견하고 분류, 감지 , 분할에 가장 관련성이 높은 두드러진 특징을 식별합니다.
컴퓨팅 요구 사항과 학습 시간의 균형을 찾아야 하는 점에도 불구하고 딥 러닝 모델은 지속적으로 기존 모델을 능가하며 컴퓨터 비전 분야에서 가장 지속적인 발전의 기반을 형성하고 있습니다.
이미지 분할에 사용되는 주요 딥 러닝 모델은 다음과 같습니다.
딥 러닝 모델은 이미지 세그먼트의 경계를 매핑할 뿐만 아니라 각 세그먼트가 나타내는 Stuff나 Thing을 예측하기 위해 주석이 달린 대규모 데이터 세트에서 특정 시맨틱 클래스를 인식하도록 훈련됩니다. 이렇게 미리 레이블이 지정된 이미지에서 딥 러닝 모델은 각 레이블의 일반적인 패턴과 픽셀 값을 추론합니다.
자율 주행 자동차를 위한 컴퓨터 비전 시스템은 '사람', '자동차', '차선', '정지 표지판' 등의 시맨틱 클래스로 레이블이 지정된 이미지로 학습하지만, 의료 영상 모델의 경우 특정 클래스의 신체 조직이나 종양 및 기타 병리를 인식하기 위한 최적화가 필요합니다.
훈련 데이터 세트는 인간 전문가가 사전에 주의 깊게 레이블을 지정해야 하며 이는 매우 힘든 작업일 수 있습니다. 대부분의 이미지 분할 모델은 대규모 오픈 소스 데이터 세트를 사용합니다. 이러한 공개 데이터 세트는 학습된 모델의 성공 여부를 평가할 때 '기준'으로도 활용되며, 성능 메트릭은 종종 학습 데이터 세트의 주석과 정확히 일치하는 결과의 백분율로 표현됩니다.
딥 러닝 이미지 분할 모델에 널리 사용되는 학습 데이터 세트는 다음과 같습니다.
이미지 분할은 다양한 분야에서 필수적인 도구가 되었습니다.
최신 컴퓨팅 비전 시스템은 이미지 인식과 분석에 관해서는 놀라운 정확도를 자랑하지만, 실제로 무엇을 보고 있는지는 이해하지 못합니다. IBM Research에서는 인간처럼 세상을 볼 수 있는 능력을 갖춘 AI 시스템을 설계하고 있습니다.
컴퓨팅 비전과 여러 산업 분야의 다양한 응용 분야를 이해하는 데 도움이 되는 초보자용 교육 과정입니다. 이 과정에서는 기본적인 이미지 처리를 위해 Python, Pillow, OpenCV를 활용하고 이미지 분류와 객체 감지를 수행합니다.
IBM Maximo Visual Inspection을 시작하여 자산과 제품을 검사하고 나아가 생산 및 품질 문제를 일으킬 수 있는 결함을 식별하기 위한 AI 기반 모델을 만들고 학습시키세요.