Đón xem YOLO Vision 2025!
25 tháng 9, 2025
10:00 — 18:00 BST
Sự kiện kết hợp
Yolo Vision 2024

Cách sử dụng Ultralytics YOLOv5 với Comet

Nhóm Ultralytics

5 phút đọc

Ngày 11 tháng 10 năm 2022

Khám phá cách Ultralytics hợp tác với Comet để tối ưu hóa mô hình Ultralytics YOLOv5: theo dõi thời gian thực, hợp tác hiệu quả và tăng cường khả năng tái tạo.

Tại Ultralytics, chúng tôi hợp tác thương mại với các startup khác để giúp tài trợ cho việc nghiên cứu và phát triển các công cụ mã nguồn mở tuyệt vời của chúng tôi, như YOLOv5, để giữ cho chúng miễn phí cho tất cả mọi người. Bài viết này có thể chứa các liên kết liên kết đến các đối tác đó.

Đối tác mới nhất của chúng tôi, Comet, xây dựng các công cụ giúp các nhà khoa học dữ liệu, kỹ sư và trưởng nhóm tăng tốc và tối ưu hóa các mô hình machine learning và deep learning.

Comet là một công cụ mạnh mẽ để theo dõi các mô hình, bộ dữ liệu và số liệu của bạn. Nó thậm chí còn ghi lại các biến hệ thống và môi trường của bạn để đảm bảo khả năng tái tạo và gỡ lỗi suôn sẻ cho mọi lần chạy. Nó giống như có một trợ lý ảo, người biết kỳ diệu những ghi chú nào cần giữ. Theo dõi và trực quan hóa các số liệu mô hình trong thời gian thực, lưu các siêu tham số, bộ dữ liệu và điểm kiểm tra mô hình của bạn, đồng thời trực quan hóa các dự đoán mô hình của bạn bằng Comet Custom Panels!

Hơn nữa, Comet đảm bảo bạn không bao giờ bị mất dấu công việc của mình và giúp bạn dễ dàng chia sẻ kết quả và cộng tác giữa các nhóm thuộc mọi quy mô!

YOLOv5 là một điểm khởi đầu tuyệt vời cho hành trình thị giác máy tính của bạn. Để cải thiện hiệu suất mô hình và đưa nó vào trạng thái sẵn sàng sản xuất, bạn cần ghi lại kết quả trong một công cụ theo dõi thử nghiệm như Comet.

Tích hợp Comet và YOLOv5 cung cấp 3 tính năng chính:

  • Tính năng tự động ghi nhật ký và ghi nhật ký tùy chỉnh
  • Lưu bộ dữ liệu và mô hình dưới dạng các cấu phần phần mềm để gỡ lỗi và tái tạo
  • Sắp xếp chế độ xem của bạn bằng các bảng tùy chỉnh của Comet


Hướng dẫn này sẽ trình bày cách sử dụng YOLOv5 với Comet.

Bạn đã sẵn sàng theo dõi các thử nghiệm của mình trong thời gian thực chưa? Hãy bắt đầu nào!

Bắt đầu

1. Cài đặt Comet

Pip install comet_ml

2. Cấu hình thông tin xác thực Comet

Có hai cách để định cấu hình Comet với YOLOv5.

Bạn có thể đặt thông tin xác thực của mình thông qua các biến môi trường hoặc tạo tệp .comet.config trong thư mục làm việc của bạn và đặt thông tin xác thực của bạn ở đó.


Biến môi trường

export COMET_API_KEY=export COMET_PROJECT_NAME= # Giá trị mặc định sẽ là 'yolov5'


Tệp cấu hình Comet

[comet] api_key= project_name=<Your Comet API Key># This will default to 'yolov5'

3. Chạy Tập Lệnh Huấn Luyện

# Huấn luyện YOLOv5s trên COCO128 trong 5 epochspython train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt

Vậy là xong!

Comet sẽ tự động ghi lại các siêu tham số, đối số dòng lệnh, số liệu huấn luyện và xác thực của bạn. Bạn có thể trực quan hóa và phân tích các lần chạy của mình trong Comet UI.

Thử nghiệm với YOLOv5 trong Comet Dashboard

Tự mình dùng thử!

Xem một ví dụ về một lần chạy hoàn thành tại đây.

Hoặc tốt hơn nữa, hãy tự mình thử trong Colab Notebook này.

Tự động ghi nhật ký

Theo mặc định, Comet sẽ ghi lại các mục sau:

Các chỉ số

  • Box Loss, Object Loss và Classification Loss cho dữ liệu huấn luyện và xác thực
  • Các số liệu mAP_0.5, mAP_0.5:0.95 cho dữ liệu validation (xác thực)
  • Độ chính xác (Precision) và Độ phủ (Recall) cho dữ liệu xác thực

