YOLO Vision 2026:

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 model. Các cài đặt này có thể ảnh hưởng đến hành vi của model ở nhiều giai đoạn khác nhau, bao gồm huấn luyện (training), xác thực (validation) và dự đoán (prediction).



Watch: Mastering Ultralytics YOLO: Configuration

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

Ví dụ
yolo TASK MODE ARGS

Trong đó:

Các giá trị ARG mặc định được định nghĩa trên trang này và lấy từ tệp cfg/default.yaml.

Tác vụ#

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

  • Detect: Phát hiện đối tượng xác định và định vị các đối tượng trong một hình ảnh hoặc video.
  • Segment: Phân đoạn thực thể chia một hình ảnh hoặc video thành các vùng tương ứng với các đối tượng hoặc lớp (class) khác nhau.
  • Phân đoạn ngữ nghĩa (semantic): Phân đoạn ngữ nghĩa gán nhãn lớp cho từng pixel trong hình ảnh nhằm hiểu sâu về cảnh.
  • Độ sâu (depth): Ước tính độ sâu đơn mắt dự đoán bản đồ độ sâu tính theo mét cho từng pixel từ một hình ảnh RGB duy nhất.
  • Classify: Phân loại hình ảnh dự đoán nhãn lớp của hình ảnh đầu vào.
  • Pose: Ước tính tư thế xác định các đối tượng và ước tính các điểm mốc (keypoint) của chúng trong hình ảnh hoặc video.
  • OBB: Hộp bao có định hướng sử dụng các hộp bao được xoay, phù hợp cho ảnh vệ tinh hoặc ảnh y tế.
Đối sốMặc địnhMô tả
task'detect'Chỉ định tác vụ YOLO: detect cho phát hiện đối tượng, segment cho phân đoạn thực thể, semantic cho phân đoạn ngữ nghĩa, depth cho ước tính độ sâu đơn mắt, classify cho phân loại, pose cho ước tính tư thế và obb cho hộp bao có định hướng. Mỗi tác vụ được thiết kế riêng cho các đầu ra và bài toán cụ thể trong phân tích hình ảnh và video.

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

Các Chế độ (Modes)#

Các model 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 model:

  • Train: Huấn luyện model YOLO trên tập dữ liệu tùy chỉnh.
  • Val: Kiểm thử (validate) một model YOLO đã huấn luyện.
  • Predict: Sử dụng model YOLO đã huấn luyện để thực hiện dự đoán trên ảnh hoặc video mới.
  • Export: Xuất model YOLO để triển khai.
  • Track: Theo dõi các đối tượng trong thời gian thực bằng model YOLO.
  • Benchmark: Đánh giá tốc độ và độ chính xác của các bản xuất YOLO (ONNX, TensorRT, v.v.).
Đối sốMặc địnhMô tả
mode'train'Chỉ định chế độ hoạt động của model YOLO: train để huấn luyện model, val để xác thực, predict để suy luận (inference), 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 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 của model. Các cài đặt chính bao gồm kích thước batch, tốc độ học, độ động lượng (momentum) và suy giảm trọng số (weight decay). Việc lựa chọn trình tối ưu hóa (optimizer), hàm mất mát và thành phần tập dữ liệu cũng ảnh hưởng đến quá trình huấn luyện. Tinh chỉnh và thử nghiệm là rất quan trọng để đạt hiệu suất tối ưu. Để biết thêm chi tiết, hãy xem hàm điểm đầu vào của Ultralytics.

