Cấu hình

Các cài đặt và siêu tham số của YOLO đóng vai trò quan trọng đối với hiệu suất, tốc độ và độ chính xác của mô hình. Các cài đặt này có thể ảnh hưởng đến hành vi của mô hình ở nhiều giai đoạn khác nhau, bao gồm huấn luyện, kiểm thử và dự đoán.



Watch: Mastering Ultralytics YOLO: Configuration

Các lệnh Ultralytics sử dụng cú pháp sau:

Ví dụ
yolo TASK MODE ARGS

Trong đó:

Default ARG values are defined on this page and come from the cfg/default.yaml file.

Tác vụ

Các mô hình Ultralytics YOLO có thể thực hiện nhiều tác vụ thị giác máy tính, bao gồm:

  • Detect: Object detection (Phát hiện đối tượng) xác định và định vị các đối tượng trong ảnh hoặc video.
  • Segment: Instance segmentation (Phân đoạn thực thể) chia một ảnh hoặc video thành các vùng tương ứng với các đối tượng hoặc lớp khác nhau.
  • Classify: Image classification (Phân loại ảnh) dự đoán nhãn lớp của ảnh đầu vào.
  • Pose: Pose estimation (Ước tính tư thế) xác định các đối tượng và ước tính các điểm mấu chốt của chúng trong ảnh hoặc video.
  • OBB: Oriented Bounding Boxes (Hộp bao định hướng) sử dụng các hộp bao xoay, phù hợp cho hình ảnh vệ tinh hoặc hình ảnh y tế.
Đối sốMặc địnhMô tả
task'detect'Chỉ định tác vụ YOLO: detect cho object detection, segment cho phân đoạn, classify cho phân loại, pose cho ước tính tư thế, và obb cho hộp bao định hướng. Mỗi tác vụ được thiết kế riêng cho các đầu ra và vấn đề cụ thể trong phân tích ảnh và video.

Hướng dẫn Tác vụ

Chế độ

Các mô hình Ultralytics YOLO hoạt động ở các chế độ khác nhau, mỗi chế độ được thiết kế cho một giai đoạn cụ thể trong vòng đời của mô hình:

  • Train: Huấn luyện mô hình YOLO trên tập dữ liệu tùy chỉnh.
  • Val: Kiểm thử một mô hình YOLO đã huấn luyện.
  • Predict: Sử dụng mô hình YOLO đã huấn luyện để đưa ra dự đoán trên ảnh hoặc video mới.
  • Export: Xuất mô hình YOLO để triển khai.
  • Track: Theo dõi đối tượng theo thời gian thực bằng mô hình YOLO.
  • Benchmark: Đánh giá tốc độ và độ chính xác của các mô hình YOLO đã xuất (ONNX, TensorRT, v.v.).
Đối sốMặc địnhMô tả
mode'train'Chỉ định chế độ hoạt động của mô hình YOLO: train để huấn luyện mô hình, val để kiểm thử, predict để suy luận, export để chuyển đổi sang định dạng triển khai, track để theo dõi đối tượng, và benchmark để đánh giá hiệu suất. Mỗi chế độ hỗ trợ các giai đoạn khác nhau, từ phát triển đến triển khai.

Hướng dẫn Chế độ

Cài đặt Huấn luyện

Các cài đặt huấn luyện cho mô hình YOLO bao gồm siêu tham số và cấu hình ảnh hưởng đến hiệu suất, tốc độ và độ chính xác của mô hình. Các cài đặt chính bao gồm batch size, learning rate, momentum và weight decay. Việc lựa chọn trình tối ưu hóa, loss function và cấu trúc tập dữ liệu cũng ảnh hưởng đến quá trình huấn luyện. Việc tinh chỉnh và thử nghiệm là rất quan trọng để đạt được hiệu suất tối ưu. Để biết thêm chi tiết, hãy xem hàm điểm vào Ultralytics.

