目标检测理论(1)———交并比(IoU)和 非极大值抑制(NMS)
1. 交并比:IoU:
1) 概念:如图有两个区域:A和B,IoU就是两个区域的相交面积 / (总面积-相交面积);
即: IoU = A ∩ B / A υ B;
2)应用:
在目标检测中,我们首先会预测出一系列的候选框,然后使用NMS来去除一堆多余的框。这里的判断标准就是IoU大于某个阈值,一般这个阈值设置为0.5.
3)代码实现:
2. 非极大值抑制:NMS:
1)概念:
具体执行过程:1)获取当前目标类别下所有bbox的信息;
2)将bbx按照confidence从高到低进行排序,并记录当前confidence最大的bbx.
3)计算最大confidence对应的bbx与剩下的所有的bbx的IoU,移除所有大于IoU阈值的bbx;
4)对剩下的bbx, 循环执行(2),(3),直到所有的bbx均满足要求(即不能再移除bbx);
2)注:
我在工作的时候,发现大家出处理NMS时出现过一个误解:”就是NMS摒弃后留下的框进行融合?“。也可能是我误解。但我和同事验证下来,下面的理解应该是对的
假设一个对象,现在出现了5个检测框,对应IoU为[0.9, 0.8, 0.5, 0.3, 0.1], 假设阈值为0.5, 则留下0.9的框,扔掉0.8的框,0.5, 0.3, 0.1的框认为是其他目标的框保留。然后在其他对象做非极大值抑制的时候再扔掉,只留下一个框作为检测对象结果。
疑问:1)大框套小框,一个目标误认两个目标。有什么好的解决方法吗?
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
2021-01-07 目标检测算法部署(坑2):YOLOv4测试——电脑插上GPU之后,无法开机,或者无法识别GPU信号,或者GPU无法传输信号至显示器