컴퓨터 비전 프로젝트를 위한 데이터 라벨링 살펴보기
컴퓨터 비전 프로젝트에서의 데이터 라벨링을 심층적으로 다루는 종합적인 내용을 확인하고, 시각적 데이터에 라벨을 지정하는 방법과 그 중요성을 알아봅니다.

인공지능(AI)은 기계에 인간과 유사한 능력을 부여하는 데 중점을 두며, 이를 수행하는 가장 일반적인 방법 중 하나가 지도 학습입니다. 즉, 라벨이 지정된 예시를 보여 주어 AI 모델을 학습시키면 패턴을 통해 학습하고 작업 수행 능력을 향상하는 데 도움이 됩니다. 이는 인간이 경험을 통해 학습하는 방식과 매우 유사합니다. 그렇다면 이러한 라벨이 지정된 예시는 어떻게 만들어질까요?
데이터 어노테이션은 머신 러닝 알고리즘이 데이터를 이해할 수 있도록 데이터에 라벨이나 태그를 지정하는 작업입니다. 컴퓨터 비전에서는 이미지나 동영상에 표시를 추가하여 객체, 동작 또는 장면을 정확하게 인식하고 분류하도록 합니다. AI 모델의 성능은 학습에 사용하는 라벨링 데이터의 품질에 크게 좌우되므로 데이터 라벨링은 매우 중요합니다.
연구에 따르면 데이터를 수집하고 집계하는 과정부터 정제 및 라벨링에 이르기까지 AI 프로젝트 시간의 80% 이상이 데이터 관리에 사용됩니다. 이는 AI 모델 개발에서 데이터 어노테이션이 얼마나 중요한지를 보여 줍니다. 고품질 어노테이션 데이터를 사용하면 AI 모델이 실제 환경에서 얼굴 인식 및 객체 감지와 같은 작업을 더 정확하고 안정적으로 수행할 수 있습니다.
데이터 어노테이션이 필요한 이유#
데이터 어노테이션은 컴퓨터 비전 모델의 성능을 좌우하는 기반입니다. 라벨이 지정된 데이터는 모델이 학습하고 예측하는 데 사용하는 정답 데이터입니다. 정답 데이터가 중요한 이유는 모델이 이해하려는 실제 세계를 나타내기 때문입니다. 이러한 신뢰할 수 있는 기준이 없다면 AI 모델은 나침반 없이 항해하는 배와 같을 것입니다.

그림 1. 정답 데이터와 예측 비교.
정확한 라벨링은 이러한 모델이 보고 있는 것을 이해하도록 돕고 더 나은 의사 결정으로 이어집니다. 데이터에 잘못 라벨이 지정되었거나 일관성이 없으면 모델은 올바른 예측과 결정을 내리는 데 어려움을 겪습니다. 이는 잘못된 교과서로 학습하는 학생과 같습니다. 어노테이션 데이터가 있으면 모델은 이미지와 동영상에서 객체의 이미지 분류, 인스턴스 세그멘테이션, 포즈 추정과 같은 작업을 학습할 수 있습니다.
데이터셋을 위한 유용한 리소스#
새 데이터셋을 만들고 이미지와 동영상에 꼼꼼하게 라벨을 지정하기 전에, 프로젝트에 기존 데이터셋을 사용할 수 있는지 확인하는 것이 좋습니다. 고품질 데이터셋에 무료로 액세스할 수 있는 훌륭한 오픈 소스 저장소가 여러 곳 있습니다. 가장 인기 있는 저장소로는 다음이 있습니다.
- ImageNet: 이미지 분류 모델 학습에 일반적으로 사용됩니다.
- COCO: 객체 감지, 세그멘테이션 및 이미지 캡셔닝을 위해 설계된 데이터셋입니다.
- PASCAL VOC: 객체 감지 및 세그멘테이션 작업을 지원합니다.

