目标检测正负样本区分和平衡策略(anchor-based)

2023-05-16

  最近看了一篇大佬写关于正负样本区分和平衡策略的博文,研究了一下并且查了一下资料进行了补充,加上个人的见解和解读,在此做个总结,欢迎大家补充指正,侵权必删。

大佬博文:目标检测正负样本区分策略和平衡策略总结(一) - 知乎

目标检测正负样本区分策略和平衡策略总结(anchor-based)

  本文抛弃网络具体结构,仅仅从正负样本区分和正负样本平衡策略进行分析,大体可以分为 正负样本定义、正负样本采样和平衡loss设计三个方面 ,主要是网络预测输出和loss核心设计即仅涉及网络的head部分。 本文是第一部分anchor-base,主要包括faster rcnn、libra rcnn、retinanet、ssd和yolo一共5篇文章。
  • 关于正负样本的概念:
——正样本指属于某一类别的样本;负样本指不属于某一类别的样本,如背景。
  • 为什么要进行正负样本采样?
——在ROI、RPN等过程中,整个图像中正样本区域少,大部分是样本,因此要处理好正负样本不平衡问题。
对于目标检测算法,主要需要关注的是对应着真实物体的 正样本 ,在训练时会根据其loss来调整网络参数。相比之下, 负样本对应着图像的背景,如果有大量的负样本参与训练,则会淹没正样本的损失,从而降低网络收敛的效率与检测精度。
  • anchor-free和anchor-base:
——二者的区别在于是否利用anchor提取候选框
  1. 从anchor回归属于anchor-based类,代表如faster rcnn、retinanet、YOLOv2 v3、ssd等
  2. 从point回归属于anchor-free类,代表如cornernet、extremenet、centernet等
  3. 二者融合代表如fsaf、sface、ga-rpn等
  • anchor-based:

Two Stage:例如Faster-RCNN算法。第一级专注于proposal的提取,第二级对提取出的proposal进行分类和精确坐标回归。两级结构准确度较高,但因为第二级需要单独对每个proposal进行分类/回归,速度上就打了折扣
One Stage:例如SSD,YOLO算法。此类算法摒弃了提取proposal的过程,只用一级就完成了识别/回归,虽然速度较快但准确率远远比不上两级结构
1.two-stage
 1.1 faster-RCNN

 

RPN结构:
rpn的作用是从图像中提取proposals,也就是预测框

 

 

faster rcnn总体结构:

 

对于每个中心点(anchors)我们创建3个anchor box,也就是矩形框

 

anchor box:

 

 

每个位置(每个滑动窗口)在原图上对应九个anchor
(1) head结构
faster rcnn包括两个head:rpn head和rcnn head。其结构如下:
RPN结构主要用于生产候选框

 

——use_sigmoid (_cls)= True   是否使用sigmoid来进行分类,如果False则使用softmax来分类
rcnn head:

 

  • class-specific (class-aware )方式: 很多地方也称作class-aware的检测,是早期Faster RCNN等众多算法采用的方式。它利用每一个RoI特征回归出所有类别的bbox坐标,最后根据classification 结果索引到对应类别的box输出。
  • class-agnostic 方式: 只回归2类bounding box,即前景和背景,结合每个box在classification 网络中对应着所有类别的得分,以及检测阈值条件,就可以得到图片中所有类别的检测结果。当然,这种方式最终不同类别的检测结果,可能包含同一个前景框,但实际对精度的影响不算很大,最重要的是大幅减少了bbox回归参数量。
(2) 正负样本定义
rpn:

 

在RPN网络中,对每一个Anchor分配标签 。 正例:对于每一gt box,交并比最大的Anchor,或与任一gt box的最大交并比大于0.7。负例:与所有gt boxes交并比小于0.3。交并比在(0.3,0.7)区间的Anchor忽略。 从而保证每一个gt box都有一个Anchor与之对应。
rcnn:

 

在fast rcnn中,对输出的proposal分配标签。 正例:与某一gt box交并比超过0.5。负例:与gt boxes的最大交并比在(0[或者0.1],0.5)之间
——初始化时候假设每个anchor的mask都是-1,表示都是忽略anchor
总结:
1.如果anchor和gt的最大iou低于neg_iou_thr的,那就是 负样本 ,其应该包括大量数目;
2.如果某个anchor和其中一个gt的最大iou大于pos_iou_thr,那么该anchor就负责对应的gt,定义为 正样本
3.如果某个gt和所有anchor的iou中最大的iou会小于pos_iou_thr,但是大于min_pos_iou,则依然将该anchor负责对应的gt;
4.其余的anchor全部当做忽略区域,不计算梯度。
该最大分配策略,可以尽最大程度的保证每个gt都有合适的高质量anchor进行负责预测。
(3) 正负样本采样
步骤2可以区分正负和忽略样本,但是依然存在大量的正负样本不平衡问题, 解决办法可以通过正负样本采样或者loss上面一定程度解决。faster rcnn的rpn和rcnn都采用随机采样, 阈值不一样
rpn head采样器:

 

