외부 모델 학습을 위한 데이터셋 구축 💡Tip : 업로드부터 커스텀 오토라벨링까지 한 번에 끝내기

외부 모델 학습을 위한 데이터셋 구축 💡Tip : 업로드부터 커스텀 오토라벨링까지 한 번에 끝내기

AI 모델 개발 과정에서 가장 큰 어려움은 어디서 시작해야 하고 어떤 순서로 진행해야 할지 결정하는 데 있습니다. 특히, 초기 단계인 데이터 구축 단계에서는 대량의 데이터를 효율적으로 관리하고 라벨링 하는 작업이 필수적이며, 이는 막대한 시간과 비용이 소요되는 과정입니다. 데이터 관리와 라벨링은 AI 모델 학습의 핵심 요소로, 이 과정의 효율성과 정확성은 최종 모델 성능에 직결되기 때문입니다.

이러한 상황과 더불어, 클라우드 스토리지를 사용할 수 없는 환경에서 AI 모델 학습을 위한 데이터 관리는 더욱 복잡할 수 있습니다. 이번 레시피에서는 CCTV 보안 및 안전 분야의 데이터를 예시로 활용하여, 효과적인 데이터 관리와 AI 모델 학습 방법을 소개합니다. 데이터 업로드, 데이터 선별, 오토라벨링, 라벨 검수, 그리고 최종 모델 학습을 위한 데이터셋 구축까지의 전체 워크플로우를 이해하고 적용할 수 있도록 돕고자 합니다. 또한 단계별로 작업의 효율성과 정확성을 높이기 위한 다양한 팁과 자동화 도구들을 함께 제시합니다.

레시피 케이스 2. 오토라벨링 적용과 검수를 통한 라벨링 데이터 품질 향상 방법

🤓 이 레시피를 통해 :

  • 클라우드 스토리지를 사용하지 않고 SDK로 데이터를 업로드하는 방법
  • 자동화 도구를 활용한 효율적인 라벨링 워크플로우 구축 방법
  • 데이터 품질 관리를 위한 체계적인 검수 프로세스
  • 모델 학습을 위한 최적의 데이터셋 구성 방법

을 공유합니다. 복잡해 보이는 AI 모델 개발 과정을 체계적이고 효율적으로 진행할 수 있도록, 실제 프로젝트에서 바로 적용할 수 있는 단계별 가이드를 제공합니다.

데이터셋 구축을 위한 주요 워크플로우

1. SDK를 통해 슈퍼브 큐레이트에 데이터 업로드하기

  • 먼저, 슈퍼브 큐레이트에 업로드할 데이터를 준비합니다. 이 레시피에서는 CCTV 보안 및 안전 데이터, 예를 들어 건설 현장의 위험 상태를 판단하기 위한 CCTV 데이터를 사용합니다. 수집된 데이터는 약 20만 장의 이미지로, 건설 현장에서 사용되는 기기, 트럭, 작업자, 소화기 등이 포함되어 있습니다.
  • 데이터가 준비되었다면 큐레이트의 SDK를 사용하여 업로드를 진행합니다. 큐레이트 SDK를 처음 사용하신다면 superb-ai-curate SDK 설치 후 데이터셋 생성을 통해 이미지를 업로드합니다.
  • 데이터셋 생성 후 이미지를 업로드하는 단계에서 데이터의 해상도와 객체 다양성을 충분히 고려하는 것이 중요합니다.
💡
이미지 데이터를 업로드하는 과정에서 데이터의 해상도가 너무 낮지 않도록 하고, 식별하려는 객체의 다양한 데이터를 충분히 준비하는 것이 중요합니다. 이는 데이터 품질을 향상시켜 우수한 성능의 모델을 개발하는 데 핵심적인 요소이기 때문입니다. 슈퍼브 플랫폼은 다양한 해상도의 이미지 데이터를 지원하지만, 예외적으로 4K 이상의 해상도를 가진 데이터는 처리에 어려움이 있을 수 있습니다. 높은 해상도의 데이터를 처리하고 싶으시다면 suppot@superb-ai.com으로 문의해주시기 바랍니다.

