Ultralytics YOLO27:

Roboflow 100 데이터셋#

Intel이 후원하는 Roboflow 100은 획기적인 객체 탐지 벤치마크 데이터셋입니다. 100개의 다양한 데이터셋으로 구성되어 있습니다. 이 벤치마크는 컴퓨터 비전 모델, 예를 들어 Ultralytics YOLO 모델이 의료, 항공 이미지, 비디오 게임을 비롯한 다양한 도메인에 얼마나 잘 적응하는지 테스트하도록 특별히 설계되었습니다.

Roboflow 100 diverse object detection benchmark

주요 기능#

  • 다양한 도메인: Aerial, Video games, Microscopic, Underwater, Documents, Electromagnetic, Real World의 7개 고유 도메인에 걸쳐 100개의 데이터셋을 포함합니다.
  • 규모: 이 벤치마크는 805개 클래스에 걸쳐 224,714개의 이미지를 포함하며, 데이터 라벨링에 11,170시간 이상이 소요되었습니다.
  • 표준화: 일관된 평가를 위해 모든 이미지를 전처리하고 640x640 픽셀로 크기를 조정했습니다.
  • 정제된 평가: 클래스 모호성을 제거하고 대표성이 낮은 클래스를 필터링하여 더욱 정제된 모델 평가에 중점을 둡니다.
  • 어노테이션: 객체에 대한 바운딩 박스를 포함하므로 mAP와 같은 메트릭을 사용하여 객체 탐지 모델을 학습하고 평가하는 데 적합합니다.

데이터셋 구조#

Roboflow 100 데이터셋은 각각 고유한 데이터셋, 이미지 및 클래스로 구성된 7개 카테고리로 구성되어 있습니다:

  • Aerial: 데이터셋 7개, 이미지 9,683개, 클래스 24개입니다.
  • Video Games: 데이터셋 7개, 이미지 11,579개, 클래스 88개입니다.
  • Microscopic: 데이터셋 11개, 이미지 13,378개, 클래스 28개입니다.
  • Underwater: 데이터셋 5개, 이미지 18,003개, 클래스 39개입니다.
  • Documents: 데이터셋 8개, 이미지 24,813개, 클래스 90개입니다.
  • Electromagnetic: 데이터셋 12개, 이미지 36,381개, 클래스 41개입니다.
  • Real World: 데이터셋 50개, 이미지 110,615개, 클래스 495개입니다.

이 구조는 다양한 Ultralytics 솔루션에서 발견되는 광범위한 실제 애플리케이션 시나리오를 반영하여 객체 탐지 모델을 테스트할 수 있는 다양하고 광범위한 환경을 제공합니다.

벤치마킹#

데이터셋 벤치마킹은 표준화된 메트릭을 사용하여 특정 데이터셋에서 머신 러닝 모델의 성능을 평가하는 작업입니다. 일반적인 메트릭으로는 정확도, 평균 정밀도 (mAP), F1 점수가 있습니다. 자세한 내용은 YOLO 성능 메트릭 가이드에서 확인할 수 있습니다.

벤치마킹 결과

모든 출력은 단일 runs/<task>/multitrain/ 디렉터리 아래에 그룹화됩니다. 각 데이터셋은 자체 하위 디렉터리(고유한 results.png 포함)에서 파인튜닝되며, 데이터셋별 메트릭과 평균 메트릭은 multitrain_results.png 막대 차트와 함께 multitrain_results.json에 기록됩니다. model.train() 호출은 프로그래밍 방식으로 액세스할 수 있는 {dataset: metrics} 딕셔너리도 반환합니다.

벤치마킹 예제

아래 스크립트는 Roboflow에서 datasets_links.txt에 나열된 Roboflow 100 데이터셋을 다운로드한 다음, 하나의 model.train() 호출로 전체 컬렉션에 걸쳐 단일 기본 모델(예: YOLO26n)을 파인튜닝합니다. 데이터셋 목록을 전달하면 각 데이터셋에서 기본 모델을 순차적으로 파인튜닝하고 데이터셋 간 결과를 자동으로 시각화합니다.

