YOLO Vision 2026:

Cách kiểm thử các model thị giác máy tính#

Giới thiệu#

Kiểm tra model kiểm tra cách một trained model hoạt động trên dữ liệu thực tế chưa từng thấy trước đây — các đối tượng chuyển động, ánh sáng kém hoặc bị che khuất một phần thay vì một benchmark được tuyển chọn. Trong khi model evaluation đo lường các chỉ số trên một tập dữ liệu có nhãn, việc kiểm tra xác minh rằng hành vi đã học của model khớp với goals of your application trước khi triển khai. Hướng dẫn này đề cập đến việc chuẩn bị dữ liệu kiểm tra, kiểm tra các model Ultralytics YOLO26 và phát hiện overfitting, underfitting cùng hiện tượng rò rỉ dữ liệu.



Watch: How to Test Machine Learning Models | Avoid Data Leakage in Computer Vision 🚀

Kiểm thử model so với Đánh giá model#

Kiểm tra model và đánh giá model là hai steps in a computer vision project riêng biệt. Đánh giá đo lường hiệu suất bằng các chỉ số trên tập dữ liệu có nhãn; kiểm tra xác định xem hành vi đã học của model có duy trì được trong các điều kiện giống với môi trường triển khai hay không.

Giả sử bạn đã huấn luyện một model computer vision để nhận diện mèo và chó, và bạn muốn triển khai model này tại một cửa hàng thú cưng để theo dõi các động vật. Trong giai đoạn đánh giá model, bạn sử dụng tập dữ liệu có nhãn để tính toán các chỉ số như accuracy, precisionrecall. Ví dụ, model có thể đạt độ chính xác 98% trong việc phân biệt giữa mèo và chó trong một tập dữ liệu cho trước.

Sau khi đánh giá, bạn kiểm thử model bằng các hình ảnh từ cửa hàng thú cưng để xem model nhận diện chó và mèo tốt đến mức nào trong các điều kiện đa dạng và thực tế hơn. Bạn kiểm tra xem model có thể gắn nhãn đúng chó và mèo khi chúng đang di chuyển, trong các điều kiện ánh sáng khác nhau, hoặc bị che khuất một phần bởi đồ chơi hoặc đồ nội thất. Kiểm thử model giúp đảm bảo model hoạt động như mong đợi bên ngoài môi trường đánh giá có kiểm soát.

Chuẩn bị cho việc kiểm thử model#

Các datasets computer vision thường được chia thành tập huấn luyện và tập kiểm tra để mô phỏng các điều kiện thực tế: training data dạy cho model, trong khi dữ liệu kiểm tra xác minh hành vi của model trên các ví dụ mà nó chưa từng thấy. Ultralytics Platform giữ việc tổ chức và chú thích tập dữ liệu ở một nơi, điều này hỗ trợ quá trình xây dựng tập kiểm tra có nhãn.

Trước khi kiểm thử
  • Đại diện thực tế: Dữ liệu kiểm thử chưa từng thấy trước đây phải tương tự như dữ liệu mà model sẽ xử lý khi được triển khai. Điều này mang lại cái nhìn thực tế về khả năng của model.
  • Kích thước đủ lớn: Tập dữ liệu kiểm thử cần đủ lớn để cung cấp thông tin đáng tin cậy về hiệu suất của model.

Cách kiểm thử một model YOLO26#

Việc kiểm thử một model YOLO26 đã huấn luyện bao gồm hai quy trình bổ trợ: xác thực trên tập kiểm thử đã gắn nhãn để có các chỉ số định lượng, và dự đoán trên các hình ảnh mới để kiểm tra chất lượng hành vi.

Xác thực trên tập kiểm thử đã gắn nhãn#

Validation mode so sánh các dự đoán của model với các nhãn ground-truth và báo cáo precision, recall, mAP50 cùng mAP50-95 đối với các model phát hiện. Chế độ này cũng lưu các công cụ hỗ trợ trực quan như ma trận nhầm lẫn (confusion matrix) và đường cong precision-recall, giúp bạn phát hiện các khu vực cụ thể mà model có thể hoạt động chưa tốt.

