Link to this sectionObjects365 데이터셋#
Objects365 데이터셋은 1,742,289개의 학습 이미지와 80,000개의 검증 이미지로 구성된 대규모 객체 탐지 벤치마크로, 사람, 자동차, 의자부터 병, 개, 가로등까지 365개의 객체 클래스를 포함합니다. Megvii 연구원들이 제작하여 ICCV 2019에서 발표한 이 데이터셋은 실제 환경의 다양한 객체에 초점을 맞추고 있으며, ImageNet 사전 학습 모델보다 더 뛰어난 일반화 성능을 보이는 컴퓨터 비전 모델을 사전 학습하는 데 널리 사용됩니다.
Watch: How to Train Ultralytics YOLO on the Objects365 Dataset
Link to this section주요 특징#
- Objects365는 365개의 객체 클래스를 정의하며, 업스트림 릴리스에 따르면 총 3,000만 개의 BBox와 약 200만 개의 이미지가 포함되어 있습니다.
- 이 데이터셋에는 다양한 실제 시나리오 속 객체들이 포함되어 있어, 객체 탐지 작업을 위한 풍부하고 도전적인 벤치마크를 제공합니다.
- 주석에는 객체에 대한 BBox가 포함되어 있어 객체 탐지 모델을 학습하고 평가하는 데 적합합니다.
- ICCV 2019 논문에 따르면, Objects365 사전 학습은 COCO 벤치마크에서 ImageNet 사전 학습보다 5.6 포인트(42.0 vs 36.4 mAP) 더 우수한 성능을 보입니다.
Link to this section데이터셋 구조#
Ultralytics Objects365.yaml 구성 파일은 두 가지 분할을 정의합니다:
| Split | 이미지 | 설명 |
|---|---|---|
| 학습(Train) | 1,742,289 | 모델 학습용 라벨링된 이미지 |
| 검증 | 80,000 | 평가 및 벤치마킹을 위한 보류(held-out) 이미지 |
다운로드를 수행하면 학습 및 검증 분할(총 1,822,289개의 이미지)이 가져와지며, 구성 파일의 test: 키는 비워져 있습니다.
Link to this section응용 분야#
Objects365 데이터셋은 객체 탐지 분야의 광범위한 딥러닝 애플리케이션을 지원합니다:
- 탐지 백본 사전 학습: 365개의 클래스와 밀집된 BBox 주석을 통해, Objects365 사전 학습은 COCO 및 VOC와 같은 더 작은 데이터셋에서의 하위 미세 조정 성능을 향상시킵니다.
- 소매 및 재고 인식: 병, 컵, 운동화, 핸드백 등 수백 가지 일상 카테고리를 활용하여 선반 모니터링 및 자동 결제 시스템을 지원합니다.
- 로봇 공학 및 스마트 환경: 광범위한 가정용 및 거리 객체 커버리지는 로봇과 스마트 카메라가 비정형 환경 속 객체를 인식하는 데 도움을 줍니다.
- 탐지기 벤치마킹: 방대한 클래스 목록과 실제 이미지 데이터는 탐지 모델의 일반화 성능을 평가하기 위한 까다로운 벤치마크가 됩니다.
자신의 이미지를 라벨링하고 브라우저에서 대규모 데이터셋을 학습 및 관리하려면 Ultralytics Platform을 통해 전체 워크플로를 실행하십시오.
Link to this section데이터셋 YAML#
Objects365.yaml 파일은 데이터셋 경로, 클래스 이름 및 기타 메타데이터를 포함한 데이터셋 구성을 정의합니다. 이 파일은 Ultralytics 리포지토리(https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/Objects365.yaml)에서 유지 관리됩니다.
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# Objects365 dataset https://www.objects365.org/ by Megvii
# Documentation: https://docs.ultralytics.com/datasets/detect/objects365
# Example usage: yolo train data=Objects365.yaml
# parent
# ├── ultralytics
# └── datasets
# └── Objects365 ← downloads here (712 GB = 367G data + 345G zips)
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: Objects365 # dataset root dir
train: images/train # train images (relative to 'path') 1742289 images
val: images/val # val images (relative to 'path') 80000 images
test: # test images (optional)
# Classes
names:
0: Person
1: Sneakers
2: Chair
3: Other Shoes
4: Hat
5: Car
6: Lamp
7: Glasses
8: Bottle
9: Desk
10: Cup
11: Street Lights
12: Cabinet/shelf
13: Handbag/Satchel
14: Bracelet
15: Plate
16: Picture/Frame
17: Helmet
18: Book
19: Gloves
20: Storage box
21: Boat
22: Leather Shoes
23: Flower
24: Bench
25: Potted Plant
26: Bowl/Basin
27: Flag
28: Pillow
29: Boots
30: Vase
31: Microphone
32: Necklace
33: Ring
34: SUV
35: Wine Glass
36: Belt
37: Monitor/TV
38: Backpack
39: Umbrella
40: Traffic Light
41: Speaker
42: Watch
43: Tie
44: Trash bin Can
45: Slippers
46: Bicycle
47: Stool
48: Barrel/bucket
49: Van
50: Couch
51: Sandals
52: Basket
53: Drum
54: Pen/Pencil
55: Bus
56: Wild Bird
57: High Heels
58: Motorcycle
59: Guitar
60: Carpet
61: Cell Phone
62: Bread
63: Camera
64: Canned
65: Truck
66: Traffic cone
67: Cymbal
68: Lifesaver
69: Towel
70: Stuffed Toy
71: Candle
72: Sailboat
73: Laptop
74: Awning
75: Bed
76: Faucet
77: Tent
78: Horse
79: Mirror
80: Power outlet
81: Sink
82: Apple
83: Air Conditioner
84: Knife
85: Hockey Stick
86: Paddle
87: Pickup Truck
88: Fork
89: Traffic Sign
90: Balloon
91: Tripod
92: Dog
93: Spoon
94: Clock
95: Pot
96: Cow
97: Cake
98: Dining Table
99: Sheep
100: Hanger
101: Blackboard/Whiteboard
102: Napkin
103: Other Fish
104: Orange/Tangerine
105: Toiletry
106: Keyboard
107: Tomato
108: Lantern
109: Machinery Vehicle
110: Fan
111: Green Vegetables
112: Banana
113: Baseball Glove
114: Airplane
115: Mouse
116: Train
117: Pumpkin
118: Soccer
119: Skiboard
120: Luggage
121: Nightstand
122: Tea pot
123: Telephone
124: Trolley
125: Head Phone
126: Sports Car
127: Stop Sign
128: Dessert
129: Scooter
130: Stroller
131: Crane
132: Remote
133: Refrigerator
134: Oven
135: Lemon
136: Duck
137: Baseball Bat
138: Surveillance Camera
139: Cat
140: Jug
141: Broccoli
142: Piano
143: Pizza
144: Elephant
145: Skateboard
146: Surfboard
147: Gun
148: Skating and Skiing shoes
149: Gas stove
150: Donut
151: Bow Tie
152: Carrot
153: Toilet
154: Kite
155: Strawberry
156: Other Balls
157: Shovel
158: Pepper
159: Computer Box
160: Toilet Paper
161: Cleaning Products
162: Chopsticks
163: Microwave
164: Pigeon
165: Baseball
166: Cutting/chopping Board
167: Coffee Table
168: Side Table
169: Scissors
170: Marker
171: Pie
172: Ladder
173: Snowboard
174: Cookies
175: Radiator
176: Fire Hydrant
177: Basketball
178: Zebra
179: Grape
180: Giraffe
181: Potato
182: Sausage
183: Tricycle
184: Violin
185: Egg
186: Fire Extinguisher
187: Candy
188: Fire Truck
189: Billiards
190: Converter
191: Bathtub
192: Wheelchair
193: Golf Club
194: Briefcase
195: Cucumber
196: Cigar/Cigarette
197: Paint Brush
198: Pear
199: Heavy Truck
200: Hamburger
201: Extractor
202: Extension Cord
203: Tong
204: Tennis Racket
205: Folder
206: American Football
207: earphone
208: Mask
209: Kettle
210: Tennis
211: Ship
212: Swing
213: Coffee Machine
214: Slide
215: Carriage
216: Onion
217: Green beans
218: Projector
219: Frisbee
220: Washing Machine/Drying Machine
221: Chicken
222: Printer
223: Watermelon
224: Saxophone
225: Tissue
226: Toothbrush
227: Ice cream
228: Hot-air balloon
229: Cello
230: French Fries
231: Scale
232: Trophy
233: Cabbage
234: Hot dog
235: Blender
236: Peach
237: Rice
238: Wallet/Purse
239: Volleyball
240: Deer
241: Goose
242: Tape
243: Tablet
244: Cosmetics
245: Trumpet
246: Pineapple
247: Golf Ball
248: Ambulance
249: Parking meter
250: Mango
251: Key
252: Hurdle
253: Fishing Rod
254: Medal
255: Flute
256: Brush
257: Penguin
258: Megaphone
259: Corn
260: Lettuce
261: Garlic
262: Swan
263: Helicopter
264: Green Onion
265: Sandwich
266: Nuts
267: Speed Limit Sign
268: Induction Cooker
269: Broom
270: Trombone
271: Plum
272: Rickshaw
273: Goldfish
274: Kiwi fruit
275: Router/modem
276: Poker Card
277: Toaster
278: Shrimp
279: Sushi
280: Cheese
281: Notepaper
282: Cherry
283: Pliers
284: CD
285: Pasta
286: Hammer
287: Cue
288: Avocado
289: Hami melon
290: Flask
291: Mushroom
292: Screwdriver
293: Soap
294: Recorder
295: Bear
296: Eggplant
297: Board Eraser
298: Coconut
299: Tape Measure/Ruler
300: Pig
301: Showerhead
302: Globe
303: Chips
304: Steak
305: Crosswalk Sign
306: Stapler
307: Camel
308: Formula 1
309: Pomegranate
310: Dishwasher
311: Crab
312: Hoverboard
313: Meatball
314: Rice Cooker
315: Tuba
316: Calculator
317: Papaya
318: Antelope
319: Parrot
320: Seal
321: Butterfly
322: Dumbbell
323: Donkey
324: Lion
325: Urinal
326: Dolphin
327: Electric Drill
328: Hair Dryer
329: Egg tart
330: Jellyfish
331: Treadmill
332: Lighter
333: Grapefruit
334: Game board
335: Mop
336: Radish
337: Baozi
338: Target
339: French
340: Spring Rolls
341: Monkey
342: Rabbit
343: Pencil Case
344: Yak
345: Red Cabbage
346: Binoculars
347: Asparagus
348: Barbell
349: Scallop
350: Noddles
351: Comb
352: Dumpling
353: Oyster
354: Table Tennis paddle
355: Cosmetics Brush/Eyeliner Pencil
356: Chainsaw
357: Eraser
358: Lobster
359: Durian
360: Okra
361: Lipstick
362: Cosmetics Mirror
363: Curling
364: Table Tennis
# Download script/URL (optional) ---------------------------------------------------------------------------------------
download: |
from concurrent.futures import ThreadPoolExecutor
from pathlib import Path
import numpy as np
from ultralytics.utils import TQDM
from ultralytics.utils.checks import check_requirements
from ultralytics.utils.downloads import download
from ultralytics.utils.ops import xyxy2xywhn
check_requirements("faster-coco-eval")
from faster_coco_eval import COCO
# Train, Val Splits
dir = Path(yaml["path"])
for split, patches in [("train", 50 + 1), ("val", 43 + 1)]:
print(f"Processing {split} in {patches} patches ...")
images, labels = dir / "images" / split, dir / "labels" / split
images.mkdir(parents=True, exist_ok=True)
labels.mkdir(parents=True, exist_ok=True)
# Download
url = f"https://dorc.ks3-cn-beijing.ksyun.com/data-set/2020Objects365%E6%95%B0%E6%8D%AE%E9%9B%86/{split}/"
if split == "train":
download([f"{url}zhiyuan_objv2_{split}.tar.gz"], dir=dir) # annotations json
download([f"{url}patch{i}.tar.gz" for i in range(patches)], dir=images, threads=17) # 51 patches / 17 threads = 3
elif split == "val":
download([f"{url}zhiyuan_objv2_{split}.json"], dir=dir) # annotations json
download([f"{url}images/v1/patch{i}.tar.gz" for i in range(15 + 1)], dir=images, threads=16)
download([f"{url}images/v2/patch{i}.tar.gz" for i in range(16, patches)], dir=images, threads=16)
# Move
files = list(images.rglob("*.jpg"))
with ThreadPoolExecutor(max_workers=16) as executor:
list(TQDM(executor.map(lambda f: f.rename(images / f.name), files), total=len(files), desc=f"Moving {split} images"))
# Labels
coco = COCO(dir / f"zhiyuan_objv2_{split}.json")
names = [x["name"] for x in coco.loadCats(coco.getCatIds())]
for cid, cat in enumerate(names):
catIds = coco.getCatIds(catNms=[cat])
imgIds = coco.getImgIds(catIds=catIds)
def process_annotation(im):
"""Process and write annotations for a single image."""
try:
width, height = im["width"], im["height"]
path = Path(im["file_name"])
with open(labels / path.with_suffix(".txt").name, "a", encoding="utf-8") as file:
annIds = coco.getAnnIds(imgIds=im["id"], catIds=catIds, iscrowd=None)
for a in coco.loadAnns(annIds):
x, y, w, h = a["bbox"] # bounding box in xywh (xy top-left corner)
xyxy = np.array([x, y, x + w, y + h])[None] # pixels(1,4)
x, y, w, h = xyxy2xywhn(xyxy, w=width, h=height, clip=True)[0] # normalized and clipped
file.write(f"{cid} {x:.5f} {y:.5f} {w:.5f} {h:.5f}\n")
except Exception as e:
print(e)
images_list = coco.loadImgs(imgIds)
with ThreadPoolExecutor(max_workers=16) as executor:
list(TQDM(executor.map(process_annotation, images_list), total=len(images_list), desc=f"Class {cid + 1}/{len(names)} {cat}"))Link to this section사용법#
Objects365는 처음 사용할 때 자동으로 다운로드되며, 약 712 GB의 여유 디스크 공간이 필요합니다(다운로드된 zip 아카이브 345 GB + 추출된 데이터셋 367 GB). 다운로드 스크립트는 faster-coco-eval 패키지를 설치하고 주석을 YOLO 형식으로 변환하는데, 네트워크 연결 상태와 하드웨어 성능에 따라 오랜 시간이 걸릴 수 있습니다.
이미지 크기 640으로 100 epochs 동안 Objects365 데이터셋에서 YOLO26n 모델을 학습하려면 다음 코드 스니펫을 사용할 수 있습니다. 사용 가능한 인수의 전체 목록은 모델 Training 페이지를 참조하십시오.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="Objects365.yaml", epochs=100, imgsz=640)Link to this section샘플 이미지 및 주석#
Objects365 데이터셋은 365개 클래스 전반에 걸쳐 밀집된 BBox 주석이 포함된 다양하고 고해상도인 이미지들을 담고 있습니다. 아래 샘플은 이 데이터셋의 특징인 실제 환경의 장면과 다중 객체 주석을 보여줍니다:

Link to this section인용 및 감사의 글#
연구 또는 개발 작업에 Objects365 데이터셋을 사용하는 경우 다음 논문을 인용해 주십시오:
@InProceedings{Shao_2019_ICCV,
author = {Shao, Shuai and Li, Zeming and Zhang, Tianyuan and Peng, Chao and Yu, Gang and Zhang, Xiangyu and Li, Jing and Sun, Jian},
title = {Objects365: A Large-Scale, High-Quality Dataset for Object Detection},
booktitle = {Proceedings of the IEEE/CVF International Conference on Computer Vision (ICCV)},
month = {October},
year = {2019}
}컴퓨터 비전 연구 커뮤니티를 위한 귀중한 자원으로서 Objects365 데이터셋을 제작하고 유지 관리하는 연구팀에 감사를 표합니다. Objects365 데이터셋과 제작자에 대한 자세한 내용은 Objects365 데이터셋 웹사이트를 방문하십시오.
Link to this sectionFAQ#
Link to this sectionObjects365 데이터셋은 어떤 용도로 사용됩니까?#
Objects365 데이터셋은 머신러닝 및 컴퓨터 비전 분야에서 객체 탐지 모델을 학습하고 평가하는 데 사용됩니다. 이 데이터셋은 365개 객체 클래스에 걸쳐 1,742,289개의 학습 이미지와 80,000개의 검증 이미지를 제공하며, 이후 더 작은 작업별 데이터셋에서 미세 조정될 탐지기를 사전 학습하는 데 특히 인기가 높습니다.
Link to this sectionObjects365 데이터셋에는 얼마나 많은 이미지와 클래스가 포함되어 있습니까?#
Ultralytics Objects365.yaml 구성은 365개의 객체 클래스를 1,742,289개의 학습 이미지와 80,000개의 검증 이미지(총 1,822,289개)로 분할하며, 테스트 분할은 없습니다. 업스트림 릴리스에 따르면 전체적으로 약 200만 개의 이미지와 3,000만 개의 BBox가 보고되었습니다.
Link to this sectionObjects365 데이터셋 다운로드 용량은 어느 정도입니까?#
Objects365는 약 712 GB의 디스크 공간이 필요합니다. data="Objects365.yaml"로 처음 학습할 때 자동으로 다운로드되는 약 345 GB의 zip 아카이브와, 추출 후 367 GB의 공간이 필요합니다. 다운로드 스크립트는 faster-coco-eval 패키지를 설치하고 주석을 YOLO 형식으로 변환합니다. 탐지 데이터셋 개요에서 더 작은 대안들을 찾아볼 수 있습니다.
Link to this sectionObjects365 데이터셋에서 YOLO26 모델을 학습하려면 어떻게 해야 합니까?#
이미지 크기 640으로 100 epochs 동안 Objects365 데이터셋을 사용하여 YOLO26n 모델을 학습하려면 다음 지침을 따르십시오:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="Objects365.yaml", epochs=100, imgsz=640)사용 가능한 인수의 전체 목록은 Training 페이지를 참조하십시오.
Link to this section객체 탐지 프로젝트에 Objects365 데이터셋을 사용해야 하는 이유는 무엇입니까?#
Objects365의 365개 클래스 어휘와 밀집된 주석은 이를 객체 탐지를 위한 가장 강력한 사전 학습 데이터셋 중 하나로 만듭니다. ICCV 2019 논문에서는 COCO에서 ImageNet 사전 학습 대비 5.6 포인트(42.0 vs 36.4 mAP)의 성능 향상을 보고했습니다. 데이터셋 이미지들은 다양한 실제 시나리오를 포괄하며, 이는 모델이 하위 탐지 작업에 잘 일반화되도록 돕습니다.
Link to this sectionObjects365 데이터셋의 YAML 구성 파일은 어디서 찾을 수 있습니까?#
Objects365 데이터셋의 YAML 구성 파일은 Objects365.yaml에서 확인할 수 있습니다. 이 파일에는 학습 환경을 설정하는 데 필수적인 데이터셋 경로 및 클래스 라벨과 같은 중요한 정보가 포함되어 있습니다.