그림 2. COCO 데이터셋의 데이터 예시.
데이터셋을 선택할 때는 프로젝트와의 적합성, 데이터셋의 규모, 다양성, 라벨 품질과 같은 요소를 고려해야 합니다. 또한 법적 문제를 피하려면 데이터셋의 라이선스 약관을 검토하고, 데이터가 워크플로와 도구에 적합한 형식으로 구성되어 있는지 확인해야 합니다.
기존 데이터셋이 요구 사항에 완전히 부합하지 않는다면 사용자 지정 데이터셋을 만드는 것이 좋은 방법입니다. 프로젝트의 요구 사항에 따라 웹캠, 드론 또는 스마트폰과 같은 도구를 사용해 이미지를 수집할 수 있습니다. 이상적으로 사용자 지정 데이터셋은 다양하고 균형이 잡혀 있으며 해결하려는 문제를 실제로 대표해야 합니다. 이를 위해 다양한 조명 조건, 여러 각도, 여러 환경에서 이미지를 캡처해야 할 수 있습니다.
수집할 수 있는 이미지나 동영상의 수가 적다면 데이터 증강이 유용한 기법입니다. 기존 이미지에 회전, 뒤집기 또는 색상 조정과 같은 변환을 적용하여 데이터셋을 확장합니다. 이를 통해 데이터셋의 규모가 커지고 모델의 견고성이 향상되어 데이터의 변형을 더 잘 처리할 수 있습니다. 오픈 소스 데이터셋, 사용자 지정 데이터셋, 증강 데이터를 조합하면 컴퓨터 비전 모델의 성능을 크게 향상할 수 있습니다.
이미지 어노테이션 기법의 유형#
이미지에 어노테이션을 시작하기 전에 다양한 어노테이션 유형을 숙지하는 것이 중요합니다. 이를 통해 프로젝트에 적합한 유형을 선택할 수 있습니다. 이제 주요 어노테이션 유형을 살펴보겠습니다.
바운딩 박스#
바운딩 박스는 컴퓨터 비전에서 가장 일반적인 어노테이션 유형입니다. 이미지에서 객체의 위치를 표시하는 데 사용하는 직사각형 상자입니다. 이러한 상자는 모서리의 좌표로 정의되며 AI 모델이 객체를 식별하고 위치를 찾는 데 도움을 줍니다. 바운딩 박스는 주로 객체 감지에 사용됩니다.

그림 3. 바운딩 박스 예시.
세그멘테이션 마스크#
때로는 객체 주위에 바운딩 박스만 그리는 것보다 더 정확하게 객체를 감지해야 합니다. 이미지에서 객체의 경계에 관심이 있을 수도 있습니다. 이 경우 세그멘테이션 마스크를 사용하면 복잡한 객체의 윤곽을 표시할 수 있습니다. 세그멘테이션 마스크는 픽셀 수준에서 더 상세하게 표현합니다.
이러한 마스크는 시맨틱 세그멘테이션과 인스턴스 세그멘테이션에 사용할 수 있습니다. 시맨틱 세그멘테이션은 보행자, 자동차, 도로 또는 인도처럼 이미지의 각 픽셀을 해당 픽셀이 나타내는 객체나 영역에 따라 라벨링하는 작업입니다. 반면 인스턴스 세그멘테이션은 한 단계 더 나아가 각 객체를 개별적으로 식별하고 분리합니다. 예를 들어 이미지 속 자동차가 모두 같은 유형이더라도 각각의 자동차를 구분합니다.

그림 4. 시맨틱 세그멘테이션(왼쪽) 및 인스턴스 세그멘테이션 마스크(오른쪽) 예시.
3D 직육면체#
3D 직육면체는 바운딩 박스와 유사하지만, 깊이 정보를 추가하고 객체를 3D로 표현한다는 점에서 고유합니다. 이 추가 정보로 시스템은 3D 공간에서 객체의 형태, 부피 및 위치를 이해할 수 있습니다. 3D 직육면체는 자율주행차에서 차량과 객체 사이의 거리를 측정하는 데 자주 사용됩니다.

그림 5. 3D 직육면체 예시.
키포인트 및 랜드마크#
또 다른 흥미로운 어노테이션 유형은 키포인트입니다. 객체에서 눈, 코 또는 관절과 같은 특정 지점을 표시합니다. 랜드마크는 이러한 지점을 연결하여 얼굴이나 신체 포즈처럼 더 복잡한 형태의 구조와 움직임을 포착하는 한 단계 발전된 방식입니다. 이러한 어노테이션 유형은 얼굴 인식, 모션 캡처, 증강 현실과 같은 애플리케이션에 사용됩니다. 또한 제스처 인식이나 스포츠 경기력 분석과 같은 작업에서 AI 모델의 정확도를 향상합니다.

