手撕NMS(python)
解题思路
def py_cpu_nms(dets, thresh): #首先数据赋值和计算对应矩形框的面积 #dets的数据格式是dets[[xmin,ymin,xmax,ymax,scores]....] x1 = dets[:,0] y1 = dets[:,1] x2 = dets[:,2] y2 = dets[:,3] areas = (y2-y1) * (x2-x1) scores = dets[:,4] #这边的keep用于存放,NMS后剩余的方框 keep = [] #取出分数从大到小排列的索引。.argsort()是从小到大排列,[::-1]是列表头和尾颠倒一下。 index = scores.argsort()[::-1] #上面这两句比如分数[0.72 0.8 0.92 0.72 0.81 0.9 ] # 对应的索引index[ 2 5 4 1 3 0 ]记住是取出索引,scores列表没变。 #index会剔除遍历过的方框,和合并过的方框。 while index.size >0: print(index.size) #取出第一个方框进行和其他方框比对,看有没有可以合并的 i = index[0] # every time the first is the biggst, and add it directly #因为我们这边分数已经按从大到小排列了。 #所以如果有合并存在,也是保留分数最高的这个,也就是我们现在那个这个 #keep保留的是索引值,不是具体的分数。 keep.append(i) #计算交集的左上角和右下角 #这里要注意,比如x1[i]这个方框的左上角x和所有其他的方框的左上角x的 x11 = np.maximum(x1[i], x1[index[1:]]) # calculate the points of overlap y11 = np.maximum(y1[i], y1[index[1:]]) x22 = np.minimum(x2[i], x2[index[1:]]) y22 = np.minimum(y2[i], y2[index[1:]]) #这边要注意,如果两个方框相交,X22-X11和Y22-Y11是正的。 #如果两个方框不相交,X22-X11和Y22-Y11是负的,我们把不相交的W和H设为0. w = np.maximum(0, x22-x11) h = np.maximum(0, y22-y11) #计算重叠面积就是上面说的交集面积。不相交因为W和H都是0,所以不相交面积为0 overlaps = w*h #这个就是IOU公式(交并比)。 #得出来的ious是一个列表,里面拥有当前方框和其他所有方框的IOU结果。 ious = overlaps / (areas[i]+areas[index[1:]] - overlaps) #接下来是合并重叠度最大的方框,也就是合并ious中值大于thresh的方框 #我们合并的操作就是把他们剔除,因为我们合并这些方框只保留下分数最高的。 #我们经过排序当前我们操作的方框就是分数最高的,所以我们剔除其他和当前重叠度最高的方框 #这里np.where(ious<=thresh)[0]是一个固定写法。 idx = np.where(ious<=thresh)[0] #把留下来框在进行NMS操作 #这边留下的框是去除当前操作的框,和当前操作的框重叠度大于thresh的框 #每一次都会先去除当前操作框,所以索引的列表就会向前移动移位,要还原就+1,向后移动一位 index = index[idx+1] # because index start from 1 return keep


自动驾驶感知
讨论区

题目列表

扫描二维码
如你近期刚面试完,请扫码添加小编投稿面试题,每道题可兑换5元哦
投稿面试题、面经、深蓝课程学后感都可以。
编辑题目
题干
解题思路
设置题目所属题包

- 传统机器学习
- 数据分析与挖掘
- 仿真系统
- C++
- HR及非技术问题
- 自动驾驶
- 基础架构
- 决策规划控制
- 定位建图
- 环境感知
- 强化学习
- 深度学习
- 传统机器学习
- 三维重建
- 三维点云
- 三维物体分割
- 语音识别
- 图像视觉检索理解
- 目标跟踪
- 目标分割
- 物体检测
- 计算机视觉
请选择题目所属岗位(请最多选择6个)
请选择题目所属公司

