Bỏ qua nội dung

Cấu hình

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

Xem: Làm chủ Ultralytics YOLO : Cấu hình



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

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

Ví dụ

yolo TASK MODE ARGS
from ultralytics import YOLO

# Load a YOLO 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 và đến từ cfg/defaults.yaml tài liệu.

Nhiệm vụ

Ultralytics YOLO các mô hình có thể thực hiện nhiều tác vụ thị giác máy tính khác nhau, bao gồm:

Lý lẽ Mặc định Sự miêu tả
task 'detect' Chỉ định YOLO nhiệm vụ: detectphát hiện đối tượng, segment để phân đoạn, classify để phân loại, pose để ước tính tư thế và obb cho các hộp giới hạn định hướng. Mỗi nhiệm vụ được thiết kế riêng cho các đầu ra và vấn đề cụ thể trong phân tích hình ảnh và video.

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

Chế độ

Ultralytics YOLO các mô hình hoạt động ở các chế độ khác nhau, mỗi chế độ được thiết kế cho một giai đoạn cụ thể của vòng đời mô hình:

  • Tàu hỏa : Tàu hỏa a YOLO mô hình trên một tập dữ liệu tùy chỉnh.
  • Val : Xác thực một đào tạo YOLO người mẫu.
  • Dự đoán : Sử dụng một đào tạo YOLO mô hình để đưa ra dự đoán về hình ảnh hoặc video mới.
  • Xuất khẩu : Xuất khẩu a YOLO mô hình 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 YOLO người mẫu.
  • Chuẩn mực : Chuẩn mực về tốc độ và độ chính xác của YOLO xuất khẩu ( ONNX , TensorRT , vân vân.).
Lý lẽ Mặc định Sự miêu tả
mode 'train' Chỉ định YOLO chế độ hoạt động của mô hình: train để đào tạo mô hình, val để xác thực, predict để suy luận, export để chuyển đổi 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ế độ hỗ trợ các giai đoạn khác nhau, từ phát triển đến triển khai.

Hướng dẫn chế độ

Cài đặt tàu hỏa

Cài đặt đào tạo cho YOLO mô hình bao gồm 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. Các thiết lập chính bao gồm kích thước lô , tốc độ học , động lượng và giảm trọng số. 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 cũng ảnh hưởng đến quá trình đào tạo. Điều chỉnh và thử nghiệm là rất quan trọng để có hiệu suất tối ưu. Để biết thêm chi tiết, hãy xem hàm điểm vào Ultralytics .

Lý lẽ Kiểu Mặc định Sự miêu tả
model str 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 str 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 int 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 float 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 int 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 int 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 int hoặc list 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 bool 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 int -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 bool 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 int hoặc str hoặc list 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 int 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 str 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 str 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 bool 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 bool hoặc str 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 str '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 int 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 bool 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 bool 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 list[int] 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 bool 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.
multi_scale bool False Cho phép đào tạo đa thang đo bằng cách tăng/giảm imgsz lên đến một yếu tố 0.5 trong quá trình đào tạo. Đào tạo mô hình để chính xác hơn với nhiều imgsz trong quá trình suy luận.
cos_lr bool 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 int 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 bool 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 bool 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 float 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 bool 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 int hoặc list 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 float 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 float 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 float 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 float 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 float 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 float 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 float 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 float 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 float 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 float 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 float 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 float 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 int 64 Kích thước lô danh nghĩa để chuẩn hóa tổn thất.
overlap_mask bool 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 int 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 float 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 bool 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 bool 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ố cung cấp ba tùy chọn cấu hình:

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

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

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

