Bỏ để qua phần nội dung

Cấu hình

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



Xem: Mastering Ultralytics YOLOv8:Cấu hình

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

Ví dụ

yolo TASK MODE ARGS
from ultralytics import YOLO

# Load a YOLOv8 model from a pre-trained weights file
model = YOLO("yolov8n.pt")

# Run MODE mode using the custom arguments ARGS (guess TASK)
model.MODE(ARGS)

Đâu:

Mặc định ARG Các giá trị được xác định trên trang này từ cfg/defaults.yaml tệp.

Nhiệm vụ

YOLO Các mô hình có thể được sử dụng cho nhiều nhiệm vụ khác nhau, bao gồm phát hiện, phân đoạn, phân loại và tư thế. Các nhiệm vụ này khác nhau về loại đầu ra mà chúng tạo ra và vấn đề cụ thể mà chúng được thiết kế để giải quyết.

  • Phát hiện: Để xác định và bản địa hóa các đối tượng hoặc khu vực quan tâm trong hình ảnh hoặc video.
  • Phân đoạn: Để chia hình ảnh hoặc video thành các vùng hoặc pixel tương ứng với các đối tượng hoặc lớp khác nhau.
  • Phân loại: Để dự đoán nhãn lớp của hình ảnh đầu vào.
  • Tư thế: Để xác định các đối tượng và ước tính các điểm chính của chúng trong hình ảnh hoặc video.
  • OBB: Các hộp giới hạn định hướng (tức là xoay) phù hợp với hình ảnh vệ tinh hoặc y tế.
Lý lẽ Mặc định Sự miêu tả
task 'detect' Chỉ định YOLO nhiệm vụ cần thực hiện. Các tùy chọn bao gồm detect để phát hiện đối tượng, segment để phân khúc, classify để phân loại, pose để ước tính tư thế và OBB cho các hộp giới hạn định hướng. Mỗi nhiệm vụ được điều chỉnh theo các loại đầu ra cụ thể và các vấn đề trong phân tích hình ảnh và video.

Hướng dẫn nhiệm vụ

Chế độ

YOLO Các mô hình có thể được sử dụng ở các chế độ khác nhau tùy thuộc vào vấn đề cụ thể mà bạn đang cố gắng giải quyết. Các chế độ này bao gồm:

  • Đào tạo: Để đào tạo a YOLOv8 mô hình trên tập dữ liệu tùy chỉnh.
  • Val: Để xác thực a YOLOv8 mô hình sau khi nó đã được đào tạo.
  • Dự đoán: Để đưa ra dự đoán bằng cách sử dụng một đào tạo YOLOv8 Mô hình hóa trên hình ảnh hoặc video mới.
  • Xuất: Để xuất khẩu một YOLOv8 Mô hình hóa thành một định dạng có thể được sử dụng để triển khai.
  • Theo dõi: Để theo dõi các đối tượng trong thời gian thực bằng cách sử dụng YOLOv8 mẫu.
  • Điểm chuẩn: Để đo điểm chuẩn YOLOv8 xuất khẩu (ONNX, TensorRT, v.v.) Tốc độ và độ chính xác.
Lý lẽ Mặc định Sự miêu tả
mode 'train' Chỉ định chế độ trong đó YOLO mô hình hoạt động. Các tùy chọn là train để đào tạo mô hình, val để xác nhận, predict để suy luận về dữ liệu mới, export để chuyển đổi mô hình 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ế độ được thiết kế cho các giai đoạn khác nhau của vòng đời mô hình, từ phát triển đến triển khai.

Hướng dẫn chế độ

Cài đặt tàu

Cài đặt đào tạo cho YOLO Các mô hình bao gồm các siêu tham số và cấu hình khác nhau được sử dụng trong quá trình đào tạo. Các cài đặt này ả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 đào tạo chính bao gồm kích thước lô, tốc độ học tập, động lượng và giảm cân. Ngoài ra, việc lựa chọn trình tối ưu hóa, chức năng mất mát và thành phần tập dữ liệu đào tạo có thể ảnh hưởng đến quá trình đào tạo. Điều chỉnh và thử nghiệm cẩn thận với các cài đặt này là rất quan trọng để tối ưu hóa hiệu suất.