SDK 업로드 이외에 다른 업로드 방법이 궁금하시다면 여기 문서에서 확인하실 수 있습니다. 👉 데이터 업로드하기

2. 오토 큐레이트(Auto-Curate)를 통한 데이터 선별

데이터를 무작위로 대량 선별하여 라벨링 하는 것은 모델 성능 저하와 비효율적인 시간 소모로 이어질 수 있습니다. 슈퍼브 큐레이트의 오토 큐레이트(Auto-Curate) 기능에서 라벨링 할 데이터 선별하기(what to label) 옵션을 활용하면 라벨링 할 데이터를 효과적으로 선별하여, 라벨링 작업의 효율성을 높일 수 있습니다.

이와 같이, 전체 20만 장의 CCTV 보안 및 안전 데이터셋 중에서 라벨링 할 데이터 선별하기(what to label) 옵션을 활용하여 5,000장의 데이터를 선별합니다.

💡
오토 큐레이트(Auto-Curate)기능은 원본 데이터의 시각적 특징의 희소성, 균형된 분포 등을 고려하려 라벨링 할 데이터를 선별합니다. 데이터의 품질, 수량, 다양성을 기준으로 원본 데이터를 분석하고, 그 결과에 따라 모델 학습에 가장 도움이 될 수 있는 데이터를 우선적으로 선별하는 데 큰 도움을 줍니다.
👉 오토 큐레이트(Auto-Curate)로 라벨링 리소스 절감하기

3. 슈퍼브 큐레이트에 업로드 된 데이터셋을 라벨 프로젝트와 연동하기

슈퍼브 큐레이트에서 선별된 데이터를 라벨링하려면, 새 프로젝트와 연동기능을 통해 데이터를 슈퍼브 라벨 프로젝트와 연동하고 바로 라벨링을 시작할 수 있습니다.
👉 슈퍼브 큐레이트의 데이터 연동하기

이미지 설명. 
💡
 연동된 슈퍼브 라벨 프로젝트에서 데이터에 변경이 생기면 자동 또는 수동으로 연동할지 여부를 선택할 수 있습니다. 기본값은 끄기(수동 연동)설정되어 있으며, 기본 설정 값으로 권장드립니다. 슈퍼브 라벨에서 라벨링 작업이 끝나고 승인(approved)된 상태의 데이터만 연동되며, 자동 연동(Auto Sync) 기능을 켜기(승인된 라벨 자동 연동)로 설정하고 라벨링 작업할 시 슈퍼브 큐레이트에 데이터가 자동으로 동기화 되면서 과도한 임베딩 비용이 발생할 수 있습니다.

4. 선별된 이미지에 태그를 추가하여 배치 단위 설정하기

슈퍼브 큐레이트에서 선별된 이미지 데이터를 슈퍼브 라벨 프로젝트와 연동 완료한 후, 1차 배치 구분을 위해 태그를 추가합니다. (3번의 프로젝트 연동 과정에서도 태그 설정이 가능합니다.)

💡
학습 배치(batch) 단위로 태그를 활용하면 데이터를 더욱 체계적으로 관리할 수 있습니다. 태그를 통해 데이터의 특성을 분류하면 라벨링과 학습 과정에서 데이터를 보다 효율적으로 활용할 수 있습니다.
👉 태그, 필터 및 라벨 검색하기

5. 오토라벨 기능으로 프리라벨링 수행 후, GT(Ground Truth) 구축

라벨링 작업을 시작하기 전에, 사전 준비 단계로 오토라벨(Auto-label) 기능을 활용해 프리라벨링 작업을 진행해 보세요.
오토라벨을 통해서 데이터에 라벨링할 클래스는 아래와 같습니다.

    • 화물 트럭(Cargo Truck)
    • 소화기(Fire Extinguisher)
    • 작업자(Worker)
    • 헬멧(Helmet)