取256个ROI送去训练
正负样本的比例为1:1,不够的话用负样本代替
rcnn head采样器:

 

—————— 正负样本比为 1:3 
add_gt_as_proposals是为了放在正样本太少而加入的; 将 gt_box 认定为一个 proposal,默认是 True
由于rcnn head的输入是rpn head的输出,在网络训练前期,rpn无法输出大量高质量样本,故为了平衡和稳定rcnn训练过程,通常会对rcnn head部分添加gt作为proposal。
loss: 由于原始faster rcnn采用的loss是ce和SmoothL1Loss,不存在loss层面解决正负样本不平衡问题

1.2 libra rcnn

libra主要是分析faster rcnn训练过程中的不平衡问题,并提出解决方案。 ibra rcnn的head部分和正负样本定义没有修改。仅分析 正负样本采样和平衡loss设计部分。
(1) 正负样本采样
仅修改了rcnn的采样部分:

 

作者采用了ioubalancedNegSampler。
作者觉得当采用随机采样后,会出现难负和易负样本不平衡,导致后面性能不好
具体做法: 例如假设总共有1000个候选负样本(区间1:800个,区间2:120个,区间3:80个),分为3个区间,总共想取333个,那么理论上每个区间是111个,首先第一次在不同区间均匀采样,此时区间1可以采样得到111个,区间2也可以得到111个,区间3不够,所以区间三全部采样;然后不够的样本数,在剩下的(800-111)+(120-111)+0个里面随机取31个,最终补齐333个。
(2) 平衡回归loss
原始的faster rcnn的rcnn head,使用的回归loss是smooth l1

 

作者在smooth l1的基础上进行重新设计,得到 Balanced L1 Loss 。核心操作就是想要得到一个当样本在  |x|<1 附近产生稍微大点的梯度的函数。

 

 

左边是梯度曲线,右边是loss曲线(默认设置α=0.5,γ=1.5或者1.0)
2.one-stage

