Đào tạo dữ liệu tùy chỉnh
📚 Hướng dẫn này giải thích cách đào tạo tập dữ liệu tùy chỉnh của riêng bạn với YOLOv5 🚀.
Trước khi bắt đầu
Sao chép repo và cài đặt requirements.txt trong một PythonMôi trường >=3.8.0 , bao gồm PyTorch>=1,8. Mô hình và bộ dữ liệu tải xuống tự động từ phiên bản mới nhất YOLOv5 phát hành.
git clone https://github.com/ultralytics/yolov5 # clone
cd yolov5
pip install -r requirements.txt # install
Đào tạo về dữ liệu tùy chỉnh
Tạo một mô hình tùy chỉnh để phát hiện các đối tượng của bạn là một quá trình lặp đi lặp lại để thu thập và tổ chức hình ảnh, gắn nhãn các đối tượng quan tâm của bạn, đào tạo mô hình, triển khai nó vào tự nhiên để đưa ra dự đoán và sau đó sử dụng mô hình được triển khai đó để thu thập các ví dụ về các trường hợp cạnh để lặp lại và cải thiện.
Giấy phép
Ultralytics Cung cấp hai tùy chọn cấp phép:
- Các AGPL-3.0 Giấy phép, một giấy phép mã nguồn mở được OSI phê duyệt lý tưởng cho sinh viên và những người đam mê.
- Giấy phép Doanh nghiệp dành cho các doanh nghiệp đang tìm cách kết hợp các mô hình AI của chúng tôi vào các sản phẩm và dịch vụ của họ.
Để biết thêm chi tiết, hãy xem Ultralytics Cấp phép.
YOLOv5 Các mô hình phải được đào tạo về dữ liệu được gắn nhãn để tìm hiểu các lớp đối tượng trong dữ liệu đó. Có hai tùy chọn để tạo tập dữ liệu của bạn trước khi bạn bắt đầu đào tạo:
Tùy chọn 1: Tạo một Roboflow Tập dữ liệu
1.1 Thu thập hình ảnh
Mô hình của bạn sẽ học bằng ví dụ. Đào tạo về hình ảnh tương tự như những hình ảnh mà nó sẽ thấy trong tự nhiên là vô cùng quan trọng. Lý tưởng nhất là bạn sẽ thu thập nhiều loại hình ảnh từ cùng một cấu hình (máy ảnh, góc, ánh sáng, v.v.) vì cuối cùng bạn sẽ triển khai dự án của mình.
Nếu điều này là không thể, bạn có thể bắt đầu từ một tập dữ liệu công khai để đào tạo mô hình ban đầu của bạn và sau đó lấy mẫu hình ảnh từ tự nhiên trong quá trình suy luận để cải thiện tập dữ liệu và mô hình của bạn lặp đi lặp lại.
1.2 Tạo nhãn
Khi bạn đã thu thập hình ảnh, bạn sẽ cần chú thích các đối tượng quan tâm để tạo ra một sự thật cơ bản cho mô hình của bạn để học hỏi.
Roboflow Chú thích là một công cụ dựa trên web đơn giản để quản lý và gắn nhãn hình ảnh của bạn với nhóm của bạn và xuất chúng vào YOLOv5định dạng chú thích.
1.3 Chuẩn bị tập dữ liệu cho YOLOv5
Cho dù bạn Gắn nhãn hình ảnh của bạn với Roboflow Hoặc không, bạn có thể sử dụng nó để chuyển đổi tập dữ liệu của mình thành YOLO định dạng, tạo một YOLOv5 Tệp cấu hình YAML và lưu trữ nó để nhập vào tập lệnh đào tạo của bạn.
Tạo miễn phí Roboflow tài khoản và tải tập dữ liệu của bạn lên Public
Không gian làm việc, gắn nhãn mọi hình ảnh không được chú thích, sau đó tạo và xuất phiên bản tập dữ liệu của bạn trong YOLOv5 Pytorch
định dạng.
Ghi: YOLOv5 có tăng cường trực tuyến trong quá trình đào tạo, vì vậy chúng tôi không khuyên bạn nên áp dụng bất kỳ bước tăng cường nào trong Roboflow để đào tạo với YOLOv5. Nhưng chúng tôi khuyên bạn nên áp dụng các bước tiền xử lý sau:
- Auto-Orient - để loại bỏ hướng EXIF khỏi hình ảnh của bạn.
- Thay đổi kích thước (Stretch) - thành kích thước đầu vào hình vuông của mô hình của bạn (640x640 là YOLOv5 mặc định).
Tạo phiên bản sẽ cung cấp cho bạn ảnh chụp nhanh tập dữ liệu của mình, vì vậy bạn luôn có thể quay lại và so sánh việc đào tạo mô hình trong tương lai của mình với phiên bản đó, ngay cả khi bạn thêm nhiều hình ảnh hơn hoặc thay đổi cấu hình của nó sau này.
Xuất khẩu trong YOLOv5 Pytorch
, sau đó sao chép đoạn mã vào tập lệnh đào tạo hoặc sổ ghi chép để tải xuống tập dữ liệu của bạn.
Tùy chọn 2: Tạo tập dữ liệu thủ công
2.1 Tạo dataset.yaml
COCO128 là một ví dụ tập dữ liệu hướng dẫn nhỏ bao gồm 128 hình ảnh đầu tiên trong COCO train2017. 128 hình ảnh này được sử dụng cho cả mục đích đào tạo và xác thực để xác minh đường ống đào tạo của chúng tôi có khả năng quá phù hợp. dữ liệu/coco128.yaml, được hiển thị bên dưới, là tệp cấu hình tập dữ liệu xác định 1) thư mục gốc tập dữ liệu path
và đường dẫn tương đối đến train
/ val
/ test
thư mục hình ảnh (hoặc *.txt
các tệp có đường dẫn hình ảnh) và 2) một lớp names
từ điển:
# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: ../datasets/coco128 # dataset root dir
train: images/train2017 # train images (relative to 'path') 128 images
val: images/train2017 # val images (relative to 'path') 128 images
test: # test images (optional)
# Classes (80 COCO classes)
names:
0: person
1: bicycle
2: car
# ...
77: teddy bear
78: hair drier
79: toothbrush
2.2 Tạo nhãn
Sau khi sử dụng công cụ chú thích để gắn nhãn hình ảnh, hãy xuất nhãn sang YOLO định dạng, với một *.txt
tệp trên mỗi hình ảnh (nếu không có đối tượng trong hình ảnh, không *.txt
tập tin là bắt buộc). Các *.txt
Thông số kỹ thuật của tệp là:
- Mỗi đối tượng một hàng
- Mỗi hàng là
class x_center y_center width height
định dạng. - Tọa độ hộp phải ở trong XYWH chuẩn hóa định dạng (từ 0 đến 1). Nếu hộp của bạn ở dạng pixel, hãy chia
x_center
vàwidth
theo chiều rộng hình ảnh vày_center
vàheight
theo chiều cao hình ảnh. - Số lớp được lập chỉ mục bằng 0 (bắt đầu từ 0).
Tệp nhãn tương ứng với hình trên chứa 2 người (lớp 0
) và cà vạt (lớp 27
):
2.3 Tổ chức các thư mục
Sắp xếp hình ảnh và nhãn xe lửa và val của bạn theo ví dụ dưới đây. YOLOv5 Thừa nhận /coco128
nằm bên trong một /datasets
thư mục Cạnh Các /yolov5
thư mục. YOLOv5 Định vị nhãn tự động cho từng hình ảnh bằng cách thay thế trường hợp cuối cùng của /images/
trong mỗi đường dẫn hình ảnh với /labels/
. Chẳng hạn:
3. Chọn một mô hình
Chọn một mô hình được đào tạo trước để bắt đầu đào tạo. Ở đây chúng tôi chọn YOLOv5s, mô hình nhỏ thứ hai và nhanh nhất hiện có. Xem bảng README của chúng tôi để so sánh đầy đủ tất cả các mô hình.
4. Tàu hỏa
Đào tạo mô hình YOLOv5s trên COCO128 bằng cách chỉ định tập dữ liệu, kích thước lô, kích thước hình ảnh và được đào tạo trước --weights yolov5s.pt
(được khuyến nghị) hoặc được khởi tạo ngẫu nhiên --weights '' --cfg yolov5s.yaml
(không khuyến khích). Trọng lượng được đào tạo trước được tự động tải xuống từ Đặt YOLOv5 phát hành.
Mẹo
💡 Thêm --cache ram
hoặc --cache disk
để tăng tốc độ đào tạo (yêu cầu tài nguyên RAM / đĩa đáng kể).
Mẹo
💡 Luôn đào tạo từ tập dữ liệu cục bộ. Gắn kết hoặc ổ đĩa mạng như Google Lái xe sẽ rất chậm.
Tất cả kết quả đào tạo được lưu vào runs/train/
với các thư mục chạy tăng dần, tức là runs/train/exp2
, runs/train/exp3
v.v. Để biết thêm chi tiết, hãy xem phần Đào tạo trong sổ ghi chép hướng dẫn của chúng tôi.
5. Hình dung
Comet Ghi nhật ký và trực quan hóa 🌟 MỚI
Comet hiện được tích hợp đầy đủ với YOLOv5. Theo dõi và trực quan hóa các chỉ số mô hình trong 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, đồng thời trực quan hóa các dự đoán mô hình của bạn với Comet Bảng điều khiển tùy chỉnh! 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 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ô!
Bắt đầu thật dễ dàng:
pip install comet_ml # 1. install
export COMET_API_KEY=<Your API Key> # 2. paste API key
python train.py --img 640 --epochs 3 --data coco128.yaml --weights yolov5s.pt # 3. train
Để tìm hiểu thêm về tất cả các hỗ trợ Comet Các tính năng cho tích hợp này, hãy xem Comet Hướng dẫn. Nếu bạn muốn tìm hiểu thêm về Comet, đi đến của chúng tôi tư liệu. Bắt đầu bằng cách dùng thử Comet Máy tính xách tay Colab:
ClearML Ghi nhật ký và tự động hóa 🌟 MỚI
ClearML được tích hợp hoàn toàn vào YOLOv5 Để theo dõi thử nghiệm của bạn, quản lý các phiên bản tập dữ liệu và thậm chí thực hiện từ xa các lần chạy đào tạo. Để bật ClearML:
pip install clearml
- chạy
clearml-init
Để kết nối với một ClearML máy chủ
Bạn sẽ nhận được tất cả các tính năng mong đợi tuyệt vời từ trình quản lý thử nghiệm: cập nhật trực tiếp, tải lên mô hình, so sánh thử nghiệm, v.v. nhưng ClearML Cũng theo dõi các thay đổi không cam kết và các gói đã cài đặt chẳng hạn. Nhờ đó ClearML Nhiệm vụ (đó là những gì chúng ta gọi là thí nghiệm) cũng có thể tái tạo trên các máy khác nhau! Chỉ với 1 dòng phụ, chúng tôi có thể lên lịch YOLOv5 nhiệm vụ đào tạo trên một hàng đợi được thực hiện bởi bất kỳ số lượng nào ClearML Đại lý (công nhân).
Bạn có thể sử dụng ClearML Dữ liệu để lập phiên bản tập dữ liệu của bạn và sau đó chuyển nó đến YOLOv5 chỉ cần sử dụng ID duy nhất của nó. Điều này sẽ giúp bạn theo dõi dữ liệu của mình mà không gặp thêm rắc rối. Khám phá ClearML Hướng dẫn để biết chi tiết!
Ghi nhật ký địa phương
Kết quả đào tạo được tự động ghi lại với Tensorboard và CSV logger để runs/train
, với một thư mục thử nghiệm mới được tạo cho mỗi khóa đào tạo mới dưới dạng runs/train/exp2
, runs/train/exp3
v.v.
Thư mục này chứa các số liệu thống kê về đào tạo và đánh giá, khảm, nhãn, dự đoán và khảm tăng cường, cũng như các số liệu và biểu đồ bao gồm các đường cong độ chính xác - thu hồi (PR) và ma trận nhầm lẫn.
Tệp kết quả results.csv
được cập nhật sau mỗi thời đại, và sau đó được vẽ như results.png
(bên dưới) sau khi đào tạo hoàn tất. Bạn cũng có thể vẽ bất kỳ results.csv
tập tin thủ công:
from utils.plots import plot_results
plot_results("path/to/results.csv") # plot 'results.csv' as 'results.png'
Các bước tiếp theo
Khi mô hình của bạn được đào tạo, bạn có thể sử dụng điểm kiểm tra tốt nhất của mình best.pt
đến:
- Chạy CLI hoặc Python Suy luận về hình ảnh và video mới
- Xác thực độ chính xác trên các phân tách train, val và test
- Xuất sang TensorFlow , Keras, ONNX , TFlite, TF .js, CoreML Và TensorRT định dạng
- Phát triển các siêu tham số để cải thiện hiệu suất
- Cải thiện mô hình của bạn bằng cách lấy mẫu hình ảnh trong thế giới thực và thêm chúng vào tập dữ liệu của bạn
Môi trường được hỗ trợ
Ultralytics Cung cấp một loạt các môi trường sẵn sàng sử dụng, mỗi môi trường được cài đặt sẵn với các phụ thuộc thiết yếu như CUDA, CUDNN,Pythonvà PyTorch, để khởi động các dự án của bạn.
- Tự do GPU Sổ ghi chép:
- Google Đám mây: Hướng dẫn bắt đầu nhanh GCP
- Amazon: Hướng dẫn bắt đầu nhanh AWS
- Azure: Hướng dẫn bắt đầu nhanh AzureML
- Docker: Hướng dẫn bắt đầu nhanh Docker
Tình trạng dự án
Huy hiệu này cho biết rằng tất cả YOLOv5 Các bài kiểm tra Tích hợp liên tục (CI) GitHub Actions đã vượt qua thành công. Các bài kiểm tra CI này kiểm tra nghiêm ngặt chức năng và hiệu suất của YOLOv5 trên các khía cạnh chính khác nhau: đào tạo, xác nhận, suy luận, xuất khẩu và điểm chuẩn. Chúng đảm bảo hoạt động nhất quán và đáng tin cậy trên macOS, Windows và Ubuntu, với các thử nghiệm được tiến hành 24 giờ một lần và theo mỗi cam kết mới.
FAQ
Làm cách nào để đào tạo YOLOv5 trên tập dữ liệu tùy chỉnh của tôi?
Đào tạo YOLOv5 Trên tập dữ liệu tùy chỉnh bao gồm một số bước:
- Chuẩn bị tập dữ liệu của bạn: Thu thập và gắn nhãn hình ảnh. Sử dụng các công cụ như Roboflow để tổ chức dữ liệu và xuất trong YOLOv5 định dạng.
- Môi trường thiết lập: Sao chép YOLOv5 repo và cài đặt các phụ thuộc:
- Tạo cấu hình tập dữ liệu: Viết một
dataset.yaml
tệp xác định đường dẫn train / val và tên lớp. - Đào tạo mô hình:
Tôi có thể sử dụng công cụ nào để chú thích YOLOv5 tập dữ liệu?
Bạn có thể sử dụng Roboflow Chú thích, một công cụ dựa trên web trực quan để gắn nhãn hình ảnh. Nó hỗ trợ cộng tác nhóm và xuất khẩu trong YOLOv5 định dạng. Sau khi thu thập hình ảnh, sử dụng Roboflow để tạo và quản lý chú thích hiệu quả. Các tùy chọn khác bao gồm các công cụ như LabelImg và CVAT cho các chú thích cục bộ.
Tại sao tôi nên sử dụng Ultralytics HUB để đào tạo của tôi YOLO Mô hình?
Ultralytics HUB cung cấp một nền tảng đầu cuối để đào tạo, triển khai và quản lý YOLO mô hình mà không cần kỹ năng mã hóa mở rộng. Lợi ích của việc sử dụng Ultralytics HUB bao gồm:
- Đào tạo mô hình dễ dàng: Đơn giản hóa quá trình đào tạo với các môi trường được cấu hình sẵn.
- Quản lý dữ liệu: Dễ dàng quản lý bộ dữ liệu và kiểm soát phiên bản.
- Giám sát thời gian thực: Tích hợp các công cụ như Comet để theo dõi và trực quan hóa số liệu theo thời gian thực.
- Cộng tác: Lý tưởng cho các dự án nhóm với tài nguyên được chia sẻ và quản lý dễ dàng.
Làm cách nào để chuyển đổi dữ liệu có chú thích của tôi thành YOLOv5 định dạng?
Để chuyển đổi dữ liệu có chú thích thành YOLOv5 Định dạng bằng cách sử dụng Roboflow:
- Tải tập dữ liệu của bạn lênRoboflow Workspace.
- Gắn nhãn Hình ảnh nếu chưa được gắn nhãn.
- Tạo và xuất Tập dữ liệu trong
YOLOv5 Pytorch
định dạng. Đảm bảo các bước tiền xử lý như Auto-Orient và Resize (Stretch) thành kích thước đầu vào hình vuông (ví dụ: 640x640) được áp dụng. - Tải xuống Tập dữ liệu và tích hợp nó vào YOLOv5 kịch bản đào tạo.
Các tùy chọn cấp phép để sử dụng là gì YOLOv5 trong các ứng dụng thương mại?
Ultralytics Cung cấp hai tùy chọn cấp phép:
- AGPL-3.0 Giấy phép: Giấy phép mã nguồn mở phù hợp cho mục đích sử dụng phi thương mại, lý tưởng cho sinh viên và những người đam mê.
- Giấy phép doanh nghiệp: Được thiết kế riêng cho các doanh nghiệp muốn tích hợp YOLOv5 thành sản phẩm, dịch vụ thương mại. Để biết thông tin chi tiết, hãy truy cập trang Cấp phép của chúng tôi.
Để biết thêm chi tiết, hãy tham khảo hướng dẫn của chúng tôi về Ultralytics Cấp phép.