Đối sốLoạiMặc địnhMô tả
modelstrNoneChỉ định tệp mô hình để huấn luyện. Chấp nhận đường dẫn đến mô hình được huấn luyện trước .pt hoặc tệp cấu hình .yaml. Cần thiết để xác định cấu trúc mô hình hoặc khởi tạo trọng số.
datastrNoneĐường dẫn đến tệp cấu hình tập dữ liệu (ví dụ: coco8.yaml). Tệp này chứa các tham số cụ thể của tập dữ liệu, bao gồm đường dẫn đến dữ liệu huấn luyện và kiểm thử, tên lớp và số lượng lớp.
epochsint100Tổng số epoch huấn luyện. Mỗi epoch đại diện cho một lượt truyền qua toàn bộ tập dữ liệu. Việc điều chỉnh giá trị này có thể ảnh hưởng đến thời gian huấn luyện và hiệu suất mô hình.
timefloatNoneThời gian huấn luyện tối đa tính bằng giờ. Nếu được đặt, giá trị này sẽ ghi đè lên đối số epochs, cho phép quá trình huấn luyện tự động dừng sau thời gian chỉ định. Hữu ích cho các kịch bản huấn luyện bị giới hạn về thời gian.
patienceint100Số lượng epoch chờ đợi mà không thấy cải thiện trong các chỉ số kiểm thử trước khi dừng sớm quá trình huấn luyện. Giúp ngăn ngừa quá khớp bằng cách dừng huấn luyện khi hiệu suất đi vào trạng thái bình ổn.
batchint hoặc float16Batch size, với ba chế độ: đặt dưới dạng số nguyên (ví dụ: batch=16), chế độ tự động cho 60% mức sử dụng bộ nhớ GPU (batch=-1), hoặc chế độ tự động với tỷ lệ sử dụng được chỉ định (batch=0.70).
imgszint640Kích thước ảnh mục tiêu cho huấn luyện. Các ảnh được thay đổi kích thước thành hình vuông với các cạnh bằng giá trị đã chỉ định (nếu rect=False), bảo toàn tỷ lệ khung hình cho các mô hình YOLO nhưng không áp dụng với RT-DETR. Ảnh hưởng đến độ chính xác và độ phức tạp tính toán của mô hình.
saveboolTrueBật tính năng lưu checkpoint huấn luyện và trọng số mô hình cuối cùng. Hữu ích cho việc tiếp tục huấn luyện hoặc triển khai mô hình.
save_periodint-1Tần suất lưu checkpoint mô hình, được chỉ định theo epoch. Giá trị -1 vô hiệu hóa tính năng này. Hữu ích để lưu các mô hình trung gian trong các phiên huấn luyện dài.
cacheboolFalseBật lưu bộ nhớ đệm hình ảnh tập dữ liệu trong RAM (True/ram), trên đĩa (disk), hoặc vô hiệu hóa (False). Cải thiện tốc độ huấn luyện bằng cách giảm I/O đĩa với chi phí tăng mức sử dụng bộ nhớ.
deviceint hoặc str hoặc listNoneChỉ định (các) thiết bị tính toán để huấn luyện: một GPU (device=0), nhiều GPU (device=[0,1]), CPU (device=cpu), MPS cho chip Apple silicon (device=mps), Huawei Ascend NPU (device=npu hoặc device=npu:0), hoặc tự động chọn GPU rảnh nhất (device=-1) hoặc nhiều GPU rảnh (device=[-1,-1])
workersint8Số lượng luồng worker để tải dữ liệu (trên mỗi RANK nếu huấn luyện đa GPU). Ảnh hưởng đến tốc độ tiền xử lý dữ liệu và nạp vào mô hình, đặc biệt hữu ích trong các thiết lập đa GPU.
projectstrNoneTên thư mục dự án nơi lưu kết quả huấn luyện. Cho phép lưu trữ có tổ chức cho các thử nghiệm khác nhau.
namestrNoneTên của phiên huấn luyện. Được sử dụng để tạo một thư mục con trong thư mục dự án, nơi lưu trữ nhật ký huấn luyện và kết quả đầu ra.
exist_okboolFalseNếu True, cho phép ghi đè thư mục dự án/tên đã tồn tại. Hữu ích cho việc thử nghiệm lặp đi lặp lại mà không cần xóa thủ công các kết quả trước đó.
pretrainedbool hoặc strTrueXác định xem có bắt đầu huấn luyện từ trọng số được huấn luyện trước hay không. Có thể là giá trị boolean hoặc đường dẫn chuỗi đến trọng số cần tải. pretrained=False huấn luyện từ các trọng số được khởi tạo ngẫu nhiên trong khi giữ nguyên kiến trúc mô hình.
optimizerstr'auto'Lựa chọn trình tối ưu hóa để huấn luyện. Các tùy chọn bao gồm SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp, hoặc auto để chọn tự động dựa trên cấu hình mô hình. Ảnh hưởng đến tốc độ hội tụ và sự ổn định.
seedint0Đặt hạt giống ngẫu nhiên (random seed) cho quá trình huấn luyện, đảm bảo tính tái lập kết quả giữa các lần chạy với cùng cấu hình.
deterministicboolTrueBuộc sử dụng thuật toán tất định, đảm bảo tính tái lập nhưng có thể ảnh hưởng đến hiệu suất và tốc độ do hạn chế đối với các thuật toán phi tất định.
verboseboolTrueBật đầu ra chi tiết trong quá trình huấn luyện, hiển thị thanh tiến trình, chỉ số theo epoch và thông tin huấn luyện bổ sung trong bảng điều khiển.
single_clsboolFalseXử lý tất cả các lớp trong tập dữ liệu đa lớp thành một lớp duy nhất trong quá trình huấn luyện. Hữu ích cho các tác vụ phân loại nhị phân hoặc khi tập trung vào sự hiện diện của đối tượng thay vì phân loại.
classeslist[int]NoneChỉ định danh sách các ID lớp để huấn luyện. Hữu ích để lọc và chỉ tập trung vào một số lớp nhất định trong quá trình huấn luyện.
rectboolFalseBật chiến lược đệm tối thiểu—ảnh trong một batch được đệm tối thiểu để đạt kích thước chung, với cạnh dài nhất bằng imgsz. Có thể cải thiện hiệu quả và tốc độ nhưng có thể ảnh hưởng đến độ chính xác của mô hình.
multi_scalefloat0.0Thay đổi ngẫu nhiên imgsz mỗi batch theo +/- multi_scale (ví dụ: 0.25 -> 0.75x đến 1.25x), làm tròn theo bội số bước nhảy (stride) của mô hình; 0.0 vô hiệu hóa huấn luyện đa quy mô.
cos_lrboolFalseSử dụng bộ lập lịch learning rate cosine, điều chỉnh tốc độ học theo đường cong cosine qua các epoch. Giúp quản lý tốc độ học để đạt được sự hội tụ tốt hơn.
close_mosaicint10Vô hiệu hóa mosaic data augmentation trong N epoch cuối để ổn định quá trình huấn luyện trước khi kết thúc. Thiết lập bằng 0 sẽ tắt tính năng này.
resumeboolFalseTiếp tục huấn luyện từ checkpoint được lưu gần nhất. Tự động tải trọng số model, trạng thái bộ tối ưu hóa và số lượng epoch, giúp duy trì quá trình huấn luyện một cách liên tục.
ampboolTrueKích hoạt huấn luyện Mixed Precision (AMP) tự động, giúp giảm mức sử dụng bộ nhớ và có khả năng tăng tốc độ huấn luyện mà ít ảnh hưởng đến độ chính xác.
fractionfloat1.0Chỉ định tỷ lệ phần trăm của tập dữ liệu để sử dụng cho việc huấn luyện. Cho phép huấn luyện trên một tập hợp con của tập dữ liệu đầy đủ, hữu ích cho các thử nghiệm hoặc khi tài nguyên bị hạn chế.
profileboolFalseKích hoạt tính năng profiling tốc độ ONNX và TensorRT trong quá trình huấn luyện, hữu ích cho việc tối ưu hóa triển khai model.
freezeint hoặc listNoneĐóng băng N lớp đầu tiên của model hoặc các lớp được chỉ định theo chỉ số, giúp giảm số lượng tham số cần huấn luyện. Hữu ích cho việc fine-tuning hoặc transfer learning.
lr0float0.01Tốc độ học ban đầu (ví dụ: SGD=1E-2, Adam=1E-3). Việc điều chỉnh giá trị này rất quan trọng đối với quá trình tối ưu hóa, ảnh hưởng đến tốc độ cập nhật trọng số của model.
lrffloat0.01Tốc độ học cuối cùng dưới dạng một phần của tốc độ ban đầu = (lr0 * lrf), được sử dụng kết hợp với các bộ lập lịch để điều chỉnh tốc độ học theo thời gian.
momentumfloat0.937Hệ số momentum cho SGD hoặc beta1 cho Adam optimizers, ảnh hưởng đến việc kết hợp các gradient trước đó trong quá trình cập nhật hiện tại.
weight_decayfloat0.0005Thuật ngữ L2 regularization, giúp phạt các trọng số lớn để ngăn chặn tình trạng overfitting.
warmup_epochsfloat3.0Số lượng epoch cho quá trình warmup tốc độ học, tăng dần tốc độ học từ một giá trị thấp đến tốc độ học ban đầu để ổn định quá trình huấn luyện sớm.
warmup_momentumfloat0.8Momentum ban đầu cho giai đoạn warmup, dần dần điều chỉnh về mức momentum đã đặt trong suốt thời gian warmup.
warmup_bias_lrfloat0.1Tốc độ học cho các tham số bias trong giai đoạn warmup, giúp ổn định quá trình huấn luyện model trong những epoch đầu tiên.
boxfloat7.5Trọng số của thành phần loss box trong loss function, ảnh hưởng đến mức độ chú trọng vào việc dự đoán chính xác tọa độ bounding box.
clsfloat0.5Trọng số của loss phân loại trong hàm loss tổng, ảnh hưởng đến tầm quan trọng của việc dự đoán đúng lớp so với các thành phần khác.
cls_pwfloat0.0Lũy thừa cho trọng số lớp để xử lý mất cân bằng lớp bằng cách sử dụng tần suất nghịch đảo của lớp. 0.0 vô hiệu hóa trọng số lớp, 1.0 áp dụng trọng số tần suất nghịch đảo đầy đủ. Các giá trị từ 0 đến 1 cung cấp trọng số một phần.
dflfloat1.5Trọng số của distribution focal loss, được sử dụng trong một số phiên bản YOLO cho việc phân loại chi tiết.
posefloat12.0Trọng số của loss tư thế trong các model được huấn luyện cho việc ước tính tư thế, ảnh hưởng đến việc chú trọng vào việc dự đoán chính xác các điểm chính (keypoints) của tư thế.
kobjfloat1.0Trọng số của loss keypoint objectness trong các model ước tính tư thế, cân bằng giữa độ tin cậy phát hiện và độ chính xác của tư thế.
rlefloat1.0Trọng số của loss ước tính residual log-likelihood trong các model ước tính tư thế, ảnh hưởng đến độ chính xác của việc định vị điểm chính.
anglefloat1.0Trọng số của loss góc trong các model obb, ảnh hưởng đến độ chính xác của các dự đoán góc bounding box xoay.
nbsint64Kích thước batch danh nghĩa cho việc chuẩn hóa loss.
overlap_maskboolTrueXác định liệu các mặt nạ (mask) đối tượng có nên được gộp thành một mặt nạ duy nhất để huấn luyện hay giữ riêng biệt cho từng đối tượng. Trong trường hợp chồng lấp, mặt nạ nhỏ hơn sẽ được phủ lên trên mặt nạ lớn hơn trong quá trình gộp.
mask_ratioint4Tỷ lệ downsample cho các mặt nạ phân đoạn, ảnh hưởng đến độ phân giải của các mặt nạ được sử dụng trong quá trình huấn luyện.
dropoutfloat0.0Tỷ lệ dropout cho regularization trong các tác vụ phân loại, ngăn chặn overfitting bằng cách ngẫu nhiên bỏ qua các đơn vị trong quá trình huấn luyện.
valboolTrueKích hoạt xác thực (validation) trong quá trình huấn luyện, cho phép đánh giá định kỳ hiệu suất của model trên một tập dữ liệu riêng biệt.
plotsboolTrueTạo và lưu các biểu đồ về các chỉ số huấn luyện và xác thực, cũng như các ví dụ dự đoán, cung cấp cái nhìn trực quan về hiệu suất và tiến trình học của model.
compilebool hoặc strFalseKích hoạt biên dịch đồ thị PyTorch 2.x torch.compile với backend='inductor'. Chấp nhận True"default", False → vô hiệu hóa, hoặc một chế độ chuỗi như "default", "reduce-overhead", "max-autotune-no-cudagraphs". Nếu không được hỗ trợ, sẽ quay về chế độ eager và hiển thị cảnh báo.
max_detint300Chỉ định số lượng đối tượng tối đa được giữ lại trong giai đoạn xác thực của quá trình huấn luyện.
Lưu ý về các thiết lập kích thước batch (Batch-size)