Cách sử dụng
from ultralytics import YOLO

# Load a pretrained model or your own trained checkpoint, e.g. "path/to/best.pt"
model = YOLO("yolo26n.pt")

# Validate; add split="test" if your dataset YAML defines a test split
metrics = model.val(data="coco8.yaml")
print(metrics.box.map)  # mAP50-95

Theo mặc định, quá trình validation chạy trên phần chia val của tập dữ liệu. Để đo lường hiệu suất trên một tập kiểm tra tách biệt, hãy định nghĩa phần chia test: trong YAML tập dữ liệu của bạn và truyền split="test".

Dự đoán trên các hình ảnh mới#

Prediction mode chạy model trên dữ liệu mới, chưa từng thấy mà không yêu cầu nhãn. Chế độ này không tạo ra các chỉ số hiệu suất, nhưng việc lưu các kết quả đã được chú thích cho phép bạn xem lại cách model phản ứng trên hình ảnh thực tế — ví dụ, toàn bộ thư mục hình ảnh kiểm tra trong một lần.

Cách sử dụng
from ultralytics import YOLO

# Load a pretrained model or your own trained checkpoint, e.g. "path/to/best.pt"
model = YOLO("yolo26n.pt")

# Run predictions on a folder of test images and save annotated results
results = model.predict(source="path/to/test_images", save=True)
Kiểm thử model tiền huấn luyện (pretrained) trước khi huấn luyện tùy chỉnh

Để kiểm tra xem YOLO26 có phù hợp với ứng dụng của bạn trước khi đầu tư huấn luyện tùy chỉnh hay không, hãy chạy prediction mode với checkpoint đã huấn luyện trước trên chính hình ảnh của bạn. Các model được huấn luyện trước trên các tập dữ liệu như COCO, vì vậy kết quả mang lại cái nhìn nhanh chóng về khả năng hoạt động của model trong bối cảnh cụ thể của bạn.

Chế độ xác thực so với Chế độ dự đoán#

Chế độMục đíchYêu cầu nhãnĐầu ra
ValidationĐịnh lượng hiệu suất dựa trên ground truthPrecision, recall, mAP50, mAP50-95, ma trận nhầm lẫn, các đường cong PR
PredictionKiểm tra hành vi model trên dữ liệu mới, không có nhãnKhôngHình ảnh đã chú thích và kết quả dự đoán, không có chỉ số

Cách phân tích kết quả kiểm thử#

Sau khi có kết quả dự đoán và các chỉ số, hãy đi sâu vào tìm hiểu nơi model thất bại và lý do tại sao:

  • Hình ảnh phân loại sai: Xác định và xem lại các hình ảnh mà model phân loại sai để hiểu lý do tại sao nó xảy ra sai sót.
  • Phân tích lỗi: Thực hiện phân tích lỗi kỹ lưỡng để hiểu các loại lỗi (ví dụ: dương tính giả so với âm tính giả) và nguyên nhân tiềm ẩn của chúng.
  • Định kiến và sự công bằng: Kiểm tra xem có định kiến nào trong các dự đoán của model hay không. Đảm bảo rằng model hoạt động tốt như nhau trên các tập con khác nhau của dữ liệu, đặc biệt nếu nó bao gồm các thuộc tính nhạy cảm như chủng tộc, giới tính hoặc độ tuổi.

Overfitting và Underfitting trong học máy#

Khi kiểm tra một model machine learning, đặc biệt trong computer vision, điều quan trọng là cần lưu ý hiện tượng overfitting và underfitting. Các vấn đề này có thể ảnh hưởng đáng kể đến mức độ hoạt động hiệu quả của model với dữ liệu mới.

