Ultralytics-中文文档-六-
Ultralytics 中文文档(六)
全球小麦穗数据集
全球小麦穗数据集是一个图像集合,旨在支持精确的小麦穗检测模型开发,用于小麦表型和作物管理应用。小麦穗,也称为穗,是小麦植物的结实部分。准确估计小麦穗密度和大小对于评估作物健康、成熟度和产量潜力至关重要。该数据集由来自七个国家的九个研究机构合作创建,覆盖多个生长地区,以确保模型在不同环境中泛化良好。
主要特点
-
数据集包含来自欧洲(法国、英国、瑞士)和北美(加拿大)的超过 3,000 张训练图像。
-
它包括来自澳大利亚、日本和中国的大约 1,000 张测试图像。
-
图像为户外田间图像,捕捉小麦穗外观的自然变异。
-
注释包括小麦穗边界框,支持物体检测任务。
数据集结构
全球小麦穗数据集分为两个主要子集:
-
训练集:该子集包含来自欧洲和北美的超过 3,000 张图像。这些图像标有小麦穗边界框,为训练物体检测模型提供了真实数据。
-
测试集:该子集包含来自澳大利亚、日本和中国的大约 1,000 张图像。这些图像用于评估训练模型在未见基因型、环境和观测条件下的表现。
应用
全球小麦穗数据集广泛用于训练和评估小麦穗检测任务中的深度学习模型。数据集中多样的图像集合,捕捉了广泛的外观、环境和条件变化,使其成为植物表型和作物管理领域的研究人员和从业者的宝贵资源。
数据集 YAML
一个 YAML(另一种标记语言)文件用于定义数据集的配置。它包含关于数据集路径、类别和其他相关信息的信息。对于全球小麦穗数据集,GlobalWheat2020.yaml
文件位于 github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/GlobalWheat2020.yaml
。
ultralytics/cfg/datasets/GlobalWheat2020.yaml
# Ultralytics YOLO 🚀, AGPL-3.0 license
# Global Wheat 2020 dataset https://www.global-wheat.com/ by University of Saskatchewan
# Documentation: https://docs.ultralytics.com/datasets/detect/globalwheat2020/
# Example usage: yolo train data=GlobalWheat2020.yaml
# parent
# ├── ultralytics
# └── datasets
# └── GlobalWheat2020 ← downloads here (7.0 GB)
# 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: ../datasets/GlobalWheat2020 # dataset root dir
train: # train images (relative to 'path') 3422 images
- images/arvalis_1
- images/arvalis_2
- images/arvalis_3
- images/ethz_1
- images/rres_1
- images/inrae_1
- images/usask_1
val: # val images (relative to 'path') 748 images (WARNING: train set contains ethz_1)
- images/ethz_1
test: # test images (optional) 1276 images
- images/utokyo_1
- images/utokyo_2
- images/nau_1
- images/uq_1
# Classes
names:
0: wheat_head
# Download script/URL (optional) ---------------------------------------------------------------------------------------
download: |
from ultralytics.utils.downloads import download
from pathlib import Path
# Download
dir = Path(yaml['path']) # dataset root dir
urls = ['https://zenodo.org/record/4298502/files/global-wheat-codalab-official.zip',
'https://github.com/ultralytics/assets/releases/download/v0.0.0/GlobalWheat2020_labels.zip']
download(urls, dir=dir)
# Make Directories
for p in 'annotations', 'images', 'labels':
(dir / p).mkdir(parents=True, exist_ok=True)
# Move
for p in 'arvalis_1', 'arvalis_2', 'arvalis_3', 'ethz_1', 'rres_1', 'inrae_1', 'usask_1', \
'utokyo_1', 'utokyo_2', 'nau_1', 'uq_1':
(dir / 'global-wheat-codalab-official' / p).rename(dir / 'images' / p) # move to /images
f = (dir / 'global-wheat-codalab-official' / p).with_suffix('.json') # json file
if f.exists():
f.rename((dir / 'annotations' / p).with_suffix('.json')) # move to /annotations
使用方法
要在全球小麦穗数据集上使用图像大小为 640 的 YOLOv8n 模型进行 100 个时期的训练,您可以使用以下代码片段。有关可用参数的全面列表,请参考模型训练页面。
训练示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="GlobalWheat2020.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=GlobalWheat2020.yaml model=yolov8n.pt epochs=100 imgsz=640
样本数据和注释
全球小麦穗数据集包含多样的户外田野图像,捕捉了小麦穗外观、环境和条件的自然变异。以下是数据集中一些数据的示例,以及它们对应的注释:
- 小麦穗检测:本图展示了小麦穗检测的示例,其中小麦穗用边界框标注。该数据集提供了多种图像,以促进为此任务开发模型。
这个示例展示了全球小麦穗数据集中数据的多样性和复杂性,并突显了对小麦表型和作物管理应用中精确检测小麦穗的重要性。
引用和致谢
如果您在研究或开发工作中使用全球小麦穗数据集,请引用以下论文:
@article{david2020global,
title={Global Wheat Head Detection (GWHD) Dataset: A Large and Diverse Dataset of High-Resolution RGB-Labelled Images to Develop and Benchmark Wheat Head Detection Methods},
author={David, Etienne and Madec, Simon and Sadeghi-Tehran, Pouria and Aasen, Helge and Zheng, Bangyou and Liu, Shouyang and Kirchgessner, Norbert and Ishikawa, Goro and Nagasawa, Koichi and Badhon, Minhajul and others},
journal={arXiv preprint arXiv:2005.02162},
year={2020}
}
我们要感谢那些为全球小麦穗数据集的创建和维护做出贡献的研究人员和机构,这是植物表型和作物管理研究社区的宝贵资源。有关数据集及其创建者的更多信息,请访问全球小麦穗数据集网站。
常见问题解答
全球小麦穗数据集用于什么?
全球小麦穗数据集主要用于开发和训练旨在检测小麦穗的深度学习模型。这对于小麦表型和作物管理应用至关重要,能够更准确地估计小麦穗的密度、大小和整体产量潜力。准确的检测方法有助于评估作物的健康状况和成熟度,对于高效的作物管理至关重要。
如何在全球小麦穗数据集上训练 YOLOv8n 模型?
要在全球小麦穗数据集上训练 YOLOv8n 模型,您可以使用以下代码片段。确保您有指定数据集路径和类别的GlobalWheat2020.yaml
配置文件:
训练示例
from ultralytics import YOLO
# Load a pre-trained model (recommended for training)
model = YOLO("yolov8n.pt")
# Train the model
results = model.train(data="GlobalWheat2020.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=GlobalWheat2020.yaml model=yolov8n.pt epochs=100 imgsz=640
要获取所有可用参数的详细列表,请参阅模型训练页面。
全球小麦穗数据集的关键特点是什么?
全球小麦穗数据集的关键特点包括:
-
来自欧洲(法国、英国、瑞士)和北美(加拿大)的 3,000 多张训练图像。
-
来自澳大利亚、日本和中国的约 1,000 张测试图像。
-
由于不同的生长环境,小麦穗外观存在高度变异性。
-
带有小麦穗边界框的详细注释,有助于物体检测模型。
这些特点有助于开发能够在多个地区通用的强健模型。
我在哪里可以找到全球小麦穗数据集的配置 YAML 文件?
全球小麦穗数据集的配置 YAML 文件名为 GlobalWheat2020.yaml
,可以在 GitHub 上获取。您可以访问这个 链接。这个文件包含关于数据集路径、类别和其他配置细节的必要信息,用于在 Ultralytics YOLO 中进行模型训练。
小麦穗检测在农作物管理中为何如此重要?
小麦穗检测在农作物管理中至关重要,因为它能够准确估计小麦穗的密度和大小,这对评估农作物的健康、成熟度和产量潜力至关重要。通过利用在全球小麦穗数据集等数据集上训练的深度学习模型,农民和研究人员可以更好地监测和管理农作物,从而提高生产力并优化农业实践中的资源利用。这种技术进步支持可持续农业和粮食安全倡议。
欲了解更多关于人工智能在农业中应用的信息,请访问 人工智能在农业中的应用。
Objects365 数据集
Objects365 数据集是一个大规模、高质量的数据集,旨在促进对野外多样物体进行目标检测的研究。由Megvii研究人员团队创建,该数据集提供了广泛的高分辨率图像,并包含了覆盖 365 个物体类别的全面注释边界框。
主要特点
-
Objects365 包含 365 个物体类别,200 万张图像和超过 3000 万个边界框。
-
该数据集包含各种场景中的多样化物体,为目标检测任务提供了丰富且具有挑战性的基准。
-
注释包括物体的边界框,适合用于目标检测模型的训练和评估。
-
Objects365 预训练模型在各种任务上明显优于 ImageNet 预训练模型,提高了泛化性能。
数据集结构
Objects365 数据集被组织为一组图像及其对应的注释:
-
图像:该数据集包含了 200 万张高分辨率图像,每张图像涵盖了 365 个类别中的多种物体。
-
注释:图像标注了超过 3000 万个边界框,为目标检测任务提供了全面的真实信息。
应用
Objects365 数据集广泛用于深度学习模型在目标检测任务中的训练和评估。数据集中多样的物体类别和高质量的注释使其成为计算机视觉领域研究人员和从业者的宝贵资源。
数据集 YAML
用于定义数据集配置的 YAML(Yet Another Markup Language)文件包含了关于数据集路径、类别及其他相关信息的内容。对于 Objects365 数据集,Objects365.yaml
文件位于github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/Objects365.yaml
。
ultralytics/cfg/datasets/Objects365.yaml
# Ultralytics YOLO 🚀, AGPL-3.0 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: ../datasets/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: Dinning 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: Hamimelon
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: Meat ball
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 tqdm import tqdm
from ultralytics.utils.checks import check_requirements
from ultralytics.utils.downloads import download
from ultralytics.utils.ops import xyxy2xywhn
import numpy as np
from pathlib import Path
check_requirements(('pycocotools>=2.0',))
from pycocotools.coco import COCO
# Make Directories
dir = Path(yaml['path']) # dataset root dir
for p in 'images', 'labels':
(dir / p).mkdir(parents=True, exist_ok=True)
for q in 'train', 'val':
(dir / p / q).mkdir(parents=True, exist_ok=True)
# Train, Val Splits
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
# 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, curl=True, threads=8)
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, curl=True, threads=8)
download([f'{url}images/v2/patch{i}.tar.gz' for i in range(16, patches)], dir=images, curl=True, threads=8)
# Move
for f in tqdm(images.rglob('*.jpg'), desc=f'Moving {split} images'):
f.rename(images / f.name) # move to /images/{split}
# 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)
for im in tqdm(coco.loadImgs(imgIds), desc=f'Class {cid + 1}/{len(names)} {cat}'):
width, height = im["width"], im["height"]
path = Path(im["file_name"]) # image filename
try:
with open(labels / path.with_suffix('.txt').name, 'a') 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)
使用
若要在 Objects365 数据集上使用图像大小为 640、进行 100 个 epochs 的 YOLOv8n 模型训练,可以使用以下代码片段。有关可用参数的全面列表,请参阅模型训练页面。
训练示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="Objects365.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=Objects365.yaml model=yolov8n.pt epochs=100 imgsz=640
样本数据和注释
Objects365 数据集包含了一系列高分辨率图像,展示了来自 365 个类别的各种物体,为目标检测任务提供了丰富的上下文信息。以下是数据集中的一些示例图像:
- Objects365:这幅图展示了一个目标检测的示例,其中物体用边界框标注。该数据集提供了各种图像,以便开发针对此任务的模型。
该示例展示了 Objects365 数据集中数据的多样性和复杂性,并突显了准确目标检测在计算机视觉应用中的重要性。
引用和致谢
如果您在研究或开发工作中使用 Objects365 数据集,请引用以下论文:
@inproceedings{shao2019objects365,
title={Objects365: A Large-scale, High-quality Dataset for Object Detection},
author={Shao, Shuai and Li, Zeming and Zhang, Tianyuan and Peng, Chao and Yu, Gang and Li, Jing and Zhang, Xiangyu and Sun, Jian},
booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision},
pages={8425--8434},
year={2019}
}
我们要感谢创建和维护 Objects365 数据集的研究团队,作为计算机视觉研究社区的宝贵资源。有关 Objects365 数据集及其创建者的更多信息,请访问 Objects365 数据集网站。
常见问题解答
Objects365 数据集用于什么?
Objects365 数据集 是为机器学习和计算机视觉中的目标检测任务设计的。它提供了一个大规模高质量的数据集,包含 200 万张标注图像和 3000 万个边界框,覆盖了 365 个类别。利用这样一个多样化的数据集有助于提高目标检测模型的性能和泛化能力,对于该领域的研究和开发至关重要。
如何在 Objects365 数据集上训练 YOLOv8 模型?
要使用 Objects365 数据集训练一个 YOLOv8n 模型,进行 100 个 epoch,并设置图像尺寸为 640,请按照以下说明操作:
训练示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="Objects365.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=Objects365.yaml model=yolov8n.pt epochs=100 imgsz=640
请参考培训页面以获取可用参数的全面列表。
为什么应该在我的目标检测项目中使用 Objects365 数据集?
Objects365 数据集在目标检测任务中具有几个优势:
您可以在哪里找到 Objects365 数据集的 YAML 配置文件?
Objects365 数据集的 YAML 配置文件可在 Objects365.yaml 找到。该文件包含诸如数据集路径和类别标签等关键信息,对于设置您的训练环境至关重要。
Objects365 数据集的数据集结构如何增强目标检测建模?
Objects365 数据集 组织结构清晰,包含 200 万张高分辨率图像和超过 3000 万个边界框的详细标注。这种结构确保了一个强大的数据集,用于训练深度学习模型进行目标检测,提供了丰富的对象和场景。这种多样性和数量有助于开发更准确并能良好泛化到实际应用的模型。有关数据集结构的更多详细信息,请参考数据集 YAML 部分。
Open Images V7 数据集
Open Images V7 是由 Google 领导的多功能且广阔的数据集。旨在推动计算机视觉领域的研究,它拥有大量图像,并用多种数据进行了注释,包括图像级标签、物体边界框、物体分割蒙版、视觉关系和本地化叙述。
www.youtube.com/embed/u3pLlgzUeV8
观看: 使用 OpenImagesV7 预训练模型进行物体检测
Open Images V7 预训练模型
| 模型 | 大小 ^((像素)) | mAP ^(val 50-95) | 速度 ^(CPU ONNX
(毫秒)) | 速度 ^(A100 TensorRT
(毫秒)) | 参数 ^((M)) | FLOPs ^((B)) |
--- | --- | --- | --- | --- | --- | --- |
---|---|---|---|---|---|---|
YOLOv8n | 640 | 18.4 | 142.4 | 1.21 | 3.5 | 10.5 |
YOLOv8s | 640 | 27.7 | 183.1 | 1.40 | 11.4 | 29.7 |
YOLOv8m | 640 | 33.6 | 408.5 | 2.26 | 26.2 | 80.6 |
YOLOv8l | 640 | 34.9 | 596.9 | 2.43 | 44.1 | 167.4 |
YOLOv8x | 640 | 36.3 | 860.6 | 3.56 | 68.7 | 260.6 |
主要特征
-
涵盖了以多种方式注释的约 900 万张图像,以适应多种计算机视觉任务。
-
在 190 万张图像中,共有 1600 万个边界框跨越 600 个物体类别。这些框主要由专家手绘,确保高精度。
-
提供了 330 万个可视关系注释,详细说明了 1466 个独特的关系三元组、物体属性和人类活动。
-
V5 引入了对 350 个类别中 2.8M 个物体的分割蒙版。
-
V6 引入了 67.5 万个本地化叙述,融合了语音、文本和鼠标轨迹,突出描述的物体。
-
V7 引入了在 140 万张图像上的 6640 万个点级标签,涵盖了 5827 个类别。
-
涵盖了 20638 个类别中共 6140 万个图像级标签。
-
提供了一个统一的平台,用于图像分类、物体检测、关系检测、实例分割和多模态图像描述。
数据集结构
Open Images V7 是一个由多个组件组成的结构,旨在满足多样化的计算机视觉挑战:
-
图像:约 900 万张图像,通常展示复杂场景,平均每张图像有 8.3 个物体。
-
边界框:超过 1600 万个框,标示了跨越 600 个类别的物体。
-
分割蒙版:详细描述了 350 个类别中 2.8M 个物体的确切边界。
-
视觉关系:3.3M 注释,指示对象关系、属性和动作。
-
本地化叙述:675k 描述,结合语音、文本和鼠标轨迹。
-
点级标签:66.4M 标签跨越 1.4M 图像,适用于零/少次语义分割。
应用
Open Images V7 是在各种计算机视觉任务中训练和评估最先进模型的基石。数据集的广泛范围和高质量的标注使其对专注于计算机视觉的研究人员和开发者不可或缺。
数据集 YAML
通常,数据集配备一个 YAML(Yet Another Markup Language)文件,该文件详细说明了数据集的配置。对于 Open Images V7 来说,可能存在一个假设的 OpenImagesV7.yaml
。为了准确的路径和配置,应参考数据集的官方存储库或文档。
OpenImagesV7.yaml
# Ultralytics YOLO 🚀, AGPL-3.0 license
# Open Images v7 dataset https://storage.googleapis.com/openimages/web/index.html by Google
# Documentation: https://docs.ultralytics.com/datasets/detect/open-images-v7/
# Example usage: yolo train data=open-images-v7.yaml
# parent
# ├── ultralytics
# └── datasets
# └── open-images-v7 ← downloads here (561 GB)
# 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: ../datasets/open-images-v7 # dataset root dir
train: images/train # train images (relative to 'path') 1743042 images
val: images/val # val images (relative to 'path') 41620 images
test: # test images (optional)
# Classes
names:
0: Accordion
1: Adhesive tape
2: Aircraft
3: Airplane
4: Alarm clock
5: Alpaca
6: Ambulance
7: Animal
8: Ant
9: Antelope
10: Apple
11: Armadillo
12: Artichoke
13: Auto part
14: Axe
15: Backpack
16: Bagel
17: Baked goods
18: Balance beam
19: Ball
20: Balloon
21: Banana
22: Band-aid
23: Banjo
24: Barge
25: Barrel
26: Baseball bat
27: Baseball glove
28: Bat (Animal)
29: Bathroom accessory
30: Bathroom cabinet
31: Bathtub
32: Beaker
33: Bear
34: Bed
35: Bee
36: Beehive
37: Beer
38: Beetle
39: Bell pepper
40: Belt
41: Bench
42: Bicycle
43: Bicycle helmet
44: Bicycle wheel
45: Bidet
46: Billboard
47: Billiard table
48: Binoculars
49: Bird
50: Blender
51: Blue jay
52: Boat
53: Bomb
54: Book
55: Bookcase
56: Boot
57: Bottle
58: Bottle opener
59: Bow and arrow
60: Bowl
61: Bowling equipment
62: Box
63: Boy
64: Brassiere
65: Bread
66: Briefcase
67: Broccoli
68: Bronze sculpture
69: Brown bear
70: Building
71: Bull
72: Burrito
73: Bus
74: Bust
75: Butterfly
76: Cabbage
77: Cabinetry
78: Cake
79: Cake stand
80: Calculator
81: Camel
82: Camera
83: Can opener
84: Canary
85: Candle
86: Candy
87: Cannon
88: Canoe
89: Cantaloupe
90: Car
91: Carnivore
92: Carrot
93: Cart
94: Cassette deck
95: Castle
96: Cat
97: Cat furniture
98: Caterpillar
99: Cattle
100: Ceiling fan
101: Cello
102: Centipede
103: Chainsaw
104: Chair
105: Cheese
106: Cheetah
107: Chest of drawers
108: Chicken
109: Chime
110: Chisel
111: Chopsticks
112: Christmas tree
113: Clock
114: Closet
115: Clothing
116: Coat
117: Cocktail
118: Cocktail shaker
119: Coconut
120: Coffee
121: Coffee cup
122: Coffee table
123: Coffeemaker
124: Coin
125: Common fig
126: Common sunflower
127: Computer keyboard
128: Computer monitor
129: Computer mouse
130: Container
131: Convenience store
132: Cookie
133: Cooking spray
134: Corded phone
135: Cosmetics
136: Couch
137: Countertop
138: Cowboy hat
139: Crab
140: Cream
141: Cricket ball
142: Crocodile
143: Croissant
144: Crown
145: Crutch
146: Cucumber
147: Cupboard
148: Curtain
149: Cutting board
150: Dagger
151: Dairy Product
152: Deer
153: Desk
154: Dessert
155: Diaper
156: Dice
157: Digital clock
158: Dinosaur
159: Dishwasher
160: Dog
161: Dog bed
162: Doll
163: Dolphin
164: Door
165: Door handle
166: Doughnut
167: Dragonfly
168: Drawer
169: Dress
170: Drill (Tool)
171: Drink
172: Drinking straw
173: Drum
174: Duck
175: Dumbbell
176: Eagle
177: Earrings
178: Egg (Food)
179: Elephant
180: Envelope
181: Eraser
182: Face powder
183: Facial tissue holder
184: Falcon
185: Fashion accessory
186: Fast food
187: Fax
188: Fedora
189: Filing cabinet
190: Fire hydrant
191: Fireplace
192: Fish
193: Flag
194: Flashlight
195: Flower
196: Flowerpot
197: Flute
198: Flying disc
199: Food
200: Food processor
201: Football
202: Football helmet
203: Footwear
204: Fork
205: Fountain
206: Fox
207: French fries
208: French horn
209: Frog
210: Fruit
211: Frying pan
212: Furniture
213: Garden Asparagus
214: Gas stove
215: Giraffe
216: Girl
217: Glasses
218: Glove
219: Goat
220: Goggles
221: Goldfish
222: Golf ball
223: Golf cart
224: Gondola
225: Goose
226: Grape
227: Grapefruit
228: Grinder
229: Guacamole
230: Guitar
231: Hair dryer
232: Hair spray
233: Hamburger
234: Hammer
235: Hamster
236: Hand dryer
237: Handbag
238: Handgun
239: Harbor seal
240: Harmonica
241: Harp
242: Harpsichord
243: Hat
244: Headphones
245: Heater
246: Hedgehog
247: Helicopter
248: Helmet
249: High heels
250: Hiking equipment
251: Hippopotamus
252: Home appliance
253: Honeycomb
254: Horizontal bar
255: Horse
256: Hot dog
257: House
258: Houseplant
259: Human arm
260: Human beard
261: Human body
262: Human ear
263: Human eye
264: Human face
265: Human foot
266: Human hair
267: Human hand
268: Human head
269: Human leg
270: Human mouth
271: Human nose
272: Humidifier
273: Ice cream
274: Indoor rower
275: Infant bed
276: Insect
277: Invertebrate
278: Ipod
279: Isopod
280: Jacket
281: Jacuzzi
282: Jaguar (Animal)
283: Jeans
284: Jellyfish
285: Jet ski
286: Jug
287: Juice
288: Kangaroo
289: Kettle
290: Kitchen & dining room table
291: Kitchen appliance
292: Kitchen knife
293: Kitchen utensil
294: Kitchenware
295: Kite
296: Knife
297: Koala
298: Ladder
299: Ladle
300: Ladybug
301: Lamp
302: Land vehicle
303: Lantern
304: Laptop
305: Lavender (Plant)
306: Lemon
307: Leopard
308: Light bulb
309: Light switch
310: Lighthouse
311: Lily
312: Limousine
313: Lion
314: Lipstick
315: Lizard
316: Lobster
317: Loveseat
318: Luggage and bags
319: Lynx
320: Magpie
321: Mammal
322: Man
323: Mango
324: Maple
325: Maracas
326: Marine invertebrates
327: Marine mammal
328: Measuring cup
329: Mechanical fan
330: Medical equipment
331: Microphone
332: Microwave oven
333: Milk
334: Miniskirt
335: Mirror
336: Missile
337: Mixer
338: Mixing bowl
339: Mobile phone
340: Monkey
341: Moths and butterflies
342: Motorcycle
343: Mouse
344: Muffin
345: Mug
346: Mule
347: Mushroom
348: Musical instrument
349: Musical keyboard
350: Nail (Construction)
351: Necklace
352: Nightstand
353: Oboe
354: Office building
355: Office supplies
356: Orange
357: Organ (Musical Instrument)
358: Ostrich
359: Otter
360: Oven
361: Owl
362: Oyster
363: Paddle
364: Palm tree
365: Pancake
366: Panda
367: Paper cutter
368: Paper towel
369: Parachute
370: Parking meter
371: Parrot
372: Pasta
373: Pastry
374: Peach
375: Pear
376: Pen
377: Pencil case
378: Pencil sharpener
379: Penguin
380: Perfume
381: Person
382: Personal care
383: Personal flotation device
384: Piano
385: Picnic basket
386: Picture frame
387: Pig
388: Pillow
389: Pineapple
390: Pitcher (Container)
391: Pizza
392: Pizza cutter
393: Plant
394: Plastic bag
395: Plate
396: Platter
397: Plumbing fixture
398: Polar bear
399: Pomegranate
400: Popcorn
401: Porch
402: Porcupine
403: Poster
404: Potato
405: Power plugs and sockets
406: Pressure cooker
407: Pretzel
408: Printer
409: Pumpkin
410: Punching bag
411: Rabbit
412: Raccoon
413: Racket
414: Radish
415: Ratchet (Device)
416: Raven
417: Rays and skates
418: Red panda
419: Refrigerator
420: Remote control
421: Reptile
422: Rhinoceros
423: Rifle
424: Ring binder
425: Rocket
426: Roller skates
427: Rose
428: Rugby ball
429: Ruler
430: Salad
431: Salt and pepper shakers
432: Sandal
433: Sandwich
434: Saucer
435: Saxophone
436: Scale
437: Scarf
438: Scissors
439: Scoreboard
440: Scorpion
441: Screwdriver
442: Sculpture
443: Sea lion
444: Sea turtle
445: Seafood
446: Seahorse
447: Seat belt
448: Segway
449: Serving tray
450: Sewing machine
451: Shark
452: Sheep
453: Shelf
454: Shellfish
455: Shirt
456: Shorts
457: Shotgun
458: Shower
459: Shrimp
460: Sink
461: Skateboard
462: Ski
463: Skirt
464: Skull
465: Skunk
466: Skyscraper
467: Slow cooker
468: Snack
469: Snail
470: Snake
471: Snowboard
472: Snowman
473: Snowmobile
474: Snowplow
475: Soap dispenser
476: Sock
477: Sofa bed
478: Sombrero
479: Sparrow
480: Spatula
481: Spice rack
482: Spider
483: Spoon
484: Sports equipment
485: Sports uniform
486: Squash (Plant)
487: Squid
488: Squirrel
489: Stairs
490: Stapler
491: Starfish
492: Stationary bicycle
493: Stethoscope
494: Stool
495: Stop sign
496: Strawberry
497: Street light
498: Stretcher
499: Studio couch
500: Submarine
501: Submarine sandwich
502: Suit
503: Suitcase
504: Sun hat
505: Sunglasses
506: Surfboard
507: Sushi
508: Swan
509: Swim cap
510: Swimming pool
511: Swimwear
512: Sword
513: Syringe
514: Table
515: Table tennis racket
516: Tablet computer
517: Tableware
518: Taco
519: Tank
520: Tap
521: Tart
522: Taxi
523: Tea
524: Teapot
525: Teddy bear
526: Telephone
527: Television
528: Tennis ball
529: Tennis racket
530: Tent
531: Tiara
532: Tick
533: Tie
534: Tiger
535: Tin can
536: Tire
537: Toaster
538: Toilet
539: Toilet paper
540: Tomato
541: Tool
542: Toothbrush
543: Torch
544: Tortoise
545: Towel
546: Tower
547: Toy
548: Traffic light
549: Traffic sign
550: Train
551: Training bench
552: Treadmill
553: Tree
554: Tree house
555: Tripod
556: Trombone
557: Trousers
558: Truck
559: Trumpet
560: Turkey
561: Turtle
562: Umbrella
563: Unicycle
564: Van
565: Vase
566: Vegetable
567: Vehicle
568: Vehicle registration plate
569: Violin
570: Volleyball (Ball)
571: Waffle
572: Waffle iron
573: Wall clock
574: Wardrobe
575: Washing machine
576: Waste container
577: Watch
578: Watercraft
579: Watermelon
580: Weapon
581: Whale
582: Wheel
583: Wheelchair
584: Whisk
585: Whiteboard
586: Willow
587: Window
588: Window blind
589: Wine
590: Wine glass
591: Wine rack
592: Winter melon
593: Wok
594: Woman
595: Wood-burning stove
596: Woodpecker
597: Worm
598: Wrench
599: Zebra
600: Zucchini
# Download script/URL (optional) ---------------------------------------------------------------------------------------
download: |
from ultralytics.utils import LOGGER, SETTINGS, Path, is_ubuntu, get_ubuntu_version
from ultralytics.utils.checks import check_requirements, check_version
check_requirements('fiftyone')
if is_ubuntu() and check_version(get_ubuntu_version(), '>=22.04'):
# Ubuntu>=22.04 patch https://github.com/voxel51/fiftyone/issues/2961#issuecomment-1666519347
check_requirements('fiftyone-db-ubuntu2204')
import fiftyone as fo
import fiftyone.zoo as foz
import warnings
name = 'open-images-v7'
fraction = 1.0 # fraction of full dataset to use
LOGGER.warning('WARNING ⚠️ Open Images V7 dataset requires at least **561 GB of free space. Starting download...')
for split in 'train', 'validation': # 1743042 train, 41620 val images
train = split == 'train'
# Load Open Images dataset
dataset = foz.load_zoo_dataset(name,
split=split,
label_types=['detections'],
dataset_dir=Path(SETTINGS['datasets_dir']) / 'fiftyone' / name,
max_samples=round((1743042 if train else 41620) * fraction))
# Define classes
if train:
classes = dataset.default_classes # all classes
# classes = dataset.distinct('ground_truth.detections.label') # only observed classes
# Export to YOLO format
with warnings.catch_warnings():
warnings.filterwarnings("ignore", category=UserWarning, module="fiftyone.utils.yolo")
dataset.export(export_dir=str(Path(SETTINGS['datasets_dir']) / name),
dataset_type=fo.types.YOLOv5Dataset,
label_field='ground_truth',
split='val' if split == 'validation' else split,
classes=classes,
overwrite=train)
使用
要在 Open Images V7 数据集上用 YOLOv8n 模型进行 100 个 epoch 的训练,并且图像大小为 640,您可以使用以下代码片段。有关可用参数的详细列表,请参考模型训练页面。
警告
完整的 Open Images V7 数据集包括 1,743,042 张训练图像和 41,620 张验证图像,下载后需要约 561 GB 的存储空间。
执行以下提供的命令将自动下载完整数据集(如果本地尚未存在)。在运行以下示例之前,关键是:
-
确保您的设备有足够的存储空间。
-
确保稳定且高速的互联网连接。
训练示例
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv8n model
model = YOLO("yolov8n.pt")
# Train the model on the Open Images V7 dataset
results = model.train(data="open-images-v7.yaml", epochs=100, imgsz=640)
# Train a COCO-pretrained YOLOv8n model on the Open Images V7 dataset
yolo detect train data=open-images-v7.yaml model=yolov8n.pt epochs=100 imgsz=640
样本数据和注释
数据集的示例图可以帮助深入了解其丰富性:
- Open Images V7:这幅图展示了可用的注释深度和细节,包括边界框、关系和分割掩模。
研究人员可以从数据集解决的一系列计算机视觉挑战中获得宝贵的见解,从基本的物体检测到复杂的关系识别。
引用和致谢
对于那些在工作中使用 Open Images V7 的人,引用相关论文并承认创建者是明智之举:
@article{OpenImages,
author = {Alina Kuznetsova and Hassan Rom and Neil Alldrin and Jasper Uijlings and Ivan Krasin and Jordi Pont-Tuset and Shahab Kamali and Stefan Popov and Matteo Malloci and Alexander Kolesnikov and Tom Duerig and Vittorio Ferrari},
title = {The Open Images Dataset V4: Unified image classification, object detection, and visual relationship detection at scale},
year = {2020},
journal = {IJCV}
}
由衷感谢谷歌 AI 团队创建和维护 Open Images V7 数据集。要深入了解数据集及其提供的内容,请访问官方 Open Images V7 网站。
常见问题
Open Images V7 数据集是什么?
Open Images V7 是由谷歌创建的广泛而多功能的数据集,旨在推动计算机视觉研究。它包括图像级标签、物体边界框、物体分割掩模、视觉关系和本地化叙述,非常适合各种计算机视觉任务,如物体检测、分割和关系检测。
我如何在 Open Images V7 数据集上训练 YOLOv8 模型?
在 Open Images V7 数据集上训练 YOLOv8 模型,您可以使用 Python 和 CLI 命令。以下是使用图像尺寸为 640 训练 YOLOv8n 模型 100 个 epochs 的示例:
训练示例
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv8n model
model = YOLO("yolov8n.pt")
# Train the model on the Open Images V7 dataset
results = model.train(data="open-images-v7.yaml", epochs=100, imgsz=640)
# Train a COCO-pretrained YOLOv8n model on the Open Images V7 dataset
yolo detect train data=open-images-v7.yaml model=yolov8n.pt epochs=100 imgsz=640
关于参数和设置的更多详细信息,请参阅训练页面。
Open Images V7 数据集的一些关键特性是什么?
Open Images V7 数据集包括大约 900 万张图像,具有各种注释:- 边界框:跨越 600 个对象类别的 1600 万个边界框。- 分割蒙版:涵盖 350 个类别的 280 万个对象的蒙版。- 视觉关系:表示关系、属性和动作的 330 万个注释。- 本地化叙述:结合语音、文本和鼠标轨迹的 67.5 万个描述。- 点级标签:跨 140 万个图像的 6640 万个标签。- 图像级标签:跨 20,638 个类别的 6140 万个标签。
Open Images V7 数据集有哪些预训练模型可用?
Ultralytics 为 Open Images V7 数据集提供了几个预训练的 YOLOv8 模型,每个模型具有不同的尺寸和性能指标:
| 模型 | 尺寸 ^((像素)) | mAP^(val 50-95) | 速度 ^(CPU ONNX
(ms)) | 速度 ^(A100 TensorRT
(ms)) | 参数 ^((M)) | FLOPs ^((B)) |
--- | --- | --- | --- | --- | --- | --- |
---|---|---|---|---|---|---|
YOLOv8n | 640 | 18.4 | 142.4 | 1.21 | 3.5 | 10.5 |
YOLOv8s | 640 | 27.7 | 183.1 | 1.40 | 11.4 | 29.7 |
YOLOv8m | 640 | 33.6 | 408.5 | 2.26 | 26.2 | 80.6 |
YOLOv8l | 640 | 34.9 | 596.9 | 2.43 | 44.1 | 167.4 |
YOLOv8x | 640 | 36.3 | 860.6 | 3.56 | 68.7 | 260.6 |
Open Images V7 数据集可以用于哪些应用?
Open Images V7 数据集支持多种计算机视觉任务,包括:- 图像分类 - 目标检测 - 实例分割 - 视觉关系检测 - 多模态图像描述
其详尽的标注和广泛的范围使其适用于训练和评估先进的机器学习模型,如在我们的应用程序部分详细说明的实际用例中所强调的。
SKU-110k 数据集
SKU-110k数据集是一组密集包装的零售货架图像,旨在支持对象检测任务的研究。由 Eran Goldman 等人开发,数据集包含超过 110,000 个独特的店内存货单位(SKU)类别,其中密集包装的物体通常外观相似甚至相同,放置在紧密的位置。
www.youtube.com/embed/_gRqR-miFPE
观看:如何使用 Ultralytics 在 SKU-110k 数据集上训练 YOLOv10 | 零售数据集
主要特点
-
SKU-110k 包含来自世界各地商店货架的图像,其中密集包装的物体对最先进的目标检测器构成挑战。
-
数据集包括超过 110,000 个独特的 SKU 类别,提供多样化的物体外观。
-
注释包括物体的边界框和 SKU 类别标签。
数据集结构
SKU-110k 数据集分为三个主要子集:
-
训练集:这个子集包含用于训练目标检测模型的图像和注释。
-
验证集:这个子集包含用于训练期间模型验证的图像和注释。
-
测试集:这个子集旨在对训练好的目标检测模型进行最终评估。
应用
SKU-110k 数据集被广泛用于训练和评估对象检测任务中的深度学习模型,特别是在零售货架展示等密集包装场景中。数据集丰富的 SKU 类别和密集包装的物体排列使其成为计算机视觉领域研究人员和实践者的宝贵资源。
数据集 YAML
使用 YAML(另一种标记语言)文件定义数据集配置。它包含有关数据集路径、类别和其他相关信息的信息。对于 SKU-110K 数据集,SKU-110K.yaml
文件位于github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/SKU-110K.yaml
。
ultralytics/cfg/datasets/SKU-110K.yaml
# Ultralytics YOLO 🚀, AGPL-3.0 license
# SKU-110K retail items dataset https://github.com/eg4000/SKU110K_CVPR19 by Trax Retail
# Documentation: https://docs.ultralytics.com/datasets/detect/sku-110k/
# Example usage: yolo train data=SKU-110K.yaml
# parent
# ├── ultralytics
# └── datasets
# └── SKU-110K ← downloads here (13.6 GB)
# 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: ../datasets/SKU-110K # dataset root dir
train: train.txt # train images (relative to 'path') 8219 images
val: val.txt # val images (relative to 'path') 588 images
test: test.txt # test images (optional) 2936 images
# Classes
names:
0: object
# Download script/URL (optional) ---------------------------------------------------------------------------------------
download: |
import shutil
from pathlib import Path
import numpy as np
import pandas as pd
from tqdm import tqdm
from ultralytics.utils.downloads import download
from ultralytics.utils.ops import xyxy2xywh
# Download
dir = Path(yaml['path']) # dataset root dir
parent = Path(dir.parent) # download dir
urls = ['http://trax-geometry.s3.amazonaws.com/cvpr_challenge/SKU110K_fixed.tar.gz']
download(urls, dir=parent)
# Rename directories
if dir.exists():
shutil.rmtree(dir)
(parent / 'SKU110K_fixed').rename(dir) # rename dir
(dir / 'labels').mkdir(parents=True, exist_ok=True) # create labels dir
# Convert labels
names = 'image', 'x1', 'y1', 'x2', 'y2', 'class', 'image_width', 'image_height' # column names
for d in 'annotations_train.csv', 'annotations_val.csv', 'annotations_test.csv':
x = pd.read_csv(dir / 'annotations' / d, names=names).values # annotations
images, unique_images = x[:, 0], np.unique(x[:, 0])
with open((dir / d).with_suffix('.txt').__str__().replace('annotations_', ''), 'w') as f:
f.writelines(f'./images/{s}\n' for s in unique_images)
for im in tqdm(unique_images, desc=f'Converting {dir / d}'):
cls = 0 # single-class dataset
with open((dir / 'labels' / im).with_suffix('.txt'), 'a') as f:
for r in x[images == im]:
w, h = r[6], r[7] # image width, height
xywh = xyxy2xywh(np.array([[r[1] / w, r[2] / h, r[3] / w, r[4] / h]]))[0] # instance
f.write(f"{cls} {xywh[0]:.5f} {xywh[1]:.5f} {xywh[2]:.5f} {xywh[3]:.5f}\n") # write label
使用
要在 SKU-110K 数据集上训练一个 YOLOv8n 模型,使用 640 的图像大小进行 100 个 epochs,可以使用以下代码片段。要获取可用参数的全面列表,请参阅模型训练页面。
训练示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="SKU-110K.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=SKU-110K.yaml model=yolov8n.pt epochs=100 imgsz=640
示例数据和注释
SKU-110k 数据集包含丰富的零售货架图像,其中物体密集包装,为对象检测任务提供丰富的上下文。以下是数据集中的一些示例数据及其相应的注释:
- 密集包装的零售货架图像:此图展示了零售货架设置中密集包装物体的示例。物体带有边界框和 SKU 类别标签的注释。
这个示例展示了 SKU-110k 数据集中数据的多样性和复杂性,并突显了高质量数据对目标检测任务的重要性。
引用和致谢
如果您在研究或开发工作中使用 SKU-110k 数据集,请引用以下论文:
@inproceedings{goldman2019dense,
author = {Eran Goldman and Roei Herzig and Aviv Eisenschtat and Jacob Goldberger and Tal Hassner},
title = {Precise Detection in Densely Packed Scenes},
booktitle = {Proc. Conf. Comput. Vision Pattern Recognition (CVPR)},
year = {2019}
}
我们要感谢 Eran Goldman 等人为创建和维护 SKU-110k 数据集作为计算机视觉研究社区的宝贵资源。有关 SKU-110k 数据集及其创建者的更多信息,请访问 SKU-110k 数据集 GitHub 仓库。
常见问题解答
SKU-110k 数据集是什么以及对目标检测的重要性?
SKU-110k 数据集由 Eran Goldman 等人开发,包括超过 110,000 个独特的 SKU 类别的密集包装零售货架图像,旨在帮助目标检测研究。其重要性在于其挑战最先进的目标检测器处理多样化物体外观和近距离的能力,使其成为计算机视觉研究和实践者的宝贵资源。在我们的 SKU-110k 数据集部分了解更多关于数据集结构和应用的信息。
我如何使用 SKU-110k 数据集训练 YOLOv8 模型?
在 SKU-110k 数据集上训练 YOLOv8 模型非常简单。以下是一个训练 YOLOv8n 模型的示例,使用 640 的图像尺寸进行 100 个 epochs:
训练示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="SKU-110K.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=SKU-110K.yaml model=yolov8n.pt epochs=100 imgsz=640
欲获得可用参数的详细列表,请参阅模型训练页面。
SKU-110k 数据集的主要子集是什么?
SKU-110k 数据集分为三个主要子集:
-
训练集:包含用于训练目标检测模型的图像和注释。
-
验证集:包含用于模型训练过程中验证的图像和注释。
-
测试集:用于最终评估已训练的目标检测模型。
有关更多详细信息,请参阅数据集结构部分。
我如何配置 SKU-110k 数据集进行训练?
SKU-110k 数据集的配置在一个 YAML 文件中定义,其中包括关于数据集路径、类别和其他相关信息的细节。SKU-110K.yaml
文件维护在 SKU-110K.yaml。例如,您可以根据我们的使用示例使用此配置来训练模型。
SKU-110k 数据集在深度学习背景下的关键特征是什么?
SKU-110k 数据集包含来自世界各地的商店货架图像,展示了密集包装的物体,对目标检测器提出了重大挑战:
-
超过 110,000 个独特的 SKU 类别
-
多样化物体外观
-
注释包括边界框和 SKU 类别标签
这些特点使得 SKU-110k 数据集在目标检测任务中特别有价值,用于训练和评估深度学习模型。更多详细信息,请参阅关键特点部分。
我如何在我的研究中引用 SKU-110k 数据集?
如果您在研究或开发工作中使用 SKU-110k 数据集,请引用以下论文:
@inproceedings{goldman2019dense,
author = {Eran Goldman and Roei Herzig and Aviv Eisenschtat and Jacob Goldberger and Tal Hassner},
title = {Precise Detection in Densely Packed Scenes},
booktitle = {Proc. Conf. Comput. Vision Pattern Recognition (CVPR)},
year = {2019}
}
数据集的更多信息可以在引用和致谢部分找到。
VisDrone 数据集
VisDrone 数据集是由中国天津大学机器学习与数据挖掘实验室的 AISKYEYE 团队创建的大规模基准数据集。它包含针对与无人机图像和视频分析相关的各种计算机视觉任务的精心注释的真实数据。
VisDrone 由 288 个视频片段、261,908 帧和 10,209 张静态图像组成,这些图像由各种无人机搭载的相机捕获。该数据集涵盖了广泛的方面,包括位置(中国的 14 个不同城市)、环境(城市和乡村)、物体(行人、车辆、自行车等)和密度(稀疏和拥挤场景)。该数据集是在不同场景、天气和光照条件下使用各种无人机平台收集的。这些帧手动标注了超过 260 万个目标的边界框,如行人、汽车、自行车和三轮车。还提供了场景可见性、物体类别和遮挡等属性,以便更好地利用数据。
数据集结构
VisDrone 数据集分为五个主要子集,每个子集专注于特定任务:
-
任务 1:图像中的物体检测
-
任务 2:视频中的物体检测
-
任务 3:单目标跟踪
-
任务 4:多目标跟踪
-
任务 5:人群计数
应用程序
VisDrone 数据集广泛用于训练和评估深度学习模型在基于无人机的计算机视觉任务中的表现,如物体检测、物体跟踪和人群计数。该数据集多样的传感器数据、物体注释和属性使其成为无人机计算机视觉领域研究人员和从业者的宝贵资源。
数据集 YAML
YAML(Yet Another Markup Language)文件用于定义数据集配置。它包含有关数据集路径、类别和其他相关信息。在 VisDrone 数据集的情况下,VisDrone.yaml
文件维护在 github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/VisDrone.yaml
。
ultralytics/cfg/datasets/VisDrone.yaml
# Ultralytics YOLO 🚀, AGPL-3.0 license
# VisDrone2019-DET dataset https://github.com/VisDrone/VisDrone-Dataset by Tianjin University
# Documentation: https://docs.ultralytics.com/datasets/detect/visdrone/
# Example usage: yolo train data=VisDrone.yaml
# parent
# ├── ultralytics
# └── datasets
# └── VisDrone ← downloads here (2.3 GB)
# 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: ../datasets/VisDrone # dataset root dir
train: VisDrone2019-DET-train/images # train images (relative to 'path') 6471 images
val: VisDrone2019-DET-val/images # val images (relative to 'path') 548 images
test: VisDrone2019-DET-test-dev/images # test images (optional) 1610 images
# Classes
names:
0: pedestrian
1: people
2: bicycle
3: car
4: van
5: truck
6: tricycle
7: awning-tricycle
8: bus
9: motor
# Download script/URL (optional) ---------------------------------------------------------------------------------------
download: |
import os
from pathlib import Path
from ultralytics.utils.downloads import download
def visdrone2yolo(dir):
from PIL import Image
from tqdm import tqdm
def convert_box(size, box):
# Convert VisDrone box to YOLO xywh box
dw = 1\. / size[0]
dh = 1\. / size[1]
return (box[0] + box[2] / 2) * dw, (box[1] + box[3] / 2) * dh, box[2] * dw, box[3] * dh
(dir / 'labels').mkdir(parents=True, exist_ok=True) # make labels directory
pbar = tqdm((dir / 'annotations').glob('*.txt'), desc=f'Converting {dir}')
for f in pbar:
img_size = Image.open((dir / 'images' / f.name).with_suffix('.jpg')).size
lines = []
with open(f, 'r') as file: # read annotation.txt
for row in [x.split(',') for x in file.read().strip().splitlines()]:
if row[4] == '0': # VisDrone 'ignored regions' class 0
continue
cls = int(row[5]) - 1
box = convert_box(img_size, tuple(map(int, row[:4])))
lines.append(f"{cls} {' '.join(f'{x:.6f}' for x in box)}\n")
with open(str(f).replace(f'{os.sep}annotations{os.sep}', f'{os.sep}labels{os.sep}'), 'w') as fl:
fl.writelines(lines) # write label.txt
# Download
dir = Path(yaml['path']) # dataset root dir
urls = ['https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-train.zip',
'https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-val.zip',
'https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-test-dev.zip',
'https://github.com/ultralytics/assets/releases/download/v0.0.0/VisDrone2019-DET-test-challenge.zip']
download(urls, dir=dir, curl=True, threads=4)
# Convert
for d in 'VisDrone2019-DET-train', 'VisDrone2019-DET-val', 'VisDrone2019-DET-test-dev':
visdrone2yolo(dir / d) # convert VisDrone annotations to YOLO labels
用法
要在 VisDrone 数据集上训练 YOLOv8n 模型 100 个周期,图像大小为 640,可以使用以下代码片段。有关可用参数的完整列表,请参阅模型训练页面。
训练示例
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="VisDrone.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=VisDrone.yaml model=yolov8n.pt epochs=100 imgsz=640
示例数据和注释
VisDrone 数据集包含由无人机搭载的相机捕获的多样化图像和视频。以下是数据集中一些数据的示例及其相应的注释:
- 任务 1:图像中的物体检测 - 本图展示了图像中的物体检测示例,其中物体用边界框注释。数据集提供了来自不同位置、环境和密度的各种图像,以促进模型开发。
该示例展示了 VisDrone 数据集中数据的多样性和复杂性,并突出了对于基于无人机的计算机视觉任务而言高质量传感器数据的重要性。
引用和致谢
如果您在研究或开发工作中使用 VisDrone 数据集,请引用以下论文:
@ARTICLE{9573394,
author={Zhu, Pengfei and Wen, Longyin and Du, Dawei and Bian, Xiao and Fan, Heng and Hu, Qinghua and Ling, Haibin},
journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
title={Detection and Tracking Meet Drones Challenge},
year={2021},
volume={},
number={},
pages={1-1},
doi={10.1109/TPAMI.2021.3119563}}
我们要感谢中国天津大学机器学习与数据挖掘实验室的 AISKYEYE 团队创建和维护 VisDrone 数据集,作为无人机计算机视觉研究社区的宝贵资源。有关 VisDrone 数据集及其创建者的更多信息,请访问VisDrone 数据集 GitHub 仓库。
常见问题解答
什么是 VisDrone 数据集,其主要特点是什么?
VisDrone 数据集是中国天津大学 AISKYEYE 团队创建的大规模基准,旨在处理与无人机图像和视频分析相关的各种计算机视觉任务。其主要特点包括:- 组成:288 个视频剪辑,261,908 帧和 10,209 张静态图像。- 注释:超过 260 万个边界框,用于行人、汽车、自行车和三轮车等对象。- 多样性:收集于 14 个城市,包括城市和农村设置,不同的天气和光照条件。- 任务:分为五个主要任务 - 图像和视频中的物体检测,单个和多个物体跟踪,以及人群计数。
我如何使用 VisDrone 数据集训练 YOLOv8 模型与 Ultralytics?
要在 VisDrone 数据集上使用 YOLOv8 模型进行 100 个 epochs 的训练,图像大小为 640,您可以按照以下步骤操作:
训练示例
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolov8n.pt")
# Train the model
results = model.train(data="VisDrone.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=VisDrone.yaml model=yolov8n.pt epochs=100 imgsz=640
对于额外的配置选项,请参考模型训练页面。
VisDrone 数据集的主要子集及其应用是什么?
VisDrone 数据集分为五个主要子集,每个子集都针对特定的计算机视觉任务:1. 任务 1:图像中的物体检测。2. 任务 2:视频中的物体检测。3. 任务 3:单个物体跟踪。4. 任务 4:多个物体跟踪。5. 任务 5:人群计数。
这些子集广泛用于训练和评估基于无人机的应用中深度学习模型,如监视、交通监控和公共安全。
我在 Ultralytics 中如何找到 VisDrone 数据集的配置文件?
VisDrone 数据集的配置文件,VisDrone.yaml
,可以在 Ultralytics 仓库的以下链接找到:VisDrone.yaml。
如果我在研究中使用 VisDrone 数据集,如何引用它?
如果您在研究或开发工作中使用 VisDrone 数据集,请引用以下论文:
BibTeX
@ARTICLE{9573394,
author={Zhu, Pengfei and Wen, Longyin and Du, Dawei and Bian, Xiao and Fan, Heng and Hu, Qinghua and Ling, Haibin},
journal={IEEE Transactions on Pattern Analysis and Machine Intelligence},
title={Detection and Tracking Meet Drones Challenge},
year={2021},
volume={},
number={},
pages={1-1},
doi={10.1109/TPAMI.2021.3119563}}