선별된 데이터 중, 10%에 해당하는 500개의 데이터에 오토라벨 기능으로 프리라벨링 작업을 시작합니다. 작업이 완료되면 라벨링된 데이터를 검수하여 GT를 만드는 작업을 수행합니다.

💡
슈퍼브 플랫폼에서는 Common Objects AI의 기본 클래스를 사용할 수 있으며, 기본적인 오브젝트들 중에 원하는 오브젝트를 선택하여 자동으로 라벨링 작업을 진행할 수 있습니다. 이처럼 자동화된 오토라벨링을 활용하면 시간과 비용을 절감하면서도 높은 정확도의 라벨링 결과를 유지할 수 있습니다.

6. 라벨링 검수 및 수정

검수 과정은 데이터 품질을 보장하고 라벨링의 정확도를 높이는 데 필수적인 단계입니다. 5번 단계에서 설정한 클래스들이 올바르게 라벨링 되었는지 프리라벨링된 데이터를 검토합니다.

  • 오토라벨링 작업이 완료되면 난이도 쉬움과 어노테이션 없음 필터를 적용하여 데이터를 검토합니다. 이를 통해 어노테이션이 누락되었거나 감지되지 않은 데이터를 쉽게 찾을 수 있으며, 이는 엣지 케이스 검수를 위한 효과적인 방법입니다.
이미지 설명. 
  • 이러한 검수 과정에서 CCTV 데이터의 헬멧과 소화기 객체가 부정확한 사례들이 발견되었고, 특히 '헬멧을 착용한 작업자'와 '용접 작업 중 소화기를 비치한 작업자'들이 포함된 데이터에서 오류가 있다는 것을 확인할 수 있었습니다.
  • 이에 따라 필터링 된 사람(작업자) 객체가 포함된 265장의 데이터를 추가로 검토하고, 두 명의 라벨러가 검수 및 수정 작업을 진행했습니다. 이 과정을 통해 부정확한 라벨을 수정하고 누락된 어노테이션을 보완하여 정확한 GT(Ground Truth)를 구축할 수 있었습니다.
💡
슈퍼브 플랫폼은 라벨러와 리뷰어의 작업을 확인할 수 있는 관리 페이지를 제공합니다. 이 페이지에서는 승인 및 반려율과 같은 관리에 필요한 정보를 한눈에 확인할 수 있어, 대규모 작업이나 다수의 작업자와 협업 시 매우 유용하게 활용할 수 있습니다.
👉 프로젝트 분석 및 리포트 확인하기

7. 구축한 GT로 커스텀 오토라벨(Custom Auto-Label) 만들기

위의 4-6번 단계에서 선별된 500장의 1차 배치 데이터 검수가 완료되면, 이를 기반으로 커스텀 오토라벨(Custom Auto-label)을 생성합니다.

  • 이렇게 생성된 커스텀 오토라벨(Custom Auto-label)을 추가 라벨링 작업이 필요한 대량의 데이터에 적용할 수 있습니다. 높은 품질의 라벨링된 데이터를 바탕으로 만든 커스텀 오토라벨을 사용하면 라벨링 작업을 자동화하여 효율성을 극대화할 수 있습니다.
    👉 커스텀 오토라벨(Custom Auto-label) 적용하기
  • 커스텀 오토라벨 기능을 통해 나머지 4,500장의 데이터에 라벨링 작업을 실행합니다. 다시 위의 6번과 같은 과정으로 라벨링 검수 과정을 수행합니다.
  • 학습에 필요한 데이터의 수량을 설정하고 커스텀 오토라벨 기능을 통해 라벨링 작업을 완료했다면, 이후에는 앞서 설명한 6번 단계와 동일한 방식으로 라벨링 검수 과정을 진행합니다.
