인터랙티브AI(Interactive AI)와 오토에딧(Auto-Edit)에 대해 알아보기
AI 개발 커뮤니티에서 널리 알려져 있으며 빈번히 사용되는 이미지 세그멘테이션의 유형으로는 시맨틱 세그멘테이션, 인스턴스 세그멘테이션, 판옵틱 세그멘테이션의 세 가지를 들 수 있습니다. 포괄적인 개념 또는 용어로서의 이미지 세그멘테이션이란 이미지 데이터를 오브젝트 라벨과 연관된 '세그먼트'로 분리 또는 분할하는 행위입니다.
다시 말해, 데이터 사이언티스트는 이미지 세그멘테이션을 활용해 이미지 데이터의 콘텐츠를 보다 세분화된 수준으로 분할해, 이를 통해 AI 모델 훈련의 목적과 노력에 대해 더 밀도 높은 이해와 풍부한 컨텍스트를 제공할 수 있습니다.
시맨틱, 인스턴스, 판옵틱 등 세 가지 방법을 통해 이러한 더 높은 이해도를 달성하는 동시에 이미지에서 더 많은 인사이트를 추출하는 방법은 다음과 같습니다.
시맨틱 세그멘테이션
슈퍼브에이아이 이미지 어노테이션 플랫폼으로 세그멘테이션을 신속하게 처리하는 사례
시맨틱 세그멘테이션은 픽셀의 분포에 따라 이미지를 분할합니다. 이미지 내의 오브젝트에는 백분율로 표시된 확률과 단일 클래스 라벨이 할당됩니다. (이미지 출처/아욜라 올라펜와(Ayoola Olafenwa))
시맨틱 세그멘테이션은 이미지에서 동일한 클래스에 속하는 부분을 분류하며, 픽셀에 대한 예측을 수행하고 픽셀을 기반으로 특정 클래스에 속할 확률을 추정할 수도 있습니다.
인스턴스 세그멘테이션
슈퍼브에이아이 데이터 어노테이션 플랫폼으로 인스턴스 세그멘테이션을 활용하여 서로 다른 오브젝트를 감지하는 사례
인스턴스 세그멘테이션은 이미지에서 각각의 모든 오브젝트를 감지 및 분할한 다음 각 오브젝트에 대한 마스크를 생성합니다. (이미지 출처/니키타 실레다르박시(Nikita Shiledarbaxi))
인스턴스 세그멘테이션은 시맨틱 세그멘테이션에서 한 단계 더 나아가 클래스 별 세그먼트가 아닌 이미지 내 각각의 고유한 오브젝트를 식별합니다.
판옵틱 세그멘테이션
컴퓨터 비전 훈련을 위한 이미지 세그멘테이션 방식입니다.
판옵틱 세그멘테이션은 인스턴스와 오브젝트 클래스를 모두 활용해 이미지를 분할하여 클래스의 인스턴스를 기반으로 픽셀을 할당합니다. (이미지 출처/알렉산더 키릴로프(Alexander Kirillov), 페이스북 AI 리서치(Facebook AI Research))
판옵틱 세그멘테이션은 인스턴스(오브젝트)와 클래스를 모두 활용해 이미지를 분할하여 클래스의 인스턴스를 기반으로 픽셀을 할당합니다.
이 블로그에서는 두 번째 방식인 인스턴스 세그멘테이션에 대해 자세히 살펴보고 이미지 어노테이션을 통한 CV 애플리케이션의 픽셀 수준 훈련 방법으로서의 기능을 살펴보겠습니다.
인스턴스 세그멘테이션의 기초
인스턴스는 오브젝트 감지 기법과 시맨틱 세그멘테이션 기법을 통합하여 보다 포괄적인 하이브리드 기법으로 발전시킵니다. 오브젝트 감지는 바운딩 박스를 활용해 이미지 데이터에서 오브젝트의 위치를 파악하고 해당 위치를 분류하는 작업을 수행합니다.
한편, 시맨틱은 이미지의 픽셀을 분류하여 개별 이미지에 대해 픽셀 단위의 정밀한 맵을 생성합니다. 이 두 가지 접근 방식을 결합하면 인스턴스 세그멘테이션을 생성할 수 있습니다. 인스턴스 세그멘테이션은 이미지에서 개별 오브젝트를 감지하고 세그먼트화하여 세그멘테이션 마스크를 활용해 이미지를 정확하게 표현하는 기능을 뜻합니다.
인풋 측면에서 인스턴스에는 이미지와 인스턴스 타겟이 필요합니다. 또한 바운딩 박스, 세그멘테이션 마스크, 각 인스턴스의 클래스와 같은 아웃풋을 생성하기 전에 먼저 클래스도 필요하겠죠.
사용자는 특정 오브젝트 클래스의 한 인스턴스를 다른 인스턴스와 구분하고 그 개수를 계산할 수 있게 됩니다. 예를 들어 '동물' 또는 '차량'이라는 클래스를 나타내는 경우 알고리즘은 이미지 속 각각의 동물이나 차량을 별도의 클래스 인스턴스("사람 1", "사람 2" 등)로 표시합니다.
인스턴스 세그멘테이션 작업은 다음 두 가지 기본 프로세스 단계로 구성됩니다.
첫째로, 특정 인스턴스 클래스를 정의합니다. 앞서 언급한 '동물' 또는 '차량' 예시를 참고하세요.
둘째로, 해당 클래스 내의 개별 인스턴스에 대한 세그멘테이션 마스크를 만듭니다.
인스턴스 대 시맨틱
인스턴스 태깅은 데이터 평가로는 알 수 없거나 불확실한 상황을 분석하는 데에 필요한 더 많은 정보를 제공합니다. 예를 들어, 동일한 클래스에 속하는 요소의 개수를 세거나 머신러닝이 활성화된 로봇 애플리케이션에서 식별 및 검색해야 하는 특정 오브젝트를 감지하는 등의 작업을 수행할 수 있습니다.
시맨틱과 달리 인스턴스는 단일 이미지에서 동일한 오브젝트를 서로 다른 것으로 인식합니다. 이 과정과 기능을 세분화하기 위해 이미지는 여러 세그먼트로나누어지고 모든 픽셀이 오브젝트 유형과 연관지어집니다.
인스턴스 세그멘테이션과 시맨틱 세그멘테이션 중 어떤 것을 사용해야 할지 잘 모르겠다면, 각각의 개별 오브젝트를 한 개로 간주하는 이미지 세그멘테이션기술이 필요한지 자문해 보세요. 만약 질문에 대한 답이 ‘그렇다’라면 인스턴스 세그멘테이션을 사용하는 것이 좋습니다. 그리고 시맨틱 세그멘테이션 태스크에 인스턴스 세그멘테이션용 라벨을 활용하는 것은 쉽지만, 그 반대의 경우는 훨씬 어렵다는 점도 기억해두는 것이 좋습니다.
시맨틱 대 판옵틱
시맨틱 및 판옵틱 세그멘테이션 모두 이미지 내 모든 픽셀에 시맨틱 라벨을 할당해야 합니다. 따라서 정답 데이터가 인스턴스를 지정하지 않았거나 모든 클래스가 사물인 경우 두 방식에 큰 차이는 없습니다. 다만 이미지당 여러 인스턴스를 가질 수 있는 '물체(thing)' 클래스를 포함하면 차별점이 생기게 됩니다.
인스턴스 대 판옵틱
인스턴스와 판옵틱 세그멘테이션 모두 이미지의 개별 오브젝트 인스턴스를 분할하는 기능을 공통적으로 가지고 있습니다. 주요 차이점은 중첩되어 있는 세그먼트를 개별적으로 처리하는 방식에 있습니다.
인스턴스는 중첩되는 세그먼트를 허용하는 반면, 판옵틱 태스크는 이미지 속 각각의 픽셀에 고유한 시맨틱 라벨과 인스턴스 ID를 할당합니다. 따라서 판옵틱세그멘테이션의 경우 세그먼트 중첩이 불가능합니다.
인스턴스 세그멘테이션의 과제
데이터셋 자체 및 서로 다른 데이터셋 간에 존재하는 고유한 변형, 클래스 불균형, 태스크별 훈련 데이터 부족, 불완전한 세그먼트 라벨, 뭉쳐 있거나 중첩되어 있는 오브젝트는 인스턴스 세그멘테이션에서 해결해야 하는 가장 시급한 과제의 일부입니다.
이미지 세그멘테이션의 문제는 이미 적용된 네트워크 아키텍처 외에도 태스크에 맞춘 데이터 증강, 맞춤형 손실 함수, 전문화된 후처리와 같은 추가적인 개선이 필요하다는 것을 보여줍니다. 딥러닝 기반의 세그멘테이션을 설계하려면 개발자가 네트워크 아키텍처와 훈련 프로세스 세팅을 선택해야 합니다.
이는 정규화, 활성화 및 손실 함수, 경사 하강 최적화 알고리즘, 배치(batch) 정규화 및 상응하는 하이퍼파라미터를 포함합니다. 얕은 네트워크와 달리 심층 네트워크는 레이어 당 훨씬 적은 수의 파라미터를 사용하여 훈련용 데이터셋에 적합하게 만들 수 있고, 테스트용 데이터셋을 일반화할 수도 있지만, 이에 반해 최적화하기는 훨씬 어렵습니다. 태스크별로 어떤 네트워크 아키텍처가 이상적인지는 검증용 데이터셋의 오류를 확인하며 실험적으로 찾아낼 수 밖에 없습니다.
인스턴스 세그멘테이션 모델의 아키텍처
오브젝트 감지 아키텍처는 인스턴스 세그멘테이션을 성공적으로 실행하는 데 중요한 역할을 합니다. 이미지 처리를 가속화하고 머신러닝 알고리즘을 처음부터 다시 구축하는 수고를 덜기 위해 반드시 필요한 요소입니다.
마스크 R-CNN
특히 인스턴스 이미지 세그멘테이션 방식에 널리 사용되는 아키텍처인 마스크 R-CNN은 각 오브젝트에 대한 바운딩 박스와 클래스 라벨의 신뢰 점수를 출력하는 영역 기반 컨볼루션 신경망인 패스터(Faster) R-CNN을 기반으로 하는 또 다른 아키텍처의 확장판입니다.
따라서 마스크 R-CNN을 제대로 이해하려면 그 기초부터 살펴보는 것이 가장 좋습니다. 패스터 R-CNN은 두 개의 단계로 구성됩니다.
1단계
패스터 R-CNN의 첫 번째 단계는 이미지 데이터를 한 번 분석하고 일련의 영역 제안을 제시하는 두 개의 네트워크로 구성됩니다. 이 제안은 피처 맵 내에서 오브젝트를 포함하는 단순한 영역을 포함합니다.
2단계
네트워크는 1단계에서 식별되어 제안된 영역에 대해 바운딩 박스와 오브젝트 클래스를 예측합니다. 각 영역의 크기는 다를 수 있지만 네트워크의 연결된 레이어에는 예측을 위해 고정 크기 벡터가 필요합니다. 고정 크기 영역은 ROI 풀링 또는 ROI 정렬 방법을 통해 결정됩니다.
패스터 R-CNN을 기본으로 삼는 마스크 R-CNN에는 인스턴스 수준의 오브젝트 이해로 연결되는 두 개의 단계가 있습니다. 첫 번째 단계는 영역 제안 네트워크(RPN)이고, 두 번째 단계는 오브젝트 감지 및 세그멘테이션 네트워크가 결합된 네트워크입니다.
하이브리드 태스크 캐스케이드(Hybrid Task Cascade)
하이브리드 태스크 캐스케이드(Hybrid Task Cascade, HTC)는 다양한 세그멘테이션 태스크의 성능을 향상시킬 수 있는 것으로 널리 알려진 아키텍처이지만, 과거에 연구 기반 테스트를 통해 캐스케이드 R-CNN과 마스크 R-CNN의 결합으로 얻을 수 있는 이점에 한계가 있다는 것을 확인했기 때문에 인스턴스 세그멘테이션을 위한 일반적으로 선택하는 아키텍처는 아니었습니다.
그러나 오브젝트 감지와 세그멘테이션 간의 상호 관계를 활용하는 보다 효과적이며 새로운 접근 방식이 등장했습니다. 한 연구에서는 하이브리드 태스크 캐스케이드라는 새로운 프레임워크를 제시하며 기존의 프레임워크와 구별되는 두 가지 중요한 측면을 짚어줍니다. 오브젝트 감지와 세그멘테이션의 계단식 개선을 개별적으로 수행하는 것이 아니라, 이 두 가지를 통합해 다단계 방식으로 처리하는 것입니다.
이 결합은 공간적 컨텍스트를 제공하여 어렵거나 어수선한 전경을 더 잘 구분할 수 있습니다. 기본적으로 HTC 프레임워크는 각 단계에서 상호 보완적인 기능을 통합하면서 지속적으로 판별 기능을 학습할 수 있습니다.
하향식 및 상향식 접근법
형태 기반 세그멘테이션의 주요한 목표는 이미지를 식별하고 배경 또는 이미지 장면에서 이미지를 분리하는 것입니다. 이를 위한 접근 방식 중의 하나가 바로 세그멘테이션입니다.
상향식 접근법이라고도 하는 이 방법은 먼저 이미지를 영역으로 분할한 다음 개별 오브젝트에 해당하는 이미지 영역을 식별하는 작업입니다. 이 방식은 연속성 원칙에 따라 이미지 영역의 회색조 또는 텍스처 균일성, 윤곽의 부드러움 및 연속성에 따라 이미지 픽셀을 모아 그룹화합니다.
상향식 접근법의 문제점은 오브젝트가 여러 개의 영역으로 분할될 가능성이 있으며, 이러한 영역 중 일부는 배경이나 장면을 오브젝트와 병합시켜버릴 수 있다는 것입니다. 이와 같은 문제점은 오브젝트 인식 기능이 세그멘테이션을 더 용이하게 할 수 있다는 것을 시사합니다. 보완적인 접근 방식인 하향식 세그멘테이션은 모양, 색상, 질감 등 객체에 대한 사전 지식을 활용하여 세그멘테이션 태스크를 수행합니다.
하향식 접근법의 단점은 대상 클래스에 있는 오브젝트의 모양과 생김새가 상당히 가변적이라는 점입니다. 또한 하향식 접근법으로 생성된 세그멘테이션의 결과물이 오브젝트 형태의 경계를 정확하게 정의하지 못할 수도 있습니다.
상향식 접근법과 하향식 접근법 결합시키기
학자들은 상향식과 하향식 세그멘테이션 간의 최적의 균형을 달성하기 위한 열망에서 출발해 두 가지 접근법을 통합하기에 이르렀습니다.
새로운 방법은 하향식 접근법의 클래스별 접근 방식을 빌려 오브젝트 클래스 내의 높은 가변성을 처리하고 세그멘테이션되지 않은 훈련 이미지에서 클래스표상을 자동으로 학습하게 하고, 상향식 접근 방식에서 동질적인 이미지 영역을 빠르게 감지할 수 있도록 두 접근법을 결합시켰습니다.
결합된 세그멘테이션은 클래스별 지식을 상향식 정보와 결합하는 여타 일반적인 접근 방식과는 달리 효과적입니다. 결합된 방식은 더 빠른 속도를 제공하여, 이미지 측정을 고려해 다양한 이미지의 크기를 하나의 크기로 변환합니다. 가장 좋은 점은 이 방법이 다양한 목적으로 사용하기에 적합하며 상향식과 하향식 알고리즘 모두에 적합하다는 것입니다.
이상적인 중간점을 찾은 솔루션
정리하자면, 오브젝트 감지는 디지털 이미지의 조잡한 품질을 정교하게 개선시키기 위해 반드시 필요한 단계입니다. 이미지 데이터 속 오브젝트에 대한 클래스를 제공할 뿐만 아니라 분류가 필요한 오브젝트의 위치를 바운딩 박스의 형태로 제공합니다.
시맨틱 세그멘테이션은 입력된 이미지의 모든 픽셀에 오브젝트 클래스 또는 영역에 따라 라벨을 할당함으로써 입력한 이미지의 모든 픽셀에 대한 라벨을 예측하여 더 세밀한 이미지 인퍼런스를 제공하는 것이 목표입니다. 이와 같은 정밀도를 더욱 높이기 위해 이 글의 핵심인 인스턴스 세그멘테이션이 등장합니다.
인스턴스 세그멘테이션은 동일한 오브젝트 클래스에 속하는 오브젝트의 고유한 인스턴스를 일치시키기 위해 서로 다른 라벨을 제공합니다. 따라서 인스턴스 세그먼테이션은 오브젝트 감지와 시맨틱 세그멘테이션 사이의 이상적인 중간점이자 해결책인 태스크라고 할 수 있을 것입니다.