Vấn đềDấu hiệu phổ biếnCách khắc phục
OverfittingĐộ chính xác huấn luyện cao nhưng độ chính xác xác thực thấp; quá nhạy cảm với những thay đổi nhỏ hoặc chi tiết không liên quan trong hình ảnhÁp dụng regularization như dropout, tăng kích thước tập dữ liệu huấn luyện, đơn giản hóa kiến trúc model
UnderfittingĐộ chính xác thấp ngay cả trên tập huấn luyện; liên tục không nhận diện được các đặc điểm hoặc đối tượng rõ ràngSử dụng model phức tạp hơn, cung cấp các đặc trưng phù hợp hơn, tăng số lượng epochs huấn luyện

Chìa khóa là tìm ra sự cân bằng để model hoạt động tốt trên cả tập dữ liệu huấn luyện và xác thực. Việc thường xuyên theo dõi các chỉ số và kiểm tra trực quan các dự đoán trong quá trình kiểm thử giúp bạn phát hiện xu hướng tiến về một trong hai cực này.

Comparison of underfitting, appropriate fitting, and overfitting on the same dataset

Rò rỉ dữ liệu trong thị giác máy tính và cách tránh nó#

Rò rỉ dữ liệu xảy ra khi thông tin từ bên ngoài tập huấn luyện vô tình được sử dụng để huấn luyện model. Model có thể trông rất chính xác trong quá trình huấn luyện, nhưng nó sẽ không hoạt động tốt trên dữ liệu mới, chưa từng thấy khi xảy ra rò rỉ dữ liệu.

Sự rò rỉ có thể khó phát hiện và thường xuất phát từ các định kiến ẩn trong dữ liệu huấn luyện:

Loại định kiếnBiểu hiện
Định kiến cameraCác góc độ, ánh sáng, bóng đổ và chuyển động camera khác nhau đưa vào các mẫu không mong muốn
Định kiến lớp phủ (overlay bias)Logo, dấu thời gian hoặc các lớp phủ khác trong hình ảnh làm model bị chệch hướng
Định kiến phông chữ và đối tượngCác phông chữ hoặc đối tượng cụ thể thường xuất hiện trong các lớp nhất định làm sai lệch quá trình học của model
Định kiến không gianSự mất cân bằng giữa tiền cảnh và hậu cảnh, phân phối bounding box và vị trí đối tượng sẽ ảnh hưởng đến quá trình huấn luyện
Định kiến nhãn và miềnNhãn không chính xác hoặc sự thay đổi trong các kiểu dữ liệu dẫn đến rò rỉ

Cách phát hiện và tránh rò rỉ dữ liệu#

Để tìm rò rỉ dữ liệu, hãy kiểm tra xem kết quả của model có quá tốt một cách bất ngờ hay không, xem xét liệu một đặc trưng có quan trọng hơn nhiều so với những cái khác hay không, kiểm tra kỹ xem các quyết định của model có hợp lý về mặt trực giác hay không, và xác minh rằng dữ liệu đã được chia đúng cách trước khi xử lý.

Để ngăn chặn, hãy sử dụng một dataset đa dạng với hình ảnh hoặc video từ nhiều camera và môi trường khác nhau, đồng thời kiểm tra kỹ dữ liệu của bạn xem có các định kiến ẩn hay không — chẳng hạn như tất cả các mẫu dương tính đều được chụp vào một thời điểm cụ thể trong ngày. Tránh rò rỉ dữ liệu giúp các model thị giác máy tính của bạn đáng tin cậy hơn trong các tình huống thực tế.

Điều gì xảy ra sau khi kiểm thử model#

Sau khi kiểm tra model, các bước tiếp theo phụ thuộc vào kết quả. Nếu model hoạt động tốt, bạn có thể triển khai nó vào môi trường thực tế. Nếu kết quả chưa đạt yêu cầu, bạn cần thực hiện các cải tiến. Quá trình này có thể bao gồm phân tích lỗi, gathering more data, cải thiện chất lượng dữ liệu, adjusting hyperparameters và huấn luyện lại model.

