Chuyển đến nội dung

Bộ dữ liệu SKU-110k

Tập dữ liệu SKU-110k là một bộ sưu tập các hình ảnh kệ bán lẻ được đóng gói dày đặc, được thiết kế để hỗ trợ nghiên cứu trong các tác vụ object detection. Đượ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) duy nhất với các đối tượng được đóng gói dày đặc, thường trông giống nhau hoặc thậm chí giống hệt nhau, được đặt ở gần nhau.



Xem: Cách huấn luyện YOLOv10 trên tập dữ liệu SKU-110k bằng Ultralytics | Tập dữ liệu bán lẻ

Ảnh mẫu bộ dữ liệu

Các tính năng chính

  • SKU-110k chứa hình ảnh các kệ hàng từ khắp nơi trên thế giới, với các đối tượng được sắp xếp dày đặc, gây khó khăn cho các công cụ phát hiện đối tượng hiện đại.
  • Bộ dữ liệu bao gồm hơn 110.000 loại SKU duy nhất, cung cấp một loạt các hình dạng đối tượng đa dạng.
  • Các chú thích bao gồm hộp giới hạn cho các đối tượng và nhãn danh mục SKU.

Cấu trúc bộ dữ liệu

Bộ dữ liệu SKU-110k được tổ chức thành ba tập hợp con chính:

  1. Tập huấn luyện: Tập hợ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.
  2. Tập dữ liệu xác thực: Tập hợp con này bao gồm 588 hình ảnh và chú thích được sử dụng để xác thực mô hình trong quá trình huấn luyện.
  3. Tập dữ liệu kiểm thử: Tập hợp con này bao gồm 2.936 hình ảnh được thiết kế để đánh giá cuối cùng các mô hình phát hiện đối tượng đã được huấn luyện.

Các ứng dụng

Bộ dữ liệu SKU-110k được sử dụng rộng rãi để đào tạo 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 có mật độ dày đặc như trưng bày trên kệ bán lẻ. Các ứng dụng của nó bao gồm:

  • Quản lý và tự động hóa hàng tồn kho bán lẻ
  • Nhận dạng sản phẩm trong các nền tảng thương mại điện tử
  • Xác minh tuân thủ Planogram
  • Hệ thống tự thanh toán trong các cửa hàng
  • Lựa chọn và sắp xếp bằng robot trong nhà kho

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 bộ dữ liệu này 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à người thực hành trong lĩnh vực thị giác máy tính.

YAML bộ dữ liệu

Một tệp YAML (Yet Another Markup Language) được sử dụng để xác định cấu hình bộ dữ liệu. Nó chứa thông tin về đường dẫn, lớp và thông tin liên quan khác của bộ dữ liệu. Đối với trường hợp bộ dữ liệu SKU-110K, thì SKU-110K.yaml tệp được duy trì 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, names=names).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

Cách sử dụng

Để huấn luyện mô hình YOLO11n 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 mã sau. Để có danh sách đầy đủ các đối số có sẵn, hãy tham khảo trang Training (Huấn luyện) của mô hình.

Ví dụ huấn luyện

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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=yolo11n.pt 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ệ bán lẻ với các đối tượng được đóng gói dày đặc, cung cấp bối 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 của chúng:

Ảnh mẫu bộ dữ liệu

  • Hình ảnh kệ bán lẻ được đóng gói dày đặc: Hình ảnh này minh họa một ví dụ về các đối tượng được đóng gói dày đặc trong môi trường kệ bán lẻ. Các đối tượng được chú thích bằng các hộp giới hạn và nhãn danh mục SKU.

Ví dụ này thể hiện sự đa dạng và phức tạp của dữ liệu trong bộ 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. Việc sắp xếp dày đặc các sản phẩm đặt ra những thách thức riêng đối với các thuật toán phát hiện, làm cho bộ dữ liệu này đặ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ẽ.

Trích dẫn và Lời cảm ơn

Nếu bạn sử dụng bộ 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 công của Eran Goldman và cộng sự vì đã tạo ra và duy trì bộ dữ liệu SKU-110k như một nguồn tài nguyên 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.

Câu hỏi thường gặp

Tập dữ liệu SKU-110k là gì và tại sao nó lại 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ệ bán lẻ được đóng gói 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 et al., nó bao gồm hơn 110.000 danh mục SKU duy nhất. Tầm quan trọng của nó nằm ở khả năng thách thức các công cụ phát hiện đối tượng hiện đại với sự đa dạng về hình dạng và độ gần của đối tượng, khiến nó trở thành một nguồn tài nguyên vô giá cho các nhà nghiên cứu và các chuyên gia trong lĩnh vực thị giác máy tính. Tìm hiểu thêm về cấu trúc và các ứ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 cách nào để huấn luyện mô hình YOLO11 bằng bộ dữ liệu SKU-110k?

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

Ví dụ huấn luyện

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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=yolo11n.pt epochs=100 imgsz=640

Để có danh sách đầy đủ các đối số có sẵn, hãy tham khảo trang Huấn luyện của mô hình.

Các tập hợp con chính của bộ dữ liệu SKU-110k là gì?

Bộ dữ liệu SKU-110k được tổ chức thành ba tập hợp con chính:

  1. 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.
  2. Tập dữ liệu Validation: Bao gồm 588 hình ảnh và chú thích được sử dụng để xác thực mô hình trong quá trình huấn luyện.
  3. Tập dữ liệu kiểm thử: Bao gồm 2.936 hình ảnh được thiết kế để đá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 cách nào để định cấu hình bộ dữ liệu SKU-110k để 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, các lớp và các thông tin liên quan khác của tập dữ liệu. SKU-110K.yaml tệp được duy trì tại SKU-110K.yaml. Ví dụ: bạn có thể huấn luyện một mô hình bằng cấu hình này như được trình bày trong Cách sử dụng ở phần này.

Các tính năng chính của bộ dữ liệu SKU-110k trong bối cảnh học sâu là gì?

Bộ dữ liệu SKU-110k chứa hình ảnh các kệ hàng từ khắp nơi trên thế giới, thể hiện các đối tượng được sắp xếp dày đặc, gây ra những thách thức đáng kể cho các trình phát hiện đối tượng:

  • Hơn 110.000 danh mục SKU duy nhất
  • Sự xuất hiện đa dạng của đối tượng
  • Các chú thích bao gồm hộp giới hạn và nhãn danh mục SKU

Các tính năng này làm cho tập dữ liệu SKU-110k đặc biệt có giá trị để 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 cách nào để trích dẫn bộ dữ liệu SKU-110k trong nghiên cứu của tôi?

Nếu bạn sử dụng bộ 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}
}

Bạn có thể tìm thêm thông tin về bộ dữ liệu trong phần Trích dẫn và Lời cảm ơn.



📅 Đã tạo 1 năm trước ✏️ Cập nhật 5 tháng trước

Bình luận