가장 효과적으로 컴퓨터 비전 이미지 데이터를 어노테이션하는 방법

가장 효과적으로 컴퓨터 비전 이미지 데이터를 어노테이션하는 방법

컴퓨터 비전(CV) 데이터셋은 현대의 연구진과 개발자들에게 있어 가장 유용한 자원 중 하나입니다. 머신러닝 엔지니어들은 데이터셋의 다양한 이미지와 라벨을 통해 모델이 객체 탐지, 안면 인식, 또는 배포 환경에 필요한 다른 시각적인 기능들과 같은 고급 기능을 갖추도록 학습시킬 수 있습니다. 하지만 이런 데이터셋들의 고질적인 문제점은 정확히 어떤 이미지를 어떻게 어노테이션해야 가장 효과적인지 한 번에 파악하기 어렵다는 것입니다.

그래서 CV 데이터를 가장 잘 활용하려면 어노테이션 과정을 최대한 철저하고 정교하게 구성하는 것이 중요합니다. 이미지들은 각기 생김새나 내용물, 또는 이미지의 주제에 따라 배치(batch)나 개별 데이터셋별로 복잡한 정도가 모두 다르기 때문에 ML 업계에서도 이 문제로 오랫동안 골머리를 앓았습니다.

이미지 어노테이션 과정을 더 단순화하려면 모델이 적용될 산업이나 개발 목적에 따라 이미지의 어떤 영역이나 디테일에 초점을 맞추어야 하는지 파악하기 위한 전략이 필요합니다. 이번 포스팅에서는 컴퓨터 비전 이미지 데이터를 어노테이션하는 가장 효과적인 방법들을 소개합니다.

다양한 종류의 시각 데이터

세상은 자원의 보고입니다. 매 분 매 초마다 전 세계적으로 끝없는 양의 데이터가 지속적으로 생산되고 있습니다. 이 데이터는 다양한 형태로 생산되는데, 가장 흔히 볼 수 있는 종류는 말, 비디오, 글, 이미지입니다. 보통은 배포된 AI가 복잡하고 빠르게 변화하는 세상을 해석할 수 있도록 이 모든 데이터 형태를 복합적으로 사용해 학습시킵니다.

위에 언급한 데이터 타입 중 가장 눈에 띄는 타입은 이미지 데이터입니다. 대부분의 데이터 사이언티스트들은 알겠지만, 데이터 자체, 원시 데이터를 AI/ML 애플리케이션 프레임워크에 적용할 수 있는 수준까지 분류, 검수, 개선하려면 엄청난 노력이 필요합니다. 그러니 ML 프로젝트에 필요한 이미지나 다른 타입의 데이터를 더 효과적이고 효율적으로 어노테이션하려면 이미지 분류와 같은 컴퓨터 비전 기술이 필수라 해도 과언이 아닙니다.

데이터 처리 파이프라인의 각 단계별로 원하는 목적을 달성하기 위해서는 시각 데이터 타입에 따라 로컬라이제이션(localization), 세그멘테이션(segmentation), 객체 탐지 등 다양한 기술을 번갈아 사용해야 할 수도 있습니다. 어노테이션 방식이 다양하면 다양한 유즈 케이스에 맞추어 데이터를 준비하는 방식 역시 실험을 통해 다양화할 수 있는 여지가 늘어납니다. 서로 다른 모델은 서로 다른 데이터 타입을 필요로 할 수 있고, 그러면 데이터 역시 다소 다양하고 모델의 유즈 케이스에 특화되어 있어야 합니다. 그래야 결과적으로 모델이 신뢰할 수 있는 일관된 결과를 제공할 테니까요.

데이터가 학습 목표에 특화되어 있으면 안정적이고 정확도 높은 모델을 만들기 훨씬 쉬워집니다. 다만 모델을 학습시킬 데이터셋의 종류를 원하는 만큼 커스터마이징하려면 어노테이션 및 데이터 라벨링 과정을 아주 섬세하게 진행해야 합니다. 어느 툴이나 그렇겠지만, CV 어노테이션 기능을 담은 툴은 그 툴이 기획 의도대로, 학습된 대로 사용될 때 가장 효과적인 결과를 낼 테니까요.

