Bảo mật sẵn sàng cho doanh nghiệp: Tuân thủ ISO 27001 + SOC 2 Type I.

Link to this sectionBộ dữ liệu SKU-110K#

Bộ dữ liệu SKU-110K là tập dữ liệu phát hiện đối tượng đơn lớp gồm 11.743 hình ảnh kệ hàng bán lẻ được xếp dày đặc, được chia thành 8.219 ảnh huấn luyện, 588 ảnh kiểm chứng và 2.936 ảnh thử nghiệm. Mỗi sản phẩm được chú thích bằng một hộp bao (bounding box) thuộc một lớp duy nhất, object — cái tên này đề cập đến hơn 110.000 đơn vị lưu kho (SKU) độc nhất được hiển thị trong các cảnh, không phải 110.000 lớp phát hiện. Được tạo bởi Eran Goldman và cộng sự cho bài báo CVPR 2019 Precise Detection in Densely Packed Scenes, bộ dữ liệu này chứa hơn 1,7 triệu sản phẩm đã được chú thích — trung bình khoảng 147 sản phẩm mỗi ảnh — biến nó thành một chuẩn đánh giá khắt khe cho các mô hình thị giác máy tính trong môi trường bán lẻ đông đúc.



Watch: How to Train YOLOv10 on SKU-110k Dataset using Ultralytics | Retail Dataset

Phát hiện kệ hàng bán lẻ đóng gói dày đặc trong tập dữ liệu SKU-110K

Link to this sectionTính năng chính#

  • Phát hiện đơn lớp: Mỗi sản phẩm được dán nhãn bằng một hộp bao thuộc một lớp duy nhất, object (names: {0: object}) — các chú thích không chứa nhãn phân loại theo từng SKU.
  • Mật độ đối tượng cực cao: Hình ảnh kệ hàng từ khắp nơi trên thế giới trung bình có khoảng 147 sản phẩm được đóng gói chặt chẽ, với các đối tượng thường trông tương tự hoặc thậm chí giống hệt nhau được đặt gần nhau.
  • Quy mô lớn: Hơn 110.000 SKU độc nhất và hơn 1,7 triệu hộp bao đã được chú thích trên 11.743 hình ảnh là thách thức đối với các bộ phát hiện đối tượng hiện đại nhất.

Link to this sectionCấu trúc tập dữ liệu#

Bộ dữ liệu SKU-110K được chia thành ba tập con, tất cả đều chia sẻ một lớp object duy nhất:

SplitHình ảnhMô tả
Huấn luyện (Train)8.219Hình ảnh và chú thích cho huấn luyện mô hình
Validation588Hình ảnh được giữ lại để đánh giá trong quá trình huấn luyện
Kiểm thử2.936Hình ảnh để đánh giá cuối cùng cho mô hình đã huấn luyện

Link to this sectionỨng dụng#

Bộ 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 học sâu trong các tác vụ phát hiện đối tượng, đặc biệt là trong các cảnh xếp dày đặc như kệ trưng bày bán lẻ. Các ứng dụng của nó bao gồm:

  • Quản lý và tự động hóa kho hàng bán lẻ
  • Nhận diện sản phẩm trên các nền tảng thương mại điện tử
  • Xác minh tuân thủ sơ đồ bài trí hàng hóa (planogram)
  • Hệ thống thanh toán tự phục vụ trong cửa hàng
  • Robot lấy và phân loại hàng trong kho

Để chú thích hình ảnh kệ hàng của riêng bạn, huấn luyện và quản lý các bộ dữ liệu phát hiện bán lẻ trong trình duyệt, hãy chạy quy trình làm việc đầy đủ với Ultralytics Platform.

Link to this sectionYAML tập dữ liệu#

Tệp SKU-110K.yaml định nghĩa cấu hình bộ dữ liệu — đường dẫn dữ liệu, tên lớp và các siêu dữ liệu khác. Nó được duy trì trong kho lưu trữ Ultralytics tại https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/SKU-110K.yaml.

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 label

Link to this sectionCách sử dụng#

Tải xuống 13,6 GB

SKU-110K tự động tải xuống vào lần đầu tiên bạn huấn luyện và yêu cầu khoảng 13,6 GB dung lượng đĩa trống cho 11.743 hình ảnh của nó. Tập lệnh tải xuống cũng lấy các chú thích gốc và chuyển đổi chúng sang định dạng YOLO, quá trình này có thể mất vài phút.

