Bảo mật cấp doanh nghiệp: Tuân thủ ISO 27001 + SOC 2 Type I.
Tích hợp

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

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, cộng tác hợp lý và khả năng tái lập nâng cao.

NUNuvola Ladi5 min read
Theo dõi quá trình đào tạo mô hình Ultralytics YOLOv5 với Comet

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 mình, như YOLOv5, nhằm giữ cho chúng miễn phí cho mọi người. Bài viết này có thể chứa các liên kết tiếp thị liên kết đến những đố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 cũng như tối ưu hóa các model học máy (machine learning) và học sâu (deep learning).

Comet là một công cụ mạnh mẽ để theo dõi các model, tập 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 để đảm bảo tính tái lập và gỡ lỗi mượt mà cho từng lần chạy. Nó giống như việc có một trợ lý ảo tự động biết cần giữ lại những ghi chú nào. Hãy theo dõi và trực quan hóa số liệu của model trong thời gian thực, lưu các tham số siêu cấp (hyperparameters), tập dữ liệu và checkpoint của model, đồng thời trực quan hóa các dự đoán của model bằng Comet Custom Panels!

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

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 của model và đưa nó vào sản xuất, bạn sẽ 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 giữa Comet và YOLOv5 cung cấp 3 tính năng chính:

  • Các tính năng tự động ghi nhật ký và ghi nhật ký tùy chỉnh
  • Lưu các tập dữ liệu và model dưới dạng artifacts để phục vụ việc gỡ lỗi và đảm bảo tính tái lập
  • Tổ chức chế độ xem của bạn với các bảng điều khiển tùy chỉnh của Comet

Hướng dẫn này sẽ đề cập đến cách sử dụng YOLOv5 với Comet.

Vậy, 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 thôi!

Link to this sectionBắt đầu#

Link to this sectionCài đặt Comet#

pip install comet_ml

Link to this sectionCấu hình thông tin xác thực Comet#

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

Bạn có thể thiết lập 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 một tệp .comet.config trong thư mục làm việc và thiết lập thông tin xác thực tại đó.

Link to this sectionCác biến môi trường#

export COMET_API_KEY=<Your API Key>
export COMET_PROJECT_NAME=<Your Comet Project Name> # This will default to 'yolov5'

Link to this sectionTệp cấu hình Comet#

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

Link to this sectionChạy tập lệnh huấn luyện#

# Train YOLOv5s on COCO128 for 5 epochs
python train.py --img 640 --batch 16 --epochs 5 --data coco128.yaml --weights yolov5s.pt

Thế là xong!

Comet sẽ tự động ghi lại các tham số siêu cấp, các đối số dòng lệnh, cũng như các số liệu huấn luyện và xác thực. 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 giao diện người dùng (UI) của Comet.

Các thí nghiệm với YOLOv5 trong Comet Dashboard

Link to this sectionHãy tự mình trải nghiệm!#

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

Hoặc tốt hơn nữa, hãy tự mình trải nghiệm trong Colab Notebook này.

Link to this sectionTự động ghi nhật ký#

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

Link to this sectionSố liệu#

  • 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 xác thực
  • Độ chính xác (Precision) và Độ thu hồi (Recall) cho dữ liệu xác thực

Link to this sectionTham số#

  • Các tham số siêu cấp (Hyperparameters) của model
  • Tất cả các tham số được truyền qua các tùy chọn dòng lệnh

Link to this sectionTrực quan hóa#

  • Ma trận nhầm lẫn (Confusion Matrix) của các dự đoán model trên dữ liệu xác thực
  • Các biểu đồ cho đường cong PR và F1 trên tất cả các lớp
  • Correlogram của các nhãn lớp

Link to this sectionCấu hình ghi nhật ký Comet#

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

export COMET_MODE=online # Set whether to run Comet in 'online' or 'offline' mode. Defaults to online
export COMET_MODEL_NAME=<your model name> # Set the name for the saved model. Defaults to yolov5
export COMET_LOG_CONFUSION_MATRIX=false # Set to disable logging a Comet Confusion Matrix. Defaults to true
export COMET_MAX_IMAGE_UPLOADS=<number of allowed images to upload to Comet> # Controls how many total image predictions to log to Comet. Defaults to 100.
export COMET_LOG_PER_CLASS_METRICS=true # Set to log evaluation metrics for each detected class at the end of training. Defaults to false
export COMET_DEFAULT_CHECKPOINT_FILENAME=<your checkpoint filename> # Set this if you would like to resume training from a different checkpoint. Defaults to 'last.pt'
export COMET_LOG_BATCH_LEVEL_METRICS=true # Set this if you would like to log training metrics at the batch level. Defaults to false.
export COMET_LOG_PREDICTIONS=true # Set this to false to disable logging model predictions