그림 6. 키포인트 예시.
LabelImg를 사용하여 데이터를 어노테이션하는 방법#
이제 다양한 어노테이션 유형을 살펴보았으므로, 널리 사용되는 도구인 LabelImg를 사용하여 이미지에 어노테이션을 지정하는 방법을 알아보겠습니다. LabelImg는 이미지 어노테이션을 간편하게 수행할 수 있는 오픈 소스 도구이며, YOLO 형식의 데이터셋을 만드는 데 사용할 수 있습니다. 소규모 Ultralytics YOLOv8 프로젝트를 진행하는 초보자에게 적합한 도구입니다.
LabelImg 설정은 간단합니다. 먼저 컴퓨터에 Python 3이 설치되어 있는지 확인합니다. 그런 다음 간단한 명령으로 LabelImg를 설치할 수 있습니다.
pip3 install labelImg설치가 완료되면 다음 명령을 사용하여 도구를 시작할 수 있습니다.
labelImgLabelImg는 Windows, macOS, Linux를 비롯한 여러 플랫폼에서 작동합니다. 설치 중 문제가 발생하면 공식 LabelImg 저장소에서 더 자세한 지침을 확인할 수 있습니다.

그림 7. 이미지 어노테이션에 LabelImg 사용.
도구를 실행한 후 다음의 간단한 단계에 따라 이미지 라벨링을 시작합니다.
- 클래스 설정: 먼저 “predefined_classes.txt”라는 파일에 어노테이션을 지정할 클래스(카테고리) 목록을 정의합니다. 이 파일을 통해 소프트웨어는 이미지에서 어떤 객체에 라벨을 지정할지 알 수 있습니다.
- YOLO 형식으로 전환: 기본적으로 LabelImg는 PASCAL VOC 형식을 사용하지만, YOLO를 사용한다면 형식을 전환해야 합니다. 도구 모음에서 “PascalVOC” 버튼을 클릭하면 YOLO로 전환할 수 있습니다.
- 어노테이션 시작: "Open" 또는 "OpenDIR" 옵션을 사용하여 이미지를 불러옵니다. 그런 다음 어노테이션을 지정할 객체 주위에 바운딩 박스를 그리고 올바른 클래스 라벨을 할당합니다. 각 이미지에 라벨을 지정한 후 작업을 저장합니다. LabelImg는 이미지와 동일한 이름의 텍스트 파일을 만들고 그 안에 YOLO 어노테이션을 저장합니다.
- 저장 및 검토: 어노테이션은 YOLO 형식의 .txt 파일에 저장됩니다. 소프트웨어는 모든 클래스 이름을 나열하는 “classes.txt” 파일도 저장합니다.
효율적인 데이터 라벨링 전략#
데이터 라벨링 프로세스를 원활하게 진행하려면 몇 가지 핵심 전략을 염두에 두어야 합니다. 예를 들어 명확한 어노테이션 가이드라인이 중요합니다. 가이드라인이 없으면 어노테이터마다 작업을 다르게 해석할 수 있습니다.
이미지에서 새를 바운딩 박스로 어노테이션하는 작업을 예로 들어 보겠습니다. 한 어노테이터는 새 전체에 라벨을 지정할 수 있지만, 다른 어노테이터는 머리나 날개에만 라벨을 지정할 수 있습니다. 이러한 불일치는 학습 중 모델을 혼란스럽게 만들 수 있습니다. "날개와 꼬리를 포함한 새 전체에 라벨을 지정합니다"와 같이 명확한 정의를 제공하고 까다로운 사례에 대한 예시와 지침을 함께 제시하면 데이터에 정확하고 일관되게 태그를 지정할 수 있습니다.
높은 품질 기준을 유지하려면 정기적인 품질 검사도 중요합니다. 기준을 설정하고 특정 메트릭을 사용하여 작업을 검토하면 데이터의 정확성을 유지하고 지속적인 피드백을 통해 프로세스를 개선할 수 있습니다.
데이터 라벨링 요약#
데이터 어노테이션은 컴퓨터 비전 모델에 상당한 영향을 미칠 수 있는 간단한 개념입니다. LabelImg와 같은 도구로 이미지에 어노테이션을 지정하거나 오픈 소스 데이터셋으로 모델을 학습시키는 경우 모두 데이터 라벨링을 이해하는 것이 중요합니다. 데이터 라벨링 전략은 전체 프로세스를 간소화하고 효율성을 높이는 데 도움이 됩니다. 시간을 들여 어노테이션 방식을 개선하면 더 우수하고 안정적인 AI 결과를 얻을 수 있습니다.
계속해서 탐색하고 역량을 확장해 보세요! 커뮤니티와 소통하며 AI에 대해 계속 학습하시기 바랍니다! GitHub 저장소를 방문하여 제조 및 의료와 같은 산업에서 AI를 활용해 혁신적인 솔루션을 만드는 방법을 확인해 보세요. 🚀