Thiết lập dự đoán cho YOLO mô hình bao gồm 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 trong quá trình suy luận. 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. Kích thước dữ liệu đầu vào, định dạng và các tính năng bổ sung như mặt nạ cũng ảnh hưởng đến dự đoán. Việc điều chỉnh các thiết lập này là cần thiết để có hiệu suất tối ưu.

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 hoặc 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ũ sẽ 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 True, xếp hàng các khung hình mới vào bộ đệm, đảm bảo không có khung hình nào bị bỏ qua, nhưng sẽ gây ra độ trễ nếu FPS suy luận thấp hơn FPS của 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.
stream bool False Cho phép xử lý hiệu quả bộ nhớ đối với các video dài hoặc nhiều hình ảnh bằng cách trả về trình tạo đối tượng Kết quả thay vì tải tất cả các khung hình vào bộ nhớ cùng một lúc.
verbose bool True Kiểm soát việc hiển thị nhật ký suy luận chi tiết trong thiết bị đầu cuối hay không, cung cấp phản hồi theo thời gian thực về quá trình dự đoán.

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 or 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 or 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.
font_size float None Kích thước phông chữ văn bản cho chú thích. Tự động thay đổi theo kích thước hình ảnh nếu được đặt thành None.
font str 'Arial.ttf' Tên phông chữ hoặc đường dẫn cho chú thích văn bản trong hình ảnh trực quan.
pil bool False Trả về hình ảnh dưới dạng đối tượng PIL Image thay vì mảng numpy.
kpt_radius int 5 Bán kính của các điểm chính khi trực quan hóa kết quả ước tính tư thế.
kpt_line bool True Kết nối các điểm chính bằng các đường thẳng khi hình dung ước lượng tư thế.
masks bool True Hiển thị mặt nạ phân đoạn trong đầu ra trực quan hóa.
probs bool True Bao gồm xác suất phân loại trong hình ảnh trực quan.
filename str None Đường dẫn và tên tệp để lưu hình ảnh có chú thích khi save=True.
color_mode str 'class' Chỉ định chế độ tô màu cho hình ảnh trực quan, ví dụ: 'thể hiện' hoặc 'lớp'.
txt_color tuple[int, int, int] (255, 255, 255) Màu văn bản RGB cho chú thích nhiệm vụ phân loại.

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

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

Thiết lập xác thực cho YOLO mô hình liên quan đến siêu tham số và cấu hình để đánh giá hiệu suất trên 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ác thiết lập phổ biến bao gồm kích thước lô, tần suất xác thực và số liệu hiệu suất. Kích thước và thành phần của tập dữ liệu xác thực, cùng với tác vụ cụ thể, cũng ảnh hưởng đến quy trình.

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ý. Kích thước lớn hơn có thể cải thiện độ chính xác cho các đối tượng nhỏ nhưng làm tăng thời gian tính toán.
batch int 16 Thiết lập số lượng hình ảnh cho mỗi đợt. Các giá trị cao hơn sử dụng GPU bộ nhớ hiệu quả hơn nhưng cần nhiều VRAM hơn. Điều chỉnh dựa trên tài nguyên phần cứng khả dụng.
save_json bool False Nếu như True, lưu kết quả vào tệp JSON để phân tích thêm, tích hợp với các công cụ khác hoặc gửi tới các máy chủ đánh giá như COCO.
save_hybrid bool False Nếu như True, lưu phiên bản nhãn lai kết hợp chú thích gốc với các dự đoán mô hình bổ sung. Hữu ích cho việc học bán giám sát và cải tiến tập dữ liệu.
conf float 0.001 Đặt ngưỡng tin cậy tối thiểu cho các phát hiện. Các giá trị thấp hơn làm tăng khả năng thu hồi nhưng có thể đưa ra nhiều kết quả dương tính giả hơn. Được sử dụng trong quá trình xác thực để tính toán các đường cong thu hồi chính xác.
iou float 0.6 Đặt ngưỡng Giao điểm qua Liên hợp cho việc Loại bỏ Không tối đa . Kiểm soát việc loại bỏ phát hiện trùng lặp.
max_det int 300 Giới hạn số lượng 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 chặn phát hiện quá mức và quản lý tài nguyên tính toán.
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.). Khi None, tự động chọn thiết bị tốt nhất có sẵn. Nhiều CUDA thiết bị có thể được chỉ định bằng dấu phẩy.
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 dữ liệu thực tế, ma trận nhầm lẫn và đường cong PR để đá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 để tạo khối, giảm phần đệm và có khả năng tăng tốc độ và hiệu quả bằng cách xử lý hình ảnh theo tỷ lệ khung hình gốc.
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. Giúp sắp xếp kết quả từ các thí nghiệm hoặc mô hình khác nhau.
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.
verbose bool False Nếu như True, hiển thị thông tin chi tiết trong quá trình xác thực, bao gồm số liệu theo từng lớp, tiến trình hàng loạt và thông tin gỡ lỗi bổ sung.
save_txt bool False Nếu như True, lưu kết quả phát hiện trong các tệp văn bản, với một tệp cho mỗi hình ảnh, hữu ích cho việc phân tích thêm, xử lý hậu kỳ tùy chỉnh hoặc tích hợp với các hệ thống khác.
save_conf bool False Nếu như True, bao gồm các giá trị tin cậy trong các tệp văn bản đã lưu khi save_txt được bật, cung cấp thông tin chi tiết hơn để phân tích và lọc.
save_crop bool False Nếu như True, lưu hình ảnh đã cắt của các đối tượng được phát hiện, có thể hữu ích cho việc tạo tập dữ liệu tập trung, xác minh trực quan hoặc phân tích sâu hơn các phát hiện riêng lẻ.
workers int 8 Số luồng công nhân để tải dữ liệu. Các giá trị cao hơn có thể tăng tốc quá trình xử lý dữ liệu trước nhưng có thể làm tăng CPU sử dụng. Đặt thành 0 sẽ sử dụng luồng chính, có thể ổn định hơn trong một số môi trường.
augment bool False Cho phép tăng cường thời gian thử nghiệm (TTA) trong quá trình xác thực, có khả năng cải thiện độ chính xác của phát hiện với cái giá phải trả là tốc độ suy luận bằng cách chạy suy luận trên các phiên bản đầu vào đã chuyển đổi.
agnostic_nms bool False Cho phép Non-Maximum Suppression không phân biệt lớp, hợp nhất các hộp chồng chéo bất kể lớp dự đoán của chúng. Hữu ích cho các ứng dụng tập trung vào trường hợp.
single_cls bool False Xử lý tất cả các lớp như một lớp duy nhất trong quá trình xác thực. Hữu ích để đánh giá hiệu suất mô hình trên các tác vụ phát hiện nhị phân hoặc khi sự khác biệt giữa các lớp không quan trọng.