Đối sốLoạiMặc địnhMô tả
modelstrNoneChỉ định file model dùng để huấn luyện. Chấp nhận đường dẫn đến model được huấn luyện sẵn .pt hoặc file cấu hình .yaml. Rất cần thiết để xác định cấu trúc model hoặc khởi tạo trọng số.
datastrNoneĐường dẫn đến file cấu hình tập dữ liệu (ví dụ: coco8.yaml). File này chứa các tham số dành riêng cho tập dữ liệu, bao gồm đường dẫn đến dữ liệu xác thực và dữ liệu huấn luyện, tên các 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ần duyệt qua toàn bộ tập dữ liệu. Đ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 của model.
timefloatNoneThời gian huấn luyện tối đa tính bằng giờ. Nếu được thiết lập, tham số này sẽ ghi đè đối số epochs, cho phép quá trình huấn luyện tự động dừng sau khoảng thời gian chỉ định. Hữu ích cho các kịch bản huấn luyện bị giới hạn thời gian.
patienceint100Số lượng epoch chờ đợi mà không có sự cải thiện trong các số liệu xác thực trước khi dừng sớm (early stopping) quá trình huấn luyện. Giúp ngăn chặn hiện tượng quá khớp (overfitting) bằng cách dừng huấn luyện khi hiệu suất chững lại.
batchint hoặc float16Kích thước batch 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 phân số sử dụng được chỉ định (batch=0.70).
imgszint640Kích thước ảnh mục tiêu để huấn luyện. Ảnh được đổ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 là rect=False), giữ nguyên tỷ lệ khung hình đối với các model YOLO nhưng không áp dụng cho RT-DETR. Ảnh hưởng đến độ chính xác và độ phức tạp tính toán của model.
saveboolTrueCho phép lưu các điểm kiểm tra (checkpoint) huấn luyện và trọng số model cuối cùng. Hữu ích cho việc tiếp tục huấn luyện hoặc triển khai model.
save_periodint-1Tần suất lưu checkpoint model, được chỉ định theo epoch. Giá trị -1 sẽ vô hiệu hóa tính năng này. Hữu ích để lưu các model trung gian trong các phiên huấn luyện dài.
cacheboolFalseCho phép lưu đệm (cache) ảnh tập dữ liệu vào bộ nhớ (True/ram), trên đĩa (disk) hoặc tắt tính năng này (False). Cải thiện tốc độ huấn luyện bằng cách giảm thao tác I/O đĩa đổi lại việc 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 cho việc huấn luyện: một GPU đơn (device=0), nhiều GPU (device=[0,1]), CPU (device=cpu), MPS cho Apple silicon (device=mps), Huawei Ascend NPU (device=npu:0 hoặc device=npu:0,1) hoặc tự động chọn GPU đang rảnh (device=-1) hoặc nhiều GPU đang rảnh (device=[-1,-1]).
workersint8Số luồng worker để nạp 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 model, đặc biệt hữu ích trong các thiết lập đa GPU.
projectstrNoneTên của thư mục dự án nơi lưu trữ kết quả huấn luyện. Cho phép lưu trữ có tổ chức các thử nghiệm khác nhau.
namestrNoneTên của lần chạy huấn luyện. Được sử dụng để tạo thư mục con bên trong thư mục dự án, nơi lưu trữ nhật ký huấn luyện và các kết quả đầu ra.
exist_okboolFalseNếu True, cho phép ghi đè thư mục dự án/tên hiện có. Hữu ích cho việc thử nghiệm lặp đi lặp lại mà không cần xóa các kết quả trước đó theo cách thủ công.
save_dirstrNoneChỉ định thư mục chính xác nơi lưu các kết quả chạy, ghi đè tổ hợp project/name. Đường dẫn được sử dụng nguyên trạng mà không tự động tăng số thứ tự, do đó các lần chạy liên tiếp sẽ sử dụng lại cùng một thư mụ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 sẵn hay không. Có thể là giá trị boolean hoặc đường dẫn chuỗi tới trọng số cần tải. pretrained=False tiến hành huấn luyện từ các trọng số được khởi tạo ngẫu nhiên trong khi vẫn giữ nguyên kiến trúc model.
cls_remapboolTrueKhi fine-tune trên các dataset khác nhau, sao chép các hàng head phân loại đã pretrained vào model mới bất cứ khi nào tên class khớp nhau, do đó các class trùng lặp giữ nguyên độ lệch đã học cùng với trọng số của chúng khi chiều rộng head không đổi. Áp dụng cho dù số lượng class khác nhau hay trùng khớp với thứ tự class khác.
optimizerstr'auto'Lựa chọn trình tối ưu hóa (optimizer) cho việc huấn luyện. Các tùy chọn bao gồm SGD, MuSGD, Adam, Adamax, AdamW, NAdam, RAdam, RMSProp hoặc auto để tự động lựa chọn dựa trên cấu hình model. Ảnh hưởng đến tốc độ hội tụ và độ ổn định.
seedint0Đặt hạt giống ngẫu nhiên cho huấn luyện, đảm bảo khả năng tái lập kết quả qua 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 khả năng 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, các số liệu theo từng 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 bộ 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 ID các 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 padding tối thiểu — các ảnh trong một batch được padding 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 suất và tốc độ nhưng có thể ảnh hưởng đến độ chính xác của model.
multi_scalefloat0.0Biến đổi ngẫu nhiên imgsz cho mỗi batch bằng +/- multi_scale (ví dụ: 0.25 -> 0.75x đến 1.25x), làm tròn thành các bội số của sải bước (stride) model; 0.0 tắt tính năng huấn luyện đa tỷ lệ (multi-scale).
cos_lrboolFalseSử dụng bộ lập lịch tốc độ học theo đường cong 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 độ hội tụ tốt hơn.
close_mosaicint10Tắt tăng cường dữ liệu mosaic trong N epoch cuối cùng để ổn định quá trình huấn luyện trước khi hoàn tất. Đặt giá trị thành 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ố epoch, giúp quá trình huấn luyện tiếp diễn liền mạch.
ampboolTrueBật huấn luyện Hỗn hợp độ chính xác tự động (AMP), giúp giảm mức sử dụng bộ nhớ và có khả năng tăng tốc độ huấn luyện với tác động tối thiểu đến độ chính xác.
fractionfloat1.0Chỉ định tỷ lệ của bộ 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 toàn bộ dữ liệu, hữu ích cho các thử nghiệm hoặc khi tài nguyên bị giới hạn.
profileboolFalseBậ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 (freeze) N lớp đầu tiên của model hoặc các lớp được chỉ định theo chỉ mục, làm giảm số lượng tham số có thể huấn luyện. Hữu ích cho việc tinh chỉnh (fine-tuning) hoặc học chuyển giao (transfer learning).
lr0float0.01Tốc độ học ban đầu (tức là SGD=1E-2, Adam=1E-3). Điều chỉnh giá trị này là tối 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ố model.
lrffloat0.01Tốc độ học cuối cùng dưới dạng phân số 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ố động lượng (momentum) cho SGD hoặc beta1 cho các trình tối ưu hóa Adam, ảnh hưởng đến việc kết hợp các gradient trước đó vào bản cập nhật hiện tại.
weight_decayfloat0.0005Thành phần điều chuẩn (regularization) L2, xử phạt các trọng số lớn để ngăn chặn hiện tượng quá khớp.
warmup_epochsfloat3.0Số lượng epoch cho quá trình khởi động (warmup) tốc độ học, tăng dần tốc độ học từ một giá trị thấp lên tốc độ học ban đầu để ổn định quá trình huấn luyện ngay từ đầu.
warmup_momentumfloat0.8Động lượng ban đầu cho giai đoạn khởi động, điều chỉnh dần dần về động lượng đã thiết lập trong suốt thời gian khởi động.
warmup_bias_lrfloat0.1Tốc độ học cho các tham số bias trong giai đoạn khởi động, giúp ổn định quá trình huấn luyện model trong các epoch đầu tiên.
distill_modelstrNoneĐường dẫn đến điểm kiểm tra của model giáo viên (ví dụ: yolo26x.pt) phục vụ chưng cất kiến thức (knowledge distillation). Khi được thiết lập, model học sinh sẽ được huấn luyện với một tổn thất chưng cất bổ sung được dẫn dắt bởi model giáo viên đã đóng băng.
disfloat6.0Trọng số của hàm mất mát chưng cất được thêm vào các hàm mất mát phát hiện tiêu chuẩn. Các giá trị cao hơn sẽ làm tăng ảnh hưởng từ sự dẫn dắt đặc trưng của giáo viên.
boxfloat7.5Trọng số của thành phần tổn thất hộp trong hàm mất mát, ảnh hưởng đến mức độ tập trung vào việc dự đoán chính xác tọa độ hộp bao (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.0Số mũ cho trọng số lớp nhằm xử lý mất cân bằng lớp bằng cách sử dụng tần suất lớp nghịch đảo. 0.0 tắt trọng số lớp, 1.0 áp dụng trọng số tần suất nghịch đảo hoàn toàn. 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 (DFL), một thành phần định vị bounding box giúp hồi quy khoảng cách các cạnh của hộp.
posefloat12.0Trọng số của loss pose trong các model được huấn luyện cho tác vụ ước tính tư thế (pose estimation), ảnh hưởng đến sự chú trọng vào việc dự đoán chính xác các điểm mấu chốt của tư thế.
kobjfloat1.0Trọng số của loss objectness cho keypoint trong các model ước tính tư thế, cân bằng độ tin cậy phát hiện với độ chính xác của tư thế.
rlefloat1.0Trọng số của loss ước tính log-likelihood thặng dư 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 mấu chốt.
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.
dlogfloat1.0Trọng số của hàm loss logarithmic bất biến theo tỷ lệ (SILog) trong các model ước lượng độ sâu, thuật ngữ chính thúc đẩy độ chính xác độ sâu.
dgradfloat0.5Trọng số của hàm loss gradient trong các model ước lượng độ sâu, phạt các lỗi ở biên độ sâu và khuyến khích ranh giới bề mặt sắc nét hơn.
dlamfloat1.0Hệ số tập trung phương sai của tổn thất SILog trong các model ước tính độ sâu. 1.0 làm cho tổn thất bất biến theo tỷ lệ hoàn toàn, trong khi 0.0 rút gọn nó thành log-RMSE thông thường.
nbsint64Kích thước batch danh định cho việc chuẩn hóa loss.
overlap_maskboolTrueXác định xem các mask đối tượng nên được hợp nhất thành một mask duy nhất cho việc huấn luyện hay giữ riêng biệt cho từng đối tượng. Trong trường hợp chồng chéo, mask nhỏ hơn sẽ được phủ lên trên mask lớn hơn trong quá trình hợp nhất.
mask_ratioint4Tỷ lệ downsample cho các mask phân đoạn, ảnh hưởng đến độ phân giải của các mask đượ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 quá khớp bằng cách loại bỏ ngẫu nhiên các đơn vị trong quá trình huấn luyện.
valboolTrueBật tính năng 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 bộ dữ liệu riêng biệt.
plotsboolTrueTạo và lưu các biểu đồ về số liệu huấn luyện và xác thực, cũng như các ví dụ dự đoán, cung cấp thông tin trực quan về hiệu suất của model và tiến trình học tập.
compilebool hoặc strFalseBật biên dịch đồ thị torch.compile của PyTorch 2.x với backend='inductor'. Chấp nhận True"default", False → tắt, hoặc chế độ chuỗi như "default", "reduce-overhead", "max-autotune-no-cudagraphs". Chuyển về chế độ eager kèm theo cảnh báo nếu không được hỗ trợ.
channels_lastboolFalseSử dụng định dạng bộ nhớ channels_last (NHWC) cho các phép tích chập trong quá trình training, giúp tăng tốc các GPU CUDA Tensor Core mà không làm thay đổi kết quả. Tự động bỏ qua trên CPU và MPS, nơi định dạng này không mang lại lợi ích.
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ài đặt 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 cho 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 phân số sử dụng: Đặt một phân số (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. Các cài đặt chính bao gồm ngưỡng độ tin cậy, ngưỡng Tri tiêu cực phi tối đa - 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ổ trợ như mặt nạ (mask) cũng ảnh hưởng đến kết quả dự đoán. Tinh chỉnh các cài đặt này là rất cần thiết để đạt hiệu suất tối ưu.

Các đối số suy luận:

Đố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, file video, thư mục, URL hoặc ID thiết bị cho các luồng trực tiếp. Nếu bỏ qua, một cảnh báo sẽ được ghi lại và model sẽ chuyển về sử dụng tài nguyên demo tích hợp sẵn (ultralytics/assets, hoặc URL demo cho OBB). Hỗ trợ nhiều loại định dạng và nguồn dữ liệu, cho phép ứng dụng linh hoạt trên các loại đầu vào khác nhau.
conffloat0.25Thiết lập ngưỡng tin cậy tối thiểu cho các lần 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ỏ. Đ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). 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 chéo, hữu ích để giảm các mục bị trùng lặp.
imgszint hoặc tuple640Mục tiêu Letterbox. Một số nguyên cho ra hình vuông N×N; một tuple cho ra (height, width). Với rect=True, tensor thực tế có thể nhỏ hơn mục tiêu này do padding hình chữ nhật tối thiểu. Sử dụng rect=False cho kích thước cố định. Xem Hình dạng cố định so với hình chữ nhật tối thiểu.
rectboolTrueNếu là True, hãy 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 là False, luôn padding đến toàn bộ imgsz. Xem Hình dạng cố định so với hình chữ nhật tối thiểu.
quantizeint hoặc strNoneĐộ chính xác suy luận: 16/"fp16" bật suy luận FP16 trên các GPU được hỗ trợ; 32/"fp32"/bỏ trống là FP32. Lượng tử hóa INT8/PTQ được cấu hình trong quá trình xuất model, sau đó được sử dụng bằng cách tải model đã xuất. Thay thế cờ half đã lỗi thời.
devicestrNoneChỉ định thiết bị để suy luận (ví dụ: cpu, cuda:0, 0, npu hoặc npu:0). Cho phép người dùng lựa chọn giữa CPU, một GPU cụ thể, Huawei Ascend NPU 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, file video hoặc file .txt). Kích thước batch lớn hơn có thể cung cấp thông 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 suy luận, tránh đầu ra quá mức trong các cảnh dày đặc đối tượng.
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ý với cái giá là độ phân giải thời gian. Giá trị 1 xử lý mọi khung hình, giá trị cao hơn sẽ bỏ qua khung hình.
stream_bufferboolFalseXác định xem có xếp hàng đợi các khung hình đến đối với luồng video hay không. Nếu là False, các khung hình cũ sẽ bị loại bỏ để nhường chỗ cho khung hình mới (được tối ưu hóa cho các ứng dụng thời gian thực). Nếu là True, xếp hàng đợi các khung hình mới vào một 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 suy luận thấp hơn FPS của luồng.
visualizeboolFalseLưu một bản đồ nhiệt kích hoạt lớp (class activation heatmap) cạnh mỗi dự đoán, hiển thị những pixel nào làm tăng điểm số lớp được dự đoán. Tuân theo confclasses, do đó classes=[0] chỉ ánh xạ lớp đó. Chỉ khả dụng cho các model PyTorch.
augmentboolFalseKích hoạt tăng cường dữ liệu khi kiểm thử (TTA) cho các dự đoán, có khả năng cải thiện độ ổn định khi phát hiện nhưng làm giảm tốc độ suy luận.
agnostic_nmsboolFalseKích hoạt Non-Maximum Suppression (NMS) không phụ thuộc vào lớp, giúp gộp các hộp 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 các lớp thường chồng lấp. Đối với các model end-to-end (YOLO26, YOLOv10), điều này chỉ ngăn chặn việc 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 hộp 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 mặt nạ phân đoạn độ phân giải cao. Các mặt nạ được trả về (masks.data) sẽ khớp với kích thước ảnh gốc nếu được bật. Nếu bị tắt, chúng có kích thước ảnh được sử dụng trong quá trình suy luận.
embedlist[int]NoneChỉ định các lớp từ đó trích xuất vector đặc trưng hoặc embedding. Sử dụng model.embed(source) cho embedding lớp áp chót, hoặc model.predict(source, embed=[layer]) để chọn các lớp cụ thể. Hữu ích cho các tác vụ hạ nguồn như gom cụm (clustering) hoặc tìm kiếm độ tương đồng.
projectstrNoneTên thư mục dự án nơi lưu trữ các 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 một thư mục con bên trong thư mục dự án, nơi lưu trữ các kết quả dự đoán nếu save được bật.
streamboolFalseKích hoạt xử lý hiệu quả bộ nhớ cho các video dài hoặc nhiều hình ảnh bằng cách trả về một generator các đối tượng Results thay vì tải tất cả các khung hình vào bộ nhớ cùng lúc.
verboseboolTrueKiểm soát việc hiển thị nhật ký suy luận chi tiết trong terminal, cung cấp phản hồi thời gian thực về quá trình dự đoán.
compilebool hoặc strFalseBật biên dịch đồ thị torch.compile của PyTorch 2.x với backend='inductor'. Chấp nhận True"default", False → tắt, hoặc chế độ chuỗi như "default", "reduce-overhead", "max-autotune-no-cudagraphs". Chuyển về chế độ eager kèm theo cảnh báo nếu không được hỗ trợ.
channels_lastboolFalseSử dụng định dạng bộ nhớ channels_last (NHWC) cho các phép tích chập trong quá trình inference, giúp tăng tốc các GPU CUDA Tensor Core mà không làm thay đổi kết quả. Chỉ áp dụng cho các model PyTorch gốc; bị bỏ qua đối với CPU, MPS và các định dạng được xuất ra như TensorRT và ONNX.
end2endboolNoneGhi đè chế độ end-to-end trong các model YOLO hỗ trợ suy luận không cần NMS (YOLO26, YOLOv10). Đặt giá trị thành False cho phép bạn chạy dự đoán sử dụng pipeline NMS truyền thống, đồng thời cho phép bạn tận dụng đối số iou. Xem Hướng dẫn Phát hiện End-to-End để biết chi tiết.

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

