Bỏ để qua phần 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.



Xem: Làm chủ Ultralytics YOLO : 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 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ệ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 địnhSự 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 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 mô hình YOLO11 trên tập dữ liệu tùy chỉnh.
  • Val : Để xác thực mô hình YOLO11 sau khi nó đã được đào tạo.
  • Dự đoán : Để đưa ra dự đoán bằng cách sử dụng mô hình YOLO11 đã được đào tạo trên hình ảnh hoặc video mới.
  • Xuất : Để xuất mô hình YOLO11 sang đị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 mô hình YOLO11.
  • Tiêu chuẩn : Để đánh giá chuẩn xuất khẩu YOLO11 ( ONNX , TensorRT , v.v.) tốc độ và độ chính xác.
Lý lẽMặc địnhSự 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á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 địnhSự miêu tả
modelNoneChỉ đị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ố.
dataNoneĐườ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.
epochs100Tổ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.
timeNoneThờ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.
patience100Số 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.
batch16Kích thước lô, với ba chế độ: đặt thành số nguyên (ví dụ: batch=16), chế độ tự động cho 60% GPU Sử dụng bộ nhớ (batch=-1), hoặc chế độ tự động với phân số sử dụng được chỉ định (batch=0.70).
imgsz640Kí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.
saveTrueCho 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-1Tầ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.
cacheFalseCho 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.
deviceNoneChỉ định (các) thiết bị tính toán để đào tạo: một thiết bị duy nhất GPU (device=0), nhiều GPU (device=0,1), CPU (device=cpu), hoặc MPS cho Apple silicon (device=mps).
workers8Số luồng thợ để tải dữ liệu (mỗi RANK nếu Multi-GPU đào tạo). Ả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 đa -GPU Thiết lập.
projectNoneTê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.
nameNoneTê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_okFalseNế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 đó.
pretrainedTrueXá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.
seed0Đặ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.
deterministicTrueBuộ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_clsFalseXử 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.
rectFalseCho 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_lrFalseSử 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_mosaic10Vô 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.
resumeFalseTiế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.
ampTrueCho 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.
fraction1.0Chỉ đị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ế.
profileFalseCho 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.
freezeNoneĐó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 .
lr00.01Tỷ 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.
lrf0.01Tỷ 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.
momentum0.937Hệ 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_decay0.0005Thuậ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_epochs3.0Số 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_momentum0.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_lr0.1Tỷ 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.
box7.5Trọ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 .
cls0.5Trọ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.
dfl1.5Trọ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.
pose12.0Trọ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ế.
kobj2.0Trọ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_smoothing0.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.
nbs64Kích thước lô danh nghĩa để bình thường hóa tổn thất.
overlap_maskTrueXá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_ratio4Tỷ 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.
dropout0.0Tỷ 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.
valTrueCho 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.
plotsFalseTạ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.

Lưu ý về Cài đặt kích thước hàng loạt

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 trên mỗi đợt.
  • Chế độ tự động (60% GPU Bộ nhớ):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ố 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 được chỉ định của GPU sử dụng bộ nhớ.

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ểuMặc địnhSự miêu tả
sourcestr'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 .
conffloat0.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ả.
ioufloat0.7Ngưỡ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.
imgszint or tuple640Xá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ý.
halfboolFalseCho 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.
devicestrNoneChỉ đị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ể GPUhoặc các thiết bị điện toán khác để thực thi mô hình.
max_detint300Số 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_strideint1Sả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_bufferboolFalseXá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.
visualizeboolFalseKí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.
augmentboolFalseCho 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_nmsboolFalseCho 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.
classeslist[int]NoneLọ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_masksboolFalseTrả 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.
embedlist[int]NoneChỉ đị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.
projectstrNoneTên của thư mục dự án nơi đầu ra dự đoán được lưu nếu save được bật.
namestrNoneTên của lần chạy dự đoán. Được sử dụng để tạo một thư mục con trong thư mục dự án, nơi lưu trữ các đầu ra dự đoán nếu save được bật.

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

Lý lẽKiểuMặc địnhSự miêu tả
showboolFalseNế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.
saveboolFalse hoặc TrueCho 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_framesboolFalseKhi 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_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 đ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_cropboolFalseLư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_labelsboolTrueHiể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_confboolTrueHiể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_boxesboolTrueVẽ 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_widthNone hoặc intNoneChỉ đị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ểuMặc địnhSự miêu 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 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.
imgszint640Xá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ý.
batchint16Đặ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 GPU Tính khả dụng của bộ nhớ.
save_jsonboolFalseNế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_hybridboolFalseNế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.
conffloat0.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ỏ.
ioufloat0.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_detint300Giớ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.
halfboolTrueCho 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 .
devicestrNoneChỉ đị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.
dnnboolFalseNếu 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.
plotsboolFalseKhi đượ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.
rectboolTrueNế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ả.
splitstrvalXá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.
projectstrNoneTên của thư mục dự án nơi lưu trữ kết quả xác thực.
namestrNoneTê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 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ư khẩu trang 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ểuMặc địnhSự miêu tả
formatstr'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.
imgszint hoặc tuple640Kí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ể.
kerasboolFalseCho 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.
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 mô hình và cải thiện hiệu suất.
halfboolFalseCho 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ợ.
int8boolFalseKí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.
dynamicboolFalseCho 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.
simplifyboolTrueĐơn giản hóa biểu đồ 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.
opsetintNoneChỉ đị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.
workspacefloat4.0Đặt kích thước không gian làm việc tối đa trong GiB 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.
nmsboolFalseThê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ả.
batchint1Chỉ định kích thước suy luận hàng loạt 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 chế độ.
devicestrNoneChỉ đị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 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

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ểuMặc địnhPhạm viSự miêu tả
hsv_hfloat0.0150.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_sfloat0.70.0 - 1.0Là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_vfloat0.40.0 - 1.0Sử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.
degreesfloat0.0-180 - +180Xoay 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.
translatefloat0.10.0 - 1.0Dị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.
scalefloat0.5>=0.0Chia 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.
shearfloat0.0-180 - +180Cắ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.
perspectivefloat0.00.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.
flipudfloat0.00.0 - 1.0Lậ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.
fliplrfloat0.50.0 - 1.0Lậ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.
bgrfloat0.00.0 - 1.0Lậ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.
mosaicfloat1.00.0 - 1.0Kế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.
mixupfloat0.00.0 - 1.0Kế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_pastefloat0.00.0 - 1.0Sao 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.
copy_paste_modestrflip-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_augmentstrrandaugment-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.
erasingfloat0.40.0 - 0.9Xó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_fractionfloat1.00.1 - 1.0Cắ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 địnhSự 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_okFalseXá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ó.
plotsFalseKiể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 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.
saveFalseCho 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.

FAQ

Làm cách nào để cải thiện hiệu suất của 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 .

Các siêu tham số chính 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 đào tạo nhưng có thể yêu cầu 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 lượng; Tỷ lệ nhỏ hơn cung cấp các đ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 tăng tải 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 cách nào để đặt tỷ lệ học tập để đào tạo a YOLO mẫu?

Tỷ lệ học tập (lr0) là rất quan trọng để tối ưu hóa. Một điểm khởi đầu phổ biến là 0.01 cho SGD hoặc 0.001 cho Adam. Điều cần thiết là phải theo dõi các số liệu đào tạo và điều chỉnh nếu cần thiết. Sử dụng công cụ lập lịch tỷ lệ học tập cosin (cos_lr) hoặc kỹ thuật khởi động (warmup_epochs, warmup_momentum) để tự động sửa đổi 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.

Cài đặt suy luận mặc định cho là gì YOLO Mô hình?

Cài đặt suy luận mặc định bao gồm:

  • Ngưỡng tin cậy (conf=0.25): Độ tin cậy tối thiểu để phát hiện.
  • Ngưỡng IoU (iou=0.7): để triệt tiêu 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 Dự đoán cài đặtHướng dẫn dự đoán.

Tại sao tôi nên sử dụng đà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 với amp=True, giúp giảm mức sử dụng bộ nhớ và có thể tăng tốc độ đào tạo bằng cách sử dụng các ưu điểm 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 nguyên bản, cho phép nhiều mô hình phù hợp với bộ nhớ hơn 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 1 tháng

Ý kiến