2.1 focal loss( retinanet

(1) head结构

 

 

(2) 正负样本定义
retinanet是one-stage算法, 阈值定义和rpn不一样。

 

min_pos_iou=0,可以保证每个GT一定有对应的anchor负责预测。0.4以下是负样本,0.5以上且是最大Iou的anchor是正样本, 0.4~0.5之间的anchor是忽略样本。其不需要正负样本采样器,因为其是通过平衡分类loss来解决的。
(3) 平衡分类loss
FocalLoss是结构的重点,是用于处理分类分支中大量正负样本不平衡问题
*****one-stage检测算法存在严重的精度差异问题*****
————FocalLoss目的:处理正负样本不平衡+挖掘的难分样本
关于正负样本和难易样本的区分:
正负样本:事先约定一个iou的阈值,检测框与label的iou大于该阈值认为是正样本,小于则是负样本
难易样本:对于正样本中预测概率较高的说明是易分样本,负样本中预测概率较低的也是易分样本。因为这些框很容易被正确分类。但对于正样本中预测概率不高的,负样本中预测概率较高的都是难分样本,这类样本很难被正确分类。
预测概率/
                样本类型
正样本
负样本
p较高
 易分样本(少量)
难分样本(大量)
p较低
 难分样本(少量)
易分样本(大量)
——focal loss根据交叉熵改进而来
CE loss函数:
——其中  y  为类别真实标签, p  是模型预测 的概率。
  (1)

 

因为是二分类, p表示预测样本属于1的概率 (范围为0- 1  

 

 

对于类别不均衡问题常用的方法是引入一个权重因子  αt  ,对于类别1的使用权重  α  ,对于类别-1使用权重  1-α

 

其中,    (α是一个超参数,用来平衡正负样本权重。原文中取0.75效果最好)

 

 

γ>=0;( γ的作用就是用来区分难易样本
γ=0的蓝色曲线就是标准的交叉熵损失;实验发现 γ取2最好

 

如上图,横坐标代表pt, 纵坐标表示各种样本所占的loss权重。对于正样本,我们希望p越接近1越好,也就是pt 接近1为易分正样本;对于负样本,我们希望p越接近0越好,也就是pt 接近1为易分负样本。所以不管是正样本还是负样本,我们总是希望他预测得到的pt 越大越好,这便属于易分类样本。如上图所示,pt ∈[0.6,1]就是我们预测效果比较好的样本(也就是易分样本)。

 

两个重要性质:
1.当Pt→0 那么调制因子(1-Pt)接近1,损失不被影响;当Pt→1,因子(1-Pt)接近0,那么分的比较好的(well-classified)样本的权值就被调低了。因此调制系数就趋于1,相比原来的loss是没有什么大的变化
2. 当γ=0的时候,focal loss就是传统的交叉熵损失。 当γ一定的时候,比如等于2,一样easy example(pt=0.9)的loss要比标准的交叉熵loss小100+倍, 当pt=0.968时,要小1000+倍,但是对于hard example(pt < 0.5),loss最多小了4倍。这样的话hard example的权重相对就提升了很多。———————— 让准确率低的样本进行主导
例:
假设pt=0.1, -log(pt)= 2.3026 ; 当γ=2时,-(1-pt) γ log(pt) = 1.8651   (loss基本不变)
假设pt=0.9, -log(pt)= 0.1054 ; 当γ=2时,-(1-pt) γ log(pt) = 0.001054  (loss缩小一百倍)
综合以上两个方面,最终应用的focal loss:

 

   其中αt 来协调正负样本之间的平衡, 来降低简单样本的权重,使损失函数更关注困难样本。

 

缺点:易受噪音干扰;需要调参
2.2 yolov2、v3
(1) head结构
yolov3也是多尺度输出,每个尺度有3个anchor。但其 和faster rcnn或者ssd也有不一样的地方,其类别预测是不考虑背景的,所以才多引入了一个confidence的概念,该分支用于区分前景和背景。
(2) 正负样本定义
yolo系列的正负样本定义原则和MaxIoUAssigner非常类似。但其有一个原则: 保证每个gt bbox一定有一个唯一的anchor进行对应,而不考虑阈值。 匹配规则就是IOU最大,选取出来的即为 正样本   IOU<忽略阈值(人为设定阈值) 的作为 负样本。 除了正负样本,其余的全部为 忽略样本。 对于confidence分支,其在上述MaxIoU分配原则下,还需要从负样本中划分出额外的忽略区域。 将负样本中的iou大于 忽略iou阈值 中的anchor设置为忽略区域。
最大IOU超过忽略阈值的一部分虽然不负责预测对象,但IOU较大,可以认为包含了目标的一部分,这部分不参与误差计算。
此时就区分出了正、负和忽略anchor样本,正anchor用于分类、回归分支学习,正负anchor用于confidence分支学习,忽略区域不考虑。
(3) 样本采样
通常情况下, Yolov3 所有的样本都有用到,所以采用默认的采样器PseudoSampler,不做任何的采样操作。
(4) loss
采用的是普通的bce分类Loss(目标置信度损失和目标类别损失)和smooth l1 回归loss(目标定位损失)。
2.3 ssd
ssd300的head结构如下:
(1) head结构

 

ssd一共包括6个尺度输出,每个尺度的strides由anchor_strides设置。
——在原文中,Smin=0.2,而head结构设置smin=0.15  ?
basesize_ratio_range表示正方形anchor的min_size和max_size,anchor_ratios表示每个预测层的anchor个数,以及比例( 比例在这里并未给出 )。
anchor_ratios设置与源码有些出入?
anchor_ratios=[[2, .5],
[2, .5, 3, 1./3],
[2, .5, 3, 1./3],
[2, .5, 3, 1./3],
[2, .5],
[2, .5]],
*****由anchor_ratios设置,第1、5、6层只有两种长宽比,因此只有四个anchor box;其余层有六个anchor box
anchor的生成过程:

 

 

作者设计了一个公式来生成anchor的size:

 

在原文中,Smin=0.2,Smax=0.9;但 第一个特征图Conv4_3 中比较特殊, Smin设置为0.1, 故第一层的Sk =0.1,输入是300,故conv4_3的min_size=300*0.1=30 , max_size=300*0.2=60
以此类推可以得到每个特征图的min_size和max_size:

 

(2) 正负样本定义
ssd采用的正负样本定义器依然是MaxIoUAssigner

 

其定义anchor与gt的iou小于0.5的就全部认为是负样本,大于0.5的最大iou样本认为是正样本anchor,同时由于min_pos_iou=0以及gt_max_assign_all=False,可以发现该设置的结果是 每个gt可能和多个anchor匹配上,匹配阈值比较低,且每个gt一定会和某个anchor匹配上,不可能存在gt没有anchor匹配的情况,且没有忽略样本
(3) 平衡分类loss
分为两个部分:
  1. 定位损失( localization loss
  2. 置信度损失( confidence loss
  • 定位损失计算的预测框与标注框之间的smooth  l1损失;
  • 置信度损失计算的是交叉熵损失;
  • 整体的损失函数是定位损失和置信度损失的加权求和
由于正负样本差距较大,如果直接采用ce和smooth l1训练,效果可能不太好,样本不平衡比较严重。 作者的ce loss其实采用了ohem+ce的策略, 设置 neg_pos_ratio=3即负样本是正样本的3倍
ohem: 

(在线困难样本挖掘,Online Hard Example Mining)

——————OHEM是让loss大的进行主导(适用于two-stage算法)
  算法优点:
1)对于数据的类别不平衡问题不需要采用设置正负样本比例的方式来解决,这种在线选择方式针对性更强;
2)随着数据集的增大,算法的提升更加明显(作者是通过在COCO数据集上做实验和VOC数据集做对比,因为前者的数据集更大,而且提升更明显,所以有这个结论)
参考:
  • 目标检测算法 - RetinaNet - 知乎
  • mmdetection之Faster RCNN注释详解 - One Blog | 文鹃阁  
  • 什么是anchor-based 和anchor free? - 知乎  
  • 目标检测中的loss - 知乎   【trick 3】Focal Loss —— 解决one-stage目标检测中正负样本不均衡的问题_满船清梦压星河HK的博客-CSDN博客_目标检测 解决正负样本不均衡
  • YOLOv3/v4/v4/x中正负样本的定义_折磨王的博客-CSDN博客_yolo 正负样本  
  • CE Loss 与 BCE Loss 学习和应用 - 知乎   
  • Softmax函数和Sigmoid函数的区别与联系 - 知乎
  • 检测模型改进—OHEM与Focal-Loss算法总结_m_buddy的博客-CSDN博客_focal loss和ohem  

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

目标检测正负样本区分和平衡策略(anchor-based) 的相关文章

  • 罗德里格斯公式推导

    罗德里格斯公式推导 第一部分 向量 v 61 v x v
  • Ubuntu中的vi

    Windows中的常用编辑器 xff0c 如自带的notepad 比较好用的notepad 43 43 xff0c UltraEditor xff0c SlickEditor Linux中常用编辑器 xff0c 自带的最古老的vi 比较好用
  • 关于C++中的友元函数的总结

    转载自 xff1a http www cnblogs com BeyondAnyTime archive 2012 06 04 2535305 html 关于C 43 43 中的友元函数的总结 1 友元函数的简单介绍 1 1为什么要使用友元
  • 拷贝构造函数

    拷贝构造函数是重载构造函数的一种重要形式 xff0c 它的功能是使用一种已经存在的对象去初始一个新创建的同类对象 xff0c 它可以将一个已有对象的数据成员的值拷贝给正在创建的另一个同类的对象 拷贝构造函数与类同名 xff0c 没有返回值
  • cp: omitting directory ‘sp/’

    在linux中使用命令复制文件夹的时候出现的错误 xff1a cp omitting directory sp 解决办法 xff1a 使用递归拷贝 xff0c 在cp命令后面加上 r参数 xff0c 形如 xff1a cp r sp ica
  • LDR和ADR

    转自 xff1a https www douban com note 331036776 ARM汇编有ldr指令以及ldr adr伪指令 xff0c 他门都可以将标号表达式作为操作数 xff0c 下面通过分析一段代码以及对应的反汇编结果来说
  • 在显示屏上显示的数字的方法

    在现实屏上显示的数字的时候经常需要对数据进行分解 xff0c 得到数据 的每一位再依次显示 xff0c 方法有很多种 xff0c 下面介绍经常用到的3种方法 第一种方法 xff1a 不断的利用取整运算与取余运算得到每一位 void disp
  • 可变参数列表的简单实现

    使用可变参数列表实现一个sum函数 include lt stdio h gt define AUPBND sizeof int 1 define ADNBND sizeof int 1 define bnd X bnd sizeof X
  • 函数指针实例

    include lt stdio h gt void fun1 void printf 34 I 96 m fun1 n 34 void fun2 void printf 34 I 96 m fun2 n 34 void fun3 void
  • makefile小试牛刀

    使用make编译两个 c文件 div span style font size 14px a c void fun1 void int main fun1 return 0 span div div span style font size
  • 线程,进程,程序的区别

    转载自 xff1a https mp weixin qq com s O6 cZ9t8aJUMyeb7TbcbTQ 任务是代码运行的一个映象 xff0c 从系统的角度看 xff0c 任务是竞争系统资源的最小运行单元 任务可以使用或等待CPU
  • ubuntu14.04 samba服务器安装配置

    Data 2016 12 19 Author cjh Theme samba install andconfiguration 在介绍如何安装配置samba之前 xff0c 先简单介绍linux中两个命令的区别分别是update和upgra
  • 在数组中进行图形绘制

    include lt stdio h gt define k 2 43 1 define 2 define s 0 static unsigned short stop 61 s k k k k k k k s k k k k k k k
  • socket函数

    转自 xff1a http blog csdn net guoping16 article details 6584382 1 基本套接字函数 xff08 1 xff09 socket函数原型 socket 建立一个socket文件描述符
  • 进程与线程

    第一章 xff1a 计算机系统漫游 进程 xff1a 进程是操作系统对一个正在运行的程序的一种抽象 xff0c 一个系统可以同时运行多个进程 xff0c 看上去是CPU并发的执行多个程序 xff0c 实际上是通过进程切换来实现的 xff0c
  • GDI GDI+ 的区别

    转载自 xff1a http www cnblogs com lidabo p 3701252 html GDI 43 是GDI的下一个版本 xff0c 它进行了很好的改进 xff0c 并且易用性更好 GDI的一个好处就是你不必知道任何关于
  • GDI GDI+ 的区别

    转载自 xff1a http www cnblogs com lidabo p 3701252 html GDI 43 是GDI的下一个版本 xff0c 它进行了很好的改进 xff0c 并且易用性更好 GDI的一个好处就是你不必知道任何关于
  • 使用的DockPanel的心得

    使用这个控件的时候后一定要先Show this DockPlan1 才能使用DockTo this DockPlan1 DockStyle Bottom 固定位置 xff0c 否则会抛出异常
  • C#使用双缓冲解决绘图闪屏的问题

    最近在工作需要使用C 绘制图形 xff0c 看了一下绘制的函数觉得很简单就开始着手工作了 xff0c 但是在实际应用的时候发现鼠标进行绘制的时候会闪屏 xff0c 原因是图元重绘的时间不一致 xff0c 百度一下有很多更详细的 xff0c
  • 关于捕获键盘信息的processDialogkey方法

    转载自 xff1a http blog csdn net lucifinil s article details 6318189 在一些控件里的keydown方法 xff0c 没有办法捕获所有的按键消息 比如自己写一个窗体控件库 xff0c

随机推荐

  • C#泛型委托

    因为项目原因最近要使用C 进行编程 xff0c 于是每天现学现卖一点一点的进行开发 之前很长的时间一直使用C和C 43 43 进行编程 xff0c 于是转到C 一开始开始不是特别适应的 xff0c 特别是C 这门语言没有了指针 xff0c
  • 基于windows的Ubuntu双系统安装

    Data 2016 12 19 Author cjh Theme Ubuntu dual system installation 前期准备 1 Ubuntu相关版本镜像ios 2 UltraISO 用于制作U盘启动盘 3 EasyBCD 2
  • 汇编文件.S和.s的区别

    c C 原始程序 xff1b 预处理 编译 汇编 C C 43 43 原始程序 xff1b 预处理 编译 汇编 ccC 43 43 原始程序 xff1b 预处理 编译 汇编 cxx C 43 43 原始程序 xff1b 预处理 编译 汇编
  • 串口网口数据帧解析(支持连包、断传、错误数据过滤)

    本文转载自 xff1a https blog csdn net hwb 1988 article details 45872379 嵌入式系统中 xff0c 关于数据接受部分确实思考了很多 xff0c 下面总结下个人经验 关于串口传输 xf
  • Use of $Super$ $  and$Sub$ $to patch symbol definitions

    在无法修改现有符号的情况下 xff0c 可以使用特殊模式 现有符号无法修改 xff0c 例如 xff0c 如果它位于外部库或ROM代码中 在这种情况下 xff0c 您可以使用 Super 和 Sub 模式来修补现有符号 修补函数foo xf
  • RT-Thread内核移植

    记录代码移植过程 xff0c 成功一步记录一步 第一步 xff1a 建立裸机程序 使用STM32CubeMx建立一个裸机程序 生成MDK5工程 第二步 xff1a 参考0 bare metal完成board c board h文件 在Dri
  • C#委托和事件框架封装简写 delegate、event、Action、EventHandler

    曾经 Net大佬只有一个Delegete 委托 xff0c 别人想用委托的时候 xff0c 必须得用delegate关键字来定义一个委托 xff0c 就像这样 span class token comment 定义一个无返回值的 xff0c
  • CentOS 7 firewalld使用简介

    学习apache安装的时候需要打开80端口 xff0c 由于centos 7版本以后默认使用firewalld后 xff0c 网上关于iptables的设置方法已经不管用了 xff0c 想着反正iptable也不会用 xff0c 索性直接搬
  • 通过VNC访问docker容器的图形界面

    https hub docker com r dorowu ubuntu desktop lxde vnc https github com fcwu docker ubuntu vnc desktop docker ubuntu vnc
  • 阿里云产品图标

    2022年最新 最全的阿里云产品图标 xff0c 矢量图哦 xff0c 留下你的邮箱 xff0c 我发给你 2022年最新阿里云产品图标 有200多个图标 随时可以拿来用 为了可以审批通过 我在这里多写点字 我平时都是用这些图标 用来做设计
  • 论文引用:参考文献GB/T 7714、APA、MLA的自动生成

    一 谷歌学术 1 谷歌学术镜像 xff1a 谷歌学术镜像 Google学术搜索导航 64 思谋学术 xff0c 随意点进去一个链接 2 搜索需要的论文 xff0c 点击下方引用小标志 3 根据自己需要的引用标准 xff0c 选择复制 注 x
  • 人工智能与安全论坛:智能与安全的融合与对抗

    前几天随公司参加了互联网安全大会 xff08 ISC xff0c Internet Security Conference xff09 xff0c 虽然只参加了半天的会议 xff0c 感觉收获不 更重要的是偶遇师兄 xff0c 人生无处不相
  • Jetson TX1刷机历险记

    Data 2016 12 19 Author cjh Theme Jetson TX1 Brush 这两天刚到了英伟达的jetson tx1 开发板 xff0c 之前也看了写资料 xff0c 感觉应该很充分刷机应该没有问题才对 xff0c
  • curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused 解决方法

    问题 xff1a 报错 curl 7 Failed to connect to raw githubusercontent com port 443 Connection refused 解决方法 xff1a 参考 xff1a https
  • GailHoward

    全球著名彩票预测家美国人 xff27 xff41 xff49 xff4c xff28 xff4f xff57 xff41 xff52 xff44 发明的 旋转系统 选号法已经造就了 xff17 xff14 个大奖得主 xff0c 这是一种基
  • Casbin Demo实例(支持CSV和MySQL两种策略规则)

    Casbin 帮助文档地址 xff1a https casbin org docs zh CN how it works 常见的设计模式 xff08 DAC xff0c MAC xff0c RBAC xff0c ABAC xff09 0 基
  • Ubuntu下分别用gcc和makefile编译C语言

    Ubuntu下分别用gcc和makefile编译C语言 1 编写C文件2 gcc编译C文件3 makefile编译C文件3 1 创建makefile文件3 2 编译makefile文件 4 总结 在Windows环境下通过虚拟机软件 xff
  • px4 守护进程高频获取uorb消息

    任务 xff0c 需要通过后台进程持续的以一定频率 xff0c 获取uorb某个主题的数据 xff0c 因此必须通过守护进程的方式 xff0c 不能中断终端调用其他程序 守护进程可以参考module里面都是用守护进程的方式来跑功能的 xff
  • UDA/语义分割-ColorMapGAN: Unsupervised Domain Adaptation for Semantic Segmentation Using Color Mapping G

    ColorMapGAN Unsupervised Domain Adaptation for Semantic Segmentation Using Color Mapping Generative Adversarial Networks
  • 目标检测正负样本区分和平衡策略(anchor-based)

    最近看了一篇大佬写关于正负样本区分和平衡策略的博文 xff0c 研究了一下并且查了一下资料进行了补充 xff0c 加上个人的见解和解读 xff0c 在此做个总结 xff0c 欢迎大家补充指正 xff0c 侵权必删 大佬博文 xff1a 目标