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

Khám phá cách Ultralytics hợp tác với Comet để tối ưu hóa mô hình YOLOv5 của Ultralytics: theo dõi thời gian thực, hợp tác hợp lý và khả năng tái tạo được cải thiện.
Tại Ultralytics, chúng tôi hợp tác thương mại với các công ty khởi nghiệp khác để giúp chúng tôi tài trợ cho hoạt động nghiên cứu và phát triển các công cụ nguồn mở tuyệt vời của mình, như YOLOv5, để giữ 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 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 đẩy nhanh và tối ưu hóa các mô hình học máy và học sâu.
Comet là một công cụ mạnh mẽ để theo dõi các mô hình, 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 tạo và gỡ lỗi trơn tru cho từng lần chạy. Giống như có một trợ lý ảo biết cách kỳ diệu để ghi chú những gì. Theo dõi và trực quan hóa các số liệu mô hình theo thời gian thực, lưu các siêu tham số, tập dữ liệu và điểm kiểm tra mô hình của bạn và trực quan hóa các dự đoán mô hình của bạn với 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 và giúp bạn dễ dàng chia sẻ kết quả cũng như cộng tác giữa các nhóm ở mọi quy mô!
YOLOv5 là đ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à sẵn sàng đưa vào sản xuất, bạn sẽ cần ghi lại kết quả trong công cụ theo dõi thử nghiệm như Comet .
Sự tích hợp Comet và YOLOv5 cung cấp 3 tính năng chính :
Hướng dẫn này sẽ trình bày 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 theo thời gian thực chưa? Hãy bắt đầu thôi!
Pip cài đặt comet_ml
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 biến môi trường hoặc tạo 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 đó.
export COMET_API_KEY=export COMET_PROJECT_NAME= # Mặc định sẽ là 'yolov5'
[comet] api_key= project_name=<Your Comet API Key># This will default to 'yolov5'
# Đào tạo 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, đào tạo và số liệu 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.
Hãy xem ví dụ về một lượt chạy hoàn chỉnh tại đây .
Hoặc tốt hơn nữa, hãy tự mình thử nghiệm trong Sổ tay Colab này .
Theo mặc định, Comet sẽ ghi lại các mục sau:
Comet có thể được cấu hình để ghi lại dữ liệu bổ sung thông qua cờ dòng lệnh được truyền tới tập lệnh đào tạo hoặc biến môi trường.
export COMET_MODE=online # Đặt chạy Comet ở chế độ 'trực tuyến' hay 'ngoại tuyến'. 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 vào Comet. Mặc định là 100.export COMET_LOG_PER_CLASS_METRICS=true # Đặt để ghi nhật ký số liệu đánh giá cho mỗi lớp được phát hiện khi kết thúc quá trình đào tạo. Mặc định là falseexport COMET_DEFAULT_CHECKPOINT_FILENAME= # Đặt tùy chọn này nếu bạn muốn tiếp tục đào tạo từ một điểm kiểm tra khác. Mặc định là 'last.pt'export COMET_LOG_BATCH_LEVEL_METRICS=true # Đặt tùy chọn này nếu bạn muốn ghi nhật ký số liệu đào tạo ở cấp độ lô. Mặc định là false.export COMET_LOG_PREDICTIONS=true # Đặt thành false để tắt dự đoán mô hình ghi nhật ký
Ghi nhật ký mô hình vào Comet bị vô hiệu hóa theo mặc định. Để bật, hãy chuyển đối số save-period vào tập lệnh đào tạo. Thao tác này sẽ lưu các điểm kiểm tra đã ghi vào Comet dựa trên giá trị khoảng thời gian do save-period cung cấp.
python tàu hỏa.py \
--hình ảnh 640 \
--lô 16 \
--kỷ nguyên 5 \
--dữ liệu coco128.yaml \
--trọng lượng yolov5s.pt \
--lưu-giai-đoạn 1
Theo mặc định, các dự đoán mô hình (hình ảnh, nhãn sự thật cơ bản 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 dự đoán được ghi vào và các hình ảnh liên quan bằng cách truyền tham số dòng lệnh bbox_interval. Các dự đoán có thể được trực quan hóa bằng Bảng 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 cho mỗi kỷ nguyên. Trong ví dụ bên dưới, chúng tôi đang ghi vào mỗi lô dữ liệu thứ 2 cho mỗi kỷ nguyên.
Lưu ý: Trình tải dữ liệu xác thực YOLOv5 sẽ mặc định ở kích thước lô là 32, do đó bạn sẽ phải đặt tần suất ghi nhật ký cho phù hợp.
Sau đây là một dự án ví dụ sử dụng Panel .
python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt \--bbox_interval 2
Khi ghi nhật ký dự đoán từ YOLOv5, Comet sẽ ghi nhật ký các hình ảnh liên quan đến từng bộ dự đoán. Theo mặc định, tối đa 100 hình ảnh xác thực được ghi nhật ký. 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=200python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128.yaml \--weights yolov5s.pt \--bbox_interval 1
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
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 bằng cách sử dụng cờ upload_dataset.
Bộ 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 bộ 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 bạn
Bạn có thể xem trước dữ liệu trực tiếp trong Comet UI.
Các hiện vật đượ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.
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 của tập dữ liệu để 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 tới tập lệnh đào tạo 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 hiện vật cũng cho phép bạn theo dõi dòng dõi dữ liệu khi nó chảy qua quy trình làm việc Thử nghiệm của bạn. Tại đây, bạn có thể thấy biểu đồ hiển thị tất cả các thử nghiệm đã sử dụng tập dữ liệu bạn đã tải lên.
Nếu quá trình luyện tập của bạn bị gián đoạn vì bất kỳ lý do nào, ví dụ như kết nối internet bị gián đoạn, bạn có thể tiếp tục chạy bằng cách sử dụng cờ tiếp tục và Đường dẫn chạy Comet.
Đường dẫn chạy có định dạng sau comet:////.
Thao tác này sẽ khôi phục lại 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ố đào tạo, và tải xuống Artifacts của tập dữ liệu Comet 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 vào Experiment hiện có trong Comet UI.
python train.py \--tiếp tục "sao chổi://"
YOLOv5 cũng được tích hợp với Optimizer của Comet, giúp dễ dàng hình dung quá trình quét siêu tham số trong Comet UI.
Để cấu hình Comet Optimizer, bạn sẽ phải tạo một tệp JSON có thông tin về quá trình quét.
Một tập tin 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ố giống như train.py. Nếu bạn muốn truyền thêm các đối số cho 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
trình tối ưu hóa sao chổi -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ả quét của bạn. Hãy xem một dự án đã quét xong tại đây :
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 đào tạo đế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ề đào tạo, xác thực và triển khai YOLOv5.