Ultralytics YOLO27:
Get Started

Bộ dữ liệu ImageNette#

Bộ dữ liệu ImageNette là tập hợp con của ImageNet gồm 10 lớp dễ phân biệt, do nhóm fast.ai tạo ra nhằm cung cấp phiên bản ImageNet dễ sử dụng và xử lý nhanh hơn cho phát triển phần mềm và giáo dục. Bộ dữ liệu có 13.394 ảnh màu — 9.469 ảnh huấn luyện và 3.925 ảnh validation — thuộc các lớp như cá tench, chó English springer, máy cassette và kèn Pháp, nhờ đó model phân loại hình ảnh có thể huấn luyện trong vài phút thay vì mất hàng giờ như với ImageNet đầy đủ gồm 1.000 lớp.

Tính năng chính#

  • ImageNette có 13.394 hình ảnh thuộc 10 lớp: cá tench, chó English springer, máy cassette, cưa xích, nhà thờ, kèn Pháp, xe chở rác, trạm xăng, bóng golf và dù.
  • Bộ dữ liệu có sẵn tập chia gồm 9.469 ảnh màu huấn luyện và 3.925 ảnh màu validation với kích thước đa dạng.
  • 10 lớp được phân biệt rõ ràng giúp ImageNette huấn luyện nhanh và dễ phân tích, vì vậy bộ dữ liệu được sử dụng rộng rãi để tạo mẫu thử và giảng dạy về phân loại hình ảnh.

Cấu trúc dataset#

ImageNette có sẵn tập chia train/validation, trong đó mỗi lớp được lưu trong thư mục riêng:

Tập dữ liệuHình ảnhCác lớp
Huấn luyện9,46910
Validation3,92510

Số lượng hình ảnh chính xác ở mỗi lớp khác nhau, tạo nên phân bố thực tế để huấn luyện và benchmark nhanh mà không cần đến quy mô của bộ dữ liệu ImageNet đầy đủ.

Ứng dụng#

Bộ dữ liệu ImageNette được sử dụng rộng rãi để huấn luyện và đánh giá model deep learning trong các tác vụ phân loại hình ảnh, chẳng hạn như Mạng nơ-ron tích chập (CNN) và các thuật toán machine learning khác. Định dạng đơn giản cùng các lớp được chọn kỹ khiến ImageNette trở thành tài nguyên hữu ích cho cả người mới bắt đầu lẫn người có kinh nghiệm trong lĩnh vực machine learning và thị giác máy tính.

Cách sử dụng#

Để huấn luyện model trên bộ dữ liệu ImageNette trong 100 epoch với kích thước hình ảnh tiêu chuẩn 224x224, bạn có thể dùng các đoạn mã sau. Để xem danh sách đầy đủ các tham số hiện có, hãy tham khảo trang Huấn luyện model.

Ví dụ huấn luyện
from ultralytics import YOLO

# Tải model
model = YOLO("yolo26n-cls.pt")  # tải model đã huấn luyện trước (được khuyến nghị khi huấn luyện)

# Huấn luyện model
results = model.train(data="imagenette", epochs=100, imgsz=224)

Hình ảnh mẫu và annotation#

Bộ dữ liệu ImageNette có các hình ảnh màu về nhiều vật thể và khung cảnh, tạo nên một bộ dữ liệu đa dạng cho tác vụ phân loại hình ảnh. Sau đây là một số hình ảnh mẫu trong bộ dữ liệu:

Ảnh mẫu của bộ dữ liệu phân loại ImageNette

Ví dụ này cho thấy sự đa dạng và độ phức tạp của hình ảnh trong bộ dữ liệu ImageNette, qua đó nêu bật tầm quan trọng của một bộ dữ liệu đa dạng trong việc huấn luyện các model phân loại hình ảnh mạnh mẽ.

ImageNette160 và ImageNette320#

Để tạo mẫu thử và huấn luyện nhanh hơn, ImageNette cũng có hai phiên bản thu nhỏ: ImageNette160 và ImageNette320. Các bộ dữ liệu này giữ nguyên lớp và cấu trúc của ImageNette đầy đủ, nhưng hình ảnh được thay đổi kích thước để giảm chiều dài cạnh tối đa. Những phiên bản này đặc biệt hữu ích cho việc kiểm thử model sơ bộ hoặc khi tài nguyên tính toán bị hạn chế.

Để sử dụng các bộ dữ liệu này, chỉ cần thay imagenette bằng imagenette160 hoặc imagenette320 trong lệnh huấn luyện. Các đoạn mã sau minh họa cách thực hiện:

Ví dụ huấn luyện với ImageNette160
from ultralytics import YOLO

# Tải model
model = YOLO("yolo26n-cls.pt")  # tải model đã huấn luyện trước (được khuyến nghị khi huấn luyện)

# Huấn luyện model với ImageNette160
results = model.train(data="imagenette160", epochs=100, imgsz=160)
Ví dụ huấn luyện với ImageNette320
from ultralytics import YOLO

