Cách kiểm thử model thị giác máy tính#
Giới thiệu#
Kiểm thử model xác định hiệu suất của một model đã huấn luyện trên dữ liệu thực tế chưa từng thấy trước đó — chẳng hạn như vật thể đang chuyển động, trong điều kiện ánh sáng yếu hoặc bị che khuất một phần — thay vì trên một benchmark được tuyển chọn. Trong khi đánh giá model đo các chỉ số trên tập dữ liệu có nhãn, kiểm thử xác minh rằng hành vi model đã học phù hợp với mục tiêu của ứng dụng trước khi triển khai. Hướng dẫn này trình bày cách chuẩn bị dữ liệu kiểm thử, kiểm thử model Ultralytics YOLO26 và phát hiện overfitting, underfitting cũng như rò rỉ dữ liệu.
Xem: Cách kiểm thử model machine learning | Tránh rò rỉ dữ liệu trong thị giác máy tính 🚀
Kiểm thử model và đánh giá model#
Kiểm thử model và đánh giá model là hai bước riêng biệt trong dự án thị giác máy tính. Đánh giá đo hiệu suất bằng các chỉ số trên tập dữ liệu có nhãn; kiểm thử xác định liệu hành vi model đã học có duy trì được trong các điều kiện gần với môi trường triển khai hay không.
Giả sử bạn đã huấn luyện một model thị giác máy tính để nhận diện mèo và chó, và muốn triển khai model này tại cửa hàng thú cưng để giám sát các con vật. Trong giai đoạn đánh giá model, bạn dùng tập dữ liệu có nhãn để tính các chỉ số như độ chính xác, precision và recall. Ví dụ, model có thể đạt độ chính xác 98% khi phân biệt mèo và chó trong một tập dữ liệu nhất định.
Sau khi đánh giá, bạn kiểm thử model bằng ảnh chụp tại cửa hàng thú cưng để xem model nhận diện mèo và chó 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ó gán nhãn chính xác cho mèo và chó khi chúng đang di chuyển, trong điều kiện ánh sáng khác nhau hoặc bị các vật thể như đồ chơi hay đồ nội thất che khuất một phần hay không. Kiểm thử model xác nhận rằng 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ị kiểm thử model#
Tập dữ liệu thị giác máy tính thường được chia thành tập huấn luyện và tập kiểm thử để mô phỏng các điều kiện thực tế: dữ liệu huấn luyện giúp model học, còn dữ liệu kiểm thử xác minh hành vi của model trên các mẫu chưa từng thấy. Ultralytics Platform tập trung việc tổ chức tập dữ liệu và gán nhãn tại một nơi, hỗ trợ xây dựng tập kiểm thử có nhãn.
- Tính đại diện thực tế: Dữ liệu kiểm thử chưa từng được thấy trước đó phải tương tự dữ liệu mà model sẽ xử lý khi được triển khai. Điều này giúp phản ánh 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ử model YOLO26#
Kiểm thử một model YOLO26 đã huấn luyện gồm hai quy trình bổ trợ cho nhau: validation trên tập kiểm thử có nhãn để lấy các chỉ số định lượng và dự đoán trên ảnh mới để kiểm tra hành vi theo cách định tính.
Validation trên tập kiểm thử có nhãn#
Chế độ validation so sánh các dự đoán của model với nhãn ground truth và báo cáo precision, recall, mAP50 và mAP50-95 cho các model phát hiện. Chế độ này cũng lưu các công cụ trực quan như ma trận nhầm lẫn và đường cong precision-recall, giúp bạn phát hiện những khía cạnh cụ thể mà model có thể hoạt động chưa tốt.
from ultralytics import YOLO
# Tải model pretrained hoặc checkpoint bạn tự huấn luyện, ví dụ: "path/to/best.pt"
model = YOLO("yolo26n.pt")
# Chạy validation; thêm split="test" nếu YAML của tập dữ liệu định nghĩa một tập test
metrics = model.val(data="coco8.yaml")
print(metrics.box.map) # mAP50-95Theo mặc định, validation chạy trên tập val của tập dữ liệu. Để đo hiệu suất trên tập test được giữ lại, hãy định nghĩa tập test: trong YAML của tập dữ liệu và truyền split="test".
Dự đoán trên ảnh mới#
Chế độ prediction chạy model trên dữ liệu mới chưa từng thấy mà không cần nhãn. Chế độ này không tạo ra các chỉ số hiệu suất, nhưng việc lưu kết quả đã gán nhãn cho phép bạn xem lại cách model hoạt động trên ảnh thực tế — ví dụ: xử lý toàn bộ thư mục ảnh kiểm thử trong một lần.
from ultralytics import YOLO
# Tải model pretrained hoặc checkpoint bạn tự huấn luyện, ví dụ: "path/to/best.pt"
model = YOLO("yolo26n.pt")
# Chạy dự đoán trên thư mục ảnh kiểm thử và lưu kết quả đã chú thích
results = model.predict(source="path/to/test_images", save=True)Để kiểm tra xem YOLO26 có phù hợp với ứng dụng của bạn hay không trước khi đầu tư vào huấn luyện tùy chỉnh, hãy chạy chế độ prediction với checkpoint pretrained trên ảnh của riêng bạn. Các model được pretrained trên những tập dữ liệu như COCO, vì vậy kết quả giúp bạn nhanh chóng đánh giá model có thể hoạt động tốt đến đâu trong bối cảnh cụ thể của mình.
Chế độ validation và prediction#
| Chế độ | Mục đích | Yêu cầu nhãn | Đầu ra |
|---|---|---|---|
| Validation | Định lượng hiệu suất so với ground truth | Có | Precision, recall, mAP50, mAP50-95, ma trận nhầm lẫn, đường cong PR |
| Prediction | Kiểm tra hành vi model trên dữ liệu mới chưa có nhãn | Không | Ả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ó dự đoán và các chỉ số, hãy tìm hiểu kỹ model thất bại ở đâu và vì sao:
- Ảnh bị phân loại sai: Xác định và xem lại các ảnh model phân loại sai để hiểu nguyên nhân model mắc lỗi.
- 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ụ: false positive so với false negative) và nguyên nhân tiềm ẩn.
- Thiên lệch và công bằng: Kiểm tra xem có thiên lệch nào trong dự đoán của model hay không. Đảm bảo model hoạt động tốt như nhau trên các tập con dữ liệu khác nhau, đặc biệt nếu dữ liệu có 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 machine learning#
Khi kiểm thử model machine learning, đặc biệt là trong thị giác máy tính, cần chú ý đến overfitting và underfitting. Những vấn đề này có thể ảnh hưởng đáng kể đến hiệu quả hoạt động của model trên dữ liệu mới.
| Vấn đề | Dấu hiệu thường gặp | Cách khắc phục |
|---|---|---|
| Overfitting | Độ chính xác trên tập huấn luyện cao nhưng trên tập validation thấp; quá nhạy với những thay đổi nhỏ hoặc chi tiết không liên quan trong ảnh | Áp dụng 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 |
| 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 trưng hoặc vật thể rõ ràng | Dùng model phức tạp hơn, cung cấp thêm các đặc trưng phù hợp, tăng số epoch huấn luyện |
Điều quan trọng là tìm được sự cân bằng để model hoạt động tốt trên cả tập huấn luyện và tập validation. Thường xuyên theo dõi các chỉ số và kiểm tra trực quan dự đoán trong khi kiểm thử sẽ giúp bạn phát hiện xu hướng chuyển sang một trong hai thái cực.
Rò rỉ dữ liệu trong thị giác máy tính và cách phòng tránh#
Rò rỉ dữ liệu xảy ra khi thông tin bên ngoài tập dữ liệu huấn luyện vô tình được sử dụng để huấn luyện model. Khi xảy ra rò rỉ dữ liệu, model có thể đạt độ chính xác rất cao trong quá trình huấn luyện nhưng hoạt động kém trên dữ liệu mới chưa từng thấy.
Rò rỉ dữ liệu có thể khó phát hiện và thường bắt nguồn từ những thiên lệch tiềm ẩn trong dữ liệu huấn luyện:
| Loại thiên lệch | Biểu hiện |
|---|---|
| Thiên lệch camera | Các góc nhìn, điều kiện ánh sáng, bóng đổ và chuyển động camera khác nhau tạo ra những mẫu không mong muốn |
| Thiên lệch lớp phủ | Logo, dấu thời gian hoặc các lớp phủ khác trong ảnh khiến model dự đoán sai |
| Thiên lệch phông chữ và vật thể | Các phông chữ hoặc vật thể cụ thể thường xuất hiện trong một số lớp làm sai lệch quá trình học của model |
| Thiên lệch không gian | Sự mất cân bằng giữa tiền cảnh và hậu cảnh, phân bố bounding box và vị trí vật thể ảnh hưởng đến quá trình huấn luyện |
| Thiên lệch nhãn và miền | Nhãn không chính xác hoặc thay đổi kiểu dữ liệu dẫn đến rò rỉ dữ liệu |
Cách phát hiện và tránh rò rỉ dữ liệu#
Để phát hiện rò rỉ dữ liệu, hãy kiểm tra xem kết quả của model có tốt bất ngờ hay không, xem liệu một feature có quan trọng hơn hẳn các feature khác hay không, kiểm tra kỹ xem các quyết định của model có hợp lý theo trực giác không, và xác minh dữ liệu đã được chia đúng cách trước khi xử lý.
Để ngăn chặn tình trạng này, hãy sử dụng 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 rà soát kỹ dữ liệu để tìm các thiên lệch tiềm ẩn — chẳng hạn như tất cả mẫu dương tính đều được ghi lại vào một thời điểm cụ thể trong ngày. Tránh rò rỉ dữ liệu giúp 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ế.
Việc cần làm sau khi kiểm thử model#
Sau khi kiểm thử model, các bước tiếp theo tùy thuộc vào kết quả. Nếu model hoạt động tốt, bạn có thể triển khai model 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 cải thiện model. Việc này có thể bao gồm phân tích lỗi, thu thập thêm dữ liệu, cải thiện chất lượng dữ liệu, điều chỉnh hyperparameter và huấn luyện lại model.
Kết luận#
Kiểm thử model nghiêm ngặt — xác thực trên tập test được giữ riêng, dự đoán trên hình ảnh thực tế, đồng thời kiểm tra overfitting và rò rỉ dữ liệu — là yếu tố biến một model được đánh giá kỹ lưỡng thành một model đáng tin cậy. Hãy xử lý các vấn đề được phát hiện trong quá trình kiểm thử trước khi triển khai; khi đó, model của bạn sẽ có nhiều khả năng hoạt động đúng như dự kiến trong môi trường production hơn. Nếu có thắc mắc trong quá trình này, hãy hỏi cộng đồng tại kho GitHub của Ultralytics hoặc máy chủ Discord của Ultralytics.
Câu hỏi thường gặp#
Đánh giá model đo lường hiệu năng bằng các metric trên dataset đã gán nhãn, còn kiểm thử model kiểm tra cách model hoạt động trên dữ liệu mới, chưa từng thấy và tương tự điều kiện triển khai. Đánh giá tạo ra các con số như precision và mAP từ dataset được kiểm soát; kiểm thử cho thấy hành vi đã học có còn ổn định khi gặp các điều kiện ánh sáng, chuyển động hoặc che khuất đa dạng hay không. Xem Kiểm thử model và đánh giá model để biết ví dụ minh họa.
Sử dụng chế độ dự đoán 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 kết quả đã chú thích để xem xét. Chế độ dự đoán không tính metric; để định lượng hiệu năng trên tập dữ liệu đã gán nhãn, hãy sử dụng chế độ xác thực. Cả hai quy trình đều được trình bày trong Cách kiểm thử model YOLO26.Đối với 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 đồ gồm ma trận nhầm lẫn và đường cong precision-recall. Để xác thực trên một tập test riêng thay vì tập
valmặc định, hãy định nghĩatest:trong YAML của dataset và truyềnsplit="test". Xem hướng dẫn về metric hiệu năng để biết cách diễn giải từng metric.Để khắc phục overfitting, hãy áp dụng các kỹ thuật regularization như dropout, tăng kích thước dataset huấn luyện hoặc đơn giản hóa kiến trúc model. Để khắc phục underfitting, hãy dùng model phức tạp hơn, cung cấp thêm feature phù hợp hoặc huấn luyện nhiều epoch hơn. Dấu hiệu của từng vấn đề và cách khắc phục tương ứng được tóm tắt trong Overfitting và Underfitting trong Machine Learning.
Hãy nghi ngờ có rò rỉ dữ liệu khi hiệu năng trên tập test tốt bất ngờ, một feature duy nhất chi phối 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 tình trạng này bằng cách sử dụng dataset đa dạng từ nhiều camera và môi trường khác nhau, rà soát dữ liệu để tìm thiên lệch tiềm ẩn, và xác minh việc chia train/test diễn ra trước mọi bước xử lý. Xem Rò rỉ dữ liệu trong thị giác máy tính để biết các dạng thiên lệch phổ biến.
Nếu kết quả đáp ứng mục tiêu dự án, hãy triển khai model; nếu không, hãy cải thiện model trước khi triển khai. Việc này có thể bao gồm phân tích lỗi, thu thập thêm dữ liệu đa dạng, cải thiện chất lượng dữ liệu, tinh chỉnh hyperparameter và huấn luyện lại. Kiểm thử lại sau mỗi vòng thay đổi để xác nhận các biện pháp khắc phục đã có hiệu quả.