Link to this sectionGhi nhật ký các Checkpoint với Comet#

Việc ghi lại các model vào Comet bị vô hiệu hóa 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 checkpoint đã ghi 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

Link to this sectionGhi lại các dự đoán của model#

Theo mặc định, các dự đoán của model (hình ảnh, nhãn thực tế và hộp giới hạn) 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 truyền đối số dòng lệnh bbox_interval. Các dự đoán có thể được trực quan hóa bằng Bảng điều khiển tùy chỉnh Phát hiện đối tượng (Object Detection Custom Panel) của Comet. Tần suất này tương ứng với mỗi lô (batch) 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 là kích thước lô là 32, vì vậy bạn sẽ phải thiết lập tần suất ghi nhật ký cho phù hợp.

Đây là một dự án ví dụ sử dụng Bảng điều khiển.

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

Link to this sectionKiểm soát số lượng hình ảnh dự đoán được ghi vào Comet#

Khi ghi các dự đoán từ YOLOv5, Comet sẽ ghi lại các hình ảnh liên quan đến từng 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 con số 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

Link to this sectionGhi nhật ký 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

Link to this sectionTải tập 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 cờ 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 tập dữ liệu đã tải lên trong tab Artifacts trong Không gian làm việc Comet của mình

Tab Artifacts của Comet, YOLOv5

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

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

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

Ghi log metadata từ file YAML trong Comet, YOLOv5

Link to this sectionSử dụng một Artifact đã lưu#

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

# contents of artifact.yaml file
path: "comet://<workspace name>/<artifact name>:<artifact version or alias>"

Sau đó truyền tệp này vào tập lệnh 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 nguồn gốc của dữ liệu khi nó đi qua quy trình Thử nghiệm của bạn. Tại đây, bạn có thể thấy một biểu đồ hiển thị cho bạn tất cả các thử nghiệm đã sử dụng tập dữ liệu đã tải lên của bạn.

Quy trình thử nghiệm trên Comet, YOLOv5

Link to this sectionTiếp tục một lần chạy huấn luyện#

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

Run Path có định dạng sau comet://<your workspace name>/<your project name>/<experiment id>.

Thao tác này sẽ khôi phục lần chạy về trạng thái trước khi gián đoạn, bao gồm khôi phục model từ checkpoint, khôi phục tất cả các tham số siêu cấp và đối số huấn luyện, cũng như tải xuống các Artifact tập dữ liệu Comet nếu chúng được sử dụng trong lần chạy gốc. Lần chạy tiếp tục sẽ tiếp tục ghi vào Thử nghiệm hiện có trong giao diện người dùng của Comet.

python train.py \
  --resume "comet://<your run path>"

Link to this sectionTìm kiếm tham số siêu cấp với Comet Optimizer#

YOLOv5 cũng được tích hợp với Comet Optimizer, giúp dễ dàng trực quan hóa các đợt quét tham số siêu cấp (sweep) trong giao diện người dùng của Comet.

Link to this sectionCấu hình một đợt quét Optimizer#

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

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 truyền các đối số bổ sung cho đợt quét 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

Link to this sectionChạy một đợt quét song song#

comet optimizer -j <num_workers> 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ả đợt quét của bạn. Hãy xem dự án với một đợt quét đã hoàn tất tại đây:

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

Link to this sectionGiữ 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 model 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ẻ mẹo về việc huấn luyện, xác thực và triển khai YOLOv5.

Explore solutions

Real-time AI that works with your team

AI trong ngành Robot

Tăng cường sức mạnh cho các cỗ máy thông minh hơn với các model Ultralytics YOLO. AI thị giác trong lĩnh vực robot thúc đẩy khả năng điều hướng tự hành, nhận thức, theo dõi đối tượng và điều khiển thời gian thực.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong Logistics

Tối ưu hóa logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra hàng hóa, phân loại, theo dõi phương tiện và giám sát an toàn kho bãi trong thời gian thực.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong ngành Bán lẻ

Tái định hình bán lẻ với các model Ultralytics YOLO. Vision AI thúc đẩy theo dõi hàng tồn kho, giám sát kệ hàng, quản lý hàng đợi và thông tin chi tiết thông minh hơn về khách hàng.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong chăm sóc sức khỏe

Xây dựng các giải pháp y tế với các model Ultralytics YOLO. AI thị giác trong y tế hỗ trợ chẩn đoán hình ảnh y khoa nhanh hơn, chẩn đoán thông minh hơn và theo dõi bệnh nhân.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong sản xuất

Tối ưu hóa sản xuất với các model Ultralytics YOLO. Vision AI thúc đẩy kiểm soát chất lượng, phát hiện lỗi, tuân thủ PPE và tự động hóa dây chuyền lắp ráp.
Tìm hiểu thêm
Real-time AI that works with your operation

