컴퓨터 비전 프로젝트를 위한 데이터 라벨링 탐색
컴퓨터 비전 프로젝트와 관련된 데이터 라벨링에 대한 심층 분석을 읽고, 시각적 데이터에 라벨을 지정하는 방법과 그 중요성에 대해 알아보십시오.

인공지능(AI)은 기계에 인간과 유사한 능력을 부여하는 데 초점을 맞추며, 이를 수행하는 가장 인기 있는 방법 중 하나는 supervised learning을 통하는 것입니다. 즉, AI 모델에 레이블이 지정된 예시를 보여주어 학습시키는 것은 패턴을 학습하고 작업 성능을 향상하는 데 도움이 됩니다. 이는 인간이 경험을 통해 학습하는 방식과 매우 유사합니다. 그렇다면 이러한 레이블이 지정된 예시는 어떻게 생성될까요?
Data annotation은 머신러닝 알고리즘이 데이터를 이해할 수 있도록 데이터를 레이블링하거나 태깅하는 작업을 포함합니다. computer vision에서 이는 객체, 작업 또는 장면을 정확히 인식하고 분류하기 위해 이미지나 비디오에 표시를 하는 것을 의미합니다. AI 모델의 성공 여부는 모델이 학습하는 데 사용되는 레이블된 데이터의 품질에 크게 좌우되기 때문에 데이터 레이블링은 매우 중요합니다.
연구에 따르면 80% of AI project time 이상이 데이터 수집 및 집부터 cleaning and labeling에 이르기까지 데이터를 관리하는 데 소요된다고 합니다. 이는 AI 모델 개발에서 데이터 어노테이션이 얼마나 중요한지 보여줍니다. 고품질의 어노테이션된 데이터를 사용하면 AI 모델이 실제 상황에서 facial recognition 및 object detection과 같은 작업을 더 높은 정확도와 신뢰성으로 수행할 수 있습니다.
데이터 어노테이션이 필요한 이유#
computer vision model의 성능은 데이터 어노테이션을 기반으로 합니다. 레이블된 데이터는 모델이 학습하고 예측을 수행하는 데 사용하는 그라운드 트루스(ground truth)입니다. 그라운드 트루스 데이터는 모델이 이해하고자 하는 현실 세계를 나타내기 때문에 매우 중요합니다. 이러한 신뢰할 수 있는 기준선이 없다면 AI 모델은 나침반 없이 항해하는 배와 같을 것입니다.

Fig 1. 그라운드 트루스 대 예측.
정확한 레이블링은 이러한 models이 자신이 보고 있는 것을 이해하고 더 나은 의사결정을 내릴 수 있도록 돕습니다. 데이터가 잘못 레이블링되었거나 일관성이 없으면, 학생들이 잘못된 교과서로 공부할 때처럼 모델은 올바른 예측과 결정을 내리는 데 어려움을 겪게 됩니다. 어노테이션된 덕분에 모델은 이미지와 비디오 내 객체의 image classification, instance segmentation, pose estimation과 같은 작업을 학습할 수 있습니다.
데이터셋을 위한 최고의 리소스#
완전히 새로운 데이터셋을 만들고 이미지와 비디오를 꼼꼼하게 레이블링하기 전에, 프로젝트에 pre-existing datasets을 사용할 수 있는지 확인해 보는 것이 좋습니다. 고품질 데이터셋을 무료로 이용할 수 있는 훌륭한 오픈소스 리포지토리가 몇 가지 있습니다. 가장 인기 있는 리포지토리 중 일부는 다음과 같습니다.
- ImageNet: 이미지 분류 모델을 학습하는 데 흔히 사용됩니다.
- COCO: 이 데이터셋은 객체 검출, 세분화, 이미지 캡셔닝을 위해 설계되었습니다.
- PASCAL VOC: 객체 검출 및 세분화 작업을 지원합니다.