import re
from pathlib import Path

from roboflow import Roboflow

from ultralytics import YOLO
from ultralytics.utils import ASSETS_URL, LOGGER, YAML
from ultralytics.utils.downloads import safe_download

# Download the RF100 datasets (requires a Roboflow API key)
rf = Roboflow(api_key="YOUR_ROBOFLOW_API_KEY")
safe_download(f"{ASSETS_URL}/datasets_links.txt")  # list of RF100 dataset links

datasets = []
for line in Path("datasets_links.txt").read_text().splitlines():
    try:
        _, _url, workspace, project, version = re.split("/+", line.strip())
        location = f"rf-100/{project}-{version}"
        rf.workspace(workspace).project(project).version(version).download("yolov8", location=location)
        yaml = Path(location) / "data.yaml"
        cfg = YAML.load(yaml)  # point train/val at the downloaded image folders
        cfg["train"], cfg["val"] = "train/images", "valid/images"
        YAML.save(yaml, cfg)
        datasets.append(str(yaml))
    except Exception as e:
        LOGGER.warning(f"Failed to prepare dataset from {line!r}: {e}")

# Fine-tune one base model across all RF100 datasets and visualize the cross-dataset results
model = YOLO("yolo26n.pt")
results = model.train(data=datasets, epochs=100, imgsz=640)  # {dataset: metrics}

# Per-dataset runs, multitrain_results.json (per-dataset + mean), and multitrain_results.png are saved
# together under runs/detect/multitrain. Read results in-memory or from the JSON for custom post-processing.
for dataset, metrics in results.items():
    if metrics:  # None if that dataset failed to train
        print(f"{dataset}: mAP50-95 = {metrics['metrics/mAP50-95(B)']:.4f}")

응용 분야#

Roboflow 100은 컴퓨터 비전딥 러닝과 관련된 다양한 애플리케이션에 매우 유용합니다. 연구자와 엔지니어는 이 벤치마크를 다음과 같이 활용할 수 있습니다:

  • 다중 도메인 환경에서 객체 탐지 모델의 성능을 평가합니다.
  • COCO 또는 PASCAL VOC와 같은 일반적인 벤치마크 데이터셋을 넘어 실제 시나리오에 대한 모델의 적응성과 강건성을 테스트합니다.
  • 의료, 항공 이미지 및 비디오 게임과 같은 전문 분야를 포함하여 다양한 데이터셋에서 객체 탐지 모델의 성능을 벤치마킹합니다.
  • 서로 다른 신경망 아키텍처와 최적화 기법에 따른 모델 성능을 비교합니다.
  • 전이 학습과 같은 특화된 모델 학습 팁 또는 파인튜닝 접근 방식이 필요할 수 있는 도메인별 과제를 식별합니다.

실제 애플리케이션에 대한 더 많은 아이디어와 영감을 얻으려면 실용적인 프로젝트에 관한 가이드를 살펴보거나, 간소화된 모델 학습배포를 위해 Ultralytics Platform을 확인해 보세요.

사용법#

메타데이터와 다운로드 링크를 포함한 Roboflow 100 데이터셋은 공식 Roboflow 100 GitHub 리포지토리에서 이용할 수 있습니다. 벤치마킹에 필요한 경우 해당 위치에서 데이터셋에 직접 액세스하고 사용할 수 있습니다. 위와 같이 데이터셋을 다운로드하고 준비한 후에는 데이터셋 YAML 목록을 전달하여 단일 model.train() 호출로 전체 컬렉션에 걸쳐 Ultralytics 모델을 파인튜닝할 수 있습니다.

샘플 데이터 및 어노테이션#

Roboflow 100은 다양한 각도와 도메인에서 촬영한 다채로운 이미지로 구성된 데이터셋을 포함합니다. 아래에는 RF100 벤치마크에 포함된 어노테이션 이미지의 예시가 나와 있으며, 다양한 객체와 장면을 보여줍니다. 데이터 증강과 같은 기법을 사용하면 학습 중 다양성을 더욱 향상할 수 있습니다.