AI trong Ô tô

Áp dụng thị giác máy tính trong ô tô với các model Ultralytics YOLO. AI thị giác nâng cao an toàn đường bộ, hỗ trợ người lái và tự động hóa phương tiện cho những con đường thông minh hơn.
Tìm hiểu thêm
Real-time AI tailored to your operation

AI trong Nông nghiệp

Mang AI thị giác vào nông nghiệp thông minh với các model Ultralytics YOLO. Tăng cường giám sát mùa màng, theo dõi vật nuôi và canh tác chính xác để đạt năng suất cao hơn, thông minh hơn.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong ngành Robot

Tăng cường sức mạnh cho các cỗ máy thông minh hơn với các model Ultralytics YOLO. AI thị giác trong lĩnh vực robot thúc đẩy khả năng điều hướng tự hành, nhận thức, theo dõi đối tượng và điều khiển thời gian thực.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong Logistics

Tối ưu hóa logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra hàng hóa, phân loại, theo dõi phương tiện và giám sát an toàn kho bãi trong thời gian thực.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong ngành Bán lẻ

Tái định hình bán lẻ với các model Ultralytics YOLO. Vision AI thúc đẩy theo dõi hàng tồn kho, giám sát kệ hàng, quản lý hàng đợi và thông tin chi tiết thông minh hơn về khách hàng.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong chăm sóc sức khỏe

Xây dựng các giải pháp y tế với các model Ultralytics YOLO. AI thị giác trong y tế hỗ trợ chẩn đoán hình ảnh y khoa nhanh hơn, chẩn đoán thông minh hơn và theo dõi bệnh nhân.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong sản xuất

Tối ưu hóa sản xuất với các model Ultralytics YOLO. Vision AI thúc đẩy kiểm soát chất lượng, phát hiện lỗi, tuân thủ PPE và tự động hóa dây chuyền lắp ráp.
Tìm hiểu thêm
Real-time AI that works with your operation

AI trong Ô tô

Áp dụng thị giác máy tính trong ô tô với các model Ultralytics YOLO. AI thị giác nâng cao an toàn đường bộ, hỗ trợ người lái và tự động hóa phương tiện cho những con đường thông minh hơn.
Tìm hiểu thêm
Real-time AI tailored to your operation

AI trong Nông nghiệp

Mang AI thị giác vào nông nghiệp thông minh với các model Ultralytics YOLO. Tăng cường giám sát mùa màng, theo dõi vật nuôi và canh tác chính xác để đạt năng suất cao hơn, thông minh hơn.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong ngành Robot

Tăng cường sức mạnh cho các cỗ máy thông minh hơn với các model Ultralytics YOLO. AI thị giác trong lĩnh vực robot thúc đẩy khả năng điều hướng tự hành, nhận thức, theo dõi đối tượng và điều khiển thời gian thực.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong Logistics

Tối ưu hóa logistics với các model Ultralytics YOLO. Vision AI hỗ trợ kiểm tra hàng hóa, phân loại, theo dõi phương tiện và giám sát an toàn kho bãi trong thời gian thực.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong ngành Bán lẻ

Tái định hình bán lẻ với các model Ultralytics YOLO. Vision AI thúc đẩy theo dõi hàng tồn kho, giám sát kệ hàng, quản lý hàng đợi và thông tin chi tiết thông minh hơn về khách hàng.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong chăm sóc sức khỏe

Xây dựng các giải pháp y tế với các model Ultralytics YOLO. AI thị giác trong y tế hỗ trợ chẩn đoán hình ảnh y khoa nhanh hơn, chẩn đoán thông minh hơn và theo dõi bệnh nhân.
Tìm hiểu thêm
Real-time AI that works with your team

AI trong sản xuất

Tối ưu hóa sản xuất với các model Ultralytics YOLO. Vision AI thúc đẩy kiểm soát chất lượng, phát hiện lỗi, tuân thủ PPE và tự động hóa dây chuyền lắp ráp.
Tìm hiểu thêm
Real-time AI that works with your operation

AI trong Ô tô

Áp dụng thị giác máy tính trong ô tô với các model Ultralytics YOLO. AI thị giác nâng cao an toàn đường bộ, hỗ trợ người lái và tự động hóa phương tiện cho những con đường thông minh hơn.
Tìm hiểu thêm
Real-time AI tailored to your operation

AI trong Nông nghiệp

Mang AI thị giác vào nông nghiệp thông minh với các model Ultralytics YOLO. Tăng cường giám sát mùa màng, theo dõi vật nuôi và canh tác chính xác để đạt năng suất cao hơn, thông minh hơn.
Tìm hiểu thêm

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 machine learning