이미지 어노테이션별 권장 방법

모든 CV 프로젝트의 궁극적인 목표는 실제 환경에 존재하는 현실의 객체들을 정확하게 탐지하는 DL 모델을 만드는 것입니다. 이러한 객체는 이미지나 비디오와 같은 형태의 입력 데이터로 인식됩니다. 그래서 인공위성을 구동시키는 모델이나 안전하게 도로를 주행하는 자율주행 자동차에 들어가는 모델 등 많은 모델들이 이미지 세그멘테이션 기술을 채용하고 있습니다.

이러한 기술들은 모델이 학습한 이미지를 가장 잘 해석할 수 있도록 도와주는 효과적인 CV 기술입니다. 각 모델에 가장 적합한 데이터를 가장 적절하게 표현해주는 방식이기 때문입니다. 이러한 목표를 달성하기 위해 이미지 세그멘테이션에도 세 개의 서로 다른 접근법이 생겼는데, 바로 시맨틱(semantic), 인스턴스(instance), 판옵틱(panoptic)입니다.


시맨틱

시맨틱 세그멘테이션은 어노테이터들이 유사한 객체 사이의 경계를 잘 식별할 수 있도록 도와줍니다. 이 방법을 적용하면 모델은 이미지 내의 서로 다른 객체를 별개의 클래스로 구분하게 되지만 그 이상은 하지 않습니다. 근본적으로 이 방법은 이미지와 내용물을 가장 일반적인 수준에서 분석할 때, 즉 더 자세한 디테일을 알 필요가 없을 경우에 사용되며, 더 자세한 내용이 필요할 경우 다른 세그멘테이션 방식을 채택하는 것이 바람직합니다.


인스턴스

인스턴스 세그멘테이션은 시맨틱과 유사하게 객체를 구분하고 라벨링하는 방식이지만, 더 깊고 개별적인 차원의 세밀한 분류를 할 수 있다는 점에서 차이가 있습니다. 이 방식은 자율주행 자동차나 의료 이미지와 같이 모델이 아주 세밀한 물체나 객체까지 식별할 수 있어야 하는 CV 기반 애플리케이션이나 산업에서 유용하게 사용됩니다.

판옵틱

판옵틱은 세그멘테이션 방식 중 가장 복잡한 방식입니다. 위에서 언급한 두 방식 각각이 제공하는 기능을 한 데 합한 더 심도 있는 라벨링 및 어노테이션 방식이기 때문입니다. 판옵틱 세그멘테이션에서는 이미지의 각 픽셀에 라벨을 할당해 시맨틱 클래스에 따라 픽셀을 구분하는 동시에 각 인스턴스를 구별합니다. 즉 라벨을 구성함에 있어 인스턴스 세그멘테이션보다도 더 높은 수준의 디테일을 필요로 하는 경우 채택하는 방식이며, 각 픽셀에 인스턴스에 해당하는 고유한 라벨을 할당해 어노테이션 시 중복이 발생하지 않도록 합니다.

세그멘테이션 방식 선택하기

여러 이미지 세그멘테이션 방식 중 하나를 선택해야 한다면 각 프로젝트의 파마리터와 필요한 디테일의 수준을 보고 판단하면 됩니다. 모델 개발 기준을 살펴보고, 각 세그멘테이션 타입을 어떻게 활용해야 각각의 요구조건들을 충족시킬 수 있는지를 살펴 보아야 합니다.

모델 학습의 기초가 되는 대량의 일반적인 정보를 담은 기본 데이터셋을 어노테이션하고 싶다면 시맨틱이 가장 좋은 방법입니다. 데이터셋의 내용물을 조금 더 자세히 학습시킬 필요가 있다면 인스턴스가 더 좋은 방법일 것이고, 이보다 더 많은 디테일이 필요하다면 판옵틱이 더 좋겠죠. 객체 탐지부터 이미지의 배경, 장면 등 각 데이터셋의 모든 것을 면밀히 해석하고 종합적인 어노테이션 보고서까지 필요하다면 말입니다.

바운딩 박스 어노테이션 사용하기