Đối số batch cung cấp ba tùy chọn cấu hình:

  • Kích thước Batch cố định: Chỉ định số lượng ảnh mỗi batch bằng một số nguyên (ví dụ: batch=16).
  • Chế độ Tự động (60% bộ nhớ GPU): Sử dụng batch=-1 để tự động điều chỉnh đến khoảng 60% mức sử dụng bộ nhớ CUDA.
  • Chế độ Tự động với Tỷ lệ sử dụng: Thiết lập một tỷ lệ (ví dụ: batch=0.70) để điều chỉnh dựa trên mức sử dụng bộ nhớ GPU được chỉ định.

Hướng dẫn Huấn luyện

Cài đặt Dự đoán (Predict Settings)

Các cài đặt dự đoán cho model YOLO bao gồm các siêu tham số và cấu hình ảnh hưởng đến hiệu suất, tốc độ và độ chính xác trong quá trình suy luận (inference). Các cài đặt chính bao gồm ngưỡng tin cậy, ngưỡng Non-Maximum Suppression (NMS) và số lượng lớp. Kích thước dữ liệu đầu vào, định dạng và các tính năng bổ sung như mặt nạ cũng ảnh hưởng đến dự đoán. Việc tinh chỉnh các cài đặt này là rất cần thiết để đạt được hiệu suất tối ưu.

Các đối số suy luận (Inference arguments):

