Meet YOLO26: next-gen vision AI.

Link to this sectionCấ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. Những 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, kiểm thử và dự đoán.



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 đó:

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

Link to this sectionTá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: Object detection (phát hiện đối tượng) giúp nhận diện và xác định vị trí của các đối tượng trong ảnh hoặc video.
  • Segment: Instance segmentation (phân đoạn thực thể) chia ả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.
  • Semantic segmentation (semantic): Semantic segmentation (phân đoạn ngữ nghĩa) gán nhãn lớp cho từng pixel trong ảnh để hiểu rõ nội dung cảnh vật.
  • 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 ả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, 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 hình ảnh và video.

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

Link to this sectionCá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, val để kiểm thử, predict để suy luận (inference), export để chuyển đổi sang các định dạng triển khai, track để theo dõi đối tượng và benchmark để đánh giá hiệu năng. 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ế độ

Link to this sectionCà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 batch size, learning rate, momentum và weight decay. Việc lựa chọn trình tối ưu hóa (optimizer), 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 entrypoint của Ultralytics.

Đối sốLoạiMặc địnhMô tả
modelstrNoneChỉ định tệp model để huấn luyện. Chấp nhận đường dẫn đến tệp model đã huấn luyện trước đó .pt hoặc tệp 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 tệp cấu hình bộ dữ liệu (ví dụ: coco8.yaml). Tệp này chứa các tham số cụ thể của bộ dữ liệu, bao gồm các đường dẫn đến dữ liệu huấn luyện và dữ liệu kiểm chứng, 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ần duyệt toàn bộ qua toàn bộ bộ 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 của model.
timefloatNoneThời gian huấn luyện tối đa tính bằng giờ. Nếu được đặt, nó sẽ ghi đè đố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 thời gian.
patienceint100Số lượng epoch cần đợi mà không có sự cải thiện trong các số liệu kiểm chứng trước khi dừng huấn luyện sớm. Giúp ngăn ngừa quá khớp bằng cách dừng huấn luyện khi hiệu suất đạt đến trạng thái bão hòa.
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. Ả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), giữ nguyên tỷ lệ khung hình cho 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 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 các ảnh của bộ dữ liệu trong bộ nhớ (True/ram), trên đĩa (disk), hoặc vô hiệu hóa nó (False). Cải thiện tốc độ huấn luyện bằng cách giảm I/O đĩa, đổi lại sẽ làm 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 đơn (device=0), nhiều GPU (device=[0,1]), CPU (device=cpu), MPS cho Apple silicon (device=mps), Huawei Ascend NPU (device=npu hoặc device=npu:0), hoặc tự động chọn GPU nhàn rỗi nhất (device=-1) hoặc nhiều GPU nhàn rỗi (device=[-1,-1])
workersint8Số lượng luồng worker để tải dữ liệu (theo 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 dữ liệu 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.
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 sẽ huấn luyện từ trọng số khởi tạo ngẫu nhiên trong khi vẫn giữ nguyên kiến trúc model.
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 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 đệm tối thiểu—hình ảnh trong một batch được đệm tối thiểu để đạt đến 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.0Thay đổi ngẫu nhiên imgsz cho mỗi batch theo +/- multi_scale (ví dụ: 0.25 -> 0.75x đến 1.25x), làm tròn đến bội số của bước nhảy (stride) của model; 0.0 sẽ tắt tính năng huấn luyện đa quy mô (multi-scale).
cos_lrboolFalseSử dụng bộ lập lịch learning rate cosin, điều chỉnh tốc độ học theo đường cong cosin qua các epoch. Giúp quản lý tốc độ học để đạt được sự hội tụ tốt hơn.
close_mosaicint10Tắt tính năng data augmentation mosaic trong N epoch cuối để ổn định quá trình huấn luyện trước khi hoàn tất. 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ố epoch, giúp quá trình huấn luyện tiếp diễn liền mạch.
ampboolTrueBật huấn luyện Mixed Precision tự động (AMP), giúp giảm mức sử dụng bộ nhớ và có thể tăng tốc quá trình 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 N lớp đầu tiên của model hoặc các lớp được chỉ định theo chỉ mục, giúp 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 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 tỷ lệ 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 Adam optimizers, ảnh hưởng đến việc kết hợp các gradient trong quá khứ vào cập nhật hiện tại.
weight_decayfloat0.0005Thuật ngữ regularization L2, xử phạt các trọng số lớn để ngăn chặn hiện tượng quá khớp (overfitting).
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.
boxfloat7.5Trọng số của thành phần loss cho box trong loss function, ảnh hưởng đến mức độ ưu tiên đặt 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.0Số mũ cho trọng số lớp để xử lý tình trạng 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 tính năng 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 loss tiêu điểm phân phối (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 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.
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 tính năng 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 một chế độ dạng chuỗi như "default", "reduce-overhead", "max-autotune-no-cudagraphs". Nếu không được hỗ trợ, sẽ tự động quay lại chế độ thực thi eager kèm theo 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ài đặt Batch-size

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

  • Fixed Batch Size: Chỉ định số lượng ảnh trên mỗi batch bằng một số nguyên (ví dụ: batch=16).
  • Auto Mode (60% GPU Memory): Sử dụng batch=-1 để tự động điều chỉnh đến khoảng 60% mức sử dụng bộ nhớ CUDA.
  • Auto Mode with Utilization Fraction: 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

Link to this sectionCà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 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ạ (masks) cũng ảnh hưởng đến dự đoán. Việc tinh chỉnh các cài đặt này là thiết yếu để đạt được 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, 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ỏ qua, một cảnh báo sẽ được ghi lại và model sẽ quay lại sử dụng các tài nguyên demo tích hợp sẵn (ultralytics/assets, hoặc URL demo cho OBB). Hỗ trợ nhiều đị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 kết quả 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 tuple640Mục tiêu Letterbox. Một số nguyên tạo ra N×N vuông; một tuple tạo 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 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 về kích thước imgsz đầy đủ. Xem Hình dạng cố định so với hình chữ nhật tối thiểu.
halfboolFalseKích hoạt suy luận bán độ 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ợ với tác động tối thiểu đến độ chính xác.
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 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 batch size để suy luận (chỉ hoạt động khi nguồn là thư mục, tệp video hoặc tệp .txt). Batch size 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 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 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, xếp hàng các khung hình mới vào bộ đệm, đảm bảo không bỏ lỡ khung hình nào, nhưng sẽ gây ra độ trễ nếu FPS suy luận thấp hơn FPS của luồng.
visualizeboolFalseKích hoạt hiển thị các đặc trưng của model trong quá trình suy luận, cung cấp thông tin chi tiết 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 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 tắt, chúng sẽ 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 để trích xuất các vector đặ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 tương đồng.
projectstrNoneTên của thư mục dự án nơi lưu đầu ra dự đoán nếu save được bật.
namestrNoneTên của lần dự đoán. Được sử dụng để tạo thư mục con trong thư mục dự án, nơi lưu trữ đầu ra 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 tính năng 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 một chế độ dạng chuỗi như "default", "reduce-overhead", "max-autotune-no-cudagraphs". Nếu không được hỗ trợ, sẽ tự động quay lại chế độ thực thi eager kèm theo cảnh báo.
end2endboolNoneGhi đè chế độ end-to-end trong các model YOLO hỗ trợ suy luận không cần NMS (YOLO26, YOLOv10). Thiết lập thành 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 bạn sử 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 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 cho 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 trong tệp 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 của bounding box. Nếu None, độ dày đường được tự động điều chỉnh dựa trên kích thước hình ảnh. Cung cấp khả năng tùy chỉnh trực quan để rõ ràng hơn.

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

Link to this sectionCài đặt Kiểm thử (Validation Settings)#

Các cài đặt kiểm thử 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 kiểm thử. Những 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 batch size, tần suất kiểm thử và các chỉ số hiệu suất. Kích thước và cấu trúc của tập dữ liệu kiểm thử, cùng với tác vụ cụ thể, cũng ảnh hưởng đến quy 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 kiểm thử.
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 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.001Thiết lập ngưỡng tin cậy tối thiểu cho các lần phát hiện. Giá trị thấp hơn làm tăng tỷ lệ nhớ (recall) nhưng có thể làm tăng các trường hợp dương tính giả. Được sử dụng trong quá trình kiểm thử để tính toán các đường cong precision-recall. Mặc định là 0.01 cho kiểm thử OBB để giảm mức sử dụng bộ nhớ.
ioufloat0.7Thiết lập 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 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.
halfboolFalseKích hoạt tính toán bán độ 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ị để kiểm thử (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 mô-đun DNN của OpenCV cho suy luận model ONNX, cung cấp một phương án thay thế cho các phương pháp suy luận của PyTorch.
plotsboolTrueKhi được đặt thành True, hệ thống sẽ 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à đườ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 (inference) theo hình chữ nhật cho batching, giúp giảm padding và có khả năng tăng tốc độ cũng như hiệu quả bằng cách xử lý hình ảnh ở tỷ lệ khung hình gốc.
splitstr'val'Xác định phần tập dữ liệu (dataset split) được sử dụng để xác thực (val, test, hoặc train). Cho phép linh hoạt trong việc chọ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 số liệu trên mỗi lớp, tiến trình batch và các 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 tệp văn bản, mỗi tệp cho một hình ảnh, hữu ích cho việc phân tích sâu hơn, 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 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.
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 không phụ thuộc vào lớp, giúp hợp nhất các hộp 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). Đối với các model end-to-end (YOLO26, YOLOv10), điều này chỉ ngăn không cho cùng một phát hiện xuất hiện với nhiều nhãn lớp (IoU=1.0 trùng lặp) và không thực hiện việc triệt tiêu 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 trực quan hóa xác thực khi visualize=True. Đặt thành False để có cái nhìn rõ ràng hơn về các kết quả khớp và sai sót.
show_confboolTrueHiển thị điểm số tin cậy trong các trực quan hóa xác thực khi visualize=True. Đặt thành False để có cái nhìn rõ ràng hơn về các kết quả khớp và sai sót.
compilebool hoặc strFalseBật tính năng 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 một chế độ dạng chuỗi như "default", "reduce-overhead", "max-autotune-no-cudagraphs". Nếu không được hỗ trợ, sẽ tự động quay lại chế độ thực thi eager kèm theo cảnh báo.
end2endboolNoneGhi đè chế độ end-to-end trong các model YOLO hỗ trợ suy luận không cần NMS (YOLO26, YOLOv10). Đặt thành False cho phép bạn chạy xác thực bằng pipeline NMS truyền thống, đồng thời cho phép bạn sử dụng đối số iou.

Việc điều 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 và để phát hiện cũng như ngăn ngừa overfitting.

Hướng dẫn Val

Link to this sectionCà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 đã 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 cho phép 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 hình ảnh mong muốn cho đầu vào model. Có thể là một số nguyên cho hình ả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.
optimizeboolFalseÁp dụng tối ưu hóa cho thiết bị di động khi xuất sang TorchScript, có khả năng giảm kích thước model và cải thiện hiệu suất suy luận. Không tương thích với định dạng NCNN hoặc các thiết bị CUDA. Đối với DEEPX, nó kích hoạt tối ưu hóa trình biên dịch cao hơn, giúp giảm độ trễ suy luận và tăng thời gian biên dịch.
halfboolFalseBật lượng tử hóa FP16 (độ chính xác bán phần), giảm kích thước model và có khả năng tăng tốc suy luận trên phần cứng được hỗ trợ. Không tương thích với lượng tử hóa INT8 hoặc xuất chỉ dùng 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 suy luận với độ mất mát độ chính xác tối thiểu, chủ yếu dành cho thiết bị biên. Khi được sử dụng với TensorRT, nó thực hiện lượng tử hóa sau đào tạo (PTQ).
dynamicboolFalseCho phép kích thước đầu vào động cho các lần xuất TorchScript, ONNX, OpenVINO, TensorRT và CoreML, tăng tính linh hoạt khi xử lý các kích thước hình ảnh khác nhau.
simplifyboolTrueĐơn giản hóa biểu đồ model cho các lần xuất ONNX với onnxslim, có khả năng cải thiện hiệu suất và tính tương thích với các engine suy luận.
opsetintNoneChỉ định phiên bản ONNX opset để tương thích với các trình phân tích cú pháp và runtime ONNX khác nhau. Nếu không được đặt, nó sử dụng phiên bản được hỗ trợ mới nhất.
workspacefloat hoặc NoneNoneĐặt kích thước workspace tối đa tính bằng GiB cho các tối ưu hóa TensorRT, cân bằng giữa mức sử dụng bộ nhớ và hiệu suất. 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), 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.
batchint1Chỉ định kích thước suy luận batch của model xuất hoặc số lượng hình ảnh tối đa mà model xuất sẽ xử lý đồng thời trong chế độ predict. Đối với các lần xuất Edge TPU, tham số 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 lần xuất TensorRT tự động sử dụng GPU.
datastr'coco8.yaml'Đường dẫn đến tệp cấu hình dataset, rất cần thiết cho hiệu chuẩn lượng tử hóa INT8. Nếu không được chỉ định khi INT8 đã bật, coco8.yaml sẽ được sử dụng làm phương án dự phòng cho việc hiệu chuẩn.
fractionfloat1.0Chỉ định phần của tập dữ liệu được sử dụng để 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ộ tập dữ liệu, 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 khi INT8 đã bật, toàn bộ tập dữ liệu 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 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

Link to this sectionCà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'[(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 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 biểu đồ, ví dụ: 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ị trong phạm vi 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[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 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

Link to this sectionCài đặt tăng cường (Augmentation)#

Các kỹ thuật Data augmentation rất cần thiết để cải thiện độ bền và hiệu suất của model YOLO bằng cách đưa vào sự biến đổi trong dữ liệu đào tạo, 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 sau đây phác thảo 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, pose, obb, classify0.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, 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 để 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 - 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, 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, 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, pose, obb, classify0 - 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, 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, 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, pose, obb, classify0.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, pose, obb, classify0.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, 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, 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, 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-Xác đị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 định sẵn ('randaugment', 'autoaugment', hoặc 'augmix') để nâng cao hiệu suất model thông qua sự đa dạng hình ảnh.
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.
augmentationslist``detect, segment, 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

Link to this sectionCà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:

  • Ghi log: 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 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ượt đào tạo. Nếu không được chỉ định, các lượt chạy sẽ được lưu dưới runs/<task>. Mỗi lượt 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 chế độ và tăng dần cho mỗi lượt chạy (ví dụ: train, train-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 nó.
plotsTrueKiểm soát việc tạo và lưu các biểu đồ đào tạo và xác thực. Đặt thành True để tạo các biểu đồ như đường cong mất mát (loss curves), đường cong độ chính xác-triệu hồi và dự đoán mẫu để theo dõi hiệu suất trực quan.
saveTrueBật lưu checkpoint đào tạo 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 đào tạo hoặc triển khai model.

Link to this sectionTệp cấu hình tùy chỉnh#

Tải một tệp YAML đã lưu để sử dụng lại một bộ đối số đầy đủ mà không cần truyền chúng 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 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 trong default.yaml. Xem Ghi đè Tệp Cấu hình Mặc định để có ví dụ CLI thực tế.

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

Link to this sectionLà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 điều 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 bộ tối ưu hóa (optimizer) phù hợp và sử dụng các kỹ thuật như dừng sớm (early stopping) hoặc độ chính xác hỗn hợp. Để biết chi tiết, hãy xem Hướng dẫn đào tạo.

Link to this sectionCá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): Các kích thước lớn hơn có thể ổn định quá trình đào tạo nhưng cần nhiều bộ nhớ hơn.
  • Learning Rate (lr0): Các tỷ lệ nhỏ hơn cung cấp các điều chỉnh tinh vi nhưng sự hội tụ chậm hơn.
  • Momentum (momentum): Tăng tốc các vector gradient, làm giảm các dao động.
  • Kích thước hình ảnh (imgsz): Các 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 tham số này dựa trên dataset và phần cứng của bạn. Tìm hiểu thêm trong Cài đặt đào tạo.

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

Learning rate (lr0) là rất quan trọng; hãy 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. Sử dụng trình lập lịch learning rate cosine (cos_lr) hoặc warmup (warmup_epochs, warmup_momentum). Chi tiết có trong Hướng dẫn đào tạo.

Link to this sectionCá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:

  • Ngưỡng độ tin cậy (conf=0.25): Độ tin cậy tối thiểu cho các phát hiện.
  • Ngưỡng IoU (iou=0.7): Cho Non-Maximum Suppression (NMS).
  • Kích thước hình ảnh (imgsz=640): Thay đổi kích thước hình ảnh đầu vào.
  • Thiết bị (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.

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

Đào tạo độ chính xác hỗn hợp (amp=True) làm giảm mức sử dụng bộ nhớ và tăng tốc đào tạo bằng cách sử dụng FP16 và FP32. Nó 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 giảm đáng kể độ chính xác. Tìm hiểu thêm trong Hướng dẫn đào tạo.

Bình luận