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 bộ 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 để đ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 chung.
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. Sao chép kho lưu trữ YOLOv5 và cài đặt các dependency cần thiết từ requirements.txt
. Một Python>=3.8.0 môi trường với PyTorch>=1.8 là điều cần thiết. Các mô hình và bộ dữ liệu được tự động tải xuống từ YOLOv5 mới nhất phát hành nếu chúng không được 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 dependencies
Huấ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 & Sắp xếp hình ảnh: Thu thập hình ảnh liên quan đến nhiệm 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ú giải 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 của mình.
- Huấn luyện mô hình: Sử dụng dữ liệu đã được gắn nhãn để huấn luyện mô hình YOLOv5 của bạn. Tận dụng transfer learning bằng cách bắt đầu với các trọng số đã được huấn luyện trước.
- Triển khai & Dự đoán: Sử dụng mô hình đã 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 đặc biệt: Xác định các tình huống mà mô hình hoạt động kém (các trường hợp đặc biệt) và thêm dữ liệu tương tự vào tập dữ liệu của bạn để cải thiện độ mạnh mẽ. Lặp lại quy trình.
Ultralytics HUB cung cấp một giải pháp không cần code, được sắp xếp hợp lý cho toàn bộ chu trình các hoạt động machine learning (MLOps) này, bao gồm quản lý bộ dữ liệu, huấn luyện mô hình và triển khai.
Cấp phép
Ultralytics cung cấp hai tùy chọn cấp phép để phù hợp với các tình huống 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ý tưởng cho sinh viên, nhà nghiên cứu và những người đam mê hợp tác mở và chia sẻ kiến thức. Nó yêu cầu các sản 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 đầy đủ chi tiết.
- Giấy phép doanh nghiệp: Được thiết kế cho các ứng dụng thương mại, 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ụ thương mại mà không có các quy định nguồn mở của AGPL-3.0. Nếu dự án của bạn yêu cầu triển khai thương mại, hãy yêu cầu Giấy phép doanh nghiệp.
Tìm hiểu thêm về 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 quá trình huấn luyện, việc chuẩn bị bộ dữ liệu là rất cần thiết.
1. Tạo Dataset
Các mô hình YOLOv5 yêu cầu dữ liệu được gắn nhãn để tìm hiểu các đặc điểm trực quan của các lớp đối tượng. Tổ chức bộ 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 bộ dữ liệu (ví dụ: coco128.yaml
) phác thảo cấu trúc của bộ dữ liệu, tên lớp và đường dẫn đến thư mục hình ảnh. COCO128 đóng vai trò như một tập dữ liệu mẫu nhỏ, bao gồm 128 hình ảnh đầu tiên từ bộ COCO tập dữ liệu. Nó hữu ích để nhanh chóng kiểm tra quy trình huấn luyện và chẩn đoán các vấn đề tiềm ẩn như overfitting.
Hàm dataset.yaml
cấu trúc tệp bao gồm:
path
: Thư mục gốc chứa bộ 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 bộ đào tạo, xác thực và thử nghiệm.names
: Một từ điển ánh xạ các chỉ số lớp (bắt đầu từ 0) đến tên lớp tương ứng của chúng.
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: toothbrush
1.2 Tận dụng các mô hình để gắn nhãn tự động
Mặc dù việc gán nhãn thủ công bằng các công cụ là một phương pháp phổ biến, nhưng quá trình này có thể tốn thời gian. Những tiến bộ gần đây trong các mô hình nền tảng mang lại khả năng tự động hóa hoặc bán tự động hóa quy trình chú thích, có khả năng tăng tốc đáng kể việc tạo tập dữ liệu. Dưới đây là một vài ví dụ về các mô hình có thể hỗ trợ 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 để xác định và định vị các đối tượng trong hình ảnh, tạo ra các 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 notebook 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ân định 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ạ thu được thường có thể được chuyển đổi thành 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 đào tạo trước về 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 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 "gắn nhãn trước", giảm bớt nỗ lự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 tính chính xác và 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 đã được đào tạo của bạn. Sau khi tạo (và có khả năng 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 *.txt
tệp trên mỗi ảnh, với mỗi dòng đại diện cho một đối tượng như class_index x_center y_center width height
(tọa độ được chuẩn hóa, lớp được lập chỉ mục từ 0). Nếu một hình ảnh không có đối tượng quan tâm nào, thì không có *.txt
tệp là cần thiết.
Định dạng YOLO *.txt
thông số kỹ thuật của tệp là 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 là đã chuẩn hóa về một phạm vi từ 0 đến 1. Để đạt được điều này, hãy chia các giá trị pixel của
x_center
vàwidth
theo tổng chiều rộng của hình ảnh và chiay_center
vàheight
theo tổng chiều cao của hình ảnh. - Chỉ số lớp được đánh số từ 0 (ví dụ: lớp đầu tiên được biểu thị bằng
0
, cái 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 'người' (chỉ số lớp 0
) và một đối tượng 'tie' (chỉ số lớp 27
), sẽ trông như thế này:
1.3 Sắp xếp thư mục
Cấu trúc của bạn các bộ dữ liệu thư mục như hình minh họa bên dưới. Theo mặc định, YOLOv5 dự đoán thư mục bộ dữ liệu (ví dụ: /coco128
) nằm trong một /datasets
thư mục nằm liền kề với thư mục /yolov5
thư mục kho lưu trữ.
YOLOv5 tự động định vị các nhãn cho mỗi hình ảnh bằng cách thay thế phiên bản cuối cùng của /images/
trong đường dẫn hình ảnh với /labels/
. Ví dụ:
../datasets/coco128/images/im0.jpg # Path to the image file
../datasets/coco128/labels/im0.txt # Path to the corresponding label file
Cấu trúc thư mục được đề xuất 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)
└── ...
2. Chọn một Mô hình
Chọn một mô hình được huấn luyện trước để bắt đầu quá trình huấn luyện. Bắt đầu với các trọng số được 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 cỡ mô hình khác nhau, mỗi kích cỡ cân bằng tốc độ và độ chính xác khác nhau. Ví dụ: YOLOv5s là mô hình nhỏ thứ hai và nhanh nhất, phù hợp với các môi trường bị hạn chế về tài nguyên. Tham khảo bảng README để so sánh chi tiết tất cả các mô hình có sẵn.
3. Huấn luyện
Bắt đầu huấn luyện mô hình sử dụng train.py
script. Các đối số thiết yếu bao gồm:
--img
: Xác định đầu vào kích thước hình ảnh (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ô (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ố lần huấn luyện epochs (ví dụ:--epochs 100
). Một epoch đại diện cho một lượt duyệt đầy đủ trên toàn bộ tập dữ liệu huấn luyện.--data
: Đường dẫn đếndataset.yaml
tệp (ví dụ:--data coco128.yaml
).--weights
: Đường dẫn đến tệp weights ban đầu. Sử dụng weights đã được huấn luyện trước (ví dụ:--weights yolov5s.pt
) được đặc biệt khuyến nghị để hội tụ nhanh hơn và cho kết quả vượt trội. Để huấn luyện từ đầu (không nên trừ khi bạn có một bộ dữ liệu rất lớn và các nhu cầu cụ thể), hãy sử dụng--weights '' --cfg yolov5s.yaml
.
Các trọng số đã được huấn luyện trước sẽ tự động được tải xuống từ phiên bản 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
Tối ưu hóa Tốc độ Huấn luyện
💡 Sử dụng --cache ram
hoặc --cache disk
để lưu trữ hình ảnh bộ dữ liệu trong bộ nhớ cache RAM hoặc đĩa cục bộ. Điều này giúp tăng tốc đáng kể quá trình huấn luyện, đặc biệt khi các hoạt động I/O (Đầu vào/Đầu ra) của tập dữ liệu là một nút thắt cổ chai. Lưu ý rằng điều này đòi hỏi RAM hoặc dung lượng đĩa đáng kể.
Lưu trữ Dữ liệu cục bộ
💡 Luôn huấn luyện bằng cách sử dụng các bộ dữ liệu được lưu trữ cục bộ. Truy cập dữ liệu từ các ổ đĩa mạng (như Google Drive) hoặc bộ nhớ từ xa có thể chậm hơn đáng kể và cản trở hiệu suất huấn luyện. Sao chép bộ dữ liệu của bạn vào ổ SSD cục bộ thường là cách tốt nhất.
Tất cả các đầu ra huấn luyện, bao gồm trọng số và nhật ký, được lưu trong runs/train/
thư mục. Mỗi phiên đào tạo tạo một thư mục con mới (ví dụ: runs/train/exp
, runs/train/exp2
, v.v.). Để có trải nghiệm thực tế và tương tác, hãy khám phá phần huấn luyện trong các notebook hướng dẫn chính thức của chúng tôi:
4. Trực quan hóa
YOLOv5 tích hợp liền mạch với nhiều 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à theo dõi hiệu suất theo thời gian thực.
Ghi nhật ký và trực quan hóa bằng Comet 🌟 MỚI
Comet được tích hợp đầy đủ để theo dõi thử nghiệm toàn diện. Trực quan hóa các chỉ số trực tiếp, lưu siêu tham số, quản lý bộ dữ liệu và điểm kiểm tra mô hình, đồng thời phân tích dự đoán mô hình bằng Comet Custom Panels tương tá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!
Tìm hiểu sâu hơn về các tính năng được hỗ trợ trong Hướng dẫn tích hợp Comet. Tìm hiểu thêm về khả năng của Comet từ tài liệu. Hãy thử Comet Colab Notebook để có bản demo trực tiếp:
Ghi nhật ký và tự động hóa bằng ClearML 🌟 MỚI
Tích hợp ClearML cho phép theo dõi thử nghiệm chi tiết, quản lý phiên bản bộ dữ liệu và thậm chí thực thi từ xa các lần chạy huấn luyện. Kích hoạt ClearML với các bước đơn giản sau:
- Cài đặt gói:
pip install clearml
- Khởi tạo ClearML: Chạy
clearml-init
một lần để kết nối với máy chủ ClearML của bạn (tự lưu trữ hoặc bậc miễn phí).
ClearML tự động thu thập 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 cam kết và các gói đã cài đặt, đảm bảo khả năng tái tạo hoàn toàn. Bạn có thể dễ dàng lên lịch các tác vụ huấn luyện trên các agent 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 cách sử dụng TensorBoard và được lưu dưới dạng CSV các tệp trong thư mục thử nghiệm cụ thể (ví dụ:) runs/train/exp
). Dữ liệu được ghi lại bao gồm:
- Mất mát trong quá trình huấn luyện và xác thực, cùng các chỉ số hiệu suất.
- Hình ảnh sample_images hiển thị các phương pháp tăng cường đã được áp dụng (như mosaics).
- Nhãn ground truth cùng với các dự đoán 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 để phân tích chi tiết hiệu suất theo từng lớp.
Hàm results.csv
tệp được cập nhật sau mỗi epoch và được vẽ dưới dạng results.png
sau khi quá trình huấn luyện kết thúc. Bạn cũng có thể vẽ bất kỳ results.csv
tệp 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
5. Các Bước Tiếp Theo
Sau khi hoàn thành quá trình huấn luyện, điểm kiểm tra mô hình hoạt động tốt nhất (best.pt
) đượ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 kiểm định để đánh giá độ chính xác và khả năng khái quát hóa của mô hình trên các phân tách dữ liệu khác nhau (ví dụ: một tập kiểm tra được giữ lại).
- Xuất (Export) mô hình sang các định dạng triển khai khác nhau như ONNX, TensorFlow SavedModel hoặc TensorRT để tối ưu hóa suy luận trên các nền tảng khác nhau.
- Sử dụng các kỹ thuật điều chỉnh siêu tham số để có khả năng đạt được thêm 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 Các 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.
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, tạo điều kiện khởi đầu suôn sẻ.
- Sổ tay GPU miễn phí:
- Nền tảng đám mây:
- Google Cloud: Hướng dẫn Bắt đầu Nhanh GCP
- Amazon AWS: Hướng dẫn khởi động nhanh AWS
- Microsoft Azure: Hướng dẫn nhanh về AzureML
- Thiết lập cục bộ:
- Docker: Hướng dẫn Bắt đầu Nhanh Docker
- Docker: Hướng dẫn Bắt đầu Nhanh Docker
Trạng thái dự án
Huy hiệu này cho biết rằng tất cả các bài kiểm tra GitHub Actions Tích hợp liên tục (CI) của YOLOv5 đều 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 hiện tự động sau mỗi 24 giờ và sau mỗi lần commit code, đả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
Các câu hỏi thường gặp
Làm cách nào để huấn luyện YOLOv5 trên bộ dữ liệu tùy chỉnh của tôi?
Huấn luyện YOLOv5 trên một bộ dữ liệu tùy chỉnh bao gồm một số bước chính:
- Chuẩn bị Bộ dữ liệu của bạn: Thu thập hình ảnh và tạo chú thích. Đảm bảo chú thích ở định dạng yêu cầu định dạng YOLO. Sắp xếp hình ảnh và nhãn vào
train/
vàval/
(và tùy chọntest/
) directories. 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 gắn nhãn (xem Phần 1.2). - Thiết Lập Môi Trường Của Bạn: Sao chép kho lưu trữ YOLOv5 và cài đặt cá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 bộ dữ liệu, số lượng lớp và tên lớp trong
dataset.yaml
tập tin. - Bắt Đầu Huấn Luyện: Thực thi phương thức
train.py
script, cung cấp đường dẫn đếndataset.yaml
, trọng số được huấn luyện trước mong muốn (ví dụ:yolov5s.pt
), kích thước ảnh, kích thước lô và số lượng epochs.python train.py --img 640 --batch 16 --epochs 100 --data path/to/your/dataset.yaml --weights yolov5s.pt
Tại sao tôi nên sử dụng Ultralytics HUB để huấn luyện các mô hình YOLO của mình?
Ultralytics HUB là một nền tảng toàn diện được thiết kế để đơn giản hóa toàn bộ vòng đời phát triển mô hình YOLO, thường là không cần viết bất kỳ dòng code 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 mô hình 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, kiểm soát phiên bản và quản lý bộ dữ liệu của bạn một cách hiệu quả trong nền tảng.
- Giám sát theo 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 dùng chung, công cụ quản lý dự án và chia sẻ mô hình dễ dàng.
- Triển khai không cần code: Triển khai trực tiếp các mô hình đã huấn luyện tới nhiều mục tiêu khác nhau.
Để có 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 Ultralytics HUB.
Làm cách nào để chuyển đổi dữ liệu đã được chú thích của tôi sang định dạng YOLOv5?
Cho dù bạn chú thích thủ công hay sử dụng các công cụ tự động (như những 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 format cụ thể mà YOLOv5 yêu cầu:
- Tạo một cái
.txt
tệp cho mỗi ảnh. Tên tệp phải khớp với tên tệp ảnh (ví dụ:image1.jpg
tương ứng vớiimage1.txt
). Đặt các tệp này vàolabels/
thư mục song song vớiimages/
thư mục (ví dụ:../datasets/mydataset/labels/train/
). - Mỗi dòng trong một
.txt
tệp đạ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 là đã chuẩn hóa (giá trị từ 0.0 đến 1.0) so với kích thước của ảnh. - Chỉ số lớp là bắt đầu từ 0 (lớp đầu tiên là
0
, cái thứ hai là1
, v.v.).
Nhiều công cụ chú giải thủ công cung cấp khả 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 bộ dữ liệu cuối cùng của bạn tuân thủ theo 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ú giải Dữ liệu của chúng tôi.
Các tùy chọn cấp phép để sử dụng YOLOv5 trong các ứng dụng thương mại là gì?
Ultralytics cung cấp giấy 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à chấp nhận được. Nó quy định rằng các sửa đổi và các sản phẩm phái sinh cũng phải được 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: Một 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ụ nguồn mở của AGPL-3.0, cho phép phân phối 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.