이미지 데이터셋의 객체를 매뉴얼 라벨링할 때 가장 먼저 떠오르는 것이 바운딩 박스일 텐데요. 워낙 사용이 빠르고 간단해 많은 사람들이 애용하는 어노테이션 타입입니다. 하지만 객체를 라벨링할 때 항상 정사각형 혹은 직사각형의 모양밖에 사용할 수 없기 때문에 태생적인 한계가 있습니다.

모델은 현실의 상황과 시나리오에 대한 훈련을 받아야 하기 때문에 바운딩 박스 어노테이션만으로 모델이 다양한 시나리오에서 객체를 올바르게 해석할 수 있도록 하기에는 한계가 있습니다. 현실에서는 모양이 기하학적인 객체보다 불규칙한 객체가 더 흔하니까요.

타이트한 어노테이션

학습 정확도를 높이려면 바운딩 박스를 그릴 때 최대한 정교하고 타이트하게 객체를 감싸도록 해야 합니다. 다시 말해 박스의 모서리가 대상이 되는 객체와 최대한 가까이 붙어야 합니다. 부정확하거나 일관되지 않은 바운딩 박스 라벨링은 이후 모델 예측이나 정답 데이터 구축에 있어 문제를 야기하거나 모델 학습에 지장을 초래할 수 있습니다.

기울이기 및 회전하기

작업자들이 이미지 데이터의 다양한 객체를 적절하게 어노테이션하려면 바운딩 박스 툴도 그에 맞게 진화해야 합니다. 실제 상황에서는 어노테이션을 해야 하는 객체가 기울어져 있거나 회전해 있을 수도 있기 때문에 기울이기 및 회전하기 기능이 반드시 필요합니다.

겹침 최소화

일부 이미지, 특히 객체가 많거나 뭉쳐 있는 이미지에서는 객체 자체가 서로 겹쳐 있어 작업자들 역시 어쩔 수 없이 어노테이션을 겹치게 그릴 수 밖에 없는 경우가 있습니다. 어노테이션 겹침 현상이 너무 많이 발생하게 되면 모델이 이미지 내의 서로 다른 요소를 구분하기 어려워한다는 것은 익히 알려진 사실입니다. 이런 경우에는 객체를 구분 짓고 겹치는 인스턴스를 최소화하기 위해 바운딩 박스 뿐 아니라 폴리곤 등의 부가적인 어노테이션 방식을 사용하는 것도 좋은 해결책이 될 수 있습니다.

폴리곤 어노테이션 사용하기

폴리곤 어노테이션은 바운딩 박스 기술을 변형한 기술이라고 볼 수 있습니다. 폴리곤 어노테이션은 평범한 바운딩 박스의 정사각형, 직사각형 형태 뿐 아니라 복잡한 모양까지 구현해 객체의 구조를 완전하고 정확하게 파악하고 어노테이션할 수 있도록 도와줍니다.

더하기 및 빼기

폴리곤 어노테이션은 바운딩 박스보다 일반적으로 더 정확한 것은 사실이지만 동시에 여러 객체들을 포착하다보니 겹치는 부분이 많다는 것이 대표적인 단점입니다. 그래서 어노테이션 하면서 폴리곤 “브랜치(branch)”를 더하거나 뺄 수 있는 기능이 있어야 이런 겹침 현상을 최대한 방지할 수 있습니다. 아래 이미지에서는 슈퍼브 플랫폼에서 제공하는 합치기와 빼기 기능을 어떻게 사용하는지 확인할 수 있습니다.

폴리라인 어노테이션 사용하기

어노테이터가 이미지 데이터셋의 일반적인 모양과는 다른 독특한 형태의 객체를 라벨링할 때 유용하게 사용할 수 있는 방식이 폴리라인 어노테이션입니다. 폴리라인은 바운딩 박스의 고정된 형태로 인해 발생하는 라벨링 공백을 훌륭하게 메꿔줄 수 있는 도구로, 다른 어노테이션 방법과 함께 사용했을 때 진가를 발휘합니다.

라인 벗어나지 않기