Đối sốLoạiMặc địnhMô tả
sourcestr hoặc int hoặc NoneNoneChỉ định nguồn dữ liệu để suy luận. Có thể là đường dẫn ảnh, tệp video, thư mục, URL hoặc ID thiết bị cho các luồng trực tiếp. Nếu bị bỏ qua, một cảnh báo sẽ được ghi lại và model sẽ quay về sử dụng các tài sản demo tích hợp (ultralytics/assets, hoặc URL demo cho OBB). Hỗ trợ nhiều định dạng và nguồn, cho phép ứng dụng linh hoạt trên các loại đầu vào khác nhau.
conffloat0.25Đặt ngưỡng tin cậy tối thiểu cho các phát hiện. Các đối tượng được phát hiện với độ tin cậy dưới ngưỡng này sẽ bị loại bỏ. Việc điều chỉnh giá trị này có thể giúp giảm các trường hợp dương tính giả.
ioufloat0.7Ngưỡng Intersection Over Union (IoU) cho Non-Maximum Suppression (NMS). Các giá trị thấp hơn dẫn đến ít phát hiện hơn bằng cách loại bỏ các hộp chồng lấp, hữu ích để giảm các kết quả trùng lặp.
imgszint hoặc tuple640Letterbox target. An integer gives a square N×N; a tuple gives (height, width). With rect=True, the actual tensor may be smaller than this target due to minimum-rectangle padding. Use rect=False for a fixed size. See Fixed shape vs minimum rectangle.
rectboolTrueNếu True, sử dụng padding hình chữ nhật tối thiểu khi có thể (batch cùng hình dạng và backend được hỗ trợ). Nếu False, luôn pad đến imgsz đầy đủ. Xem Hình dạng cố định vs hình chữ nhật tối thiểu.
halfboolFalseKích hoạt suy luận nửa độ chính xác (FP16), có thể tăng tốc độ suy luận của model trên các GPU được hỗ trợ mà ít ảnh hưởng đến độ chính xác.
devicestrNoneChỉ định thiết bị cho suy luận (ví dụ: cpu, cuda:0, 0, npu hoặc npu:0). Cho phép người dùng chọn giữa CPU, một GPU cụ thể, NPU Huawei Ascend hoặc các thiết bị tính toán khác để thực thi model.
batchint1Chỉ định kích thước batch cho suy luận (chỉ hoạt động khi nguồn là thư mục, tệp video hoặc tệp .txt). Kích thước batch lớn hơn có thể cung cấp lưu lượng cao hơn, rút ngắn tổng thời gian cần thiết cho suy luận.
max_detint300Số lượng phát hiện tối đa cho phép trên mỗi ảnh. Giới hạn tổng số đối tượng mà model có thể phát hiện trong một lần inference, giúp ngăn chặn kết quả đầu ra quá mức trong các cảnh có mật độ đối tượng cao.
vid_strideint1Bước nhảy khung hình (frame stride) cho đầu vào video. Cho phép bỏ qua các khung hình trong video để tăng tốc độ xử lý nhưng đánh đổi độ phân giải theo thời gian. Giá trị 1 xử lý mọi khung hình, giá trị cao hơn sẽ bỏ qua các khung hình.
stream_bufferboolFalseQuyết định xem có xếp hàng các khung hình đến cho luồng video hay không. Nếu False, các khung hình cũ sẽ bị loại bỏ để nhường chỗ cho khung hình mới (tối ưu cho các ứng dụng thời gian thực). Nếu True, sẽ xếp hàng các khung hình mới vào bộ đệm, đảm bảo không có khung hình nào bị bỏ qua, nhưng sẽ gây ra độ trễ nếu FPS của quá trình inference thấp hơn FPS của luồng.
visualizeboolFalseKích hoạt trực quan hóa các đặc trưng (features) của model trong quá trình inference, cung cấp thông tin về những gì model đang "nhìn thấy". Hữu ích cho việc gỡ lỗi và diễn giải model.
augmentboolFalseKích hoạt test-time augmentation (TTA) cho các dự đoán, có khả năng cải thiện độ ổn định của việc phát hiện với chi phí là tốc độ inference chậm hơn.
agnostic_nmsboolFalseKích hoạt Non-Maximum Suppression (NMS) không phân biệt lớp, giúp hợp nhất các khung bao (boxes) chồng lấp của các lớp khác nhau. Hữu ích trong các kịch bản phát hiện đa lớp nơi việc chồng lấp lớp thường xảy ra. Đối với các model end-to-end (YOLO26, YOLOv10), tùy chọn này chỉ ngăn chặn cùng một kết quả phát hiện xuất hiện với nhiều nhãn lớp (trùng lặp IoU=1.0) và không thực hiện triệt tiêu dựa trên ngưỡng IoU giữa các khung hình riêng biệt.
classeslist[int]NoneLọc các dự đoán theo một tập hợp ID lớp. Chỉ các kết quả phát hiện thuộc các lớp được chỉ định mới được trả về. Hữu ích để tập trung vào các đối tượng liên quan trong các tác vụ phát hiện đa lớp.
retina_masksboolFalseTrả về các mask phân đoạn độ phân giải cao. Nếu được bật, các mask được trả về (masks.data) sẽ khớp với kích thước ảnh gốc. Nếu bị tắt, chúng sẽ có kích thước ảnh được sử dụng trong quá trình inference.
embedlist[int]NoneChỉ định các lớp để trích xuất vectơ đặc trưng hoặc embeddings. Hữu ích cho các tác vụ hạ nguồn như phân cụm hoặc tìm kiếm sự tương đồng.
projectstrNoneTên của thư mục dự án nơi lưu kết quả dự đoán nếu save được bật.
namestrNoneTên của lần chạy dự đoán. Được sử dụng để tạo thư mục con trong thư mục dự án, nơi lưu trữ kết quả dự đoán nếu save được bật.
streamboolFalseKích hoạt xử lý tiết kiệm bộ nhớ cho các video dài hoặc số lượng lớn ảnh bằng cách trả về một trình tạo (generator) các đối tượng Results thay vì tải toàn bộ khung hình vào bộ nhớ cùng một lúc.
verboseboolTrueKiểm soát việc hiển thị các bản ghi inference chi tiết trong terminal, cung cấp phản hồi theo thời gian thực về quá trình dự đoán.
compilebool hoặc strFalseKích hoạt biên dịch đồ thị PyTorch 2.x torch.compile với backend='inductor'. Chấp nhận True"default", False → vô hiệu hóa, hoặc một chế độ chuỗi như "default", "reduce-overhead", "max-autotune-no-cudagraphs". Nếu không được hỗ trợ, sẽ quay về chế độ eager và hiển thị cảnh báo.
end2endboolNoneGhi đè chế độ end-to-end trong các model YOLO hỗ trợ inference không cần NMS (YOLO26, YOLOv10). Thiết lập là False cho phép bạn chạy dự đoán bằng pipeline NMS truyền thống, đồng thời cho phép sử dụng đối số iou. Xem Hướng dẫn End-to-End Detection để biết thêm chi tiết.

Các đối số trực quan hóa:

Đối sốLoạiMặc địnhMô tả
showboolFalseNếu True, hiển thị các ảnh hoặc video đã được chú thích trong một cửa sổ. Hữu ích để có phản hồi trực quan ngay lập tức trong quá trình phát triển hoặc thử nghiệm.
saveboolFalse or TrueKích hoạt lưu các ảnh hoặc video đã được chú thích vào tệp. Hữu ích cho việc tài liệu hóa, phân tích thêm hoặc chia sẻ kết quả. Mặc định là True khi sử dụng CLI và False khi sử dụng trong Python.
save_framesboolFalseKhi xử lý video, lưu các khung hình riêng lẻ dưới dạng ảnh. Hữu ích để trích xuất các khung hình cụ thể hoặc để phân tích chi tiết từng khung hình.
save_txtboolFalseLưu kết quả phát hiện vào một tệp văn bản, theo định dạng [class] [x_center] [y_center] [width] [height] [confidence]. Hữu ích để tích hợp với các công cụ phân tích khác.
save_confboolFalseBao gồm điểm tin cậy (confidence scores) trong các tệp văn bản đã lưu. Tăng cường thông tin chi tiết có sẵn để xử lý hậu kỳ và phân tích.
save_cropboolFalseLưu các ảnh cắt (cropped images) của các kết quả phát hiện. Hữu ích cho việc tăng cường dữ liệu (augmentation), phân tích hoặc tạo các bộ dữ liệu tập trung cho các đối tượng cụ thể.
show_labelsboolTrueHiển thị nhãn cho mỗi kết quả phát hiện trong đầu ra trực quan. Cung cấp hiểu biết ngay lập tức về các đối tượng được phát hiện.
show_confboolTrueHiển thị điểm tin cậy cho mỗi kết quả phát hiện bên cạnh nhãn. Cung cấp cái nhìn sâu sắc về độ chắc chắn của model cho mỗi kết quả phát hiện.
show_boxesboolTrueVẽ khung bao (bounding boxes) xung quanh các đối tượng được phát hiện. Rất cần thiết để xác định trực quan và xác định vị trí của các đối tượng trong ảnh hoặc khung hình video.
line_widthint or NoneNoneChỉ định độ dày đường kẻ của khung bao. Nếu là None, độ dày đường kẻ sẽ tự động được điều chỉnh dựa trên kích thước ảnh. Cung cấp khả năng tùy chỉnh trực quan để đảm bảo độ rõ nét.

Hướng dẫn Predict

Cài đặt Validation