Đối sốLoạiMặc địnhMô tả
showboolFalseNếu là True, hiển thị các hình ảnh hoặc video đã được chú thích trong một cửa sổ. Hữu ích để nhận phản hồi trực quan ngay lập tức trong quá trình phát triển hoặc kiểm thử.
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 ghi tài liệu, phân tích thêm hoặc chia sẻ kết quả. Mặc định là True khi sử dụng CLI & False khi sử dụng trong Python.
save_framesboolFalseKhi xử lý video, lưu từng khung hình dưới dạng hình ả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 file văn bản theo định dạng [class] [x_center] [y_center] [width] [height] [confidence]. Hữu ích cho việc tích hợp với các công cụ phân tích khác.
save_confboolFalseBao gồm các điểm số tin cậy trong các tệp văn bản đã lưu. Tăng cường thông tin chi tiết cho việc hậu xử lý và phân tích.
save_cropboolFalseLưu các ảnh cắt của các kết quả phát hiện. Hữu ích cho việc tăng cường dữ liệu, phân tích hoặc tạo tập dữ liệu tập trung cho các đối tượng cụ thể.
show_labelsboolTrueHiển thị nhãn cho mỗi phát hiện trong đầu ra hình ảnh. Cung cấp khả năng nhận biết tức thì các đối tượng được phát hiện.
show_confboolTrueHiển thị điểm số tin cậy (confidence score) cho mỗi phát hiện cùng với nhãn. Cung cấp thông tin chi tiết về độ chắc chắn của model đối với từng phát hiện.
show_boxesboolTrueVẽ các hộp bao quanh các đối tượng được phát hiện. Cần thiết cho việc nhận diện trực quan và xác định vị trí của đối tượng trong ảnh hoặc khung hình video.
line_widthint or NoneNoneChỉ định độ dày đường viền của các hộp bao. Nếu là None, độ dày đường viền được tự động đ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 để dễ quan sát.