Để huấn luyện model YOLO26n trên tập dữ liệu SKU-110K trong 100 epochs với kích thước ảnh là 640, bạn có thể sử dụng các đoạn code sau. Để có danh sách đầy đủ các đối số khả dụng, hãy tham khảo trang Training của model.

Ví dụ về 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="SKU-110K.yaml", epochs=100, imgsz=640)

Link to this sectionDữ liệu mẫu và Chú thích#

Hình ảnh SKU-110K ghi lại các sản phẩm được xếp dày đặc trên kệ hàng thực tế, nơi hàng chục mặt hàng gần như giống hệt nhau nằm cạnh nhau. Dưới đây là hình ảnh ví dụ cùng các chú thích của nó:

Phát hiện sản phẩm bán lẻ trên kệ hàng trong SKU-110K

  • Hình ảnh kệ hàng bán lẻ xếp dày đặc: Hình ảnh này minh họa 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 các hộp bao thuộc lớp object duy nhất.

Sự sắp xếp dày đặc của sản phẩm làm cho SKU-110K đặc biệt có giá trị để phát triển các giải pháp thị giác máy tính tập trung vào bán lẻ mạnh mẽ, vì số lượng đối tượng cao trên mỗi hình ảnh đẩy các bộ phát hiện vượt xa các chuẩn đánh giá thông thường.

Link to this sectionTrích dẫn và Ghi nhận#

Nếu bạn sử dụng bộ dữ liệu SKU-110K trong nghiên cứu hoặc công việc phát triển của mình, vui lòng trích dẫn bài báo sau:

Trích dẫn
@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ì bộ dữ liệu SKU-110K như một tài nguyên có giá trị cho cộng đồng nghiên cứu thị giác máy tính. Để biết thêm thông tin về bộ dữ liệu SKU-110K và những người tạo ra nó, hãy truy cập kho lưu trữ GitHub của bộ dữ liệu SKU-110K.

Link to this sectionCâu hỏi thường gặp#

Link to this sectionBộ dữ liệu SKU-110K được sử dụng để làm gì?#

Bộ dữ liệu SKU-110K là tập dữ liệu phát hiện đối tượng đơn lớp gồm 11.743 hình ảnh kệ hàng bán lẻ xếp dày đặc, được tạo bởi Eran Goldman và cộng sự cho bài báo CVPR 2019 của họ. Mỗi sản phẩm được dán nhãn với một hộp bao object, và hình ảnh bao gồm hơn 110.000 đơn vị lưu kho (SKU) độc nhất, biến nó thành một chuẩn đánh giá mạnh mẽ cho việc phát hiện đối tượng trong các cảnh đông đúc và để xây dựng các hệ thống thị giác máy tính bán lẻ.

Link to this sectionBộ dữ liệu SKU-110K có 110.000 lớp không?#

Không. SKU-110K là đơn lớp: mỗi sản phẩm được chú thích bằng một hộp bao thuộc lớp object (names: {0: object}). "110K" trong tên gọi đề cập đến số lượng đơn vị lưu kho (SKU) độc nhất được chụp trong các hình ảnh, không phải số lượng lớp phát hiện.

Link to this sectionCó bao nhiêu hình ảnh và lớp trong bộ dữ liệu SKU-110K?#

Bộ dữ liệu SKU-110K chứa 11.743 hình ảnh — 8.219 cho huấn luyện, 588 cho kiểm chứng và 2.936 cho thử nghiệm — và một lớp phát hiện duy nhất, object. Xem phần Cấu trúc tập dữ liệu và cấu hình SKU-110K.yaml để biết chi tiết.

Link to this sectionDung lượng tải xuống của bộ dữ liệu SKU-110K là bao nhiêu?#

SKU-110K có dung lượng khoảng 13,6 GB và tự động tải xuống lần đầu tiên khi bạn huấn luyện với data="SKU-110K.yaml" — không cần tải xuống thủ công. Để duyệt các tùy chọn nhỏ hơn, hãy xem tổng quan về các bộ dữ liệu phát hiện.

Link to this sectionLàm thế nào để huấn luyện mô hình YOLO26 bằng bộ dữ liệu SKU-110K?#

Việc huấn luyện một mô hình YOLO26 trên bộ dữ liệu SKU-110K rất đơn giản. Dưới đây là ví dụ để huấn luyện mô hình YOLO26n trong 100 epoch với kích thước ảnh là 640:

Ví dụ về 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="SKU-110K.yaml", epochs=100, imgsz=640)

Để có danh sách đầy đủ các tham số khả dụng, hãy tham khảo trang Huấn luyện mô hình và mẹo huấn luyện mô hình.

Bình luận