Kết luận#

Kiểm tra model nghiêm ngặt — validation trên tập kiểm tra tách biệt, predict trên hình ảnh thực tế, và kiểm tra hiện tượng overfitting cùng rò rỉ dữ liệu — là yếu tố biến một model được đánh giá tốt thành một model đáng tin cậy. Hãy giải quyết các vấn đề mà quá trình kiểm tra phát hiện trước khi triển khai, và model của bạn sẽ có khả năng hoạt động như dự định trong môi trường production cao hơn nhiều. Nếu có thắc mắc trong quá trình thực hiện, hãy hỏi cộng đồng trên Ultralytics GitHub repository hoặc Ultralytics Discord server.

Câu hỏi thường gặp#

  • Đánh giá model đo lường hiệu suất bằng các chỉ số trên tập dữ liệu có nhãn, trong khi kiểm tra model kiểm tra cách model phản ứng với dữ liệu mới, chưa từng thấy tương tự như các điều kiện triển khai. Đánh giá tạo ra các con số như precision và mAP từ tập dữ liệu được kiểm soát; kiểm tra tiết lộ liệu hành vi đã học có duy trì được trong điều kiện ánh sáng, chuyển động hoặc bị che khuất thay đổi hay không. Xem Model Testing vs. Model Evaluation để biết ví dụ chi tiết.

  • Sử dụng prediction mode và truyền đường dẫn thư mục làm source — YOLO26 chạy trên mọi hình ảnh trong thư mục và có thể lưu các kết quả đã chú thích để xem lại. Chế độ predict không tính toán các chỉ số; để định lượng hiệu suất trên tập có nhãn, hãy sử dụng validation mode thay thế. Cả hai quy trình đều được minh họa trong How to Test a YOLO26 Model.

  • Đối với các model phát hiện, validation báo cáo precision, recall, mAP50 và mAP50-95, đồng thời lưu các biểu đồ bao gồm ma trận nhầm lẫn và đường cong precision-recall. Để validate trên tập kiểm tra chuyên dụng thay vì phần chia val mặc định, hãy định nghĩa test: trong YAML tập dữ liệu và truyền split="test". Xem performance metrics guide để biết cách diễn giải từng chỉ số.

  • Đối với hiện tượng overfitting, hãy áp dụng các kỹ thuật regularization như dropout, tăng kích thước tập dữ liệu huấn luyện hoặc đơn giản hóa kiến trúc model. Đối với underfitting, hãy sử dụng model phức tạp hơn, cung cấp các đặc trưng liên quan hơn hoặc huấn luyện với nhiều epochs hơn. Các dấu hiệu của từng vấn đề và giải pháp khắc phục tương ứng được tóm tắt trong Overfitting and Underfitting in Machine Learning.

  • Hãy nghi ngờ có hiện tượng rò rỉ dữ liệu khi hiệu suất kiểm tra có vẻ tốt đến bất ngờ, một đặc trưng đơn lẻ thống trị các dự đoán hoặc các quyết định của model không hợp lý theo trực giác. Ngăn chặn điều này bằng cách sử dụng các tập dữ liệu đa dạng từ nhiều camera và môi trường khác nhau, xem xét dữ liệu để tìm các thành kiến ẩn và xác minh rằng việc chia tách train/test đã diễn ra trước bất kỳ quá trình xử lý nào. Xem Data Leakage in Computer Vision để biết các loại thành kiến phổ biến.

  • Nếu kết quả đáp ứng các mục tiêu dự án của bạn, hãy triển khai model; nếu không, hãy cải thiện trước khi triển khai. Điều đó có thể có nghĩa là phân tích lỗi, collecting more diverse data, cải thiện chất lượng dữ liệu, tuning hyperparameters và huấn luyện lại. Lặp lại quá trình kiểm tra sau mỗi vòng thay đổi để xác nhận các bản sửa lỗi đã hoạt động.

Bình luận