Roboflow 100 sample images with annotations

Roboflow 100 벤치마크에서 확인되는 다양성은 제한된 도메인 내에서 단일 메트릭을 최적화하는 데 주로 초점을 맞추는 기존 벤치마크에서 크게 발전한 것입니다. 이러한 종합적인 접근 방식은 다양한 시나리오에서 우수한 성능을 발휘할 수 있는 더욱 강건하고 다목적인 컴퓨터 비전 모델을 개발하는 데 도움이 됩니다.

인용 및 감사의 글#

연구 또는 개발 작업에서 Roboflow 100 데이터셋을 사용하는 경우 원본 논문을 인용해 주세요:

인용문
@misc{rf100benchmark,
    Author = {Floriana Ciaglia and Francesco Saverio Zuppichini and Paul Guerrie and Mark McQuade and Jacob Solawetz},
    Title = {Roboflow 100: A Rich, Multi-Domain Object Detection Benchmark},
    Year = {2022},
    Eprint = {arXiv:2211.13523},
    url = {https://arxiv.org/abs/2211.13523}
}

Roboflow 100 데이터셋을 컴퓨터 비전 커뮤니티를 위한 귀중한 리소스로 만들고 유지 관리하는 데 크게 기여한 Roboflow 팀과 모든 기여자에게 감사드립니다.

객체 탐지 및 머신 러닝 프로젝트를 개선할 수 있는 더 많은 데이터셋을 살펴보고 싶다면, 다양한 기타 탐지 데이터셋을 포함한 종합 데이터셋 컬렉션을 방문해 보세요.

FAQ#

  • Roboflow 100 데이터셋은 객체 탐지 모델을 위한 벤치마크입니다. 의료, 항공 이미지 및 비디오 게임과 같은 도메인을 아우르는 100개의 다양한 데이터셋으로 구성되어 있습니다. 이 데이터셋은 기존의, 흔히 도메인이 제한적인 벤치마크를 넘어 광범위한 실제 시나리오에서 모델의 적응성과 강건성을 표준화된 방식으로 테스트할 수 있다는 점에서 중요합니다.

  • Roboflow 100 데이터셋은 7개의 다양한 도메인을 아우르며, 객체 탐지 모델에 고유한 과제를 제공합니다:

    1. Aerial: 데이터셋 7개(예: 위성 이미지, 드론 촬영 영상)입니다.
    2. Video Games: 데이터셋 7개(예: 다양한 게임 환경의 객체)입니다.
    3. Microscopic: 데이터셋 11개(예: 세포, 입자)입니다.
    4. Underwater: 데이터셋 5개(예: 해양 생물, 수중 객체)입니다.
    5. Documents: 데이터셋 8개(예: 텍스트 영역, 양식 요소)입니다.
    6. Electromagnetic: 데이터셋 12개(예: 레이더 신호, 스펙트럼 데이터 시각화)입니다.
    7. Real World: 데이터셋 50개(일상적인 객체, 장면, 소매 환경 등을 포함하는 광범위한 카테고리)입니다.

    이러한 다양성 덕분에 RF100은 컴퓨터 비전 모델의 일반화 가능성을 평가하는 데 매우 유용한 리소스입니다.

  • Roboflow 100 데이터셋을 사용하는 경우 제작자에게 적절한 공로를 표하기 위해 원본 논문을 인용해 주세요. 다음은 권장되는 BibTeX 인용 형식입니다:

    인용문
    @misc{rf100benchmark,
        Author = {Floriana Ciaglia and Francesco Saverio Zuppichini and Paul Guerrie and Mark McQuade and Jacob Solawetz},
        Title = {Roboflow 100: A Rich, Multi-Domain Object Detection Benchmark},
        Year = {2022},
        Eprint = {arXiv:2211.13523},
        url = {https://arxiv.org/abs/2211.13523}
    }

    더 자세히 살펴보려면 종합 데이터셋 컬렉션을 방문하거나 Ultralytics 모델과 호환되는 다른 탐지 데이터셋을 둘러보세요.

댓글