Huấn luyện YOLOv5 trên Dữ liệu Tùy chỉnh#
📚 Hướng dẫn này giải thích cách huấn luyện tập dữ liệu tùy chỉnh của riêng bạn bằng mô hình YOLOv5 🚀. Huấn luyện các mô hình tùy chỉnh là một bước cơ bản trong việc điều chỉnh các giải pháp thị giác máy tính cho các ứng dụng thực tế cụ thể ngoài phát hiện đối tượng thông thường.
Trước khi Bắt đầu#
Trước tiên, hãy đảm bảo bạn đã thiết lập môi trường cần thiết. Nhân bản (clone) kho lưu trữ YOLOv5 và cài đặt các phần phụ thuộc bắt buộc từ requirements.txt. Môi trường Python>=3.8.0 với PyTorch>=1.8 là điều cần thiết. Các mô hình và tập dữ liệu sẽ tự động được tải xuống từ bản phát hành YOLOv5 mới nhất nếu không tìm thấy cục bộ.
git clone https://github.com/ultralytics/yolov5 # Clone the repository
cd yolov5
pip install -r requirements.txt # Install dependenciesHuấn luyện trên Dữ liệu Tùy chỉnh#
Phát triển một mô hình phát hiện đối tượng tùy chỉnh là một quá trình lặp đi lặp lại:
- Thu thập & Tổ chức Hình ảnh: Thu thập các hình ảnh liên quan đến tác vụ cụ thể của bạn. Dữ liệu đa dạng, chất lượng cao là rất quan trọng. Xem hướng dẫn của chúng tôi về Thu thập và Chú thích Dữ liệu.
- Gán nhãn Đối tượng: Chú thích chính xác các đối tượng bạn quan tâm trong hình ảnh.
- Huấn luyện Mô hình: Sử dụng dữ liệu được dán nhãn để huấn luyện mô hình YOLOv5 của bạn. Tận dụng học chuyển giao bằng cách bắt đầu với trọng số đã huấn luyện trước.
- Triển khai & Dự đoán: Sử dụng mô hình đã được huấn luyện để suy luận trên dữ liệu mới chưa từng thấy.
- Thu thập Các Trường hợp Biên: Xác định các kịch bản mà mô hình hoạt động kém (trường hợp biên) và thêm dữ liệu tương tự vào tập dữ liệu của bạn để cải thiện tính mạnh mẽ. Lặp lại chu kỳ.
Nền tảng Ultralytics cung cấp một giải pháp hợp lý, không cần mã hóa cho toàn bộ chu kỳ vận hành học máy (MLOps) này, bao gồm quản lý tập dữ liệu, huấn luyện mô hình và triển khai.
Ultralytics cung cấp hai tùy chọn cấp phép để phù hợp với các kịch bản sử dụng đa dạng:
- Giấy phép AGPL-3.0: Giấy phép mã nguồn mở được OSI phê duyệt này là lý tưởng cho sinh viên, nhà nghiên cứu và những người đam mê cộng tác mở và chia sẻ kiến thức. Giấy phép này yêu cầu các tác phẩm phái sinh phải được chia sẻ theo cùng một giấy phép. Xem tệp LICENSE để biết chi tiết đầy đủ.
- Giấy phép Doanh nghiệp: Dành cho việc phát triển và sử dụng trong sản xuất, giấy phép này cho phép tích hợp liền mạch phần mềm Ultralytics và các mô hình AI vào các sản phẩm và dịch vụ kinh doanh, bao gồm các công cụ nội bộ, quy trình tự động và việc triển khai trong môi trường sản xuất, bỏ qua các yêu cầu mã nguồn mở của AGPL-3.0. Để bắt đầu, vui lòng liên hệ với chúng tôi qua Ultralytics Licensing.
Khám phá thêm các tùy chọn cấp phép của chúng tôi trên trang Cấp phép Ultralytics.
Trước khi bắt đầu huấn luyện, việc chuẩn bị tập dữ liệu là thiết yếu.
Tạo một Tập dữ liệu#
Các mô hình YOLOv5 yêu cầu dữ liệu đã gán nhãn để học các đặc điểm hình ảnh của các lớp đối tượng. Việc tổ chức tập dữ liệu của bạn một cách chính xác là chìa khóa.
1.1 Tạo dataset.yaml#
Tệp cấu hình tập dữ liệu (ví dụ: coco128.yaml) phác thảo cấu trúc của tập dữ liệu, tên lớp và đường dẫn đến các thư mục hình ảnh. COCO128 đóng vai trò là một tập dữ liệu ví dụ nhỏ, bao gồm 128 hình ảnh đầu tiên từ tập dữ liệu COCO rộng lớn. Nó hữu ích để nhanh chóng kiểm tra quy trình huấn luyện và chẩn đoán các sự cố tiềm ẩn như quá khớp (overfitting).
Cấu trúc tệp dataset.yaml bao gồm:
path: Thư mục gốc chứa tập dữ liệu.train,val,test: Đường dẫn tương đối từpathđến các thư mục chứa hình ảnh hoặc tệp văn bản liệt kê đường dẫn hình ảnh cho các tập huấn luyện, xác thực và kiểm tra.names: Một từ điển ánh xạ các chỉ mục lớp (bắt đầu từ 0) với tên lớp tương ứng của chúng.
Bạn có thể đặt path thành một thư mục tuyệt đối (ví dụ: /home/user/datasets/coco128) hoặc một đường dẫn tương đối chẳng hạn như ../datasets/coco128 khi khởi chạy huấn luyện từ thư mục gốc của kho lưu trữ YOLOv5.
Dưới đây là cấu trúc cho coco128.yaml (xem trên GitHub):
# Dataset root directory relative to the yolov5 directory
path: coco128
# Train/val/test sets: specify directories, *.txt files, or lists
train: images/train2017 # 128 images for training
val: images/train2017 # 128 images for validation
test: # Optional path to test images
# Classes (example using 80 COCO classes)
names:
0: person
1: bicycle
2: car
# ... (remaining COCO classes)
77: teddy bear
78: hair drier
79: toothbrush1.2 Tận dụng các Mô hình để Gán nhãn Tự động#
Gán nhãn thủ công là cách tiếp cận thông thường nhưng tốn thời gian. Các mô hình nền tảng có thể tự động hóa hoặc bán tự động hóa việc chú thích và tăng tốc quá trình tạo tập dữ liệu. Các ví dụ về mô hình có thể giúp tạo nhãn:
- Google Gemini: Các mô hình đa phương thức lớn như Gemini sở hữu khả năng hiểu hình ảnh mạnh mẽ. Chúng có thể được nhắc nhở (prompt) để xác định và định vị các đối tượng trong hình ảnh, tạo ra các hộp giới hạn (bounding box) hoặc mô tả có thể được chuyển đổi thành nhãn định dạng YOLO. Khám phá tiềm năng của nó trong sổ tay hướng dẫn được cung cấp.
- SAM2 (Segment Anything Model 2): Các mô hình nền tảng tập trung vào phân đoạn, như SAM2, có thể xác định và phác thảo các đối tượng với độ chính xác cao. Mặc dù chủ yếu dùng để phân đoạn, nhưng các mặt nạ (masks) kết quả thường có thể được chuyển đổi thành các chú thích hộp giới hạn phù hợp cho các tác vụ phát hiện đối tượng.
- YOLOWorld: Mô hình này cung cấp khả năng phát hiện từ vựng mở. Bạn có thể cung cấp mô tả văn bản về các đối tượng bạn quan tâm và YOLOWorld có thể định vị chúng trong hình ảnh mà không cần huấn luyện trước trên các lớp cụ thể đó. Điều này có thể được sử dụng làm điểm khởi đầu để tạo các nhãn ban đầu, sau đó có thể được tinh chỉnh.
Sử dụng các mô hình này có thể cung cấp một bước "dán nhãn trước", làm giảm công sức thủ công cần thiết. Tuy nhiên, điều quan trọng là phải xem xét và tinh chỉnh các nhãn được tạo tự động để đảm bảo độ chính xác và tính nhất quán, vì chất lượng ảnh hưởng trực tiếp đến hiệu suất của mô hình YOLOv5 đã huấn luyện của bạn. Sau khi tạo (và có thể tinh chỉnh) nhãn của bạn, hãy đảm bảo chúng tuân thủ định dạng YOLO: một tệp *.txt cho mỗi hình ảnh, với mỗi dòng đại diện cho một đối tượng dưới dạng class_index x_center y_center width height (tọa độ được chuẩn hóa, lớp bắt đầu từ 0). Nếu một hình ảnh không có đối tượng quan tâm nào, thì không cần tệp *.txt tương ứng.
Các thông số kỹ thuật của tệp định dạng YOLO *.txt rất chính xác:
- Một hàng cho mỗi hộp giới hạn đối tượng.
- Mỗi hàng phải chứa:
class_index x_center y_center width height. - Tọa độ phải được chuẩn hóa về một khoảng từ 0 đến 1. Để đạt được điều này, hãy chia các giá trị pixel của
x_centervàwidthcho tổng chiều rộng của hình ảnh, và chiay_centervàheightcho tổng chiều cao của hình ảnh. - Các chỉ mục lớp bắt đầu từ số 0 (tức là lớp đầu tiên được đại diện bởi
0, lớp thứ hai bởi1, v.v.).

