Gặp gỡ YOLO26: AI tầm nhìn thế hệ tiếp theo.
Ultralytics
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 model Ultralytics YOLOv5: theo dõi theo thời gian thực, hợp tác tinh gọn và tăng cường khả năng tái lập.

ĐỘĐội ngũ Ultralytics5 min read
Theo dõi quá trình huấn luyện model 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 hoạt động 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 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 cũng như tối ưu hóa các model học máy và học sâu.

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 của bạn để đảm bảo khả năng 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 ghi chú lại những gì. Theo dõi và trực quan hóa các số liệu model trong thời gian thực, lưu các siêu tham số (hyperparameters), tập dữ liệu và checkpoint model của bạn, đồ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 dễ dàng chia sẻ kết quả cũng như hợp tác giữa các nhóm ở 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 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 Comet và YOLOv5 cung cấp 3 tính năng chính:

  • Các tính năng tự động ghi log và tùy chỉnh ghi log
  • Lưu các tập dữ liệu và model dưới dạng artifact để gỡ lỗi và đảm bảo khả năng tái lập
  • Sắp xếp giao diện của bạn với các bảng tùy chỉnh (custom panels) của Comet

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

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

Link to this sectionBắt đầu#

Link to this section1. Cài đặt Comet#

pip install comet_ml

Link to this section2. Cấ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ể đặ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 và đặt thông tin xác thực ở đó.

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 section3. Chạ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ế thôi!

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à kiểm định 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.

Các thử nghiệm với YOLOv5 trong bảng điều khiển Comet

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 sectionGhi log tự động#

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à kiểm định
  • Các số liệu mAP_0.5, mAP_0.5:0.95 cho dữ liệu kiểm định
  • Precision và Recall cho dữ liệu kiểm định

Link to this sectionCác tham số#

  • Siêu tham số 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 kiểm định
  • Các biểu đồ cho đường cong PR và F1 trên tất cả các lớp
  • Biểu đồ tương quan (Correlogram) của các nhãn lớp

Link to this sectionCấu hình ghi log của Comet#

Comet có thể được cấu hình để ghi lại dữ liệu bổ sung thông qua các flag dòng lệnh được truyền vào 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 log các checkpoint với Comet#

Việc ghi log các model vào Comet bị vô hiệu hóa theo mặc định. Để kích hoạt nó, 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 log 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 ghi log dự đoán 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 cách sử dụng bả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ụ dưới đây, chúng ta đang ghi log mỗi 2 batch dữ liệu cho mỗi epoch.

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

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

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 log 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 dự đoán. Theo mặc định, tối đa 100 hình ảnh kiểm định đượ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

Link to this sectionGhi log các số liệu cấp lớp#

Sử dụng biến môi trường COMET_LOG_PER_CLASS_METRICS để ghi log mAP, precision, recall và f1 cho từng 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ể làm như vậy bằng flag upload_dataset.

Tập dữ liệu được sắp xếp 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 Comet Workspace của mình

Tab Comet Artifacts, YOLOv5

Bạn có thể xem trước dữ liệu trực tiếp trong Comet UI.

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

Các Artifact được lập 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 siêu dữ liệu từ tệp YAML trong Comet, YOLOv5

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

Nếu bạn muốn sử dụng một tập dữ liệu từ Comet Artifacts, hãy đặt biến path 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

Các Artifact cũng cho phép bạn theo dõi dòng dõi của dữ liệu khi nó chạy 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 Comet, YOLOv5

Link to this sectionTiếp tục chạy 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ụ như mất kết nối internet, bạn có thể tiếp tục quá trình chạy bằng cách sử dụng flag resume và Đường dẫn chạy Comet (Comet Run Path).

The Run Path has the following format comet://<your workspace name>/<your project name>/<experiment id>.

Thao tác này sẽ khôi phục quá trình chạy về trạng thái trước khi bị gián đoạn, bao gồm việc khôi phục model từ checkpoint, khôi phục tất cả các siêu tham số và đối số huấn luyện, và 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. Quá trình chạy được tiếp tục sẽ vẫn ghi log vào Thử nghiệm hiện có trong Comet UI.

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

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

YOLOv5 cũng được tích hợp với Comet Optimizer, giúp việc trực quan hóa các đợt quét siêu tham số (hyperparameter sweeps) trong Comet UI trở nên đơn giản.

Link to this sectionCấu hình một lượ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ề lượ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 lượt quét của mình, chỉ cần thêm chúng vào 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 lượ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ả lượt quét của bạn. Hãy xem một dự án với lượt quét đã hoàn tất tại đây:

Trực quan hóa kết quả lượt quét 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 cho đế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ề việc huấn luyện, kiểm định và triển khai YOLOv5.

Explore solutions

Real-time AI tailored to your operation

