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ụ
Ở đâu:
TASK
(tùy chọn) là một trong (phát hiện, phân khúc, phân loại, tư thế, obb)MODE
(bắt buộc) là một trong (xe lửa, giá trị, dự đoán, xuất khẩu, theo dõi, chuẩn mực)ARGS
(tùy chọn) làarg=value
cặp nhưimgsz=640
ghi đè lên các giá trị 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à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 detect vì phá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. |
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. |
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ớ.
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. |
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 .
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.
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_PARULA như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. |
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án và Hướ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.