Meet YOLO26: next-gen vision AI.

Link to this sectionHuấ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 model YOLOv5 🚀. Huấn luyện các model 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 computer vision cho các ứng dụng thực tế cụ thể ngoài object detection thông thường.

Link to this sectionTrước khi Bắt đầu#

Đầu tiên, hãy đảm bảo bạn đã thiết lập môi trường cần thiết. Sao chép (clone) kho lưu trữ YOLOv5 và cài đặt các phụ thuộc yêu cầu từ requirements.txt. Môi trường Python>=3.8.0 với PyTorch>=1.8 là yếu tố thiết yếu. Các mô hình và tập dữ liệu sẽ được tự động tải xuống từ bản release 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 dependencies

Link to this sectionHuấn luyện trên Dữ liệu Tùy chỉnh#

Sơ đồ vòng lặp học chủ động của Ultralytics

Phát triển một model object detection tùy chỉnh là một quy trình lặp đi lặp lại:

  1. Thu thập & Tổ chức hình ảnh: Tập hợp các hình ảnh liên quan đến tác vụ cụ thể của bạn. Dữ liệu chất lượng cao và đa dạng là rất quan trọng. Xem hướng dẫn của chúng tôi về Data Collection and Annotation.
  2. 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.
  3. Huấn luyện Model: Sử dụng dữ liệu đã gán nhãn để train model 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ố đã huấn luyện trước.
  4. Triển khai & Dự đoán: Sử dụng model đã huấn luyện để inference trên dữ liệu mới chưa từng thấy.
  5. Thu thập các Trường hợp Đặc biệt (Edge Cases): Xác định các kịch bản mà mô hình hoạt động kém (edge cases) và thêm dữ liệu tương tự vào tập dữ liệu để cải thiện độ bền vững. Lặp lại chu trình này.

Ultralytics Platform cung cấp một giải pháp tinh gọn, không cần code cho toàn bộ chu trình machine learning operations (MLOps), bao gồm quản lý tập dữ liệu, huấn luyện model 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 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ý 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. Nó yêu cầu các sản phẩm phái sinh phải được chia sẻ theo cùng giấy phép. Xem tệp LICENSE để biết thông tin chi tiết.
  • Giấy phép Doanh nghiệp: Đối với mục đích phát triển và 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 và các mô hình AI của Ultralytics vào các sản phẩm và dịch vụ kinh doanh, bao gồm công cụ nội bộ, quy trình làm việc tự động và triển khai 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 Cấp phép Ultralytics.

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.

Link to this sectionTạ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.

Link to this section1.1 Tạo dataset.yaml#

Tệp cấu hình tập dữ liệu (ví dụ: coco128.yaml) vạch ra 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 mở rộng. Nó hữu ích để kiểm tra nhanh quy trình huấn luyện và chẩn đoán các vấn đề tiềm ẩn như 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, kiểm chứng và kiểm thử.
  • 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.

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 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 của 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

Link to this section1.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 để 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 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 tệp notebook hướng dẫn được cung cấp.
  • SAM2 (Segment Anything Model 2): Các foundation model tập trung vào segmentation, như SAM2, có thể xác định và vạch rõ các đối tượng với độ chính xác cao. Mặc dù chủ yếu dành cho segmentation, các mask thu được thường có thể được chuyển đổi thành các chú thích bbox phù hợp cho các tác vụ object detection.
  • YOLOWorld: Model này cung cấp khả năng phát hiện từ vựng mở (open-vocabulary). Bạn có thể cung cấp các mô tả văn bản về các đối tượng mà 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 nhãn ban đầu, sau đó có thể được tinh chỉnh.

Việc sử dụng các mô hình này có thể cung cấp bước "tiền gán nhãn", giảm bớt công sức thủ công cần thiết. Tuy nhiên, việc 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 là rất quan trọng, 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. Sau khi tạo (và có khả năng tinh chỉnh) nhã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 là class_index x_center y_center width height (tọa độ chuẩn hóa, lớp bắt đầu từ số 0). Nếu một hình ảnh không có đối tượng 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 *.txt định dạng YOLO rất chính xác:

  • Một dòng cho mỗi đối tượng hộp giới hạn (bounding box).
  • Mỗi dòng phải chứa: class_index x_center y_center width height.
  • Các tọa độ phải được chuẩn hóa về phạm vi từ 0 đến 1. Để đạt được điều này, hãy chia các giá trị pixel của x_centerwidth cho tổng chiều rộng của hình ảnh, và chia y_centerheight cho tổng chiều cao của hình ảnh.
  • Các chỉ số lớp được đánh số từ 0 (tức là lớp đầu tiên được đại diện bởi 0, lớp thứ hai bởi 1, v.v.).

