博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
经典算法及代码实现
阅读量:4298 次
发布时间:2019-05-27

本文共 1041 字,大约阅读时间需要 3 分钟。

1. NMS

非极大抑制,筛选候选区域,删除冗余的候选框。

迭代过程:

    对于某个类别中Bounding Box的位置以及置信度集合列表B,选择具有最大score的检测框M,将其从B集合中移除并加入到最终的       模型输出检测结果G中。然后将B中剩余检测框中与M的IoU大于阈值threshold的框从B中移除。然后重复上述过程,直到B为空。

import numpy as npdef nms(dets, thresh):    """    dets: 检测的boxes以及对应的scores    thresh: 设定的阈值    """    x1 = dets[:, 0]    y1 = dets[:, 1]    x2 = dets[:, 2]    y2 = dets[:, 3]    scores = dets[:,4]    # 计算每个boxes的面积    areas = (x2 - x1)*(y2 - y1)    # 对分数进行排序,得到排序后的索引值的排序    order = scores.argsort()[::-1]    keep = []    while order.size > 0:        i = order[0]        keep.append(i)        #计算剩余boxes与当前box的重叠程度,IOU        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)        h = np.maximum(0.0, yy2 - yy1)        inter = w * h        ovr = inter/(areas[i]+areas[order[1:]]-inter)        # 保留iou小雨设定阈值的boxes        inds = np.where(ovr<=thresh)[0]        order = order[inds+1]    return keep

2. 卡尔曼滤波

转载地址:http://cvnws.baihongyu.com/

你可能感兴趣的文章
Demo1:视频人体检测
查看>>
Demo2:图片人体检测 (图片hog参数,效果还可以了)
查看>>
Demo3:视频人体检测
查看>>
TensorFlow实现卷积神经网络CNN
查看>>
CT值
查看>>
TensorFlow入门:给小狗分类
查看>>
基于YOLOv3+Kalman-Filter实现Multi-target tracking
查看>>
OpenCV优化:图像的遍历4种方式
查看>>
图像方面面试问题汇集
查看>>
在ARM-Linux下实现车牌识别(一)------车牌提取
查看>>
在ARM-Linux下实现车牌识别(二)------车牌识别
查看>>
detectormorph.cpp源码解读
查看>>
OpenCV 中boundingRect、minAreaRect的用法区别
查看>>
libfacedetection 余老师的人脸检测
查看>>
车牌识别
查看>>
车牌识别 LPR-----字符分割
查看>>
EasyPR--开发详解(7)字符分割
查看>>
EasyPR--开发详解(2)车牌定位
查看>>
目标检测——opencv cascade训练的一般使用流程与常见问题
查看>>
开运算—闭运算
查看>>