Tham số

  • Siêu tham số mô hình
  • Tất cả các tham số được truyền qua các tùy chọn dòng lệnh

Trực quan hóa

  • Ma trận nhầm lẫn của các dự đoán mô hình trên dữ liệu xác thực
  • Đồ thị cho các đường cong PR và F1 trên tất cả các lớp
  • Biểu đồ tương quan của các nhãn lớp

Cấu hình Ghi nhật ký Comet

Comet có thể được cấu hình để ghi nhật ký dữ liệu bổ sung thông qua các flag dòng lệnh được truyền cho script huấn luyện hoặc các biến môi trường.

export COMET_MODE=online # Đặt chế độ chạy Comet là 'online' hoặc 'offline'. Mặc định là onlineexport COMET_MODEL_NAME= #Đặt tên cho mô hình đã lưu. Mặc định là yolov5export COMET_LOG_CONFUSION_MATRIX=false # Đặt để tắt ghi nhật ký Ma trận nhầm lẫn Comet. Mặc định là trueexport COMET_MAX_IMAGE_UPLOADS= # Kiểm soát tổng số dự đoán hình ảnh được ghi nhật ký vào Comet. Mặc định là 100.export COMET_LOG_PER_CLASS_METRICS=true # Đặt để ghi nhật ký các số liệu đánh giá cho mỗi lớp được phát hiện khi kết thúc quá trình huấn luyện. Mặc định là falseexport COMET_DEFAULT_CHECKPOINT_FILENAME= # Đặt giá trị này nếu bạn muốn tiếp tục huấn luyện từ một điểm kiểm tra khác. Mặc định là 'last.pt'export COMET_LOG_BATCH_LEVEL_METRICS=true # Đặt giá trị này nếu bạn muốn ghi nhật ký các số liệu huấn luyện ở cấp độ lô. Mặc định là false.export COMET_LOG_PREDICTIONS=true # Đặt giá trị này thành false để tắt ghi nhật ký dự đoán mô hình

Ghi nhật ký điểm kiểm tra với Comet

Tính năng ghi nhật ký mô hình vào Comet bị tắt theo mặc định. Để bật tính năng này, hãy truyền đối số save-period vào tập lệnh huấn luyện. Thao tác này sẽ lưu các điểm kiểm tra đã ghi nhật ký vào Comet dựa trên giá trị khoảng thời gian được cung cấp bởi save-period.

python train.py \

--img 640 \

--batch 16 \

--epochs 5 \

--data coco128.yaml \

--weights yolov5s.pt \

--save-period 1

Ghi nhật ký dự đoán mô hình

Theo mặc định, các dự đoán của mô hình (hình ảnh, nhãn ground truth và bounding box) sẽ được ghi vào Comet. Bạn có thể kiểm soát tần suất của các dự đoán được ghi và các hình ảnh liên quan bằng cách chuyển đối số dòng lệnh bbox_interval. Có thể trực quan hóa các dự đoán bằng Bảng điều khiển tùy chỉnh phát hiện đối tượng của Comet. Tần suất này tương ứng với mỗi lô dữ liệu thứ N trên mỗi epoch. Trong ví dụ bên dưới, chúng tôi đang ghi lại mọi lô dữ liệu thứ 2 cho mỗi epoch.

Lưu ý: Trình tải dữ liệu xác thực YOLOv5 sẽ mặc định kích thước batch là 32, vì vậy bạn sẽ phải đặt tần suất ghi nhật ký cho phù hợp.

Đây là một dự án mẫu sử dụng Panel.

python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt \--bbox_interval 2

Kiểm soát số lượng ảnh dự đoán được ghi vào Comet

Khi ghi lại các dự đoán từ YOLOv5, Comet sẽ ghi lại các hình ảnh được liên kết với mỗi tập hợp dự đoán. Theo mặc định, tối đa 100 hình ảnh xác thực được ghi lại. Bạn có thể tăng hoặc giảm số lượng này bằng cách sử dụng biến môi trường COMET_MAX_IMAGE_UPLOADS.

env COMET_MAX_IMAGE_UPLOADS=200 python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt \--bbox_interval 1

Ghi nhật ký các số liệu cấp lớp

Sử dụng biến môi trường COMET_LOG_PER_CLASS_METRICS để ghi lại mAP, độ chính xác, độ thu hồi và f1 cho mỗi lớp.

env COMET_LOG_PER_CLASS_METRICS=true python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt

Tải một bộ dữ liệu lên Comet Artifacts

Nếu bạn muốn lưu trữ dữ liệu của mình bằng Comet Artifacts, bạn có thể thực hiện việc này bằng cách sử dụng flag upload_dataset.

