Yolo Tầm nhìn Thâm Quyến
Thâm Quyến
Tham gia ngay
Bảng chú giải thuật ngữ

Sự ức chế không tối đa ( NMS )

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ơ chế ức chế

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:

  1. Ngưỡng: Tất cả các hộp ứng viên có điểm tin cậy dưới ngưỡng cụ thể sẽ bị loại bỏ ngay lập tức để loại bỏ các dự đoán yếu.
  2. Sắp xếp: Các hộp còn lại được sắp xếp theo thứ tự giảm dần dựa trên điểm tin cậy của chúng.
  3. Lựa chọn: Hộp có điểm cao nhất sẽ được chọn là phát hiện hợp lệ.
  4. Loại bỏ: Thuật toán so sánh hộp đã chọn với tất cả các hộp còn lại. Nếu IoU giữa hộp được chọn và hộp khác vượt quá giới hạn đã xác định (ví dụ: 0,5), hộp có điểm thấp hơn sẽ bị ẩn (xóa) vì nó được cho là đại diện cho cùng một đối tượng.
  5. Lặp lại: Quá trình này lặp lại đối với ô có điểm cao nhất tiếp theo cho đến khi tất cả các ứng viên đã được xử lý.

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.

Các Ứng dụng Thực tế

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.

  • AI trong ô tô : Trong các ngăn xếp nhận thức của xe tự lái, việc phát hiện chính xác các phương tiện khác và người đi bộ là điều không thể thương lượng. Không có NMS , một hệ thống nhận thức xe có thể detect Một người đi bộ đơn lẻ có thể được coi là ba hoặc bốn người riêng biệt do các dự đoán chồng chéo. Điều này có thể gây nhầm lẫn cho các thuật toán lập kế hoạch chuyển động , dẫn đến việc phanh hoặc đánh lái không ổn định. NMS đảm bảo sự thể hiện rõ ràng, duy nhất của các chướng ngại vật, như được thấy trong các công nghệ như NVIDIA DRIVE .
  • Phân tích hình ảnh y tế : Khi sử dụng AI để xác định khối u hoặc tổn thương trong chụp X-quang và chụp MRI, độ chính xác là tối quan trọng. AI trong hệ thống chăm sóc sức khỏe sử dụng NMS để đảm bảo một bất thường duy nhất không kích hoạt nhiều cảnh báo, giúp các bác sĩ X quang tập trung vào các phát hiện riêng biệt. Phát hiện đáng tin cậy giúp giảm thiểu kết quả dương tính giả, hợp lý hóa quy trình chẩn đoán được mô tả trong nghiên cứu hình ảnh y tế .

NMS TRONG Ultralytics YOLO

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)}")

So sánh với các khái niệm liên quan

Đ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.

  • NMS so với Hộp neo : Mỏ neo là các hình dạng được xác định trước, được sử dụng làm điểm bắt đầu cho các dự đoán trong quá trình xử lý mô hình. NMS là bước xử lý hậu kỳ diễn ra sau khi mô hình đưa ra dự đoán cuối cùng.
  • NMS so với Ngưỡng tin cậy : Ngưỡng tin cậy lọc các hộp chỉ dựa trên điểm xác suất riêng lẻ của chúng. NMS hộp lọc dựa trên mối quan hệ (chồng chéo) của chúng với các hộp khác.
  • NMS so với Phát hiện đầu cuối: Truyền thống NMS thêm độ trễ suy luận vì đây là một quá trình tuần tự. Các kiến trúc sắp ra mắt, chẳng hạn như YOLO26 , đang hướng tới thiết kế đầu cuối nguyên bản. Các mô hình này nhằm mục đích xuất ra tập hợp các đối tượng duy nhất cuối cùng trực tiếp từ mạng nơ-ron, có khả năng hiển thị các đối tượng bên ngoài. NMS các thuật toán lỗi thời trong các thế hệ mô hình học máy tương lai.

Đố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 .

Tham gia Ultralytics cộng đồng

Tham gia vào tương lai của AI. Kết nối, hợp tác và phát triển cùng với những nhà đổi mới toàn cầu

Tham gia ngay