1、IOU计算

设两个边界框分别为A,B。A的坐标为Ax1,Ax2,Ay1,Ay2,且Ax1 < Ax2,Ay1 < Ay2。B和A类似。

则IOU为A∩B除以A∪B。

当两个边界框有重叠部分时,即位于上面边框的y2大于下面边框的y1,且左边边框的x2大于右边边框的x1时,IOU才大于0.

否则A和B不重叠,IOU等于0.

若两个边框重叠,设重叠边框为C,x1 = maximum(Ax1,Bx1),x2 = minimum(Ax2,Bx2)。y坐标计算同理。

那么C的w等于x2 - x1,h等于y2 - y1.

但是需要注意,若A和B无重叠部分,则会出现x1 > x2或y1 > y2的情况,w或h会是负值,

因此需要让w = maximum(x2 - x1, 0),h = maximum(y2 - y1, 0),这样当A和B无重叠部分时,重叠部分面积w * h 等于0.

2、NMS(non maximum suppression)

该算法是为了防止某目标被多个重叠度较高的框检测,

在所有框中选取置信度最大的框a,若其它框与框a的IOU超过某一阈值,则去除这些框。在剩下的框中重复该过程。

 def nms(dets, thresh):
x1 = dets[:, 0]
y1 = dets[:, 1]
x2 = dets[:, 2]
y2 = dets[:, 3]
scores = dets[:, 4] #置信度 areas = (x2 - x1 + 1) * (y2 - y1 + 1)
order = scores.argsort()[::-1] #从大到小排序的下标 keep = []
while order.size > 0:
i = order[0]
keep.append(i)
xx1 = np.maximum(x1[i], x1[order[1:]])
yy1 = np.maximum(y1[i], y1[order[1:]])
xx2 = np.minimum(x2[i], x2[order[1:]])
yy2 = np.minimum(y2[i], y2[order[1:]]) w = np.maximum(0.0, xx2 - xx1 + 1)
h = np.maximum(0.0, yy2 - yy1 + 1)
inter = w * h
ovr = inter / (areas[i] + areas[order[1:]] - inter) inds = np.where(ovr <= thresh)[0]
order = order[inds + 1]
return keep #返回留下的边界框的下标

最新文章

  1. Nginx问题定位之监控进程异常退出
  2. ajax浅析---ScriptManager
  3. iOS设计模式之组合模式
  4. 突然想起android与mfc差异
  5. phonegap–app启动欢迎引导页localstorage
  6. 关于phpcmsv9更新缓存出现链接被重置的问题
  7. print 函数的进一步理解
  8. 如何学习YII
  9. Linux串口编程のtermios 结构
  10. 模块化开发,SesJS简单总结
  11. 7.java.lang.IllegalAccessException
  12. ITextSharp 初次接触
  13. android --- api json数据
  14. 关于python的一些想法
  15. 994.Contiguous Array 邻近数组
  16. light1236 素数打表,质因数分解
  17. 学习笔记之Introduction to Data Visualization with Python | DataCamp
  18. python测试开发django-41.crispy-forms设计标签式导航菜单(TabHolder)
  19. .NET:CLR via C#The Managed Heap and Garbage Collection
  20. java web过滤器实际应用(解决中文乱码 html标签转义功能 敏感字符过滤功能)

热门文章

  1. POJ2729 Robocode(离散化与模拟-----提醒曾经爱玩游戏的自己没做出这个
  2. Python内置函数系列
  3. kbmMW 5.10.01试用报告
  4. js中的in
  5. test11111111
  6. WCF Endpoint分类
  7. Java基础 IO流的文件和目录的五类主要操作
  8. 【好好补题,因为没准题目还会再出第三遍!!】ACM字符串-组合数学(官方题解是数位DP来写)
  9. evpp http put问题
  10. hbase实践之数据读取详解