gluoncv rpn 正负样本
https://github.com/dmlc/gluon-cv/blob/master/gluoncv/model_zoo/rpn/rpn_target.py
- def forward(self, ious):
- """RPNTargetSampler is only used in data transform with no batch dimension.
- Parameters
- ----------
- ious: (N, M) i.e. (num_anchors, num_gt).
- Returns
- -------
- samples: (num_anchors,) value 1: pos, -1: neg, 0: ignore.
- matches: (num_anchors,) value [0, M).
- """
- matches = mx.nd.argmax(ious, axis=1)
- # samples init with 0 (ignore)
- ious_max_per_anchor = mx.nd.max(ious, axis=1)
- samples = mx.nd.zeros_like(ious_max_per_anchor)
- # set argmax (1, num_gt)
- ious_max_per_gt = mx.nd.max(ious, axis=0, keepdims=True)
- # ious (num_anchor, num_gt) >= argmax (1, num_gt) -> mark row as positive
- mask = mx.nd.broadcast_greater(ious + self._eps, ious_max_per_gt)
- # reduce column (num_anchor, num_gt) -> (num_anchor)
- mask = mx.nd.sum(mask, axis=1)
- # row maybe sampled by 2 columns but still only matches to most overlapping gt
- samples = mx.nd.where(mask, mx.nd.ones_like(samples), samples)
- # set positive overlap to 1
- samples = mx.nd.where(ious_max_per_anchor >= self._pos_iou_thresh,
- mx.nd.ones_like(samples), samples)
- # set negative overlap to -1
- tmp = (ious_max_per_anchor < self._neg_iou_thresh) * (ious_max_per_anchor >= 0)
- samples = mx.nd.where(tmp, mx.nd.ones_like(samples) * -1, samples)
- # subsample fg labels
- samples = samples.asnumpy()
- num_pos = int((samples > 0).sum())
- if num_pos > self._max_pos:
- disable_indices = np.random.choice(
- np.where(samples > 0)[0], size=(num_pos - self._max_pos), replace=False)
- samples[disable_indices] = 0 # use 0 to ignore
- # subsample bg labels
- num_neg = int((samples < 0).sum())
- # if pos_sample is less than quota, we can have negative samples filling the gap
- max_neg = self._num_sample - min(num_pos, self._max_pos)
- if num_neg > max_neg:
- disable_indices = np.random.choice(
- np.where(samples < 0)[0], size=(num_neg - max_neg), replace=False)
- samples[disable_indices] = 0
- # convert to ndarray
- samples = mx.nd.array(samples, ctx=matches.context)
- return samples, matches
gluoncv rpn 正负样本的更多相关文章
- 正负样本比率失衡SMOTE
正负样本比率失衡SMOTE [TOC] 背景 这几天测试天池的优惠券预测数据在dnn上面会不会比集成树有较好的效果,但是正负样本差距太大,而处理这种情况的一般有欠抽样和过抽样,这里主要讲过抽样,过抽样 ...
- DDBNet:Anchor-free新训练方法,边粒度IoU计算以及更准确的正负样本 | ECCV 2020
论文针对当前anchor-free目标检测算法的问题提出了DDBNet,该算法对预测框进行更准确地评估,包括正负样本以及IoU的判断.DDBNet的创新点主要在于box分解和重组模块(D&R) ...
- RPN网络
Region Proposal Network RPN的实现方式:在conv5-3的卷积feature map上用一个n*n的sliding window(论文中n=3)生成一个长度为256(ZF网络 ...
- NeurIPS 2019 | 基于Co-Attention和Co-Excitation的少样本目标检测
论文提出CoAE少样本目标检测算法,该算法使用non-local block来提取目标图片与查询图片间的对应特征,使得RPN网络能够准确的获取对应类别对象的位置,另外使用类似SE block的sque ...
- 【ROC曲线】关于ROC曲线、PR曲线对于不平衡样本的不敏感性分析说引发的思考
ROC曲线 在网上有很多地方都有说ROC曲线对于正负样本比例不敏感,即正负样本比例的变化不会改变ROC曲线.但是对于PR曲线就不一样了.PR曲线会随着正负样本比例的变化而变化.但是没有一个有十分具体和 ...
- 压缩跟踪(CT)代码具体学习_模块1(样本的採集和扩充)
本章主要具体解释的是compressive tracking框架中的第一部分:样本的採集和扩充部分. 在開始代码学习的前面,你须要知道的理论知识參见论文:Real-time Compressive T ...
- 基于PU-Learning的恶意URL检测——半监督学习的思路来进行正例和无标记样本学习
PU learning问题描述 给定一个正例文档集合P和一个无标注文档集U(混合文档集),在无标注文档集中同时含有正例文档和反例文档.通过使用P和U建立一个分类器能够辨别U或测试集中的正例文档 [即想 ...
- [ML] 解决样本类别分布不均衡的问题
转自:3.4 解决样本类别分布不均衡的问题 | 数据常青藤 (组织排版上稍有修改) 3.4 解决样本类别分布不均衡的问题 说明:本文是<Python数据分析与数据化运营>中的“3.4 解决 ...
- 负样本采样及bias校准、ctr平滑
参考:https://zhuanlan.zhihu.com/p/31529643 在CTR预估中,负样本采样是一种常见的特征工程方法.一般CTR预估的原始正负样本比可能达到1:1000~1:10000 ...
随机推荐
- Java中HashSet的解读
一. HashSet源代码 HashSet 的实现 对于 HashSet 而言,它是基于 HashMap 实现的,HashSet 底层采用 HashMap 来保存所有元素,因此 HashSet 的 ...
- Spring学习(二)--- Bean 作用域
概述 本文介绍的Spring 中bean的作用域. 问题 : bean的作用域有几种,有那些应用场景 bean 装配过程 下图为bean在容器中从创建到销毁的若干阶段. bean 作用域 作用域介绍 ...
- 后台UI模板开发规范
AdminLTE模板 在接触新模板之前,需要对bootstrap有初步了解,文档戳这里 主要是了解有哪些控件.样式.元素 可以直接follow使用(形成需要什么的时候直接去查文档的意识,而不是都自己 ...
- [编程] C语言结构体指针作为函数参数
结构体指针作为函数参数:结构体变量名代表的是整个集合本身,作为函数参数时传递的整个集合,也就是所有成员,而不是像数组一样被编译器转换成一个指针.如果结构体成员较多,尤其是成员为数组时,传送的时间和空间 ...
- 内嵌Jetty输出debug日志
Slf4jLog logger = new Slf4jLog(); logger.setDebugEnabled(true); Log.setLog(logger); log4j2.xml中配置如下章 ...
- data-id 和 id 的区别
作者:Zeropoint零点 来源:CSDN 原文:https://blog.csdn.net/qq_41648132/article/details/80364335 版权声明:本文为Zeropoi ...
- "Error: ANDROID_HOME is not set and "android" command not in your PATH. You must fulfill at least one of these conditions.".
设置环境变量 set ANDROID_HOME=C:\\android-sdk-windows set PATH=%PATH%;%ANDROID_HOME%\tools;%ANDROID_HOME%\ ...
- Windows安装ActiveMQ记录
1.下载压缩包(activeMQ应用要基于jdk服务上,安装本软件时,最好已经安装了jdk并且配置好了环境变量) 下载5.12.2版本:http://activemq.apache.org/activ ...
- Linux(Ubuntu16.04)下添加新用户
某些情况下,Ubuntu 使用useradd 新用户名,在home 文件夹下面看不到新创建的用户文件夹,例如: 发现找不到,spark的文件夹,因此将采用下面方式重新建立首先删除spark用户 若想给 ...
- 在Qt中使用Font Awesome图标
官网: http://fontawesome.io/中文网: http://www.fontawesome.com.cn/GitHub: https://github.com/FortAwesome/ ...