Sự ức chế không tối đa ( NMS )
Tìm hiểu về hiện tượng ức chế không tối đa (Non-Maximum Suppression) NMS (Loại bỏ các hộp giới hạn trùng lặp trong quá trình phát hiện đối tượng. Khám phá cách thức hoạt động) Ultralytics YOLO26 cung cấp giải pháp tích hợp đầu cuối hoàn chỉnh. NMS .
Không ức chế tối đa ( NMS (Tối ưu hóa) là một kỹ thuật xử lý hậu kỳ được sử dụng trong phát hiện đối tượng để tinh chỉnh các dự đoán thô do mô hình đưa ra. Khi một mô hình phát hiện đối tượng phân tích một hình ảnh, nó thường tạo ra 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 điểm số độ tin cậy liên quan. Những dự đoán dư thừa này xảy ra vì mô hình có thể detect Cùng một đặc điểm nhưng ở tỷ lệ hoặc vị trí hơi khác nhau. NMS Bộ lọc này lọc kết quả đầu ra bằng cách chỉ giữ lại hộp giới hạn chính xác nhất cho mỗi đối tượng và loại bỏ những hộp khác, đảm bảo kết quả đầu ra cuối cùng sạch sẽ, chính xác và không có dữ liệu trùng lặp.
Cách Triệt tiêu không tối đa hoạt động
Cái NMS Thuật toán hoạt động trên một danh sách các hộp giới hạn ứng cử viên và điểm tin cậy tương ứng của chúng. Mục tiêu là chọn hộp tốt nhất cho một đối tượng và loại bỏ bất kỳ hộp nào khác chồng lấn đáng kể với nó, vì đây có thể là các phát hiện trùng lặp của cùng một đối tượng. Quá trình này thường tuân theo các bước sau:
-
Lọc: Loại bỏ tất cả các hộp giới hạn có điểm tin cậy dưới một ngưỡng cụ thể (ví dụ: 0,25) để loại bỏ ngay lập tức các dự đoán yếu.
- Sắp xếp: Sắp xếp các hộp còn lại theo thứ tự giảm dần dựa trên điểm tin cậy của chúng.
- Lựa chọn: Chọn ô có điểm tin cậy cao nhất làm kết quả phát hiện hợp lệ.
-
So sánh: So sánh hộp được chọn này với tất cả các hộp còn lại bằng cách sử dụng Intersection over Union ( IoU ) , một chỉ số đo lường sự chồng chéo giữa hai hộp.
-
Ức chế: Nếu IoU Nếu khoảng cách giữa ô được chọn và một ô khác vượt quá ngưỡng đã định trước (ví dụ: 0,45), ô có điểm thấp hơn được coi là trùng lặp và bị xóa.
-
Lặp lại: Lặp lại quy trình với ô có điểm số cao nhất tiếp theo chưa bị ẩn hoặc chọn, cho đến khi tất cả các ô được xử lý.
Các Ứng dụng Thực tế
NMS Điều này rất cần thiết trong những trường hợp mà độ chính xác là tối quan trọng và việc phát hiện trùng lặp có thể gây nhầm lẫn cho các hệ thống tiếp theo.
-
Lái xe tự động: Trong hệ thống xe tự lái, camera đóng vai trò quan trọng. detect Người đi bộ, các phương tiện khác và biển báo giao thông. Một mô hình có thể dự đoán ba hình hộp hơi khác nhau cho một người đi bộ. NMS Đảm bảo hệ thống lập kế hoạch của xe chỉ nhận được một tọa độ duy nhất cho người đi bộ đó, ngăn ngừa hiện tượng phanh gấp bất thường hoặc lỗi lập kế hoạch đường đi do các chướng ngại vật "ảo" gây ra.
-
Quản lý tồn kho bán lẻ: Khi sử dụng thị giác máy tính để đếm sản phẩm trên kệ, các mặt hàng thường được xếp sát nhau. Nếu không có công nghệ này, sẽ khó có thể đếm chính xác. NMS Một lon nước ngọt có ga có thể bị tính hai lần do sự trùng lặp trong các dự đoán, dẫn đến mức tồn kho không chính xác. NMS Tinh chỉnh các phát hiện này để đảm bảo số lượng hàng tồn kho khớp với thực tế.
NMS Triển khai với PyTorch
Mặc dù nhiều framework hiện đại xử lý NMS Về mặt nội bộ, việc hiểu rõ cách thức triển khai giúp tinh chỉnh các tham số. Ví dụ sau đây minh họa cách áp dụng. NMS Sử dụng thư viện PyTorch :
import torch
import torchvision.ops as ops
# Example bounding boxes: [x1, y1, x2, y2]
boxes = torch.tensor(
[
[100, 100, 200, 200], # Box A
[105, 105, 195, 195], # Box B (High overlap with A)
[300, 300, 400, 400], # Box C (Distinct object)
],
dtype=torch.float32,
)
# Confidence scores for each box
scores = torch.tensor([0.9, 0.8, 0.95], dtype=torch.float32)
# Apply NMS with an IoU threshold of 0.5
# Boxes with IoU > 0.5 relative to the highest scoring box are suppressed
keep_indices = ops.nms(boxes, scores, iou_threshold=0.5)
print(f"Indices to keep: {keep_indices.tolist()}")
# Output will likely be [2, 0] corresponding to Box C (0.95) and Box A (0.9),
# while Box B (0.8) is suppressed due to overlap with A.
NMS so sánh với Phát hiện từ đầu đến cuối
Theo truyền thống, NMS Đây là một bước "dọn dẹp" bắt buộc nằm ngoài mạng nơ-ron chính, làm tăng độ trễ suy luận . Tuy nhiên, lĩnh vực này đang phát triển theo hướng kiến trúc từ đầu đến cuối.
-
NMS tiêu chuẩn: Một quy trình dựa trên kinh nghiệm, yêu cầu điều chỉnh thủ công các thông số. IoU Ngưỡng. Nếu ngưỡng quá thấp, các đối tượng hợp lệ nằm gần nhau có thể bị bỏ sót ( độ thu hồi thấp). Nếu quá cao, các bản sao trùng lặp vẫn còn ( độ chính xác thấp).
-
Mô hình đầu cuối: Các mô hình thế hệ tiếp theo như YOLO26 được thiết kế để hoạt động đầu cuối một cách tự nhiên. Chúng học cách dự đoán chính xác một hộp cho mỗi đối tượng trong quá trình huấn luyện, từ đó nội hóa hiệu quả quá trình này. NMS Quá trình này loại bỏ nhu cầu xử lý hậu kỳ bên ngoài, dẫn đến tốc độ suy luận nhanh hơn và quy trình triển khai đơn giản hơn trên Nền tảng Ultralytics .
Các Khái Niệm Liên Quan
-
Soft- NMS : Một biến thể trong đó các hộp chồng chéo không bị loại bỏ hoàn toàn mà điểm tin cậy của chúng bị giảm. Điều này cho phép các đối tượng chồng chéo ở mức độ nhất định (như người trong đám đông) vẫn được phát hiện nếu điểm số của chúng vẫn đủ cao sau khi giảm.
-
Anchor Boxes (Hộp neo) : Các hình dạng hộp được xác định trước được nhiều bộ dò sử dụng để ước tính kích thước đối tượng. NMS được áp dụng cho các dự đoán cuối cùng được tinh chỉnh từ các điểm neo này.
-
Giao điểm trên hợp nhất ( IoU ) : Công thức toán học được sử dụng bởi NMS Để xác định mức độ chồng lấp giữa hai ô, từ đó xác định ngưỡng quyết định cho việc loại bỏ dữ liệu.