Khám phá cách Ultralytics đối tác với Comet vì Ultralytics YOLOv5 tối ưu hóa mô hình: 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 đối tác với Comet vì Ultralytics YOLOv5 tối ưu hóa mô hình: 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 việc nghiên cứu và phát triển các công cụ nguồn mở tuyệt vời của chúng tôi, như YOLOv5 , để giữ 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 học máy và học sâu.
Comet là một công cụ mạnh mẽ để theo dõi 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 mượt mà cho mỗi lần chạy. Nó giống như có một trợ lý ảo biết chính xác những ghi chú nào cần lưu giữ. Theo dõi và trực quan hóa số liệu mô hình theo thời gian thực, lưu siêu tham số, tập dữ liệu và điểm kiểm tra mô hình, 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ờ thua track công việc của bạn 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ả vào một công cụ theo dõi thử nghiệm như Comet .
Các Comet Và YOLOv5 tích hợp cung cấp 3 tính năng chính :
Hướng dẫn này sẽ đề cập đến cách sử dụng YOLOv5 với Comet .
Vì vậy, sẵn sàng để track Thí nghiệm của bạn trong thời gian thực? Hãy bắt đầu thôi!
Cài đặt Pip 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 các biến môi trường hoặc tạo một tệp . comet Tệp .config trong thư mục làm việc của bạn và thiết lập thông tin đăng nhập tại đó.
xuất khẩu COMET _API_KEY=xuất khẩu COMET _PROJECT_NAME= # Giá trị 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 đối với 5 epochspython train.py --img 640 --batch 16 --epochs 5 --data coco128. yaml --trọng lượng 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 đào tạo 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 Giao diện người dùng.

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.
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.
xuất khẩu COMET _MODE=online # Thiết lập xem có chạy hay không Comet ở chế độ 'trực tuyến' hoặc '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 để vô hiệu hóa việc ghi nhật ký a Comet Ma trận nhầm lẫn. Mặc định là trueexport COMET _MAX_IMAGE_UPLOADS= # Kiểm soát số lượng dự đoán hình ảnh tổng thể để ghi vào Comet . Mặc định là 100.export COMET _LOG_PER_CLASS_METRICS=true # Đặt để ghi lại số liệu đánh giá cho mỗi lớp được phát hiện vào cuối 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 lại số liệu đào tạo ở cấp độ lô. Mặc định là false.export COMET _LOG_PREDICTIONS=true # Đặt thành false để vô hiệu hóa dự đoán mô hình ghi nhật ký
Mô hình ghi nhật ký để Comet bị tắt theo mặc định. Để bật tính năng này, hãy truyền tham 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 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 \
--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 của mô hình (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 dự đoán được ghi lại và hình ảnh liên quan bằng cách truyền bbox Tham số dòng lệnh _interval. Dự đoán có thể được trực quan hóa bằng cách sử dụng Comet Bảng điều khiển tùy chỉnh phát hiện đối tượng của '. Tần suất này tương ứng với mỗi lô dữ liệu thứ N trên mỗi kỷ nguyên. Trong ví dụ dưới đây, chúng tôi đang ghi nhật ký mỗi lô dữ liệu thứ 2 cho mỗi kỷ nguyên.
Lưu ý: Các YOLOv5 Bộ tải dữ liệu xác thực 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.
Đây là một dự án mẫu sử dụng Panel.
python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128. yaml \--trọng lượng yolov5s.pt \-- bbox _khoảng thời gian 2
Khi ghi lại các dự đoán từ YOLOv5 , Comet sẽ ghi lại 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 lại. Bạn có thể tăng hoặc giảm số lượng này bằng cách sử dụng COMET Biến môi trường _MAX_IMAGE_UPLOADS.
môi trường COMET _MAX_IMAGE_UPLOADS=200python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128. yaml \--trọng lượng yolov5s.pt \-- bbox _khoảng thời gian 1
Sử dụng COMET Biến môi trường _LOG_PER_CLASS_METRICS để ghi nhật ký mAP , độ chính xác, độ thu hồi và f1 cho mỗi lớp.
môi trường COMET _LOG_PER_CLASS_METRICS=đúng python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128. yaml \--trọng lượng 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 . Cấu hình bộ dữ liệu yaml tệp phải tuân theo cùng định dạng như coco128. yaml tài liệu.
python train.py \--img 640 \--batch 16 \--epochs 5 \--data coco128. yaml \--trọng số yolov5s.pt \--tải lên_dữ_liệu
Bạn có thể tìm thấy tập dữ liệu đã tải lên trong tab Hiện vật trong Comet Không gian làm việc

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

Các hiện vật được quản lý 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 dữ liệu của bạn yaml tài liệu.

Nếu bạn muốn sử dụng một tập dữ liệu từ Comet Các hiện vật, đặt biến đường dẫn trong tập dữ liệu của bạn yaml tệp để trỏ đến URL tài nguyên Artifact sau.
# nội dung của hiện vật. yaml đường dẫn tệp: " 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 \--dữ liệu hiện vật. yaml \--trọng lượng yolov5s.pt
Các hiện vật cũng cho phép bạn track Dòng 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 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 gì, 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à Comet Đường chạy.
Đường chạy có định dạng sau comet ////.
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 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, cũng như tải xuống Comet bộ dữ liệu 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 vào Thí nghiệm hiện có trong Comet Giao diện người dùng.
python train.py \--tiếp tục " comet ://"
YOLOv5 cũng được tích hợp với Comet Trình tối ưu hóa của 's, giúp dễ dàng hình dung các lần quét siêu tham số trong Comet Giao diện người dùng.
Để 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 ví dụ đã được cung cấp trong:
tiện ích/người ghi nhật ký/ comet /optimizer_config.json python tiện ích/người ghi nhật ký/ 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 tiện ích/người ghi nhật ký/ comet /hpo.py \-- comet _optimizer_config "utils/loggers/ comet /optimizer_config.json" \--lưu-thời-gian 1 \-- bbox _khoảng thời gian 1
comet trình tối ưu hóa -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 YOLOv5 mô hình—từ các đợt 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ề YOLOv5 đào tạo, xác thực và triển khai.