Các cài đặt validation cho model YOLO bao gồm các siêu tham số (hyperparameters) và cấu hình để đánh giá hiệu suất trên tập dữ liệu validation. Các cài đặt này ảnh hưởng đến hiệu suất, tốc độ và độ chính xác. Các cài đặt phổ biến bao gồm kích thước batch, tần suất validation và các chỉ số hiệu suất. Kích thước và thành phần của tập dữ liệu validation, cùng với tác vụ cụ thể, cũng ảnh hưởng đến quá trình này.

Đối sốLoạiMặc địnhMô tả
datastrNoneChỉ định đường dẫn đến tệp cấu hình tập dữ liệu (ví dụ: coco8.yaml). Tệp này nên bao gồm đường dẫn đến dữ liệu validation.
imgszint640Xác định kích thước của ảnh đầu vào. Tất cả ảnh được thay đổi kích thước về kích thước này trước khi xử lý. Kích thước lớn hơn có thể cải thiện độ chính xác cho các đối tượng nhỏ nhưng làm tăng thời gian tính toán.
batchint16Đặt số lượng ảnh trên mỗi batch. Các giá trị cao hơn sử dụng bộ nhớ GPU hiệu quả hơn nhưng yêu cầu nhiều VRAM hơn. Điều chỉnh dựa trên tài nguyên phần cứng hiện có.
save_jsonboolFalseNếu True, lưu kết quả vào tệp JSON để phân tích thêm, tích hợp với các công cụ khác hoặc gửi lên các máy chủ đánh giá như COCO.
conffloat0.001Đặt ngưỡng tin cậy tối thiểu cho các kết quả phát hiện. Các giá trị thấp hơn làm tăng recall nhưng có thể dẫn đến nhiều kết quả dương tính giả hơn. Được sử dụng trong quá trình validation để tính toán các đường cong precision-recall.
ioufloat0.7Đặt ngưỡng Intersection Over Union cho Non-Maximum Suppression. Kiểm soát việc loại bỏ các kết quả phát hiện trùng lặp.
max_detint300Giới hạn số lượng phát hiện tối đa trên mỗi ảnh. Hữu ích trong các cảnh có mật độ đối tượng cao để ngăn chặn số lượng phát hiện quá mức và quản lý tài nguyên tính toán.
halfboolFalseKích hoạt tính toán nửa độ chính xác (FP16), giảm mức sử dụng bộ nhớ và có khả năng tăng tốc độ với tác động tối thiểu đến độ chính xác.
devicestrNoneChỉ định thiết bị cho việc validation (cpu, cuda:0, npu, npu:0, v.v.). Khi là None, tự động chọn thiết bị tốt nhất hiện có. Nhiều thiết bị CUDA có thể được chỉ định bằng cách phân tách bằng dấu phẩy.
dnnboolFalseNếu True, sử dụng module DNN của OpenCV cho inference model ONNX, cung cấp một phương án thay thế cho các phương pháp inference của PyTorch.
plotsboolTrueKhi được đặt thành True, tạo và lưu các biểu đồ dự đoán so với ground truth, ma trận nhầm lẫn (confusion matrices) và các đường cong PR để đánh giá trực quan hiệu suất của model.
classeslist[int]NoneChỉ định một danh sách các ID lớp để đánh giá. Hữu ích cho việc lọc ra và chỉ tập trung vào một số lớp nhất định trong quá trình đánh giá.
rectboolTrueNếu True, sử dụng inference hình chữ nhật cho việc batching, giảm padding và có khả năng tăng tốc độ cũng như hiệu quả bằng cách xử lý ảnh theo tỷ lệ khung hình gốc.
splitstr'val'Xác định tập dữ liệu phân tách (dataset split) để sử dụng cho validation (val, test, hoặc train). Cho phép sự linh hoạt trong việc chọn phân đoạn dữ liệu để đánh giá hiệu suất.
projectstrNoneTên của thư mục dự án nơi lưu kết quả validation. Giúp sắp xếp kết quả từ các thí nghiệm hoặc model khác nhau.
namestrNoneTên của lần chạy validation. Được sử dụng để tạo thư mục con trong thư mục dự án, nơi lưu trữ các bản ghi và kết quả validation.
verboseboolTrueNếu True, hiển thị thông tin chi tiết trong quá trình validation, bao gồm các chỉ số theo từng lớp, tiến trình batch và thông tin gỡ lỗi bổ sung.
save_txtboolFalseNếu True, lưu kết quả phát hiện vào các tệp văn bản, mỗi tệp cho một ảnh, hữu ích cho việc phân tích thêm, xử lý hậu kỳ tùy chỉnh hoặc tích hợp với các hệ thống khác.
save_confboolFalseNếu True, bao gồm các giá trị tin cậy trong các tệp văn bản đã lưu khi save_txt được bật, cung cấp đầu ra chi tiết hơn để phân tích và lọc.
workersint8Số lượng luồng worker để tải dữ liệu. Các giá trị cao hơn có thể tăng tốc độ tiền xử lý dữ liệu nhưng có thể làm tăng mức sử dụng CPU. Đặt thành 0 sẽ sử dụng luồng chính, có thể ổn định hơn trong một số môi trường.
augmentboolFalseKích hoạt test-time augmentation (TTA) trong quá trình validation, có khả năng cải thiện độ chính xác phát hiện với chi phí là tốc độ inference chậm hơn bằng cách chạy inference trên các phiên bản đã biến đổi của đầu vào.
agnostic_nmsboolFalseKích hoạt Non-Maximum Suppression không phân biệt lớp, giúp hợp nhất các khung bao chồng lấp bất kể lớp được dự đoán của chúng. Hữu ích cho các ứng dụng tập trung vào đối tượng (instance-focused). Đối với các model end-to-end (YOLO26, YOLOv10), tùy chọn này chỉ ngăn chặn cùng một kết quả phát hiện xuất hiện với nhiều nhãn lớp (trùng lặp IoU=1.0) và không thực hiện triệt tiêu dựa trên ngưỡng IoU giữa các khung hình riêng biệt.
single_clsboolFalseXử lý tất cả các lớp như một lớp duy nhất trong quá trình validation. Hữu ích cho việc đánh giá hiệu suất model trên các tác vụ phát hiện nhị phân hoặc khi việc phân biệt các lớp không quan trọng.
visualizeboolFalseTrực quan hóa các ground truth, true positives, false positives và false negatives cho mỗi ảnh. Hữu ích cho việc gỡ lỗi và diễn giải model.
compilebool hoặc strFalseKích hoạt biên dịch đồ thị PyTorch 2.x torch.compile với backend='inductor'. Chấp nhận True"default", False → vô hiệu hóa, hoặc một chế độ chuỗi như "default", "reduce-overhead", "max-autotune-no-cudagraphs". Nếu không được hỗ trợ, sẽ quay về chế độ eager và hiển thị cảnh báo.
end2endboolNoneGhi đè chế độ end-to-end trong các model YOLO hỗ trợ inference không cần NMS (YOLO26, YOLOv10). Thiết lập là False cho phép bạn chạy validation bằng pipeline NMS truyền thống, đồng thời cho phép bạn sử dụng đối số iou.