Hướng dẫn Dự đoán

Cài đặt Kiểm thử (Validation Settings)#

Các cài đặt xác thực cho model YOLO bao gồm các siêu tham số và cấu hình để đánh giá hiệu suất trên tập dữ liệu xác thực. 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 xác thực và các số liệu hiệu suất. Kích thước và thành phần của tập dữ liệu xác thực, 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 file cấu hình tập dữ liệu (ví dụ: coco8.yaml). File này phải bao gồm đường dẫn đến dữ liệu xác thực.
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.
batchint16Thiết lập số lượng ảnh trên mỗi batch. 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 sẵn có.
save_jsonboolFalseNếu là True, lưu kết quả vào một file 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 phát hiện. Giá trị thấp hơn làm tăng khả năng hồi tưởng (recall) nhưng có thể sinh ra nhiều kết quả dương tính giả hơn. Được sử dụng trong quá trình xác thực để tính toán đường cong độ chính xác - hồi tưởng (precision-recall curve). Mặc định là 0.01 cho việc xác thực OBB nhằm giảm mức sử dụng bộ nhớ.
ioufloat0.7Đặt ngưỡng Intersection Over Union cho Non-Maximum Suppression. Kiểm soát việc loại bỏ các 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 dày đặc đối tượng để ngăn chặn quá nhiều kết quả phát hiện và quản lý tài nguyên tính toán.
quantizeint hoặc strNoneĐộ chính xác xác thực: 16/"fp16" bật xác thực FP16 trên các GPU được hỗ trợ; 32/"fp32"/bỏ trống là FP32. Lượng tử hóa INT8/PTQ được cấu hình trong quá trình xuất model, sau đó được sử dụng bằng cách xác thực model đã xuất. Thay thế cờ half đã lỗi thời.
devicestrNoneChỉ định thiết bị để xác thực (cpu, cuda:0, npu, npu:0, v.v.). Khi là None, tự động chọn thiết bị tốt nhất có sẵn. Có thể chỉ định nhiều thiết bị CUDA bằng cách phân tách bằng dấu phẩy.
dnnboolFalseNếu là True, sử dụng mô-đun DNN của OpenCV để suy luận model ONNX, cung cấp một giải pháp thay thế cho các phương pháp suy luận PyTorch.
plotsboolTrueKhi được đặt thành True, tạo và lưu các biểu đồ so sánh dự đoán với nhãn thực tế (ground truth), ma trận nhầm lẫn (confusion matrix) và đường cong PR để đánh giá trực quan hiệu suất của model.
classeslist[int]NoneChỉ định danh sách các ID lớp để đánh giá. Hữu ích cho việc lọc và chỉ tập trung vào một số lớp nhất định trong quá trình đánh giá.
rectboolTrueNếu là True, sử dụng suy luận theo hình chữ nhật để gom batch, làm giảm padding và có khả năng tăng tốc độ cũng như hiệu suất bằng cách xử lý ảnh theo tỷ lệ khung hình gốc của chúng.
splitstr'val'Xác định phân chia tập dữ liệu được sử dụng để xác thực (val, test hoặc train). Mang lại sự linh hoạt trong việc lựa 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 các đầu ra xác thực. 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ượt xác thực. Được sử dụng để tạo thư mục con bên trong thư mục dự án, nơi lưu trữ các log và kết quả xác thực.
verboseboolTrueNếu là True, hiển thị thông tin chi tiết trong quá trình xác thực, bao gồm các số liệu theo từng lớp, tiến độ batch và thông tin gỡ lỗi bổ sung.
save_txtboolFalseNếu là True, lưu kết quả phát hiện vào các file văn bản, với mỗi file tương ứng một ảnh, hữu ích cho việc phân tích thêm, hậu xử lý tùy chỉnh hoặc tích hợp với các hệ thống khác.
save_confboolFalseNếu là True, bao gồm các giá trị độ tin cậy trong các file văn bản đã lưu khi save_txt được bật, cung cấp đầu ra chi tiết hơn cho việc 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.
augmentboolFalseBật tăng cường thời gian kiểm thử (TTA - test-time augmentation) trong quá trình xác thực, có khả năng cải thiện độ chính xác phát hiện nhưng đánh đổi bằng tốc độ suy luận (inference) do chạy suy luận trên các phiên bản đã biến đổi của đầu vào.
agnostic_nmsboolFalseBật Non-Maximum Suppression bất chấp lớp, tính năng này hợp nhất các hộp chồng chéo 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 thực thể. Đối với các model end-to-end (YOLO26, YOLOv10), điều này chỉ ngăn chặn cùng một phát hiện xuất hiện với nhiều nhãn lớp (các bản sao có IoU=1.0) chứ không thực hiện tri tiêu chuẩn dựa trên ngưỡng IoU giữa các hộp riêng biệt.
single_clsboolFalseXem tất cả các lớp là một lớp duy nhất trong quá trình xác thực. Hữu ích để đánh giá hiệu suất model trên các tác vụ phát hiện nhị phân hoặc khi sự phân biệt lớp không quan trọng.
visualizeboolFalseTrực quan hóa ground truth, true positive, false positive và false negative cho mỗi hình ảnh. Hữu ích cho việc gỡ lỗi và diễn giải model.
show_labelsboolTrueHiển thị nhãn lớp trong các hình ảnh trực quan hóa xác thực khi là visualize=True. Đặt thành False để có góc nhìn rõ ràng hơn về các điểm khớp và lỗi.
show_confboolTrueHiển thị điểm số độ tin cậy trong các hình ảnh trực quan hóa xác thực khi là visualize=True. Đặt thành False để có góc nhìn rõ ràng hơn về các điểm khớp và lỗi.
compilebool hoặc strFalseBật biên dịch đồ thị torch.compile của PyTorch 2.x với backend='inductor'. Chấp nhận True"default", False → tắt, hoặc chế độ chuỗi như "default", "reduce-overhead", "max-autotune-no-cudagraphs". Chuyển về chế độ eager kèm theo cảnh báo nếu không được hỗ trợ.
channels_lastboolFalseSử dụng định dạng bộ nhớ channels_last (NHWC) cho các phép tích chập trong quá trình validation, giúp tăng tốc các GPU CUDA Tensor Core mà không làm thay đổi kết quả. Chỉ áp dụng cho các model PyTorch gốc; bị bỏ qua đối với CPU, MPS và các định dạng đã xuất như TensorRT và ONNX.
end2endboolNoneGhi đè chế độ end-to-end trong các model YOLO hỗ trợ suy luận không cần NMS (YOLO26, YOLOv10). Đặt giá trị thành False cho phép bạn chạy xác thực sử dụng pipeline NMS truyền thống, đồng thời cho phép bạn tận dụng đối số iou.