Example image with two persons and a tie annotated

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

YOLO format label file content example

Link to this section1.3 Tổ chức Thư mục#

Cấu trúc thư mục datasets 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 trong một thư mục /datasets được đặt liền kề với thư mục repository /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 file

Cấ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)
            └── ...

YOLOv5 recommended dataset directory structure

Link to this sectionChọn một Mô hình#

Chọn một pretrained model để bắt đầu quá trình huấn luyện. Bắt đầu với các trọng số đã huấn luyện trước giúp tăng tốc đáng kể việc học và cải thiện hiệu suất so với huấn luyện từ đầu. YOLOv5 cung cấp nhiều kích thước model khác nhau, mỗi kích thước cân bằng giữa tốc độ và độ chính xác theo những cách khác nhau. Ví dụ: YOLOv5s là model nhỏ thứ hai và nhanh nhất, phù hợp cho các môi trường hạn chế về tài nguyên. Tham khảo README table để so sánh chi tiết tất cả các models có sẵn.

Comparison chart of YOLOv5 models showing size, speed, and accuracy

Link to this sectionHuấn luyện#

Bắt đầu model training bằng script train.py. Các đối số thiết yếu bao gồm:

  • --img: Xác định image size đầ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 yêu cầu nhiều bộ nhớ GPU hơn.
  • --batch: Xác định kích thước batch (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ố epoch huấn luyện (ví dụ: --epochs 100). Một epoch đại diện cho một lượt truyền qua toàn bộ tập dữ liệu huấn luyện.
  • --data: Đường dẫn đến tệp dataset.yaml của bạn (ví dụ: --data coco128.yaml).
  • --weights: Đường dẫn đến tệp trọng số ban đầu. 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à mang lại kết quả vượt trội. Để huấn luyện từ đầu (không khuyến khích trừ khi bạn có tập dữ liệu rất lớn và nhu cầu cụ thể), hãy sử dụng --weights '' --cfg yolov5s.yaml.

Các trọng số đã huấn luyện trước được tự động tải xuống từ bản release 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ữ bộ nhớ đệm hình ảnh tập dữ liệu trong RAM hoặc đĩa cục bộ. Điều này giúp tăng tốc độ huấn luyện đáng kể, đặc biệt khi các thao tác I/O (Nhập/Xuất) của tập dữ liệu là điểm nghẽn. 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 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 đầu ra huấn luyện, bao gồm trọng số và nhật ký, đượ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 thực hành 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: Open In Colab Open In Kaggle

Link to this sectionTrự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.

Link to this sectionGhi 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. Hình dung các chỉ số trực tiếp, lưu hyperparameters, quản lý tập dữ liệu và model checkpoints, đồng thời phân tích các dự đoán của model bằng Comet Custom Panels 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 vào các tính năng được hỗ trợ trong Comet Integration Guide của chúng tôi. Tìm hiểu thêm về khả năng của Comet từ documentation chính thức của họ. Hãy thử Comet Colab Notebook để xem bản demo trực tiếp: Open In Colab

Comet UI showing YOLOv5 training metrics and visualizations

Link to this sectionGhi 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 từ xa các quá trình 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 gói miễn phí).

ClearML tự động ghi lại chi tiết thí nghiệm, tải lên model, so sánh, các thay đổi code chưa commit và các gói đã cài đặt, đảm bảo khả năng tái lập 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 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á ClearML Integration Guide để biết chi tiết đầy đủ.

ClearML experiment management UI for YOLOv5

Link to this sectionGhi 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 các 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 Độ chính xác (Precision)-Độ nhạy (Recall) (PR).
  • Ma trận nhầm lẫn (Confusion matrices) để phân tích chi tiết hiệu suất theo từng lớp.
YOLOv5 local logging results with charts and mosaics

Tệp results.csv đượ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ẽ thủ công bất kỳ tệp results.csv nào 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

YOLOv5 results.png training metrics plot

Link to this sectionCác bước tiếp theo#