위에서 언급했듯 세상은 네모와 선만으로 이루어져있지 않기에, 바운딩 박스와 폴리라인만으로 모든 이미지를 어노테이션하는 것은 그다지 좋은 방법이 아닙니다. 그래서 세 번째 옵션을 가지고 있는 것이 좋은데요, 이 세 번째 옵션의 조건을 충족하는 것이 바로 스플라인(spline)입니다. 기본적으로 일직선 형태의 구조가 변형되었을 경우 조작을 통해 변형된 형태의 외곽선을 쉽게 딸 수 있도록 하는 폴리라인 어노테이션입니다. 물론 슈퍼브 플랫폼에서 지원되는 어노테이션 타입입니다.

키포인트 어노테이션 사용하기

키포인트 어노테이션 기술은 얼굴의 특징이나 움직임을 탐지하는 CV 기반 애플리케이션에 많이 활용되는 것으로 유명합니다. 키포인트 어노테이션은 “점,” 즉 “키포인트”를 사용해 얼굴을 측정하고 표정이나 얼굴의 변화 등을 의미하는 특징을 판별해 사람의 감정을 읽는 애플리케이션을 만들게 도와줍니다.

구조에 집중

키포인트는 사람 얼굴이나 신체 부위와 같이 이미지 데이터셋의 다양한 형태들이 동일한 구조적인 특성을 공유하는 경우 사용하기에 가장 적절합니다. 이런 형태에 집중해서 키포인트로 큰 형태 안의 작은 “핵심” 특징의 뼈대를 그리면 되는데, 여기서 핵심 특징은 눈이 될 수도 있고, 얼굴 전체를 라벨링한다고 했을 때는 입의 외곽선이 될 수도 있습니다.

가려진 부분 표시

가끔은 키포인트를 사용해서 특정 포인트들을 어노테이션하기 어려운 경우도 있습니다. 이런 경우에는 이런 포인트를 표기하기 어렵거나 어노테이션을 완성하기 어렵더라도 각 키포인트 자체는 반드시 배치해야 한다는 점을 잊어서는 안 됩니다. 그래야 모델이 그 포인트가 시각적으로 보이느냐와 무관하게 어느 정도 맥락을 가지고 포인트의 예상 위치를 예측해 완전한 어노테이션을 그릴 수 있습니다.

슈퍼브 플랫폼에서는 이미 이런 기능을 제공하고 있는데요, 키포인트 어노테이션을 할 경우 작업자들이 각 키포인트를 “보임,” “보이지 않음”으로 표시해 점을 찍을 수 있습니다. 보이지 않는다고 해서 포인트를 아예 찍지 않거나 어노테이션을 완전하지 않은 형태로 내버려두는 것보다 훨씬 좋은 모델 성능을 담보할 수 있는 방법입니다.

정밀하고 간편한 이미지 어노테이션

이미지 어노테이션 전략은 어떤 ML/CV 모델 이니셔티브를 진행하냐에 따라 어느 정도 달라질 수 있습니다. 하지만 모든 팀의 궁극적인 목적은 모두 동일합니다. 바로 가장 정확한 AI 모델을 만드는 것이죠. 그리고 그러기 위해서는 예전에는 시장에 존재하지 않았지만 이제는 사용할 수 있는 최고의 도구와 자원이 무엇이 있는지를 정확히 파악할 수 있어야 합니다.

이러한 유익한 도구와 자원 중 빠질 수 없는 것이 바로 변화하는 모델 니즈에 맞게 커스터마이징할 수 있는 이미지 세그멘테이션 및 라벨링 도구입니다. 프로젝트가 바뀌면 세그멘테이션 타입도 바뀌어야 하고, 또 지도학습 알고리즘의 기반이 되는 엣지 케이스나 정답 데이터셋 등을 라벨링할 때는 그 목적에 맞게 정밀함의 수준도 달라져야 합니다.

슈퍼브 플랫폼은 사용자들이 이런 기본적인 데이터 라벨링 작업의 대부분을 자동화해 반복적이고 오랜 시간이 걸리는 어노테이션 작업을 시스템에 위탁하고 대신 그만큼의 시간과 노력을 더 복잡하고 유의미한 엣지 케이스 데이터셋에 투자해 결과적으로 모델 정확도 및 전반적인 성능을 한 단계 업그레이드시킬 수 있게 도와줍니다.