- 文远
- 图森未来
- 阿里高德
- 智加科技
- 蔚来汽车
- 小米汽车
- 上海人工智能研究院
- 商汤绝影
- 商汤研究院
- 速腾聚创
- 鉴智机器人
- 哪吒
- 新石器
- 理想
- 零跑
- 智行者
- 旷视科技
- 易华录
- 未知公司
- SLAM算法实习工程师
- SLAM算法工程师
- 蔚来提前批
- 亚马逊
- 腾讯云一面
- 上海仙途智能+
- 地平线实习
- 规划控制实习岗
- 小马智行
- 华为车bu
- 美团无人机
- 镁佳科技
- 禾赛
- 定位算法工程师
- 智加
- C++开发岗
- 安克科技
- 新能车辆
- 石头科技
- 机器人SLAM算法
- 斑马
- AutoX
- SLAM算法工程师
- 轻舟智航
- 追觅科技
- 滴滴出行
- 华人运通
- 驭势科技
- 小鹏
- 安路科技
- 江西上大企业服务有限公司
- 规划控制岗
- 亿可能源
- 上汽
- 柏楚电子
- 寻迹智行
- 集度汽车
- 上汽乘用车智驾中心
- 易控智驾
- 新能车辆
- 昆山鲲鹏无人机科技有限公司
- 天瞳威势电子科技有限公司
- 擎朗机器人
- 商汤科技
- 视源股份有限公司
- 西井科技
- 禾多科技
- 规划控制算法工程师
- 奇瑞新能源-智能网联部
- 诺亚机器人
- 小鹏汽车
- 元戎启行
- 极智嘉
- SLAM定位建图
- slam 定位建图
- 擎朗智能
- aibee
- oppo研究院
- 希迪智驾
- 吉利汽车研究院
- 九耀智能
- 麦岩智能
- 东软瑞驰
- 斑马网络
- SLAM算法岗
- 小鹏 蔚来 滴滴
- 视觉SLAM实习生
- 上海影创
- SLAM算法工程师
- 达闼科技
- 文远知行
- 嬴彻
- 其域创新科技
- 视觉SLAM算法,VR头显
- 爱奇艺
- Nreal
- 毫末
- 毫末智行
- 路特斯
- 快仓智能
- 安克创新
- 零零无限
- 字节跳动pico
- 其域创新
- SALM岗
- 光鉴科技
- 激光SLAM工程师
- AutoX
- 激光SLAM 融合定位 工程师
- 字节
- 银星智能
- SLAM算法工程师
- 高仙
- SLAM工程师
- 普渡科技
- momenta
- 大华技术
- 长安汽车
- SLAM岗
- 小派科技
- 甲壳虫智能(技术面)
- SLAM算法实习生(定位建图)
- 苏州追觅科技有限公司
- SLAM定位建图
- 美行智能网联汽车技术有限公司
- 立得空间
- 视觉SLAM研发工程师(定位建图)
- 亿航智能
- SLAM算法
- 科沃斯机器人股份有限公司
- 旷视
- 字节跳动 校招
- 格力
- 积木易搭
- SLAM算法实习生
- 上海人工实验室
- 亿嘉和
- pony.ai
- 邦鼓思电子科技(做草坪机器人领先的公司)上海
- 博世
- 感知算法
- 百度一二三面
- 星猿哲科技
- 激光SLAM
- 城事之光
- 高德、百度、旷视
- SLAM算法岗
- Momenta
- SLAM中级算法工程师
- 大疆
- 大疆
- 四维图新 自动驾驶事业部
- 上海的星猿哲机器人公司
- 宝时得科技
- 迦智科技
- 哲库+虹软
- 思岚科技
- 禾多科技
- 网易伏羲机器人
- CV算法
- 海康威视
- 微创机器人
- 海康威视
- 大华
- 阿里巴巴达摩院
- 启元实验室
- 字节跳动杭州
- 仙途
- 蔚来
- 小米
- 新国都
- 上汽零束
- 青岛科捷智能科技股份有限公司
- 高仙机器人
- SLAM算法岗位
- 影创科技
- 泉州哈工大工研院
- 滴滴
- 视觉SLAM算法
- 诠视科技
- 美的
- 美团
- 科大讯飞
- 虾皮
- 地平线
- 语音识别岗位
- 阿里
- 趣丸
- 商汤
- 上海端方智能科技
- 字节
- 华为
- 百度
- 视觉SLAM算法工程师
- 字节跳动
- V SLAM方向
- 网易
- 深兰科技
- 远度科技
- 字节pico
- 星制科技
- 非夕科技
- 锐捷
- 虹软
- 中科院自动化研究所
- 三一重工
- 深圳湾实验室
- 华兴证券
- 深圳锐明技术
- 苏州全视智能
- 梅卡曼德(相机组)
- 理想汽车
- 未知
- SLAM岗位
- dreame
解题思路解锁方式

您还有0次解锁机会,是否解锁本题思路?