Việc điều chỉnh và thử nghiệm cẩn thận là rất quan trọng để đảm bảo hiệu suất tối ưu cũng như phát hiện và ngăn ngừa tình trạ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 để lưu hoặc xuất mô hình để sử dụng trong các môi trường khác nhau. Các thiết lập này ảnh hưởng đến hiệu suất, kích thước và khả năng tương thích. Các thiết lập chính bao gồm định dạng tệp đã 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 như mặt nạ. Nhiệm vụ của mô hình và các ràng buộc của môi trường đích cũng ảnh hưởng đến quá trình xuất.

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', 'engine' ( TensorRT ), hoặc những định dạng khác. Mỗi định dạng cho phép tương thích với các định dạng khác nhau môi trường triển khai.
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 (ví dụ: 640 cho 640×640) 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 suy luận . Không tương thích với NCNN định dạng hoặc CUDA thiết bị.
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ợ. Không tương thích với lượng tử hóa INT8 hoặc CPU -chỉ xuất khẩu cho ONNX .
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 . Khi được sử dụng với TensorRT , thực hiện lượng tử hóa sau đào tạo (PTQ).
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. Tự động thiết lập thành True khi sử dụng TensorRT với INT8.
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 với các công cụ suy luận.
opset int None Chỉ định ONNX opset phiên bản để tương thích với các trình phân tích cú pháp và thời gian chạy ONNX khác nhau. Nếu không được thiết lập, hãy 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 Non-Maximum Suppression (NMS) vào mô hình đã xuất khi được hỗ trợ (xem Định dạng xuất ), cải thiện hiệu quả xử lý sau phát hiện. Không khả dụng cho các mô hình end2end.
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 chế độ. Đối với Edge TPU xuất khẩu, mục này sẽ tự động được đặt thành 1.
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). TensorRT xuất khẩu tự động sử dụng GPU .
data str 'coco8.yaml' Đường dẫn đến tập dữ liệu tập tin cấu hình (mặc định: coco8.yaml), cần thiết cho hiệu chuẩn lượng tử INT8. Nếu không được chỉ định với INT8 được bật, một tập dữ liệu mặc định sẽ được chỉ định.

Cấu hình chu đáo đảm bảo mô hình được xuất ra được tối ưu hóa cho trường hợp sử dụng và hoạt động hiệu quả trong môi trường mục tiêu.

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

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