Việc tinh chỉnh và thử nghiệm cẩn thận là rất quan trọng để đảm bảo hiệu suất tối ưu cũng như để phát hiện và ngăn chặn overfitting.

Hướng dẫn Val

Cài đặt Export

Các cài đặt export cho model YOLO bao gồm các cấu hình để lưu hoặc export model để sử dụng trong các môi trường khác nhau. Các cài đặt này ảnh hưởng đến hiệu suất, kích thước và tính tương thích. Các cài đặt chính bao gồm định dạng tệp xuất (ví dụ: ONNX, TensorFlow SavedModel), thiết bị đích (ví dụ: CPU, GPU) và các tính năng như mask. Tác vụ của model và các hạn chế của môi trường đích cũng ảnh hưởng đến quá trình export.

Đối sốLoạiMặc địnhMô tả
formatstr'torchscript'Định dạng đích cho model được export, chẳng hạn như 'onnx', 'torchscript', 'engine' (TensorRT), hoặc các định dạng khác. Mỗi định dạng cho phép tính tương thích với các môi trường triển khai khác nhau.
imgszint hoặc tuple640Kích thước ảnh mong muốn cho đầu vào model. Có thể là một số nguyên cho các ảnh vuông (ví dụ: 640 cho 640×640) hoặc một tuple (height, width) cho các kích thước cụ thể.
kerasboolFalseKích hoạt export sang định dạng Keras cho TensorFlow SavedModel, cung cấp tính tương thích với TensorFlow serving và các API.
optimizeboolFalseÁp dụng tối ưu hóa cho các thiết bị di động khi export sang TorchScript, có khả năng giảm kích thước model và cải thiện hiệu suất inference. Không tương thích với định dạng NCNN hoặc các thiết bị CUDA. Đối với DeepX, cho phép tối ưu hóa trình biên dịch cao hơn, giúp giảm độ trễ inference và tăng thời gian biên dịch.
halfboolFalseKích hoạt lượng tử hóa (quantization) FP16 (nửa độ chính xác), giảm kích thước model và có khả năng tăng tốc độ inference trên các phần cứng được hỗ trợ. Không tương thích với lượng tử hóa INT8 hoặc các export chỉ dành cho CPU. Chỉ khả dụng cho một số định dạng nhất định, ví dụ: ONNX (xem bên dưới).
int8boolFalseKích hoạt lượng tử hóa INT8, nén model hơn nữa và tăng tốc độ inference với mức mất độ chính xác tối thiểu, chủ yếu dành cho các thiết bị biên. Khi được sử dụng với TensorRT, thực hiện lượng tử hóa sau huấn luyện (PTQ).
dynamicboolFalseCho phép các kích thước đầu vào động cho các export TorchScript, ONNX, OpenVINO, TensorRT và CoreML, tăng cường sự linh hoạt trong việc xử lý các kích thước ảnh khác nhau. Tự động được đặt thành True khi sử dụng TensorRT với INT8.
simplifyboolTrueĐơn giản hóa biểu đồ model cho các export ONNX bằng onnxslim, có khả năng cải thiện hiệu suất và tính tương thích với các công cụ inference (inference engines).
opsetintNoneChỉ định phiên bản ONNX opset cho tính tương thích với các trình phân tích cú pháp (parsers) và runtime ONNX khác nhau. Nếu không được đặt, sẽ sử dụng phiên bản hỗ trợ mới nhất.
workspacefloat hoặc NoneNoneThiết lập kích thước không gian làm việc tối đa tính bằng GiB cho các tối ưu hóa TensorRT, giúp cân bằng giữa việc sử dụng bộ nhớ và hiệu năng. Sử dụng None để TensorRT tự động cấp phát lên đến mức tối đa của thiết bị.
nmsboolFalseThêm Non-Maximum Suppression (NMS) vào model đã xuất khi được hỗ trợ (xem Định dạng xuất), giúp cải thiện hiệu quả xử lý hậu kỳ phát hiện. Không khả dụng cho các model end2end.
batchint1Chỉ định kích thước inference theo lô của model xuất hoặc số lượng ảnh tối đa mà model xuất sẽ xử lý đồng thời ở chế độ predict. Đối với các bản xuất Edge TPU, giá trị này được tự động đặt là 1.
devicestrNoneChỉ định thiết bị để xuất: GPU (device=0), CPU (device=cpu), MPS cho Apple silicon (device=mps), Huawei Ascend NPU (device=npu hoặc device=npu:0), hoặc DLA cho NVIDIA Jetson (device=dla:0 hoặc device=dla:1). Các bản xuất TensorRT tự động sử dụng GPU.
datastr'coco8.yaml'Đường dẫn đến file cấu hình dataset, yếu tố cần thiết cho hiệu chuẩn lượng tử hóa INT8. Nếu không được chỉ định trong khi INT8 đã được bật, coco8.yaml sẽ được sử dụng làm tệp dự phòng cho hiệu chuẩn.
fractionfloat1.0Chỉ định phần trăm dataset cần sử dụng cho hiệu chuẩn lượng tử hóa INT8. Cho phép hiệu chuẩn trên một tập con của toàn bộ dataset, hữu ích cho các thử nghiệm hoặc khi tài nguyên bị hạn chế. Nếu không được chỉ định trong khi INT8 đã được bật, toàn bộ dataset sẽ được sử dụng.
end2endboolNoneGhi đè chế độ end-to-end trong các model YOLO hỗ trợ inference không cần NMS (YOLO26, YOLOv10). Thiết lập thành False cho phép bạn xuất các model này để tương thích với pipeline xử lý hậu kỳ truyền thống dựa trên NMS. Xem Hướng dẫn phát hiện End-to-End để biết chi tiết.

Cấu hình chu đáo đảm bảo model được xuất đã được tối ưu hóa cho trường hợp sử dụng của nó và hoạt động hiệu quả trong môi trường mục tiêu.

Hướng dẫn xuất

Cài đặt giải pháp

Các cài đặt cấu hình Ultralytics Solutions cung cấp sự linh hoạt để tùy chỉnh model cho các tác vụ như đếm đối tượng, tạo bản đồ nhiệt, theo dõi bài tập, phân tích dữ liệu, theo dõi vùng, quản lý hàng đợi và đếm dựa trên khu vực. Những tùy chọn này cho phép điều chỉnh dễ dàng để có được kết quả chính xác và hữu ích được thiết kế cho các nhu cầu cụ thể.