Tệp nhãn tương ứng với hình ảnh ở trên, chứa hai đối tượng 'person' (chỉ mục lớp 0) và một đối tượng 'tie' (chỉ mục lớp 27), sẽ có dạng như sau:

1.3 Tổ chức Thư mục#
Cấu trúc thư mục tập dữ liệu của bạn như minh họa bên dưới. Theo mặc định, YOLOv5 dự đoán thư mục tập dữ liệu (ví dụ: /coco128) nằm bên trong thư mục /datasets nằm cạnh thư mục kho lưu trữ /yolov5.
YOLOv5 tự động định vị các nhãn cho mỗi hình ảnh bằng cách thay thế trường hợp cuối cùng của /images/ trong đường dẫn hình ảnh bằng /labels/. Ví dụ:
../datasets/coco128/images/im0.jpg # Path to the image file
../datasets/coco128/labels/im0.txt # Path to the corresponding label fileCấu trúc thư mục được khuyến nghị là:
/datasets/
└── coco128/ # Dataset root
├── images/
│ ├── train2017/ # Training images
│ │ ├── 000000000009.jpg
│ │ └── ...
│ └── val2017/ # Validation images (optional if using same set for train/val)
│ └── ...
└── labels/
├── train2017/ # Training labels
│ ├── 000000000009.txt
│ └── ...
└── val2017/ # Validation labels (optional if using same set for train/val)
└── ...
Chọn một Mô hình#
Chọn một mô hình đã huấn luyện trước để bắt đầu quá trình huấn luyện. Bắt đầu với trọng số đã huấn luyện trước giúp tăng tốc đáng kể quá trình học và cải thiện hiệu suất so với việc huấn luyện từ đầu. YOLOv5 cung cấp nhiều kích thước mô hình khác nhau, mỗi kích thước cân bằng tốc độ và độ chính xác theo các cách khác nhau. Ví dụ: YOLOv5s là mô hình nhỏ thứ hai và nhanh nhất, phù hợp cho các môi trường bị hạn chế tài nguyên. Tham khảo bảng README để có sự so sánh chi tiết về tất cả các mô hình có sẵn.