# Tải model
model = YOLO("yolo26n-cls.pt")  # tải model đã huấn luyện trước (được khuyến nghị khi huấn luyện)

# Huấn luyện model với ImageNette320
results = model.train(data="imagenette320", epochs=100, imgsz=320)

Các phiên bản nhỏ hơn này cho phép lặp nhanh trong quá trình phát triển mà vẫn cung cấp các tác vụ phân loại hình ảnh thực tế. Bạn cũng có thể quản lý bộ dữ liệu phân loại và chạy huấn luyện trên cloud bằng Ultralytics Platform.

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

Nếu sử dụng bộ dữ liệu ImageNette trong nghiên cứu hoặc công việc phát triển, vui lòng ghi nhận nguồn phù hợp. Để biết thêm thông tin về ImageNette, hãy truy cập trang GitHub của bộ dữ liệu ImageNette.

Chúng tôi xin ghi nhận đóng góp của nhóm fast.ai trong việc tạo và duy trì ImageNette như một tài nguyên hữu ích cho cộng đồng nghiên cứu machine learning và thị giác máy tính.

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

  • Bộ dữ liệu ImageNette là tập hợp con đơn giản hóa của ImageNet, gồm 10 lớp dễ phân biệt như cá tench, chó English springer và kèn Pháp. Bộ dữ liệu có 13.394 hình ảnh (9.469 ảnh huấn luyện và 3.925 ảnh validation), do fast.ai tạo ra nhằm cung cấp bộ dữ liệu dễ quản lý hơn để huấn luyện và đánh giá model phân loại hình ảnh hiệu quả. Vì vậy, ImageNette đặc biệt hữu ích cho phát triển phần mềm nhanh và mục đích giáo dục trong lĩnh vực machine learning và thị giác máy tính.

  • ImageNette có tổng cộng 13.394 hình ảnh — 9.469 ảnh huấn luyện và 3.925 ảnh validation — thuộc 10 lớp: cá tench, chó English springer, máy cassette, cưa xích, nhà thờ, kèn Pháp, xe chở rác, trạm xăng, bóng golf và dù. Mỗi lớp được lưu trong thư mục riêng, tuân theo bố cục phân loại tiêu chuẩn mà Ultralytics yêu cầu.

  • Để huấn luyện model YOLO trên ImageNette trong 100 epoch, hãy dùng các lệnh sau. Hãy đảm bảo bạn đã thiết lập môi trường Ultralytics YOLO.

    Ví dụ huấn luyện
    from ultralytics import YOLO
    
    # Tải model
    model = YOLO("yolo26n-cls.pt")  # tải model đã huấn luyện trước (được khuyến nghị khi huấn luyện)
    
    # Huấn luyện model
    results = model.train(data="imagenette", epochs=100, imgsz=224)

    Để biết thêm chi tiết, hãy xem trang tài liệu Huấn luyện.

  • Bộ dữ liệu ImageNette có một số ưu điểm:

    • Nhanh và đơn giản: Chỉ có 10 lớp và khoảng 13.000 hình ảnh, nên việc huấn luyện ít phức tạp và tốn thời gian hơn nhiều so với ImageNet đầy đủ.
    • Mục đích giáo dục: Lý tưởng để tìm hiểu và giảng dạy những kiến thức cơ bản về phân loại hình ảnh, vì cần ít tài nguyên tính toán và thời gian hơn.
    • Tính linh hoạt: Được sử dụng rộng rãi để huấn luyện và benchmark model phân loại hình ảnh, đặc biệt là Mạng nơ-ron tích chập (CNN).

    Để biết thêm chi tiết về huấn luyện model và quản lý bộ dữ liệu, hãy xem mục Cấu trúc bộ dữ liệu.

  • Có, ImageNette cũng có hai phiên bản được thay đổi kích thước là ImageNette160 và ImageNette320, với hình ảnh có chiều dài cạnh tối đa nhỏ hơn. Các phiên bản này hỗ trợ tạo mẫu thử nhanh hơn và đặc biệt hữu ích khi tài nguyên tính toán bị hạn chế.

    Ví dụ huấn luyện với ImageNette160
    from ultralytics import YOLO
    
    # Tải model
    model = YOLO("yolo26n-cls.pt")
    
    # Huấn luyện model với ImageNette160
    results = model.train(data="imagenette160", epochs=100, imgsz=160)

    Để biết thêm thông tin, hãy tham khảo Huấn luyện với ImageNette160 và ImageNette320.

  • Bộ dữ liệu ImageNette được sử dụng rộng rãi trong:

    • Môi trường giáo dục: Dùng để dạy người mới bắt đầu những kiến thức nền tảng về machine learning và thị giác máy tính.
    • Phát triển phần mềm: Dùng để tạo mẫu thử và phát triển nhanh các model phân loại hình ảnh.
    • Nghiên cứu deep learning: Dùng để đánh giá và benchmark hiệu năng của nhiều model deep learning, đặc biệt là Mạng nơ-ron tích chập (CNN).

    Xem mục Ứng dụng để biết các trường hợp sử dụng chi tiết.

Bình luận