Roboflow 100 데이터셋#
Intel에서 후원하는 Roboflow 100은 획기적인 object detection 벤치마크 데이터셋입니다. 이 데이터셋은 100개의 다양한 데이터셋을 포함하고 있습니다. 이 벤치마크는 헬스케어, 항공 이미지, 비디오 게임을 포함한 다양한 도메인에서 Ultralytics YOLO models과 같은 computer vision 모델의 적응력을 테스트하기 위해 특별히 설계되었습니다.
Ultralytics는 다양한 사용 사례에 맞춰 두 가지 라이선스 옵션을 제공합니다.
- AGPL-3.0 라이선스: 이 OSI 승인 오픈소스 라이선스는 학생과 엔터프라이즈 사용자에게 이상적이며, 개방형 협업과 지식 공유를 촉진합니다. 자세한 내용은 LICENSE 파일을 참조하고 AGPL-3.0 라이선스 페이지를 방문하세요.
- Enterprise License: 개발 및 프로덕션 용도를 위한 이 라이선스는 AGPL-3.0의 오픈소스 요구사항을 우회하여 내부 도구, 자동화된 워크플로, 프로덕션 배포를 포함한 비즈니스 제품 및 서비스에 Ultralytics 소프트웨어와 AI 모델을 원활하게 통합할 수 있도록 지원합니다. 시작하려면 Ultralytics Licensing을 통해 문의해 주세요.
주요 특징#
- 다양한 도메인: 항공, 비디오 게임, 현미경, 수중, 문서, 전자기, 실세계 등 7개의 고유한 도메인에 걸쳐 100개의 데이터셋이 포함되어 있습니다.
- 규모: 이 벤치마크는 805개 클래스에 걸쳐 224,714개의 이미지로 구성되어 있으며, 11,170시간 이상의 데이터 라벨링 작업 노력을 나타냅니다.
- 표준화: 모든 이미지는 일관된 평가를 위해 전처리 과정을 거쳐 640x640 픽셀로 크기가 조정됩니다.
- 클린 평가: 보다 깨끗한 모델 평가를 보장하기 위해 클래스 모호성을 제거하고 대표성이 부족한 클래스를 필터링하는 데 중점을 둡니다.
- 주석(Annotations): 객체에 대한 bounding boxes를 포함하며, mAP와 같은 지표를 사용하여 객체 검출 모델을 training하고 평가하는 데 적합합니다.
데이터셋 구조#
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에서 발견되는 광범위한 실제 응용 시나리오를 반영하여, object detection 모델을 위한 다양하고 광범위한 테스트 환경을 제공합니다.
벤치마킹#
데이터셋 벤치마킹에는 표준화된 메트릭을 사용하여 특정 데이터셋에서 머신러닝 모델의 성능을 평가하는 작업이 포함됩니다. 일반적인 메트릭으로는 정확도, 평균 정밀도(mAP), F1 점수가 있습니다. 이에 대한 자세한 내용은 YOLO 성능 메트릭 가이드에서 확인할 수 있습니다.
모든 출력은 단일 runs/<task>/multitrain/ 디렉터리 아래에 그룹화됩니다. 각 데이터셋은 고유한 하위 디렉터리(고유한 results.png 포함)에서 파인튜닝되며, 데이터셋별 지표와 평균 지표는 multitrain_results.png 막대 차트와 함께 multitrain_results.json에 기록됩니다. model.train() 호출은 프로그래밍 방식 접근을 위한 {dataset: metrics} 딕셔너리도 반환합니다.
아래 스크립트는 datasets_links.txt에 나열된 Roboflow 100 데이터셋을 Roboflow에서 다운로드한 다음, 단일 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와 같은 일반적인 벤치마크 데이터셋을 넘어, 실제 시나리오에서 모델의 적응성과 강인성을 테스트합니다.
- 헬스케어, 항공 이미지, 비디오 게임과 같은 전문 분야를 포함하여 다양한 데이터셋 전반에서 객체 탐지 모델의 성능을 벤치마크합니다.
- 다양한 신경망 아키텍처와 최적화 기법 간의 모델 성능을 비교합니다.
- 특수 model training tips 또는 transfer learning과 같은 fine-tuning 접근 방식이 필요할 수 있는 도메인 특화 과제를 식별합니다.
실제 애플리케이션에 대한 더 많은 아이디어와 영감을 얻으려면 our guides on practical projects을 살펴보거나, 간소화된 model training 및 deployment을 위해 Ultralytics Platform을 확인해 보세요.
사용법#
메타데이터와 다운로드 링크를 포함한 Roboflow 100 데이터셋은 공식 Roboflow 100 GitHub 저장소에서 확인할 수 있습니다. 벤치마킹 니즈에 맞춰 해당 위치에서 직접 데이터셋에 액세스하여 활용할 수 있습니다. 위와 같이 데이터셋을 다운로드하고 준비한 후, 데이터셋 YAML 목록을 전달하면 단일 model.train() 호출로 전체 컬렉션에서 Ultralytics 모델을 파인튜닝할 수 있습니다.
샘플 데이터 및 주석#
Roboflow 100은 다양한 각도와 도메인에서 캡처된 다양한 이미지로 구성된 데이터셋입니다. 아래는 RF100 벤치마크에 포함된 어노테이션된 이미지의 예시로, 다양한 객체와 씬을 보여줍니다. 데이터 증강과 같은 기법은 학습 중 다양성을 더욱 향상시킬 수 있습니다.
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 팀과 모든 기여자에게 감사드립니다.
객체 검출 및 머신 러닝 프로젝트를 향상시키기 위해 더 많은 데이터셋을 탐색하는 데 관심이 있다면, 다양한 다른 detection datasets을 포함하는 our comprehensive dataset collection을 자유롭게 방문해 보세요.
FAQ#
Roboflow 100 데이터셋은 객체 검출 모델을 위한 벤치마크입니다. 여기에는 의료, 항공 이미지, 비디오 게임 같은 도메인을 아우르는 100개의 다양한 데이터셋이 포함되어 있습니다. 그 중요성은 전통적인, 종종 도메인이 제한된 벤치마크를 넘어, 광범위한 실제 시나리오에서 모델의 적응성과 견고성을 테스트하는 표준화된 방법을 제공하는 데 있습니다.
Roboflow 100 데이터셋은 7개의 다양한 도메인에 걸쳐 있으며, 객체 검출 모델에 고유한 과제를 제공합니다.
- 항공: 7개 데이터셋(예: 위성 이미지, 드론 뷰).
- 비디오 게임: 7개 데이터셋(예: 다양한 게임 환경의 객체).
- 현미경: 11개 데이터셋(예: 세포, 입자).
- 수중: 5개 데이터셋(예: 해양 생물, 수중 객체).
- 문서: 8개 데이터셋(예: 텍스트 영역, 양식 요소).
- 전자기: 12개 데이터셋(예: 레이더 신호, 스펙트럼 데이터 시각화).
- 실세계: 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 모델과 호환되는 다른 검출 데이터셋을 살펴보세요.