Bỏ qua nội dung

Cấu hình

YOLO cài đặt và siêu tham số đóng 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 ở nhiều 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 thực và dự đoán.



Đồng hồ: Làm chủ Ultralytics YOLO : Cấu hình

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

Ví dụ

yolo TASK MODE ARGS
from ultralytics import YOLO

# Load a YOLO11 model from a pre-trained weights file
model = YOLO("yolo11n.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ài liệu.

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ạo dáng. 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à định vị 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 điểm ảnh 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 đ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 cho 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 detectphát hiện đối tượng, segment để phân đoạn, 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 tác vụ được thiết kế riêng cho các loại đầu ra và vấn đề cụ thể 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 một YOLO11 mô hình trên một tập dữ liệu tùy chỉnh.
  • Val : Để xác thực một YOLO11 mô hình sau khi được đào tạo.
  • Dự đoán : Để đưa ra dự đoán bằng cách sử dụng một YOLO11 mô hình trên hình ảnh hoặc video mới.
  • Xuất khẩu : Để xuất khẩu một YOLO11 mô hình thành định dạng có thể sử dụng để triển khai.
  • Theo dõi : Để theo dõi các đối tượng theo thời gian thực bằng cách sử dụng YOLO11 người mẫu.
  • Benchmark : Để đánh giá chuẩn mực YOLO11 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 thực, 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 hỏa

Các thiết lập đào tạo cho YOLO mô hình bao gồm nhiều 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 thiết lập này ảnh hưởng đến hiệu suất, tốc độ và độ chính xác của mô hình. Các thiết lập đào tạo chính bao gồm kích thước lô, tốc độ học , động lượng và giảm trọng số. Ngoài ra, lựa chọn trình tối ưu hóa, hàm 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. Việc điều chỉnh và thử nghiệm cẩn thận các thiết lập 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 .pt mô hình được đào tạo trước 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ố cụ thể của tập dữ liệu, bao gồm các đường dẫn đến đào tạo và dữ liệu xác thực, tên lớp và số lượng lớp.
epochs 100 Tổng số kỷ nguyên đào tạo. Mỗi kỷ nguyên đại diện cho một lần chạy đầy đủ trên toàn bộ tập dữ liệu. Việc điều chỉnh giá trị này có thể ảnh hưởng đến thời lượng đà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 thiết lập, điều này sẽ ghi đè epochs lập luận, cho phép đào tạo tự động dừng lại sau khoảng thời gian đã chỉ định. Hữu ích cho các tình huống đào tạo bị giới hạn thời gian.
patience 100 Số kỷ nguyên phải chờ 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á khớp bằng cách dừng đào tạo khi hiệu suất đạt đến mức ổn định.
batch 16 Kích thước lô, với ba chế độ: đặt thành số nguyên (ví dụ: batch=16), chế độ tự động ở mức 60% GPU sử dụng bộ nhớ (batch=-1), hoặc chế độ tự động với tỷ lệ sử dụng được chỉ định (batch=0.70).
imgsz 640 Kích thước hình ảnh mục tiêu để đào tạo. Tất cả hình ảnh được thay đổi kích thước theo kích thước này trước khi đư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 lưu các điểm kiểm tra đào tạo và trọng số 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 điểm kiểm tra mô hình, được chỉ định theo thời gian. 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 phiên đào tạo dài.
cache False Cho phép lưu trữ đệm các 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í tăng mức sử dụng bộ nhớ.
device None Chỉ định các thiết bị tính toán để đào tạo: một GPU (device=0), nhiều GPU (device=0,1), CPU (device=cpu), hoặc MPS cho silicon của Apple (device=mps).
workers 8 Số lượng luồng công nhân để tải dữ liệu (mỗi RANK nếu Đa GPU đào tạo). Ảnh hưởng đến tốc độ xử lý dữ liệu trước và đưa vào mô hình, đặc biệt hữu ích trong nhiều GPU thiết lập.
project None Tên của thư mục dự án nơi lưu trữ 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 đợt đà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 Đúng, cho phép ghi đè lên thư mục tên/dự án hiện có. Hữu ích cho thử nghiệm lặp đi lặp lại mà không cần phải xóa thủ công các đầu ra trước đó.
pretrained True Xác định xem có nên bắt đầu đào tạo 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ô hình cụ thể để tải trọng số. 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à tính ổn định.
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ả trong 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ề thuật toán không xác định.
single_cls False Xử lý tất cả các lớp trong tập dữ liệu đa lớp như một lớp duy nhất trong quá trình đào tạo. 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 hơn là phân loại.
classes None Chỉ định danh sách ID lớp để đào tạo. Hữu ích cho việc lọc ra và chỉ tập trung vào một số lớp nhất định trong quá trình đào tạo.
rect False Cho phép đào tạo hình chữ nhật, tối ưu hóa thành phần lô để giảm thiểu đệm. 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 cosin, điều chỉnh tốc độ học theo đường cong cosin qua các kỷ nguyên. Giúp quản lý tốc độ học để hội tụ tốt hơn.
close_mosaic 10 Vô hiệu hóa việc tăng cường dữ liệu khảm trong N kỷ nguyên cuối cùng để ổn định quá trình đào tạo trước khi hoàn tất. Đặt thành 0 sẽ vô hiệu hóa tính năng này.
resume False Tiếp tục đào tạo từ điểm kiểm tra đã lưu cuối cùng. Tự động tải trọng số mô hình, trạng thái tối ưu hóa và số lượng 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 quá trình đào tạo với tác động tối thiểu đến độ chính xác.
fraction 1.0 Chỉ định phần của tập dữ liệu được sử dụng để đào tạo. Cho phép đào tạo trên một tập hợ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ế.
profile False Cho phép lập hồ sơ ONNX Và TensorRT tốc độ trong quá trình đào tạo, hữu ích cho việc 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 chuyển giao học tập .
lr0 0.01 Tỷ lệ học tập ban đầu (tức là 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ố mô hình.
lrf 0.01 Tỷ lệ học tập cuối cùng là một phần của tỷ lệ ban đầu = (lr0 * lrf), được sử dụng kết hợp với trình lập lịch để điều chỉnh tốc độ học 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ứ vào bản cập nhật hiện tại.
weight_decay 0.0005 Thuật ngữ chính quy hóa L2, phạt các trọng số lớn để ngăn ngừa tình trạng quá khớp.
warmup_epochs 3.0 Số lượng kỷ nguyên để khởi động tốc độ học, tăng dần tốc độ học từ giá trị thấp đến tốc độ học ban đầu để ổn định quá trình đào tạo ngay từ đầu.
warmup_momentum 0.8 Động lượng ban đầu cho giai đoạn khởi động, dần dần điều chỉnh theo động lượng đã thiết lập trong suốt giai đoạn khởi động.
warmup_bias_lr 0.1 Tốc độ học cho các tham số sai lệch trong giai đoạn khởi động, giúp ổn định quá trình đào tạo mô hình trong các kỷ nguyên ban đầu.
box 7.5 Trọng số của thành phần mất hộp trong hàm mất má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 số của tổn thất phân loại trong hàm tổn thất tổng thể, ảnh hưởng đến tầm quan trọng của việc 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 tư thế bị mất trong các mô hình được đào tạo để ước tính tư thế, ảnh hưởng đến việc 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 số 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 tư thế.
nbs 64 Kích thước lô danh nghĩa để chuẩn hóa tổn thất.
overlap_mask True Xác định xem mặt nạ đối tượng có nên được hợp nhất thành một mặt nạ duy nhất để đào tạo hay giữ riêng cho từng đối tượng. Trong trường hợp chồng chéo, mặt nạ nhỏ hơn sẽ được phủ lên trên mặt nạ lớn hơn trong quá trình hợp nhất.
mask_ratio 4 Tỷ lệ lấy mẫu xuống cho mặt nạ phân đoạn, ảnh hưởng đến độ phân giải của mặt nạ được sử dụng trong quá trình đào tạo.
dropout 0.0 Tỷ lệ bỏ học khi thực hiện chính quy hóa trong các tác vụ phân loại, ngăn ngừa tình trạng quá khớp bằng cách loại bỏ ngẫu nhiên các đơn vị trong quá trình đào tạo.
val True Cho phép xác thực trong quá trình đào tạo, cho phép đánh giá định kỳ hiệu suất của 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 đồ số liệu đào tạo và xác thực, 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.

Lưu ý về Cài đặt kích thước lô

Các batch đối số có thể được cấu hình theo ba cách:

  • Kích thước lô cố định: Đặt giá trị số nguyên (ví dụ: batch=16), chỉ định trực tiếp số lượng hình ảnh cho mỗi đợt.
  • Chế độ tự động (60% GPU Ký ức): Sử dụng batch=-1 để tự động điều chỉnh kích thước lô hàng cho khoảng 60% CUDA sử dụng bộ nhớ.
  • Chế độ tự động với phần sử dụng: Đặt giá trị phân số (ví dụ: batch=0.70) để điều chỉnh kích thước lô dựa trên phân số đã chỉ định GPU sử dụng bộ nhớ.

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

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

Các thiết lập dự đoán cho YOLO 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. Việc điều chỉnh và thử nghiệm cẩn thận với các thiết lập 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 thiết lập chính bao gồm ngưỡng tin cậy, ngưỡng Non-Maximum Suppression (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 nhiều loại đầu vào khác nhau .
conf float 0.25 Đặt ngưỡng tin cậy tối thiểu cho các phát hiện. Các đối tượng được phát hiện với độ tin cậy dưới ngưỡng này sẽ bị bỏ qua. Điều chỉnh giá trị này có thể giúp giảm các kết quả dương tính giả.
iou float 0.7 Ngưỡng Giao điểm qua Liên hợp (IoU) cho Không triệt tiêu tối đa (NMS). Các giá trị thấp hơn dẫn đến ít phát hiện hơn bằng cách loại bỏ các hộp chồng 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 một bộ (chiều cao, chiều rộng). Kích thước phù hợp có thể cải thiện khả năng phát hiện sự chính xác và tốc độ xử lý.
half bool False Cho phép suy luận bán chính xác (FP16), có thể tăng tốc suy luận mô hình trên 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 , một cụ thể GPU hoặc các thiết bị tính toán khác để thực hiện mô hình.
batch int 1 Chỉ định kích thước lô để suy luận (chỉ hoạt động khi nguồn là một thư mục, tập tin video hoặc .txt tài liệu). Kích thước lô 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 quá trình suy luận.
max_det int 300 Số lượng phát hiện tối đa được phép trên 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 Bước nhảy 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í là độ phân giải thời gian. Giá trị 1 xử lý mọi khung hình, giá trị cao hơn bỏ qua các khung hình.
stream_buffer bool False Xác định xem có nên xếp hàng các khung hình đến cho luồng video hay không. Nếu False, các khung cũ bị loại bỏ để chứa các khung mới (được tối ưu hóa cho các ứng dụng thời gian thực). Nếu `Đúng', xếp hàng các khung mới trong bộ đệm, đảm bảo không có khung nào bị bỏ qua, nhưng sẽ gây ra độ trễ nếu FPS suy luận thấp hơn FPS luồng.
visualize bool False Kích hoạt khả năng 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à diễn giải mô hình.
augment bool False Cho phép tăng cường thời gian thử nghiệm (TTA) để dự đoán, có khả năng cải thiện độ mạnh mẽ của phát hiện với cái giá phải trả là tốc độ suy luận.
agnostic_nms bool False Cho phép Non-Maximum Suppression (NMS) không phân biệt lớp, hợp nhất 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 thành một tập hợp ID lớp. Chỉ các phát hiện thuộc về 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 tác vụ phát hiện nhiều lớp.
retina_masks bool False Trả về mặt nạ phân đoạn có độ phân giải cao. Các mặt nạ trả về (masks.data) sẽ khớp với kích thước hình ảnh gốc nếu được bật. Nếu bị tắt, chúng sẽ có kích thước hình ảnh được sử dụng trong quá trình suy luận.
embed list[int] None Chỉ định các lớp để trích xuất các vectơ đặc điểm hoặc nhúng . Hữu ích cho các tác vụ hạ lưu như phân cụm hoặc tìm kiếm sự tương đồng.
project str None Tên của thư mục dự án nơi đầu ra dự đoán được lưu nếu save được bật.
name str None Tên của lần chạy dự đoán. Được sử dụng để tạo một thư mục con trong thư mục dự án, nơi lưu trữ các đầu ra dự đoán nếu save được bật.

Lập luận về hình ảnh:

Lý lẽ Kiểu Mặc định Sự miêu tả
show bool False Nếu như True, hiển thị 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 thử nghiệm.
save bool False hoặc True Cho phép lưu hình ảnh hoặc video có chú thích vào tệp. Hữu ích cho việc lập 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 & Sai khi sử dụng trong Python .
save_frames bool False Khi 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_txt bool False Lưu kết quả phát hiện vào tệp văn bản, theo định dạng [class] [x_center] [y_center] [width] [height] [confidence]. Hữu ích khi 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 dữ liệu, phân tích hoặc tạo các dữ liệu tập trung cho các đối tượng cụ thể.
show_labels bool True Hiển thị nhãn cho từng phát hiện trong đầu ra trực quan. 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 lần phát hiện cùng với nhãn. Cung cấp thông tin chi tiết về mức độ 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 để nhận dạng trực quan và xác định vị trí của các đối tượng trong hình ảnh hoặc khung video.
line_width None hoặc int None Chỉ định độ rộng đường của hộp giới hạn. Nếu None, độ rộng của đườ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 để rõ nét hơn.

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

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

Các thiết lập val (xác thực) cho YOLO các mô hình liên quan đến nhiều 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 một tập dữ liệu xác thực. Các thiết lập này ảnh hưởng đến hiệu suất, tốc độ và độ chính xác của mô hình. Phổ biến YOLO thiết lập 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 các đường dẫn đến dữ liệu xác thực, tên lớp và số lượng lớp.
imgsz int 640 Xác định kích thước của hình ảnh đầu vào. Tất 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 Thiết lập số lượng hình ảnh cho mỗi đợt. Sử dụng -1 cho AutoBatch, tự động điều chỉnh dựa trên GPU khả năng sử dụng bộ nhớ.
save_json bool False Nếu như 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 như True, lưu phiên bản nhãn kết hợp giữa chú thích gốc với các dự đoán mô hình bổ sung.
conf float 0.001 Đặt ngưỡng tin cậy tối thiểu cho các 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 điểm qua Liên hợp (IoU) cho Không loại trừ 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 trên mỗi hình ảnh. Hữu ích trong các cảnh dày đặc để ngăn ngừa phát hiện quá mức.
half bool True Cho phép tính toán độ chính xác một nửa (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 CPU hoặc GPU tài nguyên.
dnn bool False Nếu như True, sử dụng MởCV Mô-đun DNN cho ONNX mô hình suy luận, cung cấp một giải pháp thay thế cho PyTorch phương pháp suy luận.
plots bool False Khi thiết lập thành True, tạo và lưu các biểu đồ dự đoán so với thực tế để đánh giá trực quan hiệu suất của mô hình.
rect bool True Nếu như True, sử dụng suy luận hình chữ nhật để phân nhóm, giảm đệm và có khả năng tăng tốc độ và hiệu quả.
split str val Xác định phân chia tập dữ liệu để sử dụng cho việc xác thực (val, test, hoặc train). Cho phép linh hoạt trong việc lựa chọn phân đoạn dữ liệu để đánh giá hiệu suất.
project str None Tên của thư mục dự án nơi lưu trữ kết quả xác thực.
name str None Tên của lần chạy xác thực. Đượ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ý xác thực và đầu ra.

Việc điều chỉnh và thử nghiệm cẩn thận với các thiết lập 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 cũng như phát hiện và ngăn chặn hiện tượng quá khớp .

Hướng dẫn Val

Xuất Cài Đặt

Xuất cài đặt cho YOLO 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 thiết lập 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 nhiều hệ thống khác nhau. Các thiết lập 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ị mục tiêu (ví dụ, CPU , GPU ), và các tính năng bổ sung như mặt nạ hoặc nhiều nhãn cho 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 hạn chế 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 mục tiêu cho mô hình được xuất ra, chẳng hạn như 'onnx', 'torchscript', 'tensorflow'hoặc những cách khác, xác định khả năng tương thích với nhiều 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 ảnh vuông hoặc một bộ (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 (bán 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, nén mô hình hơn nữa và tăng tốc suy luận với mức độ mất độ chính xác tối thiểu, chủ yếu dành cho các thiết bị biên.
dynamic bool False Cho phép kích thước đầu vào động cho ONNX , TensorRT Và OpenVINO 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 True Đơn giản hóa đồ thị mô hình cho ONNX xuất khẩu với onnxslim, 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 các ONNX trình phân tích cú pháp và thời gian chạy. Nếu không được thiết lập, sử dụng phiên bản được hỗ trợ mới nhất.
workspace float hoặc None None Đặt kích thước không gian làm việc tối đa theo GiB cho TensorRT tối ưu hóa, cân bằng việc sử dụng bộ nhớ và hiệu suất; sử dụng None để tự động phân bổ bởi TensorRT lên đến mức tối đa của thiết bị.
nms bool False Thêm chức năng ức chế không tối đa (NMS) vào CoreML xuất, cần thiết cho quá trình xử lý phát hiện sau đó chính xác và hiệu quả.
batch int 1 Chỉ định kích thước suy luận lô mô hình xuất hoặc số lượng hình ảnh tối đa mà mô hình xuất sẽ xử lý đồng thời trong predict cách thức.
device str None Chỉ định thiết bị để xuất: GPU (device=0), CPU (device=cpu), MPS cho silicon của Apple (device=mps) hoặc DLA cho NVIDIA Máy bay phản lực (device=dla:0 hoặc device=dla:1).

Điều quan trọng là phải cấu hình cẩn thận các thiết lập này để đảm bảo mô hình được xuất ra được tối ưu hóa cho trường hợp sử dụng dự kiến và hoạt động hiệu quả trong môi trường mục tiêu.

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

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

Các thiết lập cấu hình cho Ultralytics Các giải pháp cung cấp một cách linh hoạt để tùy chỉnh mô hình cho nhiều tác vụ khác nhau như đếm đối tượng, tạo bản đồ nhiệt, theo dõi quá trình tập luyện, phân tích dữ liệu, theo dõi vùng, quản lý hàng đợi và đếm theo vùng. Các tùy chọn này giúp dễ dàng điều chỉnh thiết lập để có kết quả chính xác và hữu ích phù hợp với nhu cầu cụ thể.

Lý lẽ Kiểu Mặc định Sự miêu tả
region list [(20, 400), (1080, 400), (1080, 360), (20, 360)] Xác định các điểm vùng để đếm đối tượng, giám sát hàng đợi, vùng theo dõi hoặc ước tính tốc độ. Các điểm được xác định là tọa độ tạo thành một vùng đa giác để phân tích.
show_in bool True Chỉ ra liệu có hiển thị các đối tượng được tính là đi vào vùng đã xác định hay không. Cần thiết cho phân tích thực tế, chẳng hạn như theo dõi xu hướng nhập cảnh.
show_out bool True Chỉ ra liệu có hiển thị các đối tượng được tính là thoát khỏi vùng đã xác định hay không. Hữu ích cho các ứng dụng yêu cầu theo dõi và phân tích thoát.
colormap int or tuple COLORMAP_PARULA Chỉ định bản đồ màu được OpenCV hỗ trợ để trực quan hóa bản đồ nhiệt. Mặc định là COLORMAP_PARULAnhưng có thể sử dụng các bản đồ màu khác nhau cho các tùy chọn trực quan khác nhau.
up_angle float 145.0 Ngưỡng góc để phát hiện vị trí "lên" trong quá trình theo dõi bài tập. Có thể điều chỉnh dựa trên vị trí của các điểm chính cho các bài tập khác nhau.
down_angle float 90.0 Ngưỡng góc để phát hiện vị trí "xuống" trong quá trình theo dõi bài tập. Điều chỉnh ngưỡng này dựa trên vị trí điểm chính cho các bài tập cụ thể.
kpts list [6, 8, 10] Danh sách các điểm chính được sử dụng để theo dõi quá trình tập luyện. Các điểm chính này tương ứng với các khớp hoặc bộ phận cơ thể, chẳng hạn như vai, khuỷu tay và cổ tay, cho các bài tập như chống đẩy, kéo xà, gập người, tập cơ bụng.
analytics_type str line Chỉ định loại hình ảnh phân tích để tạo. Các tùy chọn bao gồm "line", "pie", "bar", hoặc "area". Mặc định là "line" để trực quan hóa xu hướng.
json_file str None Đường dẫn đến tệp JSON xác định vùng cho hệ thống đỗ xe hoặc các ứng dụng tương tự. Cho phép cấu hình linh hoạt các vùng phân tích.

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

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

Các kỹ thuật tăng cường là cần thiết để cải thiện độ bền và hiệu suất của YOLO mô hình bằng cách đưa sự thay đổi vào dữ liệu đào tạo , giúp mô hình tổng quát hóa tốt hơn đối với dữ liệu chưa biết. Bảng sau đây phác thảo mục đích và hiệu ứng của từng đố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 sắc thái của hình ảnh theo một phần của bánh xe màu, tạo ra 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 Thay đổi độ bão hòa của hình ảnh theo một phần, ảnh hưởng đến cường độ màu. 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 nhỏ, giúp mô hình hoạt động tốt trong nhiều đ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 độ được chỉ định, cải thiện khả năng nhận dạng vật thể ở nhiều hướng khác nhau của mô hình.
translate float 0.1 0.0 - 1.0 Dịch chuyển hình ảnh theo chiều ngang và chiều dọc theo một phần nhỏ kích thước hình ảnh, hỗ trợ việc học cách phát hiện các vật thể chỉ nhìn thấy một phần.
scale float 0.5 >=0.0 Thay đổi tỷ lệ hình ảnh theo hệ số khuếch đại, mô phỏng các vật thể ở các khoảng cách khác nhau từ máy ảnh.
shear float 0.0 -180 - +180 Cắt hình ảnh theo một góc độ nhất định, mô phỏng hiệu ứng của các vật thể được nhìn từ nhiều góc độ khác nhau.
perspective float 0.0 0.0 - 0.001 Áp dụng phép biế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 vật thể 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 theo xác suất đã chỉ định, tăng độ biến thiên của 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 Đảo ngược 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 độ tin cậy cho việc sắp xếp 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 thành phần cảnh khác nhau và tương tác đối tượng. Rất hiệu quả để 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 đưa vào nhiễu nhãn và tính biến thiên trực quan.
copy_paste float 0.0 0.0 - 1.0 Sao chép và dán các đối tượng trên các hình ảnh, hữu ích để tăng số lượng đối tượng và học cách che khuất đối tượng. Yêu cầu nhãn phân đoạn.
copy_paste_mode str flip - Lựa chọn phương pháp tăng cường Sao chép-Dán trong số các tùy chọn của ("flip", "mixup").
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 mô hình tập trung vào các đặc điểm ít rõ ràng hơn để nhận dạng.
crop_fraction float 1.0 0.1 - 1.0 Cắt ảnh phân loại thành một phần nhỏ kích thước của ảnh để làm nổi bật các đặc điểm trung tâm và thích ứng với tỷ lệ vật thể, giảm sự xao nhãng ở nền.

Những thiết lập 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à nhiệm 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.

Thiết lập ghi nhật ký, điểm kiểm tra và vẽ đồ thị

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

  • Ghi nhật ký: Thường hữu ích khi ghi nhật ký nhiều số liệu và số liệu 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 mọi vấn đề 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 tin nhắn nhật ký vào tệp.
  • Điểm kiểm tra: Thực hành tốt là lưu điểm kiểm tra của mô hình theo các khoảng thời gian đề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ừ đ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ẽ đồ thị: Việc trực quan hóa hiệu suất của mô hình và tiến trình đào tạo 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 đồ thị 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à biểu đồ, 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.

Việc ghi nhật ký, kiểm tra điểm, lập biểu đồ 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ó ghi đè lên thư mục thử nghiệm hiện có hay không nếu thư mục có cùng tên đã tồn tại. Đặt 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 biểu đồ đào tạo và xác thực. Đặt thành True để tạo ra các biểu đồ như đường cong mất mát, độ chính xác-nhớ lại đường cong và dự đoán mẫu. Hữu ích cho việc theo dõi trực quan hiệu suất mô hình theo thời gian.
save False Cho phép lưu các điểm kiểm tra đào tạo và trọng số mô hình cuối cùng. Đặt thành True để lưu trạng thái mô hình theo định kỳ, cho phép tiếp tục đào tạo từ các điểm kiểm tra này hoặc triển khai các mô hình.

CÂU HỎI THƯỜNG GẶP

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

Cải thiện YOLO Hiệu suất mô hình liên quan đến việc điều chỉnh các siêu tham số như kích thước lô, tốc độ học, động lượng và giảm trọng số. Điều chỉnh cài đặt tăng cường, chọn trình tối ưu hóa phù hợp và sử dụng các kỹ thuật như dừng sớm hoặc độ chính xác hỗn hợp cũng có thể hữu ích. Để biết hướng dẫn chi tiết về cài đặt đào tạo, hãy tham khảo Hướng dẫn đào tạo .

Những siêu tham số quan trọng cần xem xét là gì? YOLO độ chính xác của mô hình?

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

  • Kích thước lô (batch): Kích thước lô lớn hơn có thể ổn định quá trình đào tạo nhưng có thể cần nhiều bộ nhớ hơn.
  • Tỷ lệ học tập (lr0): Kiểm soát kích thước bước để cập nhật trọng số; tỷ lệ nhỏ hơn cung cấp khả năng điều chỉnh tốt nhưng hội tụ chậm.
  • Động lượng (momentum): Giúp tăng tốc các vectơ gradient theo đúng hướng, làm giảm dao động.
  • Kích thước hình ảnh (imgsz):Kích thước hình ảnh lớn hơn có thể cải thiện độ chính xác nhưng lại làm tăng khối lượng tính toán.

Điều chỉnh các giá trị này dựa trên tập dữ liệu và khả năng phần cứng của bạn. Khám phá thêm trong phần Cài đặt tàu .

Làm thế nào để tôi thiết lập tốc độ học tập để đào tạo một YOLO người mẫu?

Tỷ lệ học tập (lr0) là rất quan trọng cho việc tối ưu hóa. Một điểm khởi đầu chung là 0.01 cho SGD hoặc 0.001 cho Adam. Điều cần thiết là phải theo dõi số liệu đào tạo và điều chỉnh nếu cần thiết. Sử dụng trình lập lịch tốc độ học cosin (cos_lr) hoặc các kỹ thuật khởi động (warmup_epochs, warmup_momentum) để thay đổi động tỷ lệ trong quá trình đào tạo. Tìm thêm chi tiết trong Hướng dẫn tàu hỏa.

Thiết lập suy luận mặc định cho là gì? YOLO mô hình?

Thiết lập suy luận mặc định bao gồm:

  • Ngưỡng tin cậy (conf=0.25): Độ tin cậy tối thiểu cho việc phát hiện.
  • Ngưỡng IoU (iou=0.7): Đối với việc ức chế không tối đa (NMS).
  • Kích thước hình ảnh (imgsz=640): Thay đổi kích thước hình ảnh đầu vào trước khi suy luận.
  • Thiết bị (device=None): Chọn CPU hoặc GPU để suy luận.

Để có cái nhìn tổng quan toàn diện, hãy truy cập phần Cài đặt dự đoánHướng dẫn dự đoán .

Tại sao tôi nên sử dụng chương trình đào tạo chính xác hỗn hợp với YOLO mô hình?

Đào tạo chính xác hỗn hợp, được kích hoạt bằng amp=True, giúp giảm mức sử dụng bộ nhớ và có thể tăng tốc quá trình đào tạo bằng cách tận dụng các lợi thế của cả FP16 và FP32. Điều này có lợi cho các GPU hiện đại, hỗ trợ độ chính xác hỗn hợp gốc, cho phép nhiều mô hình hơn phù hợp với bộ nhớ và cho phép 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 về điều này trong Hướng dẫn tàu hỏa.

📅 Được tạo ra cách đây 1 năm ✏️ Đã cập nhật cách đây 10 ngày

Bình luận