1차 성능
2차 성능
💡
커스텀 오토라벨의 효과를 극대화하기 위해서는 성능이 낮은 클래스를 파악하고 이를 보완하는 작업이 필요합니다. 이를 위해서는 오토라벨의 성능을 정밀하게 평가할 수 있도록 검증 데이터셋을 고정하는 것이 중요합니다. 검증 데이터셋을 고정하려면 다음과 같은 단계를 따라서 진행할 수 있습니다:
1. 검증에 사용할 라벨들에 __VALIDATION__이라는 라벨 태그를 추가합니다.
2. 이렇게 태그를 추가한 라벨들과 함께 학습에 사용할 라벨을 내보내기(Lable export)합니다.
또한, 커스텀 오토라벨의 성능을 비교하고 싶다면 내보내기 결과 비교(Export Compare) 기능을 사용하여 모델 간 성능을 분석할 수 있습니다. 이를 통해 각 커스텀 오토라벨이 어느 클래스에서 더 우수한 성능을 보이는지 파악하고, 그 결과를 바탕으로 개선된 버전을 개발해 나갈 수 있습니다. 이렇게 커스텀 오토라벨은 한 번 생성에 그치지 않고, 지속적인 업데이트를 통해 성능을 향상시키는 것이 핵심입니다.
👉 내보내기 결과 비교(Export Compare)하기

8. 검수가 완료된 라벨링 데이터를 큐레이트로 다시 연동

최종적으로 검수된 데이터를 큐레이트와 연동하여 학습 및 검증용 슬라이스를 생성합니다. 이 과정에서 오토 큐레이트(Auto-Curate) 기능을 활용해 데이터셋을 학습용과 검증용으로 효율적으로 분할할 수 있습니다.

💡
오토 큐레이트(Auto-Curate)의 데이터셋 분할 옵션은 데이터의 균형성과 다양성을 유지하면서도 모델 학습과 검증에 최적화된 비율로 데이터를 분할할 수 있도록 설계되어 있습니다. 이를 통해 학습과 검증 단계에서 발생할 수 있는 편향을 최소화하고, 모델의 성능 평가를 더 정확하게 진행할 수 있습니다.
👉 학습/검증 데이터셋 선별하기(Split Train/Validation Set)

9. 학습/검증용 데이터 다운로드 및 외부 모델 학습 준비

학습과 검증용 슬라이스를 선택하여 로컬 환경으로 다운로드합니다. 슈퍼브 큐레이트의 다운로드 기능을 통해 데이터와 어노테이션을 다운로드 받을 수 있습니다. 다운로드된 데이터를 바탕으로 모델 학습을 진행하며, 이를 통해 실제 프로젝트에 적용할 수 있는 모델을 개발할 수 있습니다.
👉 데이터 다운로드하기

💡
모델 학습 이후, 슈퍼브 플랫폼의 외부에서 학습한 모델의 성능을 진단하는 과정을 진행해 보세요. 슈퍼브 플랫폼은 모델의 성능을 직관적으로 평가하고, 취약한 부분을 시각적으로 쉽게 확인할 수 있는 도구를 제공합니다. 이 진단 과정을 통해 모델이 특정 클래스나 데이터 조건에서 낮은 성능을 보이는 영역을 파악할 수 있으며, 이를 기반으로 데이터셋을 보완하거나 추가 학습을 통해 성능을 향상시킬 수 있습니다.

결론: 실용적인 AI 모델 학습 워크플로우

이 레시피는 클라우드 스토리지 없이도 외부 데이터셋을 활용하여 AI 모델을 학습할 수 있는 전 과정을 안내합니다. 특히, 오토라벨링과 커스텀 라벨링 기능을 적극 활용하여 학습 효율성을 높이고, 검수 과정을 통해 모델의 성능을 보장하는 것을 목표로 합니다.

이 레시피를 통해 여러분도 복잡한 데이터 관리와 AI 모델 학습을 더욱 손쉽게 진행해 보세요!