Lý lẽ Mặc định Sự miêu tả
model None Chỉ định tệp mô hình để đào tạo. Chấp nhận đường dẫn đến một trong hai .pt mô hình được đào tạo sẵn hoặc một .yaml tệp cấu hình. Cần thiết để xác định cấu trúc mô hình hoặc khởi tạo trọng số.
data None Đườ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ố dành riêng cho tập dữ liệu, bao gồm đường dẫn đến dữ liệu đào tạo và xác thực, tên lớp và số lớp.
epochs 100 Tổng số kỷ nguyên đào tạo. Mỗi kỷ nguyên đại diện cho một chuyển giao đầy đủ trên 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 đào tạo và hiệu suất mô hình.
time None Thời gian đào tạo tối đa tính bằng giờ. Nếu được đặt, thao tác này sẽ ghi đè epochs đối số, cho phép đào tạo tự động dừng sau khoảng thời gian quy định. Hữu ích cho các tình huống đào tạo hạn chế về thời gian.
patience 100 Số kỷ nguyên phải chờ đợi mà không cải thiện số liệu xác thực trước khi dừng đào tạo sớm. Giúp ngăn ngừa tình trạng quá tải bằng cách ngừng đào tạo khi hiệu suất ổn định.
batch 16 Batch size, with three modes: set as an integer (e.g., batch=16), auto mode for 60% GPU memory utilization (batch=-1), or auto mode with specified utilization fraction (batch=0.70).
imgsz 640 Kích thước hình ảnh mục tiêu để đào tạo. Tất cả các hình ảnh được thay đổi kích thước theo kích thước này trước khi được đưa vào mô hình. Ảnh hưởng đến độ chính xác của mô hình và độ phức tạp tính toán.
save True Cho phép tiết kiệm các điểm kiểm tra đào tạo và trọng lượng mô hình cuối cùng. Hữu ích cho việc tiếp tục đào tạo hoặc triển khai mô hình.
save_period -1 Tần suất lưu các điểm kiểm tra mô hình, được chỉ định trong các kỷ nguyên. Giá trị -1 sẽ vô hiệu hóa tính năng này. Hữu ích để lưu các mô hình tạm thời trong các buổi đào tạo dài.
cache False Cho phép lưu vào bộ nhớ đệm của hình ảnh tập 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 độ đào tạo bằng cách giảm I / O đĩa với chi phí sử dụng bộ nhớ tăng lên.
device None Chỉ định (các) thiết bị tính toán để đào tạo: một GPU duy nhất (device=0), nhiều GPU (device=0,1), CPU (device=cpu), hoặc MPS cho Apple silicon (device=mps).
workers 8 Số luồng thợ để tải dữ liệu (mỗi RANK nếu đào tạo Multi-GPU). Ảnh hưởng đến tốc độ tiền xử lý dữ liệu và đưa vào mô hình, đặc biệt hữu ích trong các thiết lập đa GPU.
project None Tên của thư mục dự án nơi lưu kết quả đào tạo. Cho phép lưu trữ có tổ chức các thí nghiệm khác nhau.
name None Tên của cuộc chạy đào tạo. Đượ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ý đào tạo và đầu ra.
exist_ok False Nếu True, cho phép ghi đè lên một thư mục dự án / tên hiện có. Hữu ích cho 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ả đầu ra trước đó.
pretrained True Xác định xem có nên bắt đầu đào tạo từ một mô hình được đào tạo trước hay không. Có thể là giá trị boolean hoặc đường dẫn chuỗi đến một mô hình cụ thể để tải trọng lượng. Nâng cao hiệu quả đào tạo và hiệu suất mô hình.
optimizer 'auto' Lựa chọn trình tối ưu hóa để đào tạo. Các tùy chọn bao gồm SGD, Adam, AdamW, NAdam, RAdam, RMSProp v.v., hoặc auto để lựa 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à độ ổn định.
verbose False Cho phép đầu ra chi tiết trong quá trình đào tạo, cung cấp nhật ký chi tiết và cập nhật tiến độ. Hữu ích cho việc gỡ lỗi và giám sát chặt chẽ quá trình đào tạo.
seed 0 Đặt hạt giống ngẫu nhiên để đào tạo, đảm bảo khả năng tái tạo kết quả trên các lần chạy có cùng cấu hình.
deterministic True Buộc sử dụng thuật toán xác định, đảm bảo khả năng tái tạo nhưng có thể ảnh hưởng đến hiệu suất và tốc độ do hạn chế về các thuật toán không xác định.
single_cls False Xử lý tất cả các lớp trong bộ dữ liệu nhiều lớp như một lớp duy nhất trong quá trình đào tạo. Hữu ích cho các nhiệm 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 hơn là phân loại.
rect False Cho phép đào tạo hình chữ nhật, tối ưu hóa thành phần hàng loạt để đệm tối thiểu. 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.
cos_lr False Sử dụng bộ lập lịch tốc độ học tập cosin, điều chỉnh tốc độ học tập theo đường cong cosin qua các kỷ nguyên. Giúp quản lý tốc độ học tập để hội tụ tốt hơn.
close_mosaic 10 Vô hiệu hóa tăng cường dữ liệu khảm trong N kỷ nguyên cuối cùng để ổn định đào tạo trước khi hoàn thành. Cài đặt thành 0 sẽ tắt tính năng này.
resume False Tiếp tục đào tạo từ trạm kiểm soát đã lưu cuối cùng. Tự động tải trọng lượng mô hình, trạng thái tối ưu hóa và số kỷ nguyên, tiếp tục đào tạo liền mạch.
amp True Cho phép đào tạo độ chính xác hỗn hợp tự động (AMP), giảm mức sử dụng bộ nhớ và có thể tăng tốc độ đào tạo với tác động tối thiểu đến độ chính xác.
fraction 1.0 Chỉ định phần nhỏ của tập dữ liệu để sử dụng cho đào tạo. Cho phép đào tạo 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ế.
profile False Cho phép lập hồ sơ ONNX và TensorRT Tốc độ trong quá trình đào tạo, hữu ích để tối ưu hóa việc triển khai mô hình.
freeze None Đóng băng N lớp đầu tiên của mô hình hoặc các lớp được chỉ định theo chỉ mục, giảm số lượng tham số có thể đào tạo. Hữu ích cho việc tinh chỉnh hoặc học chuyển tiếp.
lr0 0.01 Tỷ lệ học tập ban đầu (tức là SGD=1E-2, Adam=1E-3) . Điều chỉnh giá trị này là rất quan trọng cho quá trình tối ưu hóa, ảnh hưởng đến tốc độ cập nhật trọng số mô hình.
lrf 0.01 Tỷ lệ học tập cuối cùng là một phần nhỏ của tỷ lệ ban đầu = (lr0 * lrf), được sử dụng kết hợp với bộ lập lịch để điều chỉnh tốc độ học tập theo thời gian.
momentum 0.937 Hệ số động lượng cho SGD hoặc beta1 cho trình tối ưu hóa Adam, ảnh hưởng đến việc kết hợp các gradient trong quá khứ trong bản cập nhật hiện tại.
weight_decay 0.0005 L2 thuật ngữ chính quy, phạt trọng lượng lớn để ngăn chặn overfitting.
warmup_epochs 3.0 Số kỷ nguyên cho tỷ lệ học tập nóng lên, tăng dần tỷ lệ học từ giá trị thấp lên tỷ lệ học ban đầu để ổn định đào tạo sớm.
warmup_momentum 0.8 Động lực ban đầu cho giai đoạn khởi động, dần dần điều chỉnh theo động lượng đã đặt trong giai đoạn khởi động.
warmup_bias_lr 0.1 Tỷ lệ học tập cho các thông số thiên vị trong giai đoạn khởi động, giúp ổn định đào tạo mô hình trong các kỷ nguyên ban đầu.
box 7.5 Trọng lượng của thành phần tổn thất hộp trong hàm tổn thất, ảnh hưởng đến mức độ nhấn mạnh vào việc dự đoán chính xác tọa độ hộp giới hạn.
cls 0.5 Trọng lượng của tổn thất phân loại trong hàm tổn thất toàn phần, ảnh hưởng đến tầm quan trọng của dự đoán lớp chính xác so với các thành phần khác.
dfl 1.5 Trọng lượng của tổn thất tiêu cự phân phối, được sử dụng trong một số YOLO phiên bản để phân loại chi tiết.
pose 12.0 Trọng lượng của việc mất tư thế trong các mô hình được đào tạo để ước tính tư thế, ảnh hưởng đến sự nhấn mạnh vào việc dự đoán chính xác các điểm chính của tư thế.
kobj 2.0 Trọng lượng của sự mất mát đối tượng điểm chính trong các mô hình ướ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ế.
label_smoothing 0.0 Áp dụng làm mịn nhãn, làm mềm nhãn cứng cho hỗn hợp nhãn đích và phân phối đồng đều trên nhãn, có thể cải thiện khái quát hóa.
nbs 64 Kích thước lô danh nghĩa để bình thường hóa tổn thất.
overlap_mask True Xác định xem mặt nạ phân đoạn có nên chồng chéo trong quá trình đào tạo hay không, áp dụng trong các tác vụ phân đoạn phiên bản.
mask_ratio 4 Tỷ lệ downsample cho mặt nạ phân đoạn, ảnh hưởng đến độ phân giải của khẩu trang được sử dụng trong quá trình đào tạo.
dropout 0.0 Tỷ lệ bỏ học để chính quy hóa trong các nhiệm vụ phân loại, ngăn chặn tình trạng quá tải bằng cách bỏ qua ngẫu nhiên các đơn vị trong quá trình huấn luyện.
val True Cho phép xác nhận trong quá trình đào tạo, cho phép đánh giá định kỳ hiệu suất mô hình trên một tập dữ liệu riêng biệt.
plots False Tạo và lưu các biểu đồ của các chỉ số đào tạo và xác nhận, cũng như các ví dụ dự đoán, cung cấp thông tin chi tiết trực quan về hiệu suất mô hình và tiến trình học tập.