AI trong Nông nghiệp

Mang thị giác máy tính AI vào nông nghiệp thông minh với các model Ultralytics YOLO. Thúc đẩy giám sát cây trồng, theo dõi vật nuôi và canh tác chính xác để đạt năng suất cao hơn và thông minh hơn.

Tìm hiểu thêm
Real-time AI that works with your operation

AI trong ngành ô tô

Ứng dụng thị giác máy tính trong ngành ô tô với các model Ultralytics YOLO. AI thị giác giúp nâng cao an toàn giao thông, hỗ trợ người lái và tự động hóa phương tiện để có những con đường thông minh hơn.

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 chăm sóc sức khỏe với các model Ultralytics YOLO. AI thị giác trong chăm sóc sức khỏe giúp tăng tốc chẩn đoán hình ảnh y tế, chẩn đoán thông minh hơn và theo dõi bệnh nhân tốt hơn.

Tìm hiểu thêm
Real-time AI that works with your team

AI trong Bán lẻ

Tái định hình ngành bán lẻ với các model Ultralytics YOLO. Vision AI hỗ trợ theo dõi hàng tồn kho, giám sát kệ hàng, quản lý hàng đợi và cung cấp thông tin chuyên sâu về khách hàng một cách thông minh hơn.

Tìm hiểu thêm
Real-time AI that works with your team

AI trong ngành Robot

Cung cấp 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 ngành robot thúc đẩy điều hướng tự động, nhận diện, 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 Sản xuất

Tối ưu hóa quy trình 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 team

AI trong Logistics

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

Tìm hiểu thêm
Real-time AI tailored to your operation

AI trong Nông nghiệp

Mang thị giác máy tính AI vào nông nghiệp thông minh với các model Ultralytics YOLO. Thúc đẩy giám sát cây trồng, theo dõi vật nuôi và canh tác chính xác để đạt năng suất cao hơn và thông minh hơn.

Tìm hiểu thêm
Real-time AI that works with your operation

AI trong ngành ô tô

Ứng dụng thị giác máy tính trong ngành ô tô với các model Ultralytics YOLO. AI thị giác giúp nâng cao an toàn giao thông, hỗ trợ người lái và tự động hóa phương tiện để có những con đường thông minh hơn.

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 chăm sóc sức khỏe với các model Ultralytics YOLO. AI thị giác trong chăm sóc sức khỏe giúp tăng tốc chẩn đoán hình ảnh y tế, chẩn đoán thông minh hơn và theo dõi bệnh nhân tốt hơn.

Tìm hiểu thêm
Real-time AI that works with your team

AI trong Bán lẻ

Tái định hình ngành bán lẻ với các model Ultralytics YOLO. Vision AI hỗ trợ theo dõi hàng tồn kho, giám sát kệ hàng, quản lý hàng đợi và cung cấp thông tin chuyên sâu về khách hàng một cách thông minh hơn.

Tìm hiểu thêm
Real-time AI that works with your team

AI trong ngành Robot

Cung cấp 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 ngành robot thúc đẩy điều hướng tự động, nhận diện, 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 Sản xuất

Tối ưu hóa quy trình 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 team

AI trong Logistics

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

Tìm hiểu thêm
Real-time AI tailored to your operation

AI trong Nông nghiệp

Mang thị giác máy tính AI vào nông nghiệp thông minh với các model Ultralytics YOLO. Thúc đẩy giám sát cây trồng, theo dõi vật nuôi và canh tác chính xác để đạt năng suất cao hơn và thông minh hơn.

Tìm hiểu thêm
Real-time AI that works with your operation

AI trong ngành ô tô

Ứng dụng thị giác máy tính trong ngành ô tô với các model Ultralytics YOLO. AI thị giác giúp nâng cao an toàn giao thông, hỗ trợ người lái và tự động hóa phương tiện để có những con đường thông minh hơn.

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 chăm sóc sức khỏe với các model Ultralytics YOLO. AI thị giác trong chăm sóc sức khỏe giúp tăng tốc chẩn đoán hình ảnh y tế, chẩn đoán thông minh hơn và theo dõi bệnh nhân tốt hơn.

Tìm hiểu thêm
Real-time AI that works with your team

AI trong Bán lẻ

Tái định hình ngành bán lẻ với các model Ultralytics YOLO. Vision AI hỗ trợ theo dõi hàng tồn kho, giám sát kệ hàng, quản lý hàng đợi và cung cấp thông tin chuyên sâu về khách hàng một cách thông minh hơn.

Tìm hiểu thêm
Real-time AI that works with your team

AI trong ngành Robot

Cung cấp 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 ngành robot thúc đẩy điều hướng tự động, nhận diện, 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 Sản xuất

Tối ưu hóa quy trình 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 team

AI trong Logistics

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

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