Fig 2. COCO 데이터셋의 데이터 예시.
데이터셋을 선택할 때는 프로젝트와의 적합성, 데이터셋의 크기, 다양성, 레이블의 품질과 같은 요소를 고려하는 것이 중요합니다. 또한 legal적 문제를 방지하기 위해 데이터셋의 licensing terms을 검토하고, 데이터가 워크플로우와 도구에 적합한 형식인지 확인해야 합니다.
기존 데이터셋이 요구 사항에 맞지 않는 경우 맞춤형 데이터셋을 생성하는 것도 좋은 방법입니다. 프로젝트의 필요에 따라 웹캠, 드론 또는 스마트폰과 같은 도구를 사용하여 이미지를 수집할 수 있습니다. 이상적으로는 맞춤형 데이터셋이 다양하고 균형 잡혀 있으며 해결하려는 문제를 진정으로 대표해야 합니다. 이를 위해 다양한 조명 조건, 여러 각도, 다양한 환경에서 이미지를 캡처해야 할 수 있습니다.
수집할 수 있는 이미지나 비디오의 수가 적은 경우 data augmentation이 유용한 기법입니다. 이는 기존 이미지에 회전, 뒤집기 또는 색상 조정 같은 변환을 적용하여 데이터셋을 확장하는 것을 의미합니다. 이는 데이터셋의 크기를 늘리고 모델을 더욱 견고하게 만들어 데이터의 변동성에 더 잘 대응할 수 있게 합니다. 오픈소스 데이터셋, 커스텀 데이터셋, 증강 데이터를 조합하여 사용하면 컴퓨터 vision 모델의 성능을 크게 향상할 수 있습니다.
이미지 어노테이션 기술의 종류#
이미지 어노테이션을 시작하기 전에 다양한 유형의 어노테이션에 익숙해지는 것이 중요합니다. 이는 프로젝트에 적합한 유형을 선택하는 데 도움이 됩니다. 다음으로, 주요 어노테이션 유형 몇 가지를 살펴보겠습니다.
바운딩 박스#
Bounding boxes는 컴퓨터 비전에서 가장 흔히 사용되는 어노테이션 유형입니다. 이는 이미지에서 객체의 위치를 표시하는 데 사용되는 직사각형 상자입니다. 이 상자들은 모서리의 좌표로 정의되며 AI 모델이 객체를 식별하고 찾는 데 도움을 줍니다. 바운딩 박스는 주로 object detection에 사용됩니다.

Fig 3. 바운딩 박스 예시.
세그멘테이션 마스크#
때로는 단순히 객체 주위에 그려진 바운딩 박스보다 더 정확하게 객체를 탐지해야 할 때가 있습니다. 이미지 내 객체의 경계선에 관심이 있을 수 있는데, 이 경우 세그멘테이션 마스크를 통해 복잡한 객체의 윤곽을 따낼 수 있습니다. 세그멘테이션 마스크는 더 상세한 픽셀 수준의 표현 방식입니다.
이러한 마스크는 semantic segmentation 및 instance segmentation에 사용할 수 있습니다. 시맨틱 세분화는 보행자, 자동차, 도로, 보도 등 이미지의 모든 픽셀을 그것이 나타내는 객체나 영역에 따라 레이블링하는 것입니다. 그러나 인스턴스 세분화는 한 단계 더 나아가 이미지 내의 각 자동차가 모두 같은 종류이더라도 각각을 구별하는 등 각 객체를 개별적으로 식별하고 분리합니다.

Fig 4. 시맨틱 세분화(왼쪽) 및 인스턴스 세분화 마스크(오른쪽) 예시.
3D 큐보이드(3D Cuboids)#
3D 큐보이드는 바운딩 박스와 유사하지만, 3D 큐보이드는 깊이 정보를 추가하여 객체의 3D 표현을 제공한다는 점에서 독특합니다. 이 추가 정보를 통해 시스템은 3D 공간에서 객체의 형태, 부피, 위치를 이해할 수 있습니다. 3D 큐보이드는 차량에서 객체까지의 distance를 측정하기 위해 self-driving cars에서 자주 사용됩니다.

Fig 5. 3D 큐보이드 예시.
키포인트 및 랜드마크#
또 다른 흥미로운 어노테이션 유형은 키포인트로, 눈, 코, 관절 같은 특정 지점이 객체에 표시됩니다. 랜드마크는 이러한 지점들을 연결하여 얼굴이나 신체 포즈와 같은 더 복잡한 형태의 구조와 움직임을 캡처함으로써 이를 한 단계 더 발전시킵니다. 이러한 유형의 어노테이션은 안면 인식, 모션 캡처, 증강 현실 같은 애플리케이션에 사용됩니다. 또한 제스처 인식이나 analyzing sports performance 같은 작업에서 AI 모델의 정확도를 향상합니다.

Fig 6. 키포인트 예시.
LabelImg를 사용하여 데이터를 어노테이션하는 방법#
다양한 어노테이션 유형에 대해 살펴보았으니, 이제 널리 사용되는 도구인 LabelImg를 사용하여 이미지에 어노테이션을 지정하는 방법을 알아보겠습니다. LabelImg는 이미지 어노테이션을 간단하게 만들어 주는 오픈소스 도구이며, YOLO (You Only Look Once) 형식의 데이터셋을 만드는 데 사용할 수 있습니다. 작은 Ultralytics YOLOv8 projects를 작업하는 초보자에게 훌륭한 선택입니다.
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에 대해 계속 학습할 수 있도록 저희 community와 소통하세요! GitHub repository를 확인하여 manufacturing 및 healthcare와 같은 산업에서 혁신적인 솔루션을 만들기 위해 AI를 어떻게 활용하고 있는지 알아보세요. 🚀