Sau khi hoàn tất huấn luyện thành công, điểm lưu mô hình hoạt động 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 inference trên hình ảnh hoặc video mới bằng model đã huấn luyện thông qua CLI hoặc Python.
  • Thực hiện validation để đánh giá accuracy và khả năng tổng quát hóa của model trên các tập dữ liệu phân tách khác nhau (ví dụ: một tập kiểm tra giữ lại).
  • Export model sang các định dạng triển khai khác nhau như ONNX, TensorFlow SavedModel hoặc TensorRT để tối ưu hóa inference trên các nền tảng đa dạng.
  • Sử dụng các kỹ thuật hyperparameter tuning để có khả năng đạt thêm hiệu suất tăng cường.
  • Tiếp tục cải thiện model của bạn bằng cách làm theo Tips for Best Training Results của chúng tôi và thêm dữ liệu đa dạng, đầy thách thức một cách lặp đi lặp lại dựa trên phân tích hiệu suất.

Link to this sectionCá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ụ thuộc thiết yếu như CUDA, cuDNN, PythonPyTorch, tạo điều kiện cho một khởi đầu thuận lợi.

Link to this sectionTrạng thái Dự án#

YOLOv5 Continuous Integration Status Badge

This badge indicates that all YOLOv5 GitHub Actions Continuous Integration (CI) tests are passing successfully. These rigorous CI tests cover the core functionalities, including training, validation, inference, export, and benchmarks, across macOS, Windows, and Ubuntu operating systems. Tests are executed automatically every 24 hours and upon each code commit, ensuring consistent stability and optimal performance.

Link to this sectionCâu hỏi thường gặp#

Link to this sectionLàm cách nào để tôi huấn luyện YOLOv5 trên tập dữ liệu tùy chỉnh của mình?#

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:

  1. Chuẩn bị tập dữ liệu của bạn: Thu thập hình ảnh và gán nhãn chúng. Đảm bảo các chú thích ở YOLO format bắt buộc. Tổ chức hình ảnh và nhãn thành các thư mục train/val/ (và tùy chọn là test/). Hãy cân nhắc sử dụng các model 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).
  2. Thiết lập Môi trường của bạn: Clone kho lưu trữ YOLOv5 và cài đặt các phần phụ thuộc bằng pip install -r requirements.txt.
    git clone https://github.com/ultralytics/yolov5
    cd yolov5
    pip install -r requirements.txt
  3. Tạo Cấu hình Tập dữ liệu: Xác định các đường dẫn tập dữ liệu, số lượng lớp và tên lớp trong tệp dataset.yaml.
  4. Bắt đầu Huấn luyện: Thực thi tập lệnh train.py, cung cấp các đường dẫn đến dataset.yaml của bạn, trọng số được huấn luyện trước mong muốn (ví dụ: yolov5s.pt), kích thước hình ảnh, kích thước batch và số lượng epoch.
    python train.py --img 640 --batch 16 --epochs 100 --data path/to/your/dataset.yaml --weights yolov5s.pt

Link to this sectionTại sao tôi nên sử dụng Ultralytics Platform để huấn luyện các model YOLO của mình?#

Ultralytics Platform 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 model YOLO, thường không cần phải 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 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à hình dung các chỉ số 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ó 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 Model Tùy chỉnh của bạn với Ultralytics Platform.

Link to this sectionLàm cách nào để tôi chuyển đổi dữ liệu được chú thích của mình 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ư 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 .txt cho 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.jpg tương ứng với image1.txt). Đặt các tệp này vào thư mục labels/ song song với thư mục images/ 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.
  • Các tọa độ (center_x, center_y, width, height) phải được chuẩn hóa (giá trị từ 0.0 đến 1.0) so với kích thước của hình ảnh.
  • Các chỉ số lớp là zero-based (lớp đầu tiên là 0, lớp thứ hai là 1, v.v.).

Nhiều công cụ gán nhãn 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 model tự động, bạn sẽ cần các script hoặc quy trình để chuyển đổi đầu ra của chúng (ví dụ: tọa độ bbox, segmentation masks) thành định dạng văn bản 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 Data Collection and Annotation Guide của chúng tôi.

Link to this sectionCá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 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à chấp nhận được. Giấy phép này yêu cầu các sửa đổi và sản phẩm phái sinh cũng phải là mã nguồn mở 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ụ 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.

Người đóng góp

Bình luận