Tìm hiểu Non-maximum Suppression (NMS)

- Phạm Duy Tùng
Bài viết này được mình tham khảo chính từ bài viết của tác giả Sambasivarao. K và bài báo có tên là Improving Object Detection With One Line of Code năm 2017 của nhóm tác giả Navaneeth Bodla.

Đặt vấn đề

Sau khi thực hiện object detection feed một ảnh qua mạng neural, chúng ta sẽ thu được rất nhiều proposals (như hình ở dưới). Ở trạng thái này, có rất nhiều proposals là boding box cho một object duy nhất, điều này dẫn tới việc dư thừa. Chúng ta sử dụng thuật toán Non-maximum suppression (NMS) để giải quyết bài toán này.

Hình ảnh Hình 1: Proposals box, hình được cắt từ bài báo

Thuật toán NMS

Đầu vào:

Tập danh sách các proposals box ký hiệu là B với B ={b1,b2,…,bn}, với bi là proposal thứ i.

Tập điểm của mỗi proposal box ký hiệu là S với S={s1,s2,…,sn}, si là điểm confidence của box bi

Giá trị ngưỡng overlap threshold N.

Cả hai giá trị bi và si đều là output của mạng neural network.

Đầu ra:

Một tập các proposals box D là tập các proposals đã loại bỏ dư thừa tương ứng với từng object trong hình.

Thuật toán:

Bước 1: Khởi tạo tập output D = {}

Bước 2: Chọn ra proposal box có điểm confidence cao nhất trong tập S, loại box đó ra khỏi tập S, B và thêm nó vào tập D.

Bước 3: Tính giá trị IOU giữa proposal box mới vừa loại ra ở bước 2 với toàn bộ proposal box trong tập B. Nếu có bất kỳ box nào đó có giá trị IOU lớn hơn giá trị ngưỡng N thì loại box đó ra khỏi B, S.

Bước 4: Lặp lại bước 2 đến khi nào không còn box nào có trong tập B.

Điểm yếu của thuật toán:

Nếu bạn đọc kỹ thuật toán, bạn sẽ thấy rằng toàn bộ quá trình loai bỏ những box dư thừa đều phụ thuộc vào giá trị ngưỡng N. Việc chọn lựa giá trị N chính là chìa khóa thành công của mô hình. Tuy nhiên, việc chọn giá trị ngưỡng này trong các bài toán khá khó. Và với việc chỉ sử dụng giá trị N, chúng ta sẽ gặp trường hợp dưới đây.

Giả sửa giá trị ngưỡng N bạn chọn là 0.5. Có nghĩa là nếu box có giá trị lớn IOU đều bị loại bỏ, ngay cả với trường hợp điểm score si của nó có giá trị cao. Ngược lại, giả sử box có điểm score si thấp nhưng IOU của nó nhỏ hơn 0.5, ví dụ o.49, thì nó lại được nhận.

Và để giải quyết bài toán này Navaneeth Bodla đã đề xuất một cải tiến nhỏ và đặt tên thuật toán là Soft-NMS. ý tưởng được đề ra như sau: Thay vì phải loại bỏ hoàn toàn proposal, chúng ta sẽ giảm giá trị confidence của box đi.

Hình ảnh soft-nms, hình được cắt từ bài báo

Với giá trị si được cập nhật lại như sau:

Hình ảnh soft-nms, hình được cắt từ bài báo

Cảm ơn các bạn đã theo dõi bài viết. Hẹn gặp lại các bạn ở những bài viết tiếp theo.

Tham khảo

https://medium.com/@yusuken/object-detction-1-nms-ed00d16fdcf9

https://towardsdatascience.com/non-maximum-suppression-nms-93ce178e177c

https://arxiv.org/pdf/1704.04503.pdf

https://arxiv.org/pdf/1705.02950.pdf


Bài viết khác
comments powered by Disqus