Đối sốLoạiMặc địnhMô tả
modelstrNoneĐường dẫn đến một file model Ultralytics YOLO.
regionlist'[(20, 400), (1260, 400)]'Danh sách các điểm xác định vùng đếm.
show_inboolTrueCờ để kiểm soát việc có hiển thị số lượng đối tượng đi vào trên luồng video hay không.
show_outboolTrueCờ để kiểm soát việc có hiển thị số lượng đối tượng đi ra trên luồng video hay không.
analytics_typestr'line'Loại biểu đồ, ví dụ: line, bar, area, hoặc pie.
colormapintcv2.COLORMAP_DEEPGREENColormap được sử dụng cho bản đồ nhiệt (heatmap).
json_filestrNoneĐường dẫn đến file JSON chứa tất cả dữ liệu tọa độ bãi đỗ xe.
up_anglefloat145.0Ngưỡng góc cho tư thế 'lên'.
kptslist[int]'[6, 8, 10]'Danh sách ba chỉ số keypoint được sử dụng để theo dõi quá trình tập luyện. Những keypoint này tương ứng với các khớp hoặc bộ phận cơ thể, chẳng hạn như vai, khuỷu tay và cổ tay, dùng cho các bài tập như hít đất, hít xà, squat và các bài tập bụng.
down_angleint90Ngưỡng góc cho tư thế 'xuống'.
blur_ratiofloat0.5Điều chỉnh phần trăm cường độ làm mờ, với các giá trị trong phạm vi 0.1 - 1.0.
crop_dirstr'cropped-detections'Tên thư mục để lưu trữ các kết quả phát hiện đã cắt.
recordsint5Tổng số lượng phát hiện để kích hoạt email thông báo từ hệ thống cảnh báo an ninh.
vision_pointtuple[int, int](20, 20)Điểm mà tại đó thị giác máy tính sẽ theo dõi các đối tượng và vẽ đường đi bằng cách sử dụng VisionEye Solution.
sourcestrNoneĐường dẫn đến nguồn đầu vào (video, RTSP, v.v.). Chỉ có thể sử dụng với giao diện dòng lệnh (CLI) của Solutions.
figsizetuple[int, int](12.8, 7.2)Kích thước hình ảnh cho các biểu đồ phân tích như bản đồ nhiệt hoặc đồ thị.
fpsfloat30.0Số khung hình trên giây được sử dụng để tính toán tốc độ.
max_histint5Số điểm lịch sử tối đa cần theo dõi trên mỗi đối tượng để tính toán tốc độ/hướng.
meter_per_pixelfloat0.05Hệ số tỷ lệ được sử dụng để chuyển đổi khoảng cách pixel sang đơn vị thực tế.
max_speedint120Giới hạn tốc độ tối đa trong các lớp phủ hình ảnh (được sử dụng trong cảnh báo).
datastr'images'Đường dẫn đến thư mục hình ảnh được sử dụng để tìm kiếm sự tương đồng.

Hướng dẫn Solutions

Cài đặt tăng cường dữ liệu

Các kỹ thuật Tăng cường dữ liệu là rất cần thiết để cải thiện độ bền bỉ và hiệu năng của model YOLO bằng cách giới thiệu sự thay đổi vào dữ liệu huấn luyện, giúp model tổng quát hóa tốt hơn với dữ liệu chưa từng thấy. Bảng dưới đây phác thảo mục đích và tác động của từng đối số tăng cường:

Đối sốLoạiMặc địnhCác tác vụ được hỗ trợPhạm viMô tả
hsv_hfloat0.015detect, segment, pose, obb, classify0.0 - 1.0Điều chỉnh sắc độ (hue) của hình ảnh theo một phần của vòng màu, giới thiệu sự biến đổi về màu sắc. Giúp model tổng quát hóa tốt hơn trong các điều kiện ánh sáng khác nhau.
hsv_sfloat0.7detect, segment, pose, obb, classify0.0 - 1.0Thay đổi độ bão hòa (saturation) của hình ảnh theo một tỷ lệ, ảnh hưởng đến cường độ của màu sắc. Hữu ích cho việc mô phỏng các điều kiện môi trường khác nhau.
hsv_vfloat0.4detect, segment, pose, obb, classify0.0 - 1.0Thay đổi giá trị (độ sáng) của hình ảnh theo một tỷ lệ, giúp model hoạt động tốt dưới các điều kiện ánh sáng khác nhau.
degreesfloat0detect, segment, pose, obb0.0 - 180Xoay hình ảnh ngẫu nhiên trong phạm vi độ được chỉ định, cải thiện khả năng nhận diện đối tượng ở nhiều hướng khác nhau của model.
translatefloat0.1detect, segment, pose, obb0.0 - 1.0Dịch chuyển hình ảnh theo chiều ngang và chiều dọc theo một tỷ lệ của kích thước hình ảnh, hỗ trợ việc học cách phát hiện các đối tượng bị hiển thị một phần.
scalefloat0.5detect, segment, pose, obb, classify0 - 1Thay đổi tỷ lệ hình ảnh theo hệ số tăng, mô phỏng các đối tượng ở các khoảng cách khác nhau so với camera.
shearfloat0detect, segment, pose, obb-180 - +180Biến dạng cắt (shear) hình ảnh theo một độ nhất định, bắt chước hiệu ứng khi đối tượng được quan sát từ các góc độ khác nhau.
perspectivefloat0detect, segment, pose, obb0.0 - 0.001Áp dụng một phép biến đổi phối cảnh ngẫu nhiên lên hình ảnh, nâng cao khả năng hiểu các đối tượng trong không gian 3D của model.
flipudfloat0detect, segment, pose, obb, classify0.0 - 1.0Lật ngược hình ảnh theo xác suất được chỉ định, giúp tăng độ biến thiên dữ liệu mà không ảnh hưởng đến các đặc trưng của đối tượng.
fliplrfloat0.5detect, segment, pose, obb, classify0.0 - 1.0Lật hình ảnh từ trái sang phải theo xác suất được chỉ định, hữu ích cho việc học các đối tượng đối xứng và tăng sự đa dạng cho tập dữ liệu.
bgrfloat0detect, segment, pose, obb0.0 - 1.0Đảo kênh hình ảnh từ RGB sang BGR theo xác suất được chỉ định, hữu ích để tăng tính bền vững đối với việc sắp xếp kênh không chính xác.
mosaicfloat1detect, segment, pose, obb0.0 - 1.0Kết hợp bốn hình ảnh huấn luyện thành một, mô phỏng các bố cục cảnh và tương tác đối tượng khác nhau. Rất hiệu quả cho việc hiểu các bối cảnh phức tạp.
mixupfloat0detect, segment, pose, obb0.0 - 1.0Trộn hai hình ảnh và nhãn của chúng, tạo thành một hình ảnh tổng hợp. Nâng cao khả năng tổng quát hóa của model bằng cách thêm nhiễu nhãn và biến thiên thị giác.
cutmixfloat0detect, segment, pose, obb0.0 - 1.0Kết hợp các phần của hai hình ảnh, tạo ra sự pha trộn một phần trong khi vẫn duy trì các vùng riêng biệt. Tăng cường tính bền vững của model bằng cách tạo ra các kịch bản che khuất.
copy_pastefloat0segment0.0 - 1.0Sao chép và dán các đối tượng qua các hình ảnh để tăng số lượng đối tượng mẫu.
copy_paste_modestrflipsegment-Chỉ định chiến lược copy-paste cần sử dụng. Các tùy chọn bao gồm 'flip''mixup'.
auto_augmentstrrandaugmentclassify-Áp dụng chính sách tăng cường được xác định trước ('randaugment', 'autoaugment', hoặc 'augmix') để nâng cao hiệu suất model thông qua sự đa dạng thị giác.
erasingfloat0.4classify0.0 - 1.0Xóa ngẫu nhiên các vùng của hình ảnh trong quá trình huấn luyện để khuyến khích model tập trung vào các đặc trưng ít rõ ràng hơn.
augmentationslist``detect, segment, pose, obb-Các biến đổi Albumentations tùy chỉnh cho việc tăng cường dữ liệu nâng cao (chỉ dùng cho Python API). Chấp nhận một danh sách các đối tượng biến đổi cho các nhu cầu tăng cường chuyên biệt.

