Tập dữ liệu SKU-110k
Tập dữ liệu SKU-110k là bộ sưu tập các hình ảnh kệ hàng bán lẻ được xếp dày đặc, được thiết kế để hỗ trợ nghiên cứu trong các tác vụ phát hiện đối tượng. Được phát triển bởi Eran Goldman và cộng sự, tập dữ liệu chứa hơn 110.000 danh mục đơn vị lưu kho (SKU) độc nhất với các đối tượng được xếp dày đặc, thường trông giống nhau hoặc thậm chí giống hệt nhau, nằm ở vị trí gần nhau.
Watch: How to Train YOLOv10 on SKU-110k Dataset using Ultralytics | Retail Dataset

Các tính năng chính
- SKU-110k chứa các hình ảnh kệ hàng từ khắp nơi trên thế giới, bao gồm các đối tượng được xếp dày đặc tạo ra những thách thức cho các bộ phát hiện đối tượng hiện đại nhất.
- Tập dữ liệu bao gồm hơn 110.000 danh mục SKU độc nhất, cung cấp một phạm vi đa dạng về ngoại hình của đối tượng.
- Các chú thích bao gồm BBox cho các đối tượng và nhãn danh mục SKU.
Cấu trúc tập dữ liệu
Tập dữ liệu SKU-110k được chia thành ba tập con chính:
- Tập huấn luyện (Training set): Tập con này chứa 8.219 hình ảnh và chú thích được sử dụng để huấn luyện các mô hình phát hiện đối tượng.
- Tập kiểm chứng (Validation set): Tập con này bao gồm 588 hình ảnh và chú thích được sử dụng để kiểm chứng mô hình trong quá trình huấn luyện.
- Tập kiểm thử (Test set): Tập con này bao gồm 2.936 hình ảnh được thiết kế cho việc đánh giá cuối cùng các mô hình phát hiện đối tượng đã được huấn luyện.
Ứng dụng
Tập dữ liệu SKU-110k được sử dụng rộng rãi để huấn luyện và đánh giá các mô hình deep learning trong các tác vụ phát hiện đối tượng, đặc biệt là trong các khung cảnh xếp dày đặc như kệ trưng bày bán lẻ. Các ứng dụng bao gồm:
- Quản lý và tự động hóa hàng tồn kho bán lẻ
- Nhận diện sản phẩm trong các nền tảng thương mại điện tử
- Xác minh tuân thủ sơ đồ bố trí sản phẩm (planogram)
- Hệ thống tự thanh toán tại các cửa hàng
- Robot gắp và phân loại trong kho hàng
Tập hợp đa dạng các danh mục SKU và cách sắp xếp đối tượng dày đặc của tập dữ liệu làm cho nó trở thành một nguồn tài nguyên có giá trị cho các nhà nghiên cứu và thực hành trong lĩnh vực computer vision.
Dataset YAML
Một tệp YAML (Yet Another Markup Language) được sử dụng để xác định cấu hình tập dữ liệu. Nó chứa thông tin về đường dẫn, lớp và các thông tin liên quan khác của tập dữ liệu. Đối với trường hợp của tập dữ liệu SKU-110K, tệp SKU-110K.yaml được duy trì tại https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/SKU-110K.yaml.
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/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: 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 polars as pl
from ultralytics.utils 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 = pl.read_csv(dir / "annotations" / d, has_header=False, new_columns=names, infer_schema_length=None).to_numpy() # annotations
images, unique_images = x[:, 0], np.unique(x[:, 0])
with open((dir / d).with_suffix(".txt").__str__().replace("annotations_", ""), "w", encoding="utf-8") 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", encoding="utf-8") 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 labelCách sử dụng
Để huấn luyện mô hình YOLO26n trên tập dữ liệu SKU-110K trong 100 epoch với kích thước ảnh là 640, bạn có thể sử dụng các đoạn mã sau. Để có danh sách đầy đủ các đối số khả dụng, hãy tham khảo trang Huấn luyện mô hình.
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="SKU-110K.yaml", epochs=100, imgsz=640)Dữ liệu mẫu và Chú thích
Tập dữ liệu SKU-110k chứa một tập hợp đa dạng các hình ảnh kệ hàng bán lẻ với các đối tượng được xếp dày đặc, cung cấp ngữ cảnh phong phú cho các tác vụ phát hiện đối tượng. Dưới đây là một số ví dụ về dữ liệu từ tập dữ liệu, cùng với các chú thích tương ứng:

- Hình ảnh kệ hàng bán lẻ xếp dày đặc: Hình ảnh này minh họa một ví dụ về các đối tượng được xếp dày đặc trong bối cảnh kệ hàng bán lẻ. Các đối tượng được chú thích bằng BBox và nhãn danh mục SKU.
Ví dụ này cho thấy sự đa dạng và phức tạp của dữ liệu trong tập dữ liệu SKU-110k và làm nổi bật tầm quan trọng của dữ liệu chất lượng cao cho các tác vụ phát hiện đối tượng. Cách sắp xếp dày đặc của sản phẩm đặt ra những thách thức độc đáo cho các thuật toán phát hiện, làm cho tập dữ liệu này đặc biệt có giá trị để phát triển các giải pháp computer vision tập trung vào bán lẻ mạnh mẽ.
Trích dẫn và Ghi nhận
Nếu bạn sử dụng tập dữ liệu SKU-110k trong công việc nghiên cứu hoặc phát triển của mình, vui lòng trích dẫn bài báo sau:
@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}
}Chúng tôi xin ghi nhận Eran Goldman và cộng sự vì đã tạo ra và duy trì tập dữ liệu SKU-110k như một nguồn tài nguyên có giá trị cho cộng đồng nghiên cứu computer vision. Để biết thêm thông tin về tập dữ liệu SKU-110k và những người tạo ra nó, hãy truy cập kho lưu trữ GitHub tập dữ liệu SKU-110k.
Câu hỏi thường gặp (FAQ)
Tập dữ liệu SKU-110k là gì và tại sao nó quan trọng đối với việc phát hiện đối tượng?
Tập dữ liệu SKU-110k bao gồm các hình ảnh kệ hàng bán lẻ được xếp dày đặc được thiết kế để hỗ trợ nghiên cứu trong các tác vụ phát hiện đối tượng. Được phát triển bởi Eran Goldman và cộng sự, nó bao gồm hơn 110.000 danh mục SKU độc nhất. Tầm quan trọng của nó nằm ở khả năng thách thức các bộ phát hiện đối tượng hiện đại nhất với sự xuất hiện đa dạng và sự gần gũi của đối tượng, làm cho nó trở thành một nguồn tài nguyên vô giá cho các nhà nghiên cứu và thực hành trong lĩnh vực computer vision. Tìm hiểu thêm về cấu trúc và ứng dụng của tập dữ liệu trong phần Tập dữ liệu SKU-110k của chúng tôi.
Làm thế nào để tôi huấn luyện mô hình YOLO26 sử dụng tập dữ liệu SKU-110k?
Việc huấn luyện mô hình YOLO26 trên tập dữ liệu SKU-110k rất đơn giản. Đây là ví dụ để huấn luyện mô hình YOLO26n trong 100 epoch với kích thước ảnh là 640:
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="SKU-110K.yaml", epochs=100, imgsz=640)Để có danh sách đầy đủ các đối số, hãy tham khảo trang Training của model.
Các tập con chính của tập dữ liệu SKU-110k là gì?
Tập dữ liệu SKU-110k được chia thành ba tập con chính:
- Tập huấn luyện: Chứa 8.219 hình ảnh và chú thích được sử dụng để huấn luyện các mô hình phát hiện đối tượng.
- Tập kiểm chứng: Bao gồm 588 hình ảnh và chú thích được sử dụng để kiểm chứng mô hình trong quá trình huấn luyện.
- Tập kiểm thử: Bao gồm 2.936 hình ảnh được thiết kế cho việc đánh giá cuối cùng các mô hình phát hiện đối tượng đã được huấn luyện.
Tham khảo phần Cấu trúc tập dữ liệu để biết thêm chi tiết.
Làm thế nào để tôi cấu hình tập dữ liệu SKU-110k cho việc huấn luyện?
Cấu hình tập dữ liệu SKU-110k được xác định trong một tệp YAML, bao gồm các chi tiết về đường dẫn, lớp và các thông tin liên quan khác của tập dữ liệu. Tệp SKU-110K.yaml được duy trì tại SKU-110K.yaml. Ví dụ, bạn có thể huấn luyện một mô hình sử dụng cấu hình này như được hiển thị trong phần Cách sử dụng của chúng tôi.
Các tính năng chính của tập dữ liệu SKU-110k trong bối cảnh deep learning là gì?
Tập dữ liệu SKU-110k có các hình ảnh kệ hàng từ khắp nơi trên thế giới, thể hiện các đối tượng được xếp dày đặc gây ra những thách thức đáng kể cho các bộ phát hiện đối tượng:
- Hơn 110.000 danh mục SKU độc nhất
- Ngoại hình đối tượng đa dạng
- Các chú thích bao gồm BBox và nhãn danh mục SKU
Những tính năng này làm cho tập dữ liệu SKU-110k đặc biệt có giá trị cho việc huấn luyện và đánh giá các mô hình deep learning trong các tác vụ phát hiện đối tượng. Để biết thêm chi tiết, hãy xem phần Các tính năng chính.
Làm thế nào để tôi trích dẫn tập dữ liệu SKU-110k trong nghiên cứu của mình?
Nếu bạn sử dụng tập dữ liệu SKU-110k trong công việc nghiên cứu hoặc phát triển của mình, vui lòng trích dẫn bài báo sau:
@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}
}Thông tin thêm về tập dữ liệu có thể được tìm thấy trong phần Trích dẫn và Ghi nhận.