Ultralytics YOLO27:
Get Started

Roboflow 100 데이터셋#

Intel이 후원하는 Roboflow 100은 획기적인 객체 탐지 벤치마크 데이터셋입니다. 다양한 데이터셋 100개를 포함합니다. 이 벤치마크는 Ultralytics YOLO 모델과 같은 컴퓨터 비전 모델이 의료, 항공 이미지, 비디오 게임 등 다양한 도메인에 적응하는 능력을 테스트하도록 특별히 설계되었습니다.

Roboflow 100 diverse object detection benchmark

주요 기능#

  • 다양한 도메인: 항공, 비디오 게임, 현미경, 수중, 문서, 전자기 및 실제 세계의 7개 개별 도메인에 걸쳐 100개의 데이터셋을 포함합니다.
  • 규모: 벤치마크는 805개 클래스에 걸쳐 이미지 224,714개로 구성되며, 11,170시간이 넘는 데이터 라벨링 작업량을 나타냅니다.
  • 표준화: 일관된 평가를 위해 모든 이미지를 전처리하고 640x640픽셀로 크기를 조정했습니다.
  • 정제된 평가: 클래스 모호성을 제거하고 대표성이 낮은 클래스를 필터링하여 더욱 정제된 모델 평가를 보장하는 데 중점을 둡니다.
  • 어노테이션: 객체의 바운딩 박스를 포함하며, 학습 및 mAP과 같은 지표를 사용해 객체 탐지 모델을 평가하는 데 적합합니다.

데이터셋 구조#

Roboflow 100 데이터셋은 7개 범주로 구성되며, 각 범주에는 고유한 데이터셋, 이미지 및 클래스 모음이 포함됩니다:

  • 항공: 데이터셋 7개, 이미지 9,683개, 클래스 24개.
  • 비디오 게임: 데이터셋 7개, 이미지 11,579개, 클래스 88개.
  • 현미경: 데이터셋 11개, 이미지 13,378개, 클래스 28개.
  • 수중: 데이터셋 5개, 이미지 18,003개, 클래스 39개.
  • 문서: 데이터셋 8개, 이미지 24,813개, 클래스 90개.
  • 전자기: 데이터셋 12개, 이미지 36,381개, 클래스 41개.
  • 실제 세계: 데이터셋 50개, 이미지 110,615개, 클래스 495개.

이 구조는 다양한 Ultralytics Solutions에서 볼 수 있는 폭넓은 실제 응용 시나리오를 반영하여 객체 탐지 모델을 테스트할 다양하고 광범위한 환경을 제공합니다.

벤치마킹#

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

벤치마킹 결과

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

벤치마킹 예시

아래 스크립트는 Roboflow에서 datasets_links.txt에 나열된 Roboflow 100 데이터셋을 다운로드한 다음, 단일 기본 모델(예: YOLO26n)을 전체 데이터셋 모음에 대해 하나의 model.train() 호출로 미세 조정합니다. 데이터셋 목록을 전달하면 기본 모델을 각 데이터셋에서 차례대로 미세 조정하고 데이터셋 간 결과를 자동으로 시각화합니다.

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 팀과 모든 기여자께 감사드립니다.

객체 탐지 및 머신러닝 프로젝트를 강화할 더 많은 데이터셋을 찾아보고 싶다면, 다양한 탐지 데이터셋을 포함한 종합 데이터셋 모음을 방문해 보세요.

자주 묻는 질문#

  • Roboflow 100 데이터셋은 객체 탐지 모델을 위한 벤치마크입니다. 의료, 항공 이미지, 비디오 게임 등의 도메인을 아우르는 다양한 데이터셋 100개로 구성됩니다. 다양한 실제 시나리오에서 모델의 적응성과 강건성을 테스트하는 표준화된 방법을 제공하여, 도메인에 제한되는 경우가 많은 기존 벤치마크의 범위를 확장한다는 점에서 의미가 있습니다.

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

    1. 항공: 데이터셋 7개(예: 위성 이미지, 드론 촬영 영상).
    2. 비디오 게임: 데이터셋 7개(예: 다양한 게임 환경의 객체).
    3. 현미경: 데이터셋 11개(예: 세포, 입자).
    4. 수중: 데이터셋 5개(예: 해양 생물, 물속에 잠긴 객체).
    5. 문서: 데이터셋 8개(예: 텍스트 영역, 양식 요소).
    6. 전자기: 데이터셋 12개(예: 레이더 신호, 스펙트럼 데이터 시각화).
    7. 실제 세계: 데이터셋 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 모델과 호환되는 다른 탐지 데이터셋을 살펴보세요.

댓글