Điều chỉnh các cài đặt này để đáp ứng các yêu cầu về dữ liệu và tác vụ. Thử nghiệm với các giá trị khác nhau có thể giúp tìm ra chiến lược tăng cường tối ưu để đạt được hiệu suất model tốt nhất.

Hướng dẫn Tăng cường dữ liệu

Cài đặt Ghi nhật ký, Điểm kiểm tra và Vẽ đồ thị

Việc ghi nhật ký, điểm kiểm tra, vẽ đồ thị và quản lý tệp là rất quan trọng khi huấn luyện một model YOLO:

  • Ghi nhật ký (Logging): Theo dõi tiến trình của model và chẩn đoán các vấn đề bằng cách sử dụng các thư viện như TensorBoard hoặc ghi vào tệp.
  • Điểm kiểm tra (Checkpoints): Lưu model theo các khoảng thời gian đều đặn để tiếp tục huấn luyện hoặc thử nghiệm với các cấu hình khác nhau.
  • Vẽ đồ thị (Plotting): Trực quan hóa hiệu suất và tiến trình huấn luyện bằng cách sử dụng các thư viện như Matplotlib hoặc TensorBoard.
  • Quản lý tệp (File management): Tổ chức các tệp được tạo trong quá trình huấn luyện, chẳng hạn như điểm kiểm tra, tệp nhật ký và biểu đồ, để dễ dàng truy cập và phân tích.

Việc quản lý hiệu quả các khía cạnh này giúp theo dõi tiến trình và làm cho việc gỡ lỗi và tối ưu hóa trở nên dễ dàng hơn.

Đối sốMặc địnhMô tả
project'runs'Chỉ định thư mục gốc để lưu các lần chạy huấn luyện. Mỗi lần chạy được lưu trong một thư mục con riêng biệt.
name'exp'Xác định tên thử nghiệm. Nếu không được chỉ định, YOLO sẽ tăng số thứ tự cho tên này trong mỗi lần chạy (ví dụ: exp, exp-2) để tránh ghi đè.
exist_okFalseXác định xem có ghi đè thư mục thử nghiệm hiện có hay không. True cho phép ghi đè; False ngăn chặn điều đó.
plotsTrueKiểm soát việc tạo và lưu các biểu đồ huấn luyện và xác thực. Thiết lập thành True để tạo các biểu đồ như đường cong loss, đường cong precision-recall và các dự đoán mẫu để theo dõi hiệu suất bằng mắt.
saveTrueCho phép lưu các điểm kiểm tra huấn luyện và trọng số model cuối cùng. Thiết lập thành True để lưu trạng thái model định kỳ, cho phép tiếp tục huấn luyện hoặc triển khai model.

Tệp cấu hình tùy chỉnh

Tải YAML đã lưu để sử dụng lại toàn bộ các đối số mà không cần truyền trực tiếp. Đối số cfg ghi đè các giá trị từ default.yaml, trong khi các đối số bổ sung được truyền kèm vẫn sẽ được ưu tiên.

Đối sốMặc địnhMô tả
cfgNoneĐường dẫn đến tệp YAML có các giá trị thay thế cho các mục trong default.yaml. Xem Ghi đè tệp cấu hình mặc định để biết ví dụ CLI đã thực hiện.

Câu hỏi thường gặp (FAQ)

Làm thế nào để cải thiện hiệu suất model YOLO của tôi trong khi huấn luyện?

Cải thiện hiệu suất bằng cách tinh chỉnh các siêu tham số như batch size, learning rate, momentum và weight decay. Điều chỉnh các cài đặt data augmentation, chọn trình tối ưu hóa phù hợp và sử dụng các kỹ thuật như dừng sớm hoặc mixed precision. Để biết chi tiết, xem Hướng dẫn Huấn luyện.

Đâu là các siêu tham số chính cho độ chính xác của model YOLO?

Các siêu tham số chính ảnh hưởng đến độ chính xác bao gồm:

  • Batch Size (batch): Kích thước lớn hơn có thể ổn định quá trình huấn luyện nhưng cần nhiều bộ nhớ hơn.
  • Learning Rate (lr0): Tốc độ nhỏ hơn giúp điều chỉnh tinh vi nhưng hội tụ chậm hơn.
  • Momentum (momentum): Tăng tốc các vectơ gradient, làm giảm dao động.
  • Image Size (imgsz): Kích thước lớn hơn cải thiện độ chính xác nhưng tăng tải tính toán.

Điều chỉnh các thông số này dựa trên tập dữ liệu và phần cứng của bạn. Tìm hiểu thêm trong Cài đặt Huấn luyện.

Làm thế nào để cài đặt learning rate cho việc huấn luyện model YOLO?

Tốc độ học (lr0) là rất quan trọng; bắt đầu với 0.01 cho SGD hoặc 0.001 cho Adam optimizer. Giám sát các chỉ số và điều chỉnh khi cần thiết. Sử dụng các bộ lập lịch tốc độ học cosine (cos_lr) hoặc warmup (warmup_epochs, warmup_momentum). Chi tiết có trong Hướng dẫn Huấn luyện.

Các cài đặt mặc định cho việc suy luận (inference) model YOLO là gì?

Các cài đặt mặc định bao gồm:

  • Confidence Threshold (conf=0.25): Độ tin cậy tối thiểu cho các phát hiện.
  • IoU Threshold (iou=0.7): Dành cho Non-Maximum Suppression (NMS).
  • Image Size (imgsz=640): Thay đổi kích thước hình ảnh đầu vào.
  • Device (device=None): Chọn CPU, GPU, Apple MPS hoặc Huawei Ascend NPU (npu).

Để có cái nhìn tổng quan đầy đủ, hãy xem Cài đặt Dự đoánHướng dẫn Dự đoán.

Tại sao nên sử dụng huấn luyện mixed precision với các model YOLO?

Huấn luyện Mixed precision (amp=True) giúp giảm sử dụng bộ nhớ và tăng tốc độ huấn luyện bằng cách sử dụng FP16 và FP32. Nó mang lại lợi ích cho các GPU hiện đại, cho phép sử dụng các model lớn hơn và tính toán nhanh hơn mà không làm giảm đáng kể độ chính xác. Tìm hiểu thêm trong Hướng dẫn Huấn luyện.

Bình luận