Note on Batch-size Settings

Các batch argument can be configured in three ways:

  • Fixed Batch Size: Set an integer value (e.g., batch=16), specifying the number of images per batch directly.
  • Auto Mode (60% GPU Memory): Use batch=-1 to automatically adjust batch size for approximately 60% CUDA memory utilization.
  • Auto Mode with Utilization Fraction: Set a fraction value (e.g., batch=0.70) to adjust batch size based on the specified fraction of GPU memory usage.

Hướng dẫn tàu hỏa

Dự đoán cài đặt

Cài đặt dự đoán cho YOLO Các mô hình bao gồm một loạt 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 mô hình trong quá trình suy luận trên dữ liệu mới. Điều chỉnh cẩn thận và thử nghiệm với các cài đặt này là điều cần thiết để đạt được hiệu suất tối ưu cho một tác vụ cụ thể. Các cài đặt chính bao gồm ngưỡng tin cậy, ngưỡng Ngăn chặn Không Tối đa (NMS) và số lượng lớp được xem xét. Các yếu tố bổ sung ảnh hưởng đến quá trình dự đoán là kích thước và định dạng dữ liệu đầu vào, sự hiện diện của các tính năng bổ sung như mặt nạ hoặc nhiều nhãn trên mỗi hộp và tác vụ cụ thể mà mô hình được sử dụng.