Huấn luyện#
Bắt đầu huấn luyện mô hình bằng cách sử dụng tập lệnh train.py. Các đối số thiết yếu bao gồm:
--img: Xác định kích thước hình ảnh đầu vào (ví dụ:--img 640). Kích thước lớn hơn thường mang lại độ chính xác tốt hơn nhưng đòi hỏi nhiều bộ nhớ GPU hơn.--batch: Xác định kích thước lô (batch size) (ví dụ:--batch 16). Chọn kích thước lớn nhất mà GPU của bạn có thể xử lý.--epochs: Chỉ định tổng số chu kỳ (epochs) huấn luyện (ví dụ:--epochs 100). Một chu kỳ đại diện cho một lần duyệt qua toàn bộ tập dữ liệu huấn luyện.--data: Đường dẫn đến tệpdataset.yamlcủa bạn (ví dụ:--data coco128.yaml).--weights: Đường dẫn đến tệp trọng số ban đầu. Việc sử dụng trọng số đã huấn luyện trước (ví dụ:--weights yolov5s.pt) rất được khuyến khích để hội tụ nhanh hơn và đạt kết quả vượt trội. Để huấn luyện từ đầu (không được khuyến khích trừ khi bạn có một tập dữ liệu rất lớn và các nhu cầu cụ thể), hãy sử dụng--weights '' --cfg yolov5s.yaml.
Trọng số đã huấn luyện trước sẽ tự động được tải xuống từ bản phát hành YOLOv5 mới nhất nếu không tìm thấy cục bộ.
# Example: Train YOLOv5s on the COCO128 dataset for 3 epochs
python train.py --img 640 --batch 16 --epochs 3 --data coco128.yaml --weights yolov5s.pt💡 Sử dụng --cache ram hoặc --cache disk để lưu đệm (cache) hình ảnh tập dữ liệu trong RAM hoặc đĩa cục bộ tương ứng. Điều này làm tăng tốc đáng kể quá trình huấn luyện, đặc biệt khi các thao tác Nhập/Xuất (I/O) của tập dữ liệu là điểm nghẽn. Lưu ý rằng điều này đòi hỏi dung lượng RAM hoặc đĩa đáng kể.
💡 Luôn huấn luyện bằng cách sử dụng các tập dữ liệu được lưu trữ cục bộ. Việc truy cập dữ liệu từ các ổ đĩa mạng (như Google Drive) hoặc lưu trữ từ xa có thể chậm hơn đáng kể và cản trở hiệu suất huấn luyện. Việc sao chép tập dữ liệu của bạn sang SSD cục bộ thường là cách thực hành tốt nhất.
Tất cả các kết quả huấn luyện, bao gồm trọng số và nhật ký (logs), được lưu trong thư mục runs/train/. Mỗi phiên huấn luyện tạo ra một thư mục con mới (ví dụ: runs/train/exp, runs/train/exp2, v.v.). Để có trải nghiệm tương tác, thực tế, hãy khám phá phần huấn luyện trong các sổ tay hướng dẫn chính thức của chúng tôi:
Trực quan hóa#
YOLOv5 tích hợp liền mạch với các công cụ khác nhau để trực quan hóa tiến trình huấn luyện, đánh giá kết quả và giám sát hiệu suất theo thời gian thực.
Ghi nhật ký và Trực quan hóa Comet#
Comet được tích hợp hoàn toàn để theo dõi thử nghiệm toàn diện. Trực quan hóa các số liệu trực tiếp, lưu siêu tham số, quản lý tập dữ liệu và điểm kiểm tra (checkpoint) mô hình, đồng thời phân tích các dự đoán của mô hình bằng Bảng Tùy chỉnh Comet tương tác.
Việc bắt đầu rất đơn giản:
pip install comet_ml # 1. Install Comet library
export COMET_API_KEY=YOUR_API_KEY_HERE # 2. Set your Comet API key (create a free account at Comet.ml)
python train.py --img 640 --epochs 3 --data coco128.yaml --weights yolov5s.pt # 3. Train your model - Comet automatically logs everything!Đi sâu hơn vào các tính năng được hỗ trợ trong Hướng dẫn Tích hợp Comet của chúng tôi. Tìm hiểu thêm về các khả năng của Comet từ tài liệu chính thức của họ. Thử nghiệm Sổ tay Comet Colab để xem bản demo trực tiếp:
Ghi nhật ký và Tự động hóa ClearML#
Tích hợp ClearML cho phép theo dõi thử nghiệm chi tiết, quản lý phiên bản tập dữ liệu và thậm chí thực thi các lượt chạy huấn luyện từ xa. Kích hoạt ClearML bằng các bước đơn giản sau:
- Cài đặt gói:
pip install clearml - Khởi tạo ClearML: Chạy
clearml-initmột lần để kết nối với máy chủ ClearML của bạn (tự lưu trữ hoặc tầng miễn phí).
ClearML tự động ghi lại các chi tiết thử nghiệm, tải lên mô hình, so sánh, các thay đổi mã chưa được commit và các gói đã cài đặt, đảm bảo khả năng tái tạo đầy đủ. Bạn có thể dễ dàng lên lịch các tác vụ huấn luyện trên các tác nhân từ xa và quản lý các phiên bản tập dữ liệu bằng ClearML Data. Khám phá Hướng dẫn Tích hợp ClearML để biết chi tiết toàn diện.
Ghi nhật ký Cục bộ#
Kết quả huấn luyện được tự động ghi lại bằng TensorBoard và được lưu dưới dạng tệp CSV trong thư mục thử nghiệm cụ thể (ví dụ: runs/train/exp). Dữ liệu được ghi lại bao gồm:
- Số liệu mất mát và hiệu suất huấn luyện và kiểm chứng.
- Các hình ảnh mẫu hiển thị các phép tăng cường dữ liệu đã áp dụng (như mosaic).
- Nhãn thực tế (ground truth) cùng với dự đoán của mô hình để kiểm tra trực quan.
- Các số liệu đánh giá chính như đường cong Precision-Recall (PR).
- Ma trận nhầm lẫn (Confusion matrices) để phân tích hiệu suất chi tiết theo từng lớp.
Tệp results.csv được cập nhật sau mỗi chu kỳ và được vẽ biểu đồ thành results.png sau khi quá trình huấn luyện kết thúc. Bạn cũng có thể vẽ biểu đồ bất kỳ tệp results.csv nào theo cách thủ công bằng cách sử dụng hàm tiện ích được cung cấp:
from utils.plots import plot_results
# Plot results from a specific training run directory
plot_results("runs/train/exp/results.csv") # This will generate 'results.png' in the same directory
Các bước tiếp theo#
Sau khi hoàn thành thành công quá trình huấn luyện, điểm kiểm tra mô hình có hiệu suất tốt nhất (best.pt) sẽ được lưu và sẵn sàng để triển khai hoặc tinh chỉnh thêm. Các bước tiếp theo tiềm năng bao gồm:
- Chạy suy luận trên hình ảnh hoặc video mới bằng mô hình đã huấn luyện thông qua CLI hoặc Python.
- Thực hiện xác thực để đánh giá khả năng độ chính xác và khái quát hóa của mô hình trên các phần dữ liệu khác nhau (ví dụ: tập kiểm tra giữ lại).
- Xuất mô hình sang các định dạng triển khai khác nhau như ONNX, TensorFlow SavedModel hoặc TensorRT để suy luận được tối ưu hóa trên các nền tảng đa dạng.
- Sử dụng các kỹ thuật tinh chỉnh siêu tham số để có khả năng vắt kiệt thêm các cải thiện về hiệu suất.
- Tiếp tục cải thiện mô hình của bạn bằng cách làm theo Mẹo để có Kết quả Huấn luyện Tốt nhất của chúng tôi và lặp đi lặp lại việc thêm dữ liệu đa dạng và thách thức hơn dựa trên phân tích hiệu suất.
Các Môi trường được Hỗ trợ#
Ultralytics cung cấp các môi trường sẵn sàng sử dụng được trang bị các phần phụ thuộc thiết yếu như CUDA, cuDNN, Python và PyTorch, giúp tạo điều kiện khởi đầu suôn sẻ.
- Notebook GPU Miễn phí:
- Nền tảng Đám mây:
- Google Cloud: GCP Quickstart Guide
- Amazon AWS: Hướng dẫn Bắt đầu Nhanh AWS
- Microsoft Azure: Hướng dẫn Bắt đầu Nhanh AzureML
- Thiết lập Cục bộ:
- Docker: Docker Quickstart Guide
- Docker: Docker Quickstart Guide
Trạng thái Dự án#
Huy hiệu này cho biết tất cả các bài kiểm tra Continuous Integration (CI) của GitHub Actions YOLOv5 đang vượt qua thành công. Các bài kiểm tra CI nghiêm ngặt này bao gồm các chức năng cốt lõi, bao gồm huấn luyện, xác thực, suy luận, xuất và điểm chuẩn, trên các hệ điều hành macOS, Windows và Ubuntu. Các bài kiểm tra được thực thi tự động cứ sau 24 giờ và trên mỗi lần commit mã, đảm bảo tính ổn định nhất quán và hiệu suất tối ưu.
Câu hỏi thường gặp#
Việc huấn luyện YOLOv5 trên tập dữ liệu tùy chỉnh bao gồm một số bước chính:
- Chuẩn bị Tập dữ liệu của bạn: Thu thập hình ảnh và chú thích chúng. Đảm bảo các chú thích ở định dạng YOLO được yêu cầu. Tổ chức hình ảnh và nhãn thành các thư mục
train/vàval/(và tùy chọn làtest/). Cân nhắc sử dụng các mô hình như Google Gemini, SAM2 hoặc YOLOWorld để hỗ trợ hoặc tự động hóa quy trình dán nhãn (xem Mục 1.2). - Thiết lập Môi trường của bạn: Nhân bản kho lưu trữ YOLOv5 và cài đặt các phần phụ thuộc bằng cách sử dụng
pip install -r requirements.txt.git clone https://github.com/ultralytics/yolov5 cd yolov5 pip install -r requirements.txt - Tạo Cấu hình Tập dữ liệu: Xác định đường dẫn tập dữ liệu, số lượng lớp và tên lớp trong tệp
dataset.yaml. - Bắt đầu Huấn luyện: Thực thi tập lệnh
train.py, cung cấp đường dẫn đếndataset.yamlcủa bạn, trọng số đã huấn luyện trước mong muốn (ví dụ:yolov5s.pt), kích thước hình ảnh, kích thước lô và số lượng chu kỳ.python train.py --img 640 --batch 16 --epochs 100 --data path/to/your/dataset.yaml --weights yolov5s.pt
- Chuẩn bị Tập dữ liệu của bạn: Thu thập hình ảnh và chú thích chúng. Đảm bảo các chú thích ở định dạng YOLO được yêu cầu. Tổ chức hình ảnh và nhãn thành các thư mục
Nền tảng Ultralytics là một nền tảng toàn diện được thiết kế để hợp lý hóa toàn bộ vòng đời phát triển mô hình YOLO, thường là mà không cần viết bất kỳ mã nào. Các lợi ích chính bao gồm:
- Huấn luyện Đơn giản hóa: Dễ dàng huấn luyện các model bằng cách sử dụng các môi trường được cấu hình sẵn và giao diện người dùng trực quan.
- Quản lý Dữ liệu Tích hợp: Tải lên, quản lý phiên bản và quản lý tập dữ liệu của bạn một cách hiệu quả trong nền tảng.
- Giám sát Thời gian thực: Theo dõi tiến trình huấn luyện và trực quan hóa các số liệu hiệu suất bằng các công cụ tích hợp như Comet hoặc TensorBoard.
- Tính năng Cộng tác: Tạo điều kiện làm việc nhóm thông qua các tài nguyên được chia sẻ, công cụ quản lý dự án và khả năng chia sẻ model dễ dàng.
- Triển khai Không cần Mã: Triển khai trực tiếp các model đã được huấn luyện tới nhiều mục tiêu khác nhau.
Để có một hướng dẫn thực tế, hãy xem bài đăng trên blog của chúng tôi: Cách Huấn luyện Các Mô hình Tùy chỉnh của Bạn với Nền tảng Ultralytics.
Cho dù bạn chú thích thủ công hay sử dụng các công cụ tự động (như các công cụ được đề cập trong Phần 1.2), các nhãn cuối cùng phải ở định dạng YOLO cụ thể được YOLOv5 yêu cầu:
- Tạo một tệp
.txtcho mỗi hình ảnh. Tên tệp phải khớp với tên tệp hình ảnh (ví dụ:image1.jpgtương ứng vớiimage1.txt). Đặt các tệp này vào thư mụclabels/song song với thư mụcimages/của bạn (ví dụ:../datasets/mydataset/labels/train/). - Mỗi dòng trong tệp
.txtđại diện cho một chú thích đối tượng và tuân theo định dạng:class_index center_x center_y width height. - Tọa độ (
center_x,center_y,width,height) phải được chuẩn hóa (các giá trị nằm giữa 0,0 và 1,0) tương đối với kích thước của hình ảnh. - Các chỉ mục lớp bắt đầu từ số 0 (lớp đầu tiên là
0, lớp thứ hai là1, v.v.).
Nhiều công cụ chú thích thủ công cung cấp tính năng xuất trực tiếp sang định dạng YOLO. Nếu sử dụng các mô hình tự động, bạn sẽ cần các tập lệnh hoặc quy trình để chuyển đổi đầu ra của chúng (ví dụ: tọa độ hộp giới hạn, mặt nạ phân đoạn) thành định dạng văn bản được chuẩn hóa cụ thể này. Đảm bảo cấu trúc tập dữ liệu cuối cùng của bạn tuân thủ ví dụ được cung cấp trong hướng dẫn. Để biết thêm chi tiết, hãy xem Hướng dẫn Thu thập và Chú thích Dữ liệu của chúng tôi.
- Tạo một tệp
Ultralytics cung cấp các tùy chọn cấp phép linh hoạt phù hợp với các nhu cầu khác nhau:
- Giấy phép AGPL-3.0: Giấy phép mã nguồn mở này phù hợp cho nghiên cứu học thuật, các dự án cá nhân và các tình huống mà việc tuân thủ mã nguồn mở là có thể chấp nhận được. Nó bắt buộc các sửa đổi và tác phẩm phái sinh cũng phải được mở mã nguồn theo AGPL-3.0. Xem lại chi tiết Giấy phép AGPL-3.0.
- Giấy phép Doanh nghiệp: Giấy phép thương mại được thiết kế cho các doanh nghiệp tích hợp YOLOv5 vào các sản phẩm hoặc dịch vụ độc quyền. Giấy phép này loại bỏ các nghĩa vụ mã nguồn mở của AGPL-3.0, cho phép phân phối mã nguồn đóng. Truy cập trang Cấp phép của chúng tôi để biết thêm chi tiết hoặc để yêu cầu Giấy phép Doanh nghiệp.
Chọn giấy phép phù hợp nhất với các yêu cầu và mô hình phân phối của dự án bạn.