Tinh chỉnh cẩn thận và thử nghiệm 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 hiện tượng quá khớp (overfitting).

Hướng dẫn Val

Cài đặt xuất (Export)#

Cài đặt xuất cho các model YOLO bao gồm các cấu hình để lưu hoặc xuất model nhằm 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 ràng buộc của môi trường đích cũng ảnh hưởng đến quá trình xuất.

Đối sốLoạiMặc địnhMô tả
formatstr'torchscript'Định dạng mục tiêu cho model được xuất, chẳng hạn như 'onnx', 'torchscript', 'engine' (TensorRT) hoặc các định dạng khác. Mỗi định dạng mang lại khả năng 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 của model. Có thể là một số nguyên cho ả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ể.
kerasboolFalseBật xuất sang định dạng Keras cho TensorFlow SavedModel, cung cấp khả năng tương thích với TensorFlow serving và các API.
optimizeboolFalseCho phép tối ưu hóa trình biên dịch cao hơn cho DEEPX, giúp giảm độ trễ inference trong khi tăng thời gian biên dịch.
quantizeint hoặc strNoneĐộ chính xác lượng tử hóa: 16 (FP16, giảm kích thước model và có thể tăng tốc độ suy luận trên phần cứng được hỗ trợ) hoặc 8 (INT8/PTQ, nén model hơn nữa với mức suy giảm độ chính xác tối thiểu, chủ yếu cho thiết bị biên (edge device); cần hiệu chuẩn data/fraction); 32/bỏ trống là FP32. Các định dạng xuất hỗ trợ độ chính xác trọng số/activation hỗn hợp cũng chấp nhận ký hiệu 'w8a8'/'w16a16'/'w8a16'/'w8a32'. Thay thế các cờ half/int8 đã lỗi thời (half=True16, int8=True8, vẫn được chấp nhận kèm theo cảnh báo lỗi thời). Chỉ cho phép các mức độ chính xác được hỗ trợ bởi định dạng mục tiêu (xem bên dưới).
dynamicboolFalseCho phép kích thước đầu vào động đối với các định dạng xuất TorchScript, ONNX, OpenVINO, TensorRT và CoreML, giúp tăng tính linh hoạt khi xử lý các kích thước ảnh khác nhau.
simplifyboolTrueĐơn giản hóa đồ thị ONNX trung gian với onnxslim đối với các bản xuất có tạo đồ thị này (xem Định dạng Xuất), có khả năng cải thiện hiệu suất và khả năng tương thích với các công cụ suy luận.
opsetintNoneChỉ định phiên bản ONNX opset cho các bản xuất tạo đồ thị ONNX (xem Định dạng Xuất), nhằm tương thích với các bộ phân tích cú pháp và runtime ONNX khác nhau. Nếu không được đặt, sử dụng phiên bản được hỗ trợ mới nhất.
workspacefloat hoặc NoneNoneĐặt kích thước vùng làm việc tối đa tính bằng GiB cho các tối ưu hóa TensorRT, cân bằng giữa việc sử dụng bộ nhớ và hiệu suất. Sử dụng None để TensorRT tự động phân bổ lên đến mức tối đa của thiết bị.
nmsboolFalseThêm Non-Maximum Suppression (NMS) vào model được xuất khi được hỗ trợ (xem Định dạng Xuất), giúp cải thiện hiệu quả hậu xử lý phát hiện. Không khả dụng cho các model end2end. Đối với CoreML, chỉ được hỗ trợ cho các model phát hiện.
batchint1Chỉ định kích thước suy luận batch của model xuất hoặc số lượng ảnh tối đa mà model được 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 thành 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, nhưng TensorRT 11.0 không hỗ trợ DLA.
datastrNoneĐường dẫn đến file cấu hình tập dữ liệu, rất quan trọng cho việc hiệu chuẩn lượng tử hóa INT8. Nếu không được chỉ định trong khi INT8 được bật, Ultralytics sẽ chọn một tập dữ liệu hiệu chuẩn dành riêng cho tác vụ khi cần thiết, hoặc quay về sử dụng tập dữ liệu mặc định cho tác vụ của model.
fractionfloat1.0Chỉ định phân đoạn của dataset để 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 hợp con của toàn bộ dataset, hữu ích cho các thử nghiệm hoặc khi tài nguyên 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ợ suy luận không cần NMS (YOLO26, YOLOv10). Đặt giá trị thành False cho phép bạn xuất các model này để tương thích với pipeline hậu xử lý dựa trên NMS truyền thống. 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 đã 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 đích.

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 các model cho các tác vụ như đếm đối tượng, tạo bản đồ nhiệt, theo dõi tập luyện, 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. Các tùy chọn này cho phép dễ dàng điều chỉnh để có kết quả chính xác và hữu ích phù hợp với nhu cầu cụ thể.