Tập dữ liệu được tổ chức theo cách được mô tả trong tài liệu YOLOv5. Tệp yaml cấu hình tập dữ liệu phải tuân theo cùng định dạng với tệp coco128.yaml.

python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt \--upload_dataset

Bạn có thể tìm thấy bộ dữ liệu đã tải lên trong tab Artifacts (Hiện vật) trong Comet Workspace của bạn.

Tab Comet Artifacts, YOLOv5

Bạn có thể xem trước dữ liệu trực tiếp trong giao diện người dùng Comet.

Xem trước dữ liệu trong Comet, YOLOv5

Artifacts được quản lý phiên bản và cũng hỗ trợ thêm metadata về bộ dữ liệu. Comet sẽ tự động ghi lại metadata từ tệp yaml bộ dữ liệu của bạn.

Ghi nhật ký siêu dữ liệu từ tệp YAML trong Comet, YOLOv5

Sử dụng Artifact đã lưu

Nếu bạn muốn sử dụng một bộ dữ liệu từ Comet Artifacts, hãy đặt biến đường dẫn trong tệp yaml bộ dữ liệu của bạn để trỏ đến URL tài nguyên Artifact sau.

# nội dung của tệp artifact.yaml đường dẫn: "comet:///:"

Sau đó, chuyển tệp này cho script huấn luyện của bạn theo cách sau:

python train.py \--img 640 \--batch 16 \--epochs 5 \--data artifact.yaml \--weights yolov5s.pt

Artifacts cũng cho phép bạn theo dõi dòng dữ liệu khi nó chảy qua quy trình làm việc Experimentation của bạn. Tại đây, bạn có thể thấy một biểu đồ hiển thị tất cả các thử nghiệm đã sử dụng bộ dữ liệu bạn đã tải lên.

Quy trình làm việc thử nghiệm Comet, YOLOv5

Tiếp tục phiên huấn luyện

Nếu quá trình huấn luyện của bạn bị gián đoạn vì bất kỳ lý do gì, ví dụ: kết nối internet bị gián đoạn, bạn có thể tiếp tục quá trình chạy bằng cách sử dụng flag resume và Comet Run Path.

Đường dẫn Run Path có định dạng như sau: comet://.//.

Thao tác này sẽ khôi phục lần chạy về trạng thái trước khi bị gián đoạn, bao gồm khôi phục mô hình từ điểm kiểm tra, khôi phục tất cả các siêu tham số và đối số huấn luyện, đồng thời tải xuống Comet dataset Artifacts nếu chúng được sử dụng trong lần chạy ban đầu. Lần chạy được tiếp tục sẽ tiếp tục ghi nhật ký vào Experiment hiện có trong Comet UI.

python train.py \--resume "comet://"

Tìm kiếm siêu tham số với Comet Optimizer

YOLOv5 cũng được tích hợp với Comet's Optimizer, giúp bạn dễ dàng trực quan hóa các lượt quét siêu tham số trong Comet UI.

Cấu hình Quét trình tối ưu hóa

Để định cấu hình Comet Optimizer, bạn sẽ phải tạo một tệp JSON với thông tin về sweep.

Một tệp ví dụ đã được cung cấp trong:

utils\/loggers\/comet\/optimizer_config.json python utils\/loggers\/comet\/hpo.py \--comet_optimizer_config "utils\/loggers\/comet\/optimizer_config.json"

Tập lệnh hpo.py chấp nhận các đối số tương tự như train.py. Nếu bạn muốn chuyển các đối số bổ sung vào sweep của mình, chỉ cần thêm chúng sau tập lệnh.

python utils/loggers/comet/hpo.py \--comet_optimizer_config "utils/loggers/comet/optimizer_config.json" \--save-period 1 \--bbox_interval 1

Chạy Sweep song song

comet optimizer -j utils\/loggers\/comet\/hpo.py \utils\/loggers\/comet\/optimizer_config.json"

Comet cung cấp nhiều cách để trực quan hóa kết quả sweep của bạn. Hãy xem một dự án với một sweep đã hoàn thành tại đây:

Trực quan hóa kết quả quét trong Comet, YOLOv5

Giữ liên lạc

Bắt đầu sử dụng tích hợp của chúng tôi với Comet để quản lý, trực quan hóa và tối ưu hóa các mô hình YOLOv5 của bạn—từ các lần chạy huấn luyện đến giám sát sản xuất.

Và tất nhiên, hãy tham gia Cộng đồng Ultralytics – nơi để đặt câu hỏi và chia sẻ các mẹo về huấn luyện, xác thực và triển khai YOLOv5.

Hãy cùng nhau xây dựng tương lai
của AI!

Bắt đầu hành trình của bạn với tương lai của học máy

Bắt đầu miễn phí
Đã sao chép liên kết vào clipboard