Khám phá sự ức chế không tối đa ( NMS ) để phát hiện đối tượng. Tìm hiểu cách nó tinh chỉnh kết quả, nâng cao độ chính xác và hỗ trợ các ứng dụng AI như YOLO .
Sự ức chế không tối đa ( NMS ) là một kỹ thuật hậu xử lý quan trọng được sử dụng trong thị giác máy tính để tinh chỉnh kết quả của các thuật toán phát hiện đối tượng . Khi một mô hình phân tích hình ảnh, nó thường dự đoán nhiều hộp giới hạn chồng chéo cho một đối tượng duy nhất, mỗi hộp có một xác suất riêng biệt. NMS lọc các dự đoán dư thừa này để đảm bảo mỗi đối tượng duy nhất được nhận dạng chính xác một lần, chỉ giữ lại ô chính xác nhất và loại bỏ phần còn lại. Quá trình này rất cần thiết để đạt được độ chính xác cao trong các ứng dụng thực tế, ngăn chặn hệ thống phát hiện các bản sao "ma" của cùng một mục tiêu.
Các NMS Thuật toán hoạt động như một bộ lọc làm sạch đầu ra thô của mô hình học sâu . Nó phụ thuộc rất nhiều vào hai chỉ số chính: điểm tin cậy , cho biết mức độ chắc chắn của mô hình rằng một hộp chứa một đối tượng, và Giao điểm trên Hợp ( IoU ) , đo lường sự chồng chéo không gian giữa hai hộp.
Thuật toán tham lam tiêu chuẩn cho NMS thường tuân theo các bước sau:
Các biến thể nâng cao, chẳng hạn như Soft- NMS , làm giảm điểm phát hiện của các hộp chồng chéo thay vì loại bỏ chúng hoàn toàn, điều này có thể có lợi trong các cảnh đông đúc khi các vật thể tự nhiên che khuất nhau.
NMS phổ biến trong các hệ thống dựa vào trí tuệ nhân tạo để diễn giải dữ liệu trực quan. Vai trò của nó đặc biệt quan trọng trong các môi trường đòi hỏi độ chính xác cao và an toàn.
Trong khuôn khổ Ultralytics YOLO11 , NMS được tích hợp trực tiếp vào quy trình dự đoán. Người dùng có thể dễ dàng điều chỉnh NMS các thông số như IoU ngưỡng để cân bằng giữa việc loại bỏ các mục trùng lặp và tách các đối tượng có khoảng cách gần.
Đoạn mã sau đây minh họa cách chạy suy luận và tùy chỉnh NMS cài đặt sử dụng
ultralytics bưu kiện:
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Run inference on an image
# 'iou=0.5' sets the NMS threshold; boxes with >50% overlap are suppressed
# 'conf=0.25' filters out boxes with low confidence before NMS runs
results = model.predict("https://ultralytics.com/images/bus.jpg", iou=0.5, conf=0.25)
# Display the number of detected objects after NMS
print(f"Objects detected: {len(results[0].boxes)}")
Điều quan trọng là phải phân biệt NMS từ các thuật ngữ khác được tìm thấy trong các đường ống phát hiện.
Đối với các nhà phát triển muốn triển khai các mô hình này một cách hiệu quả, cần hiểu NMS Tác động đến suy luận thời gian thực là rất quan trọng. Các công cụ như TensorRT thường bao gồm NMS plugin để tăng tốc bước này trong quá trình triển khai mô hình .