Đối sốLoạiMặc địnhMô tả
modelstrNoneĐường dẫn đến tệp model Ultralytics YOLO.
regionlist hoặc dictNoneCác điểm xác định vùng quan tâm (ROI), có thể là một danh sách các tuple (x, y) hoặc một từ điển ánh xạ tên vùng tới danh sách điểm cho nhiều vùng (chỉ áp dụng cho RegionCounter). Khi là None, các giải pháp yêu cầu một vùng sẽ quay về sử dụng giá trị mặc định được định nghĩa sẵn.
show_inboolTrueCờ để kiểm soát việc hiển thị số lượng đếm vào trên luồng video.
show_outboolTrueCờ để kiểm soát việc hiển thị số lượng đếm ra trên luồng video.
analytics_typestr'line'Loại đồ thị, tức là line, bar, area hoặc pie.
colormapintcv2.COLORMAP_DEEPGREENBản đồ màu (colormap) để sử dụng cho bản đồ nhiệt.
json_filestrNoneĐường dẫn đến tệp 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ố điểm then chốt được sử dụng để giám sát tập luyện. Các điểm then chốt này tương ứng với các khớp hoặc bộ phận cơ thể, như vai, khuỷu tay và cổ tay, cho các bài tập như hít đất, hít xà, squat và tập bụng.
down_angleint90Ngưỡng góc cho tư thế 'xuống'.
blur_ratiofloat0.5Điều chỉnh tỷ lệ phần trăm cường độ làm mờ, với các giá trị nằm trong khoảng 0.1 - 1.0.
crop_dirstr'cropped-detections'Tên thư mục để lưu trữ các phát hiện đã cắt.
recordsint5Tổng số lượng phát hiện để kích hoạt email với hệ thống báo động an ninh.
vision_pointtuple[int, int](20, 20)Điểm mà tại đó thị giác sẽ theo dõi các đối tượng và vẽ đường đi sử dụng Giải pháp VisionEye.
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[float, float](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 cho các tính toán tốc độ.
max_histint5Số điểm lịch sử tối đa để theo dõi cho mỗi đối tượng cho các 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ủ trực quan (được sử dụng trong các cảnh báo).
datastr'images'Đường dẫn đến thư mục hình ảnh được sử dụng để tìm kiếm tương đồng.
imgszint640Kích thước hình ảnh đầu vào cho suy luận model.

Hướng dẫn giải pháp

Cài đặt tăng cường (Augmentation)#

Các kỹ thuật tăng cường dữ liệu là rất cần thiết để cải thiện tính mạnh mẽ (robustness) và hiệu suất của model YOLO bằng cách đưa tính biến đổi vào dữ liệu huấn luyện, giúp model tổng quát hóa tốt hơn đối với dữ liệu chưa từng thấy. Bảng sau đây phác họa mục đích và hiệu quả 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, semantic, depth, classify, pose, obb0.0 - 1.0Điều chỉnh màu sắc (hue) của hình ảnh theo một phần của vòng màu, đưa vào sự biến đổi về màu sắc. Giúp model tổng quát hóa trong các điều kiện ánh sáng khác nhau.
hsv_sfloat0.7detect, segment, semantic, depth, classify, pose, obb0.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 để mô phỏng các điều kiện môi trường khác nhau.
hsv_vfloat0.4detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Thay đổi giá trị (độ sáng - brightness) của hình ảnh theo một tỷ lệ, giúp model hoạt động tốt trong các điều kiện ánh sáng khác nhau.
degreesfloat0detect, segment, semantic, depth, pose, obb0.0 - 180Xoay ảnh ngẫu nhiên trong phạm vi độ được chỉ định, giúp cải thiện khả năng nhận diện đối tượng của model ở các hướng khác nhau.
translatefloat0.1detect, segment, semantic, depth, pose, obb0.0 - 1.0Dịch chuyển ảnh theo chiều ngang và dọc dựa trên một phần kích thước ảnh, hỗ trợ việc học cách phát hiện các đối tượng bị che khuất một phần.
scalefloat0.5detect, segment, semantic, depth, classify, pose, obb0 - 1Thay đổi tỷ lệ ảnh theo hệ số tăng, mô phỏng các đối tượng ở những khoảng cách khác nhau so với camera.
shearfloat0detect, segment, semantic, depth, pose, obb-180 - +180Cắt nghiêng ả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, semantic, depth, pose, obb0.0 - 0.001Áp dụng biến đổi phối cảnh ngẫu nhiên lên ảnh, nâng cao khả năng hiểu các đối tượng trong không gian 3D của model.
flipudfloat0detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Lật ngược ảnh theo chiều dọc với xác suất được chỉ định, giúp tăng độ biến thiên dữ liệu mà không làm ảnh hưởng đến đặc điểm của đối tượng.
fliplrfloat0.5detect, segment, semantic, depth, classify, pose, obb0.0 - 1.0Lật ảnh từ trái sang phải với 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, semantic, depth, pose, obb0.0 - 1.0Đổi kênh màu của ảnh từ RGB sang BGR với xác suất được chỉ định, hữu ích để tăng tính ổn định đối với các trường hợp thứ tự kênh không chính xác.
mosaicfloat1detect, segment, semantic, pose, obb0.0 - 1.0Kết hợp bốn ả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 cảnh phức tạp.
mixupfloat0detect, segment, semantic, pose, obb0.0 - 1.0Trộn hai ảnh và nhãn tương ứng của chúng để tạo thành một ảnh hỗn hợp. Cải thiện khả năng khái quát hóa của model bằng cách đưa vào nhiễu nhãn và biến thiên hình ảnh.
cutmixfloat0detect, segment, pose, obb0.0 - 1.0Kết hợp các phần của hai ảnh, tạo ra một sự trộn lẫn cục bộ trong khi vẫn duy trì các vùng riêng biệt. Nâng cao độ bền của model bằng cách tạo ra các tình huống che khuất.
copy_pastefloat0segment0.0 - 1.0Sao chép và dán các đối tượng qua lại giữa các ảnh để tăng số lượng đối tượng hiện diện.
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 một chính sách tăng cường dữ liệu đượ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 trực quan.
erasingfloat0.4classify0.0 - 1.0Xóa ngẫu nhiên các vùng của ả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.
augmentationslistNonedetect, segment, semantic, pose, obb-Các phép biến đổi Albumentations tùy chỉnh cho việc tăng cường dữ liệu nâng cao (chỉ hỗ trợ 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ề dataset 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 để có hiệu suất model tốt nhất.

Hướng dẫn tăng cường

Cài đặt Ghi log, Checkpoint và Vẽ biểu đồ#

Ghi log, checkpoint, vẽ biểu đồ và quản lý tệp là rất quan trọng khi đào tạo một model YOLO:

  • Logging: Theo dõi tiến trình của model và chẩn đoán sự cố bằng cách sử dụng các thư viện như TensorBoard hoặc bằng cách ghi vào một tệp.
  • Checkpoint: Lưu model ở các khoảng thời gian đều đặn để tiếp tục đào tạo hoặc thử nghiệm với các cấu hình khác nhau.
  • Vẽ biểu đồ: Trực quan hóa hiệu suất và tiến trình đào tạo bằng cách sử dụng các thư viện như Matplotlib hoặc TensorBoard.
  • Quản lý tệp: Tổ chức các tệp được tạo trong quá trình đào tạo, chẳng hạn như checkpoint, tệp log 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à giúp 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ả
projectNoneChỉ định thư mục gốc để lưu các lần chạy huấn luyện. Nếu không được chỉ định, các lần chạy sẽ được lưu dưới runs/<task>. Mỗi lần chạy được lưu trong một thư mục con riêng biệt.
nameNoneXác định tên thí nghiệm. Nếu không được chỉ định, YOLO sử dụng tên mode và tăng dần cho mỗi lần chạy (ví dụ: train, train-2) để tránh ghi đè.
exist_okFalseXác định có ghi đè lên thư mục thí nghiệm hiện có hay không. True cho phép ghi đè; False ngăn chặn việc đó.
plotsTrueKiểm soát việc tạo và lưu các biểu đồ huấn luyện và validation. Đặt 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 trực quan.
saveTrueCho phép lưu các checkpoint huấn luyện và trọng số model cuối cùng. Đặt 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 một YAML đã lưu để sử dụng lại toàn bộ tập hợp đối số mà không cần chuyển chúng trực tiếp. Đối số cfg ghi đè lên các giá trị từ default.yaml, trong khi các đối số bổ sung được truyền kèm theo vẫn đượ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 default.yaml. Xem Overriding Default Config File để có ví dụ CLI thực tế.

Câu hỏi thường gặp#

Làm thế nào để tôi cải thiện hiệu suất model YOLO của mình trong quá trình đào tạo?#

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 thiết lập data augmentation, chọn optimizer phù hợp, và sử dụng các kỹ thuật như early stopping hoặc mixed precision. Để biết chi tiết, hãy xem Train Guide.

Các siêu tham số chính cho độ chính xác của model YOLO là gì?#

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ể làm ổ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 cung cấp các điều chỉnh chi tiết nhưng độ hội tụ chậm hơn.
  • Momentum (momentum): Tăng tốc các véc-tơ 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 làm 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 Train Settings.

Làm thế nào để tôi đặt learning rate cho việc đào tạo model YOLO?#

Learning rate (lr0) rất quan trọng; bắt đầu với 0.01 cho SGD hoặc 0.001 cho Adam optimizer. Theo dõi các số liệu và điều chỉnh khi cần thiết. Sử dụng bộ lập lịch learning rate dạng cosine (cos_lr) hoặc warmup (warmup_epochs, warmup_momentum). Chi tiết có trong Train Guide.

Các cài đặt suy luận mặc định cho các 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 Predict SettingsPredict Guide.

Tại sao nên sử dụng đào tạo với độ chính xác hỗn hợp (mixed precision) với các model YOLO?#

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

Bình luận