Ultralytics Cài đặt cấu hình giải pháp cung cấp tính linh hoạt để tùy chỉnh các mô hình cho các tác vụ như đếm đối tượng, tạo bản đồ nhiệt, theo dõi 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 cho phép điều chỉnh dễ dàng để 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ả
model str None Đường dẫn đến Ultralytics YOLO Tệp mẫu.
region list [(20, 400), (1260, 400)] Danh sách các điểm xác định vùng đếm.
show_in bool True Đánh dấu để kiểm soát việc hiển thị số lượng vào luồng video hay không.
show_out bool True Đánh dấu để kiểm soát việc hiển thị số lượng đầu ra trên luồng video.
analytics_type str line Loại đồ thị, tức là, line, bar, area, hoặc pie.
colormap int cv2.COLORMAP_JET Bản đồ màu sử dụng cho bản đồ nhiệt.
json_file str None Đường dẫn đến tệp JSON chứa tất cả dữ liệu tọa độ đỗ xe.
up_angle float 145.0 Ngưỡng góc cho tư thế 'lên'.
kpts list[int, int, int] [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.
down_angle float 90.0 Ngưỡng góc cho tư thế 'xuống'.
blur_ratio float 0.5 Điều chỉnh phần trăm cường độ mờ, với các giá trị trong phạm vi 0.1 - 1.0.
crop_dir str "cropped-detections" Tên thư mục để lưu trữ các phát hiện đã cắt.
records int 5 Tổng số lần phát hiện sẽ được tính để kích hoạt email có hệ thống báo động an ninh.
vision_point tuple[int, int] (50, 50) Điểm mà thị giác sẽ theo dõi các vật thể và vẽ đường đi bằng Giải pháp VisionEye.
tracker str 'botsort.yaml' Chỉ định thuật toán theo dõi để sử dụng, ví dụ: bytetrack.yaml hoặc botsort.yaml.
conf float 0.3 Đặt ngưỡng tin cậy cho việc phát hiện; giá trị thấp hơn cho phép theo dõi nhiều đối tượng hơn nhưng có thể bao gồm các kết quả dương tính giả.
iou float 0.5 Đặt ngưỡng Giao điểm trên Liên hợp (IoU) để lọc các phát hiện chồng chéo.
classes list None Lọc kết quả theo chỉ số lớp. Ví dụ, classes=[0, 2, 3] chỉ theo dõi các lớp được chỉ định.
verbose bool True Kiểm soát việc hiển thị kết quả theo dõi, cung cấp hình ảnh trực quan về các đối tượng được theo dõi.
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.
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.
line_width None or int None Chỉ định độ rộng đường của hộp giới hạn. Nếu None, độ rộng của đường được tự động điều chỉnh dựa trên kích thước hình ảnh. Cung cấp tùy chỉnh trực quan để rõ nét hơn.

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

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

Các kỹ thuật tăng cường dữ liệu là cần thiết để cải thiện YOLO độ mạnh mẽ và hiệu suất của mô hình bằng cách đưa tính biến thiên 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.

Điều chỉnh các thiết lập này để đáp ứng các yêu cầu của tập dữ liệu và nhiệm vụ. 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 cho 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ị

Việc ghi nhật ký, điểm kiểm tra, lập biểu đồ và quản lý tệp rất quan trọng khi đào tạo YOLO người mẫu:

  • Ghi nhật ký : Theo dõi tiến trình của mô hình và chẩn đoán sự cố bằng các thư viện như TensorBoard hoặc bằng cách ghi vào tệp.
  • Điểm kiểm tra : Lưu mô hình theo các khoảng thời gian đều đặn để tiếp tục đào tạo hoặc thử nghiệm với các cấu hình khác nhau.
  • Vẽ đồ thị : Trực quan hóa hiệu suất và tiến trình đào tạo bằng các thư viện như matplotlib hoặc TensorBoard.
  • Quản lý tệp : Sắp xếp các tệp được tạo trong quá trình đào tạo, chẳng hạn như điểm kiểm tra, tệp nhật ký và biểu đồ, để dễ truy cập và phân tích.

Quản lý hiệu quả các khía cạnh này giúp theo dõi tiến độ và giúp việc gỡ lỗi và tối ưu hóa 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 được lưu trong một thư mục con riêng biệt.
name 'exp' Xác định tên thí nghiệm. Nếu không xác định, YOLO tăng tên này cho mỗi lần chạy (ví dụ, exp, exp2) để tránh ghi đè.
exist_ok False Xác định xem có ghi đè lên thư mục thử nghiệm hiện có hay không. True cho phép ghi đè; 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 để theo dõi hiệu suất trực quan.
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 hoặc triển khai mô hình.

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

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

Cải thiện hiệu suất bằng cách đ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 dữ liệu , 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 . Để biết chi tiết, hãy xem Hướng dẫn đào tạo .

Các siêu tham số chính cho là gì? YOLO độ chính xác của mô hình?

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

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

Điều chỉnh những thông số này dựa trên tập dữ liệu và phần cứng của bạn. Tìm hiểu thêm trong 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; bắt đầu với 0.01 cho SGD hoặc 0.001Người tối ưu hóa Adam. Theo dõi số liệu và điều chỉnh khi cần thiết. Sử dụng trình lập lịch tốc độ học cosine (cos_lr) hoặc khởi động (warmup_epochs, warmup_momentum). Chi tiết có 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?

Cài đặt 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): Vì Sự ứ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.
  • Thiết bị (device=None): Chọn CPU hoặc GPU .

Để biết tổng quan đầy đủ, hãy xem Cài đặt dự đoánHướng dẫn dự đoán .

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

Độ chính xác hỗn hợp đào tạo (amp=True) giảm mức sử dụng bộ nhớ và tăng tốc quá trình đào tạo bằng FP16 và FP32. Nó có lợi cho GPU hiện đại, cho phép các mô hình lớn hơn và tính toán nhanh hơn mà không làm mất độ chính xác đáng kể. Tìm hiểu thêm 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 7 ngày

Bình luận