Lập luận suy luận:

Lý lẽ Kiểu Mặc định Sự miêu tả
source str 'ultralytics/assets' Chỉ định nguồn dữ liệu để suy luận. Có thể là đường dẫn hình ảnh, tệp video, thư mục, URL hoặc ID thiết bị cho nguồn cấp dữ liệu trực tiếp. 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.
conf float 0.25 Đặt ngưỡng tin cậy tối thiểu để 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ị bỏ qua. Điều chỉnh giá trị này có thể giúp giảm dương tính giả.
iou float 0.7 Ngưỡng giao nhau trên công đoàn (IoU) cho triệt tiêu không tối đa (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 trùng lặp.
imgsz int or tuple 640 Xác định kích thước hình ảnh để suy luận. Có thể là một số nguyên duy nhất 640 để thay đổi kích thước hình vuông hoặc bộ (chiều cao, chiều rộng). Kích thước phù hợp có thể cải thiện độ chính xác phát hiện và tốc độ xử lý.
half bool False Cho phép suy luận nửa chính xác (FP16), có thể tăng tốc độ suy luận mô hình trên các GPU được hỗ trợ với tác động tối thiểu đến độ chính xác.
device str None Chỉ định thiết bị để suy luận (ví dụ: cpu, cuda:0 hoặc 0). Cho phép người dùng lựa chọn giữa CPU, GPU cụ thể hoặc các thiết bị điện toán khác để thực thi mô hình.
max_det int 300 Số lần phát hiện tối đa được phép cho mỗi hình ảnh. Giới hạn tổng số đối tượng mà mô hình có thể phát hiện trong một suy luận duy nhất, ngăn chặn đầu ra quá mức trong các cảnh dày đặc.
vid_stride int 1 Sải chân khung hình 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 chi phí phân giải tạm thời. Giá trị 1 xử lý mọi khung, giá trị cao hơn bỏ qua khung.
stream_buffer bool False Xác định xem tất cả các khung hình có nên được lưu vào bộ đệm khi xử lý luồng video hay không (True), hoặc nếu mô hình sẽ trả về khung hình gần đây nhất (False). Hữu ích cho các ứng dụng thời gian thực.
visualize bool False Kích hoạt trực quan hóa các tính năng của mô hình trong quá trình suy luận, cung cấp thông tin chi tiết về những gì mô hình đang "nhìn thấy". Hữu ích cho việc gỡ lỗi và giải thích mô hình.
augment bool False Cho phép tăng thời gian kiểm tra (TTA) cho các dự đoán, có khả năng cải thiện độ mạnh phát hiện với chi phí là tốc độ suy luận.
agnostic_nms bool False Cho phép ngăn chặn không tối đa bất khả tri lớp (NMS), kết hợp các hộp chồng chéo của các lớp khác nhau. Hữu ích trong các tình huống phát hiện nhiều lớp trong đó sự chồng chéo lớp là phổ biến.
classes list[int] None Lọc các dự đoán cho một tập hợp ID lớp. Chỉ những 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 có liên quan trong các nhiệm vụ phát hiện nhiều lớp.
retina_masks bool False Sử dụng mặt nạ phân đoạn có độ phân giải cao nếu có sẵn trong mô hình. Điều này có thể nâng cao chất lượng mặt nạ cho các nhiệm vụ phân đoạn, cung cấp chi tiết tốt hơn.
embed list[int] None Chỉ định các lớp để trích xuất các vectơ tính năng hoặc nhúng. Hữu ích cho các tác vụ xuôi dòng như phân cụm hoặc tìm kiếm tương tự.

Đối số trực quan hóa:

Lý lẽ Kiểu Mặc định Sự miêu tả
show bool False Nếu True, hiển thị hình ảnh hoặc video có chú thích trong 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 thử nghiệm.
save bool False Cho phép lưu hình ảnh hoặc video có chú thích vào tệp. Hữu ích cho tài liệu, phân tích thêm hoặc chia sẻ kết quả.
save_frames bool False Khi xử lý video, hãy lưu các khung hình riêng lẻ dưới dạng hình ảnh. Hữu ích để trích xuất các khung cụ thể hoặc để phân tích chi tiết từng khung hình.
save_txt bool False Lư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_conf bool False Bao gồm điểm tin cậy trong các tệp văn bản đã lưu. Tăng cường chi tiết có sẵn để xử lý hậu kỳ và phân tích.
save_crop bool False Lưu hình ảnh đã cắt của các phát hiện. Hữu ích cho việc tăng cường tập dữ liệu, phân tích hoặc tạo bộ dữ liệu tập trung cho các đối tượng cụ thể.
show_labels bool True Hiển thị nhãn cho mỗi phát hiện trong đầu ra hình ảnh. Cung cấp sự hiểu biết ngay lập tức về các đối tượng được phát hiện.
show_conf bool True Hiển thị điểm tin cậy cho mỗi phát hiện cùng với nhãn. Cung cấp cái nhìn sâu sắc về sự chắc chắn của mô hình cho mỗi lần phát hiện.
show_boxes bool True Vẽ các hộp giới hạn xung quanh các đối tượng được phát hiện. Cần thiết cho việc nhận dạng trực quan và vị trí của các đối tượng trong hình ảnh hoặc khung video.
line_width None or int None Chỉ định chiều rộng đường của các hộp giới hạn. Nếu None, chiều rộng dòng được tự động điều chỉnh dựa trên kích thước hình ảnh. Cung cấp tùy chỉnh trực quan cho rõ ràng.

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

Cài đặt xác thực

Cài đặt val (xác thực) cho YOLO Các mô hình liên quan đến các siêu tham số và cấu hình khác nhau được sử dụng để đánh giá hiệu suất của mô hình 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ủa mô hình. Thường YOLO Cài đặt xác thực bao gồm kích thước lô, tần suất xác thực trong quá trình đào tạo và số liệu đánh giá hiệu suất. Các yếu tố khác ảnh hưởng đến quá trình xác thực bao gồm kích thước và thành phần của tập dữ liệu xác thực, cũng như nhiệm vụ cụ thể mà mô hình được sử dụng.

Lý lẽ Kiểu Mặc định Sự miêu tả
data str None Chỉ định đường dẫn đến tệp cấu hình tập dữ liệu (ví dụ: coco8.yaml). Tệp này bao gồm đường dẫn đến dữ liệu xác thực, tên lớp và số lớp.
imgsz int 640 Xác định kích thước của hình ảnh đầu vào. Tất cả các hình ảnh được thay đổi kích thước theo kích thước này trước khi xử lý.
batch int 16 Đặt số lượng hình ảnh mỗi đợt. Dùng -1 cho AutoBatch, tự động điều chỉnh dựa trên tính khả dụng của bộ nhớ GPU.
save_json bool False Nếu True, lưu kết quả vào tệp JSON để phân tích thêm hoặc tích hợp với các công cụ khác.
save_hybrid bool False Nếu True, lưu phiên bản kết hợp của nhãn kết hợp chú thích gốc với dự đoán mô hình bổ sung.
conf float 0.001 Đặt ngưỡng tin cậy tối thiểu để phát hiện. Các phát hiện có độ tin cậy dưới ngưỡng này sẽ bị loại bỏ.
iou float 0.6 Đặt ngưỡng Giao lộ qua Liên minh (IoU) cho Triệt tiêu Không Tối đa (NMS). Giúp giảm phát hiện trùng lặp.
max_det int 300 Giới hạn số lần phát hiện tối đa cho mỗi hình ảnh. Hữu ích trong các cảnh dày đặc để tránh phát hiện quá mức.
half bool True Cho phép 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.
device str None Chỉ định thiết bị để xác thực (cpu, cuda:0, v.v.). Cho phép linh hoạt trong việc sử dụng tài nguyên CPU hoặc GPU.
dnn bool False Nếu True, sử dụng mô-đun OpenCV DNN cho ONNX suy luận mô hình, cung cấp một giải pháp thay thế cho PyTorch phương pháp suy luận.
plots bool False Khi được đặt thành True, tạo và lưu các biểu đồ dự đoán so với sự thật cơ bản để đánh giá trực quan về hiệu suất của mô hình.
rect bool False Nếu True, sử dụng suy luận hình chữ nhật để trộn, giảm đệm và có khả năng tăng tốc độ và hiệu quả.
split str val Xác định phần tách tập dữ liệu để sử dụng để xác thực (val, testhoặc train). Cho phép linh hoạt trong việc lựa chọn phân khúc dữ liệu để đánh giá hiệu suất.

Điều chỉnh và thử nghiệm cẩn thận với các cài đặt này là rất quan trọng để đảm bảo hiệu suất tối ưu trên tập dữ liệu xác thực và phát hiện và ngăn chặn quá mức.

Hướng dẫn Val

Xuất cài đặt

Xuất cài đặt cho YOLO Các mô hình bao gồm các cấu hình và tùy chọn liên quan đến việc lưu hoặc xuất mô hình để sử dụng trong các môi trường hoặc nền tảng khác nhau. Các cài đặt này có thể ảnh hưởng đến hiệu suất, kích thước và khả năng tương thích của mô hình với các hệ thống khác nhau. Cài đặt xuất chính bao gồm định dạng tệp mô hình đã xuất (ví dụ: ONNX, TensorFlow SavedModel), thiết bị đích (ví dụ: CPU, GPU) và các tính năng bổ sung như mặt nạ hoặc nhiều nhãn trên mỗi hộp. Quá trình xuất cũng có thể bị ảnh hưởng bởi nhiệm vụ cụ thể của mô hình và các yêu cầu hoặc ràng buộc của môi trường hoặc nền tảng đích.

Lý lẽ Kiểu Mặc định Sự miêu tả
format str 'torchscript' Định dạng đích cho mô hình đã xuất, chẳng hạn như 'onnx', 'torchscript', 'tensorflow'hoặc các môi trường khác, xác định khả năng tương thích với các môi trường triển khai khác nhau.
imgsz int hoặc tuple 640 Kích thước hình ảnh mong muốn cho đầu vào mô hình. Có thể là số nguyên cho hình vuông hoặc bộ dữ liệu (height, width) cho các kích thước cụ thể.
keras bool False Cho phép xuất sang định dạng Keras cho TensorFlow SavedModel, cung cấp khả năng tương thích với TensorFlow phục vụ và API.
optimize bool False Á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 mô hình và cải thiện hiệu suất.
half bool False Cho phép lượng tử hóa FP16 (nửa chính xác), giảm kích thước mô hình và có khả năng tăng tốc độ suy luận trên phần cứng được hỗ trợ.
int8 bool False Kích hoạt lượng tử hóa INT8, tiếp tục nén mô hình và tăng tốc độ suy luận với tổn thất độ chính xác tối thiểu, chủ yếu cho các thiết bị biên.
dynamic bool False Cho phép kích thước đầu vào động cho ONNX và TensorRT xuất khẩu, tăng cường tính linh hoạt trong việc xử lý các kích thước hình ảnh khác nhau.
simplify bool False Đơn giản hóa biểu đồ mô hình cho ONNX xuất khẩu, có khả năng cải thiện hiệu suất và khả năng tương thích.
opset int None Chỉ định ONNX Phiên bản opset để tương thích với khác nhau ONNX Trình phân tích cú pháp và thời gian chạy. Nếu không được đặt, hãy sử dụng phiên bản được hỗ trợ mới nhất.
workspace float 4.0 Đặt kích thước không gian làm việc tối đa tính bằng GB cho TensorRT tối ưu hóa, cân bằng giữa việc sử dụng bộ nhớ và hiệu suất.
nms bool False Thêm chế áp không tối đa (NMS) vào CoreML xuất khẩu, cần thiết để xử lý hậu kỳ phát hiện chính xác và hiệu quả.

Điều quan trọng là phải cấu hình chu đáo các cài đặt này để đảm bảo mô hình đã xuất được tối ưu hóa cho trường hợp sử dụng dự định và hoạt động hiệu quả trong môi trường đích.

Hướng dẫn xuất khẩu

Cài đặt tăng cường

Kỹ thuật tăng cường là điều cần thiết để cải thiện sự mạnh mẽ và hiệu suất của YOLO Mô hình hóa bằng cách đưa sự thay đổi vào dữ liệu đào tạo, giúp mô hình khái quát hóa tốt hơn cho dữ liệu không nhìn thấy. Bảng sau đây phác thảo mục đích và hiệu quả của mỗi đối số tăng cường:

Lý lẽ Kiểu Mặc định Phạm vi Sự miêu tả
hsv_h float 0.015 0.0 - 1.0 Điều chỉnh màu sắc của hình ảnh bằng một phần nhỏ của bánh xe màu, giới thiệu sự thay đổi màu sắc. Giúp mô hình khái quát hóa trong các điều kiện ánh sáng khác nhau.
hsv_s float 0.7 0.0 - 1.0 Làm thay đổi độ bão hòa của hình ảnh một phần, ảnh hưởng đến cường độ màu sắc. Hữu ích để mô phỏng các điều kiện môi trường khác nhau.
hsv_v float 0.4 0.0 - 1.0 Sửa đổi giá trị (độ sáng) của hình ảnh theo một phân số, giúp người mẫu hoạt động tốt trong các điều kiện ánh sáng khác nhau.
degrees float 0.0 -180 - +180 Xoay hình ảnh ngẫu nhiên trong phạm vi độ quy định, cải thiện khả năng nhận dạng đối tượng của mô hình ở các hướng khác nhau.
translate float 0.1 0.0 - 1.0 Dịch hình ảnh theo chiều ngang và chiều dọc bằng một phần kích thước hình ảnh, hỗ trợ học cách phát hiện các đối tượng có thể nhìn thấy một phần.
scale float 0.5 >=0.0 Chia tỷ lệ hình ảnh theo hệ số khuếch đại, mô phỏng các đối tượng ở các khoảng cách khác nhau từ máy ảnh.
shear float 0.0 -180 - +180 Cắt hình ảnh ở một mức độ xác định, bắt chước hiệu ứng của các đối tượng được nhìn từ các góc khác nhau.
perspective float 0.0 0.0 - 0.001 Áp dụng chuyển đổi phối cảnh ngẫu nhiên cho hình ảnh, tăng cường khả năng hiểu các đối tượng trong không gian 3D của mô hình.
flipud float 0.0 0.0 - 1.0 Lật ngược hình ảnh với xác suất được chỉ định, tăng sự biến đổi dữ liệu mà không ảnh hưởng đến đặc điểm của đối tượng.
fliplr float 0.5 0.0 - 1.0 Lật hình ả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 tính đa dạng của tập dữ liệu.
bgr float 0.0 0.0 - 1.0 Lật các kênh hình ảnh từ RGB sang BGR với xác suất được chỉ định, hữu ích để tăng độ bền để sắp xếp thứ tự kênh không chính xác.
mosaic float 1.0 0.0 - 1.0 Kết hợp bốn hình ảnh đào tạo 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. Hiệu quả cao để hiểu cảnh phức tạp.
mixup float 0.0 0.0 - 1.0 Kết hợp hai hình ảnh và nhãn của chúng, tạo ra một hình ảnh tổng hợp. Tăng cường khả năng khái quát hóa của mô hình bằng cách giới thiệu nhiễu nhãn và biến thiên thị giác.
copy_paste float 0.0 0.0 - 1.0 Sao chép các đối tượng từ một hình ảnh và dán chúng vào một hình ảnh khác, hữu ích cho việc tăng các trường hợp đối tượng và tìm hiểu tắc đối tượng.
auto_augment str randaugment - Tự động áp dụng chính sách tăng cường được xác định trước (randaugment, autoaugment, augmix), tối ưu hóa cho các nhiệm vụ phân loại bằng cách đa dạng hóa các tính năng trực quan.
erasing float 0.4 0.0 - 0.9 Xóa ngẫu nhiên một phần hình ảnh trong quá trình đào tạo phân loại, khuyến khích người mẫu tập trung vào các tính năng ít rõ ràng hơn để nhận dạng.
crop_fraction float 1.0 0.1 - 1.0 Cắt hình ảnh phân loại thành một phần kích thước của nó để nhấn mạnh các tính năng trung tâm và thích ứng với tỷ lệ đối tượng, giảm phiền nhiễu nền.

Các cài đặt này có thể được điều chỉnh để đáp ứng các yêu cầu cụ thể của tập dữ liệu và tác vụ trong tầm tay. 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 dẫn đến hiệu suất mô hình tốt nhất.

Ghi nhật ký, trạm kiểm soát và cài đặt vẽ đồ thị

Ghi nhật ký, điểm kiểm tra, vẽ đồ thị và quản lý tệp là những cân nhắc quan trọng khi đào tạo YOLO mẫu.

  • Ghi nhật ký: Thường rất hữu ích khi ghi lại các số liệu và thống kê khác nhau trong quá trình đào tạo để theo dõi tiến trình của mô hình và chẩn đoán bất kỳ vấn đề nào có thể phát sinh. Điều này có thể được thực hiện bằng cách sử dụng thư viện ghi nhật ký như TensorBoard hoặc bằng cách viết thông báo nhật ký vào tệp.
  • Điểm kiểm tra: Đó là một thực hành tốt để lưu các điểm kiểm tra của mô hình đều đặn trong quá trình đào tạo. Điều này cho phép bạn tiếp tục đào tạo từ thời điểm trước đó nếu quá trình đào tạo bị gián đoạn hoặc nếu bạn muốn thử nghiệm với các cấu hình đào tạo khác nhau.
  • Vẽ sơ đồ: Hình dung hiệu suất và tiến trình đào tạo của mô hình có thể hữu ích để hiểu cách mô hình hoạt động và xác định các vấn đề tiềm ẩn. Điều này có thể được thực hiện bằng cách sử dụng thư viện vẽ đồ thị như matplotlib hoặc bằng cách tạo các ô bằng thư viện ghi nhật ký như TensorBoard.
  • Quản lý tệp: Quản lý các tệp khác nhau được tạo trong quá trình đào tạo, chẳng hạn như điểm kiểm tra mô hình, tệp nhật ký và lô, có thể là một thách thức. Điều quan trọng là phải có cấu trúc tệp rõ ràng và có tổ chức để theo dõi các tệp này và giúp dễ dàng truy cập và phân tích chúng khi cần.

Ghi nhật ký, điểm kiểm tra, vẽ đồ thị và quản lý tệp hiệu quả có thể giúp bạn theo dõi tiến trình của mô hình và giúp gỡ lỗi và tối ưu hóa quá trình đào tạo dễ dàng hơn.

Lý lẽ Mặc định Sự miêu tả
project 'runs' Chỉ định thư mục gốc để lưu các lần chạy đào tạo. Mỗi lần chạy sẽ được lưu trong một thư mục con riêng biệt trong thư mục này.
name 'exp' Xác định tên của thí nghiệm. Nếu không được chỉ định, YOLO Tự động tăng tên này cho mỗi lần chạy, ví dụ: exp, exp2, v.v., để tránh ghi đè lên các thí nghiệm trước đó.
exist_ok False Xác định xem có nên ghi đè lên thư mục thử nghiệm hiện có hay không nếu một thư mục có cùng tên đã tồn tại. Đặt tùy chọn này thành True cho phép ghi đè, trong khi False ngăn chặn nó.
plots False Kiểm soát việc tạo và lưu các lô đào tạo và xác nhận. Đặt thành True để tạo các biểu đồ như đường cong tổn thất, đường cong thu hồi chính xác và dự đoán mẫu. Hữu ích để theo dõi trực quan hiệu suất mô hình theo thời gian.
save False Cho phép tiết kiệm các trạm kiểm soát đào tạo và trọng lượng mô hình cuối cùng. Đặt thành True để định kỳ lưu các trạng thái mô hình, cho phép đào tạo được nối lại từ các trạm kiểm soát hoặc mô hình sẽ được triển khai.


Created 2023-11-12, Updated 2024-06-10
Authors: glenn-jocher (17), fcakyon (2), Laughing-q (2), plashchynski (1), Burhan-Q (1), AyushExel (1), RizwanMunawar (1), tensorturtle (1)

Ý kiến