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ụ
Đâu:
TASK
(tùy chọn) là một trong (dò, Phân đoạn, phân loại, tư thế, Obb)MODE
(bắt buộc) là một trong (xe lửa, Val, dự đoán, xuất khẩu, rãnh, Chuẩn)ARGS
(tùy chọn) làarg=value
Các cặp nhưimgsz=640
mà ghi đè mặc định.
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 vì 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. |
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 đị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. |
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 đị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ố 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 đặ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ờ 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 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 ). |
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 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 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 ). |
workers | 8 | Số 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. |
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. |
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 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ừ 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 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 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 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 ) . Đ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ứ 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ố 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 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 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ạ đố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ệ 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. |
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ớ.
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 nhiều 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 đ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ể GPUhoặ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 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 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 | 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. |
Đố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 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, 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 hoặc 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. |
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 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ả 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 GPU Tính khả dụng của bộ nhớ. |
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 đ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 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 độ 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 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 đượ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 | True | 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 , test hoặ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. |
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 .
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ể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, 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 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. |
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 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. |
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ả. |
batch | int | 1 | Chỉ đị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ế độ. |
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 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.
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 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. |
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 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 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 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 đặt và Hướ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.