精华内容
下载资源
问答
  • GC就是Java垃圾回收机制,要了解什么情况下会发生GC(即GC得触发条件),我们需要先了解JVM内存模型结构,之前一篇文章已经详细讲解了Jvm内存模型结构,而通常来说,GC主要针对的是堆(java heap)区。而java heap...

    GC就是Java的垃圾回收机制,要了解什么情况下会发生GC(即GC得触发条件),我们需要先了解JVM的内存模型结构,之前一篇文章已经详细讲解了Jvm的内存模型结构,而通常来说,GC主要针对的是堆(java heap)区。

    而java heap是分代的(年轻代和老年代),为什么要分代?其实也不难理解,分代就是为了优化性能,如果不分代,那就会导致所有对象揉在一块,那样GC就会对堆区域进行全扫描。所以,分代可以大大提升GC性能,那么,分代的原理是什么?

    JVM对于堆的垃圾回收,采用分代收集的策略,所以分代的原理就是根据堆中对象的存活周期进行分代,年轻代中,每次垃圾回收都有大批对象死去,只有少量存活,而老年代中存放的对象存活率高。

    >>>>>必须知道的知识点<<<<<

    Young space:年轻代(新生代),保存生命周期较短的对象

    Tenured space:老年代(年老代),保存生命周期较长的对象

    Minor GC:发生在Young space中的gc

    Major GC:发生在老年代Tenured space中的gc

    STW(stop the world):指的是用户线程在运行至安全点(safe point)或安全区域(safe region)之后,就自行挂起,进入暂停状态,对外的表现就是卡顿,而不论何种gc算法,不论是minor gc还是major gc都会STW,区别只在于STW的时间长短。

    Full GC:无官方定义,通常意义上而言指的是一次特殊GC的行为描述,这次GC会回收整个堆的内存,包含老年代,新生代,metaspace等。

    但是实际情况中,我们主要看的是gc.log日志,其中也会发现在部分gc日志头中也有Full GC字眼,此处表示含义是在这次GC的全过程中,都是STW的状态,也就是说在这次GC的全过程中所有用户线程都是处于暂停的状态。

    >>>>>年轻代<<<<<

    Jvm把年轻代分三部分:1个Eden(伊甸园)区和2个Survivor(幸存者)区(分别叫from和to),默认比例为8:1。

    为啥默认这个比例?

    一般情况下,新创建的对象都会被分配到Eden区(一些大对象特殊处理),这些对象经过第一次Minor

    GC后,如果仍然存活,将会被移到Survivor区。对象在Survivor区中每熬过一次Minor

    GC,年龄就会增加1岁,当它的年龄增加到一定程度(默认15岁)时,就会被移动到年老代中。

    因为年轻代中的对象基本都是朝生夕死的(80%以上),所以年轻代的垃圾回收算法采用复制算法(内存分为两块,每次只用其中一块,当一块内存用完,就将还活着的对象复制到另外一块内存上,复制算法不产生内存碎片)。在GC开始的时候,对象只会存在于Eden区和名为“From”的Survivor区,Survivor区“To”是空的。紧接着进行GC,Eden区中所有存活的对象都会被复制到“To”,而在“From”区中,仍存活的对象会根据他们的年龄值来决定去向。年龄达到一定值(年龄阈值,可以通过-XX:MaxTenuringThreshold来设置)的对象会被移动到年老代中,没有达到阈值的对象会被复制到“To”区域。经过这次GC后,Eden区和From区已经被清空。

    这个时候,“From”和“To”会交换他们的角色,就是新的“To”是上次GC前的“From”,新的“From”就是上次GC前的“To”。不管怎样,都会保证名为To的Survivor区域是空的。Minor

    GC会一直重复这样的过程,直到“To”区被填满,“To”区被填满之后,会将所有对象移动到年老代中。

    总结下来,JVM的堆区对象分配的规则一般如下:

    1)对象优先在Eden区分配

    2)大对象直接进入老年代(-XX:PretenureSizeThreshold=3145728 该参数来定义进入老年代对象大小)

    3)长期存活的对象将进入老年代(在JDK8中-XX:MaxTenuringThreshold=1的阀值设定根本没用)

    4)动态对象年龄判定(虚拟机并不会永远地要求对象的年龄都必须达到MaxTenuringThreshold才能晋升老年代,如果Survivor空间中相同年龄的所有对象的大小总和大于Survivor的一半,年龄大于或等于该年龄的对象就可以直接进入老年代)

    5)空间分配担保

    6)只要老年代的连续空间大于(新生代所有对象的总大小或者历次晋升的平均大小)就会进行minor GC,否则会进行full GC

    GC的触发条件

    PS:JVM优化的目的就是减少SWT执行的时间(避免卡顿),避免频繁full gc

    1)System.gc()方法的调用。

    此方法的调用是建议JVM进行Full GC,虽然只是建议而非一定,但很多情况下它会触发 Full GC,从而增加Full

    GC的频率,也即增加了间歇性停顿的次数。强烈影响系建议能不使用此方法就别使用,让虚拟机自己去管理它的内存,可通过通过-XX:+

    DisableExplicitGC来禁止RMI(Java远程方法调用)调用System.gc。

    2)旧生代空间不足。旧生代空间只有在新生代对象转入及创建为大对象、大数组时才会出现不足的现象,当执行Full

    GC后空间仍然不足,则抛出错误:java.lang.OutOfMemoryError: Java heap space

    。为避免以上两种状况引起的FullGC,调优时应尽量做到让对象在Minor

    GC阶段被回收、让对象在新生代多存活一段时间及不要创建过大的对象及数组。

    3)Permanet Generation空间满了。Permanet

    Generation中存放的为一些class的信息等,当系统中要加载的类、反射的类和调用的方法较多时,Permanet

    Generation可能会被占满,在未配置为采用CMS GC的情况下会执行Full GC。如果经过Full

    GC仍然回收不了,那么JVM会抛出错误信息:java.lang.OutOfMemoryError: PermGen space 。为避免Perm

    Gen占满造成Full GC现象,可采用的方法为增大Perm Gen空间或转为使用CMS GC。

    4)通过Minor GC后进入老年代的平均大小大于老年代的可用内存

    5)由Eden区、From Space区向To Space区复制时,对象大小大于To Space可用内存,则把该对象转存到老年代,且老年代可用内存不足(老年代可用内存小于该对象)

    展开全文
  • 气候指一个地区大气多年平均状况,包括气温、降水和光照等气候要素,在一定时间内气候相对稳定自然地理要素,但是从较长时间来看,气候又在不断变化之中,甚至会发生巨大变化。一个区域气候形成受...

    a6dbda3e737d74b3e7449e17d41c2baa.png

    气候是指一个地区大气的多年平均状况,包括气温、降水和光照等气候要素,在一定时间内气候是相对稳定的自然地理要素,但是从较长的时间来看,气候又是在不断的变化之中,甚至会发生巨大的变化。一个区域气候的形成受到很多因素的影响,包括纬度位置、海陆位置、大气环流、地形因素、洋流因素和人类活动等因素。在气象学中我们经常会听到许多跟气候有关的“效应”,比如“热岛效应”、“湿岛效应”、“焚风效应”和“雨影效应”等。

    72cfefaca171e6beaf2afebdd19bd45b.png

    关于焚风效应和雨影效应
    这些“效应”都是在特定的区域条件下产生的特殊现象,比如“热岛效应”和“湿岛效应”,主要是由集中大量人类活动的城市对气候产生影响而出现,城市区域相对周边地区而言气温偏高、降水偏多,因而有这种说法。那么,“焚风效应”和“雨影效应”又是怎么产生的呢?这两种效应的产生主要都是有地形对于空气水平运动的影响而产生,这里的地形以山地地形为主,“焚风效应”和“雨影效应”大多出现在同一区域,那就是山地的背风坡位置。

    aa073f2d7e33a841980f3a106c76a630.png

    焚风效应示意图
    所谓“焚风效应”是指是指由于空气再作下沉运动时,因为海拔不断降低空气温度不断升高,从而形成的一种干热风,焚风效应主要是从空气的温度和干湿度角度来衡量的,焚风也就是又干又热的风。要形成焚风需要满足两个条件,第一个条件是空气温度要高,这个需要通过空气的下沉运动来实现,通常空气海拔每下降1000米,气温就会升高大约6.5℃,所以当空气座下沉运动超过1000米左右时就会产生一定的焚风效应,随着海拔落差增加,焚风效应更加明显,如果落差超过3000米以上,就会产生强烈的焚风效应,并有可能改变当地的气候特征。

    e5aea4a1d5a466b6a9ea387fdaab4f63.png

    世界主要焚风效应和雨影效应地区分布图
    第二个条件是空气湿度要小,我们知道在山地的迎风坡位置,由于空气受到地形的阻挡被迫抬升,空气作上升运动,从而冷却凝结,水汽过饱和,从而形成丰富的降水。而当这些空气翻过山脉顶部时,空气中的水汽含量已经很少,而后在背风坡空气作下沉运动,空气温度越来越高,水汽含量更少,从而越往山麓地区,空气就越干燥。因此,你在盛行风背风坡的山麓地区通常能够感受到干热的焚风,会产生一种烘烤的感觉。“焚风效应”强烈的时候会导致农作物枯萎,甚至引起森林火灾。

    9b67eff2a83f4da768f0ffb5e3f5d625.png

    南美洲巴塔哥尼亚沙漠的形成原因
    所谓“雨影效应”是指由于山地的存在,导致山地迎风坡一侧降水丰富,而山地背风坡一侧降水稀少,降水在迎风坡和背风坡产生显著差异,背风坡就像是降雨区的“影子”,虽然距离很近,但是却很少有降水,雨影效应是从降水的角度来衡量的。世界上许多高大山脉的背风坡都有“焚风效应”和“雨影效应”存在,这些山脉通常都位于沿海地区,而且山脉走向和盛行风的风向角度较大,甚至呈垂直状态,而盛行风多从海洋吹向陆地。比如在中纬度地区分布着盛行西风带,所以在南美洲南部安第斯山脉的东部地区、北美洲落基山脉的东部地区和欧洲阿尔卑斯山脉地区都有此类现象。

    b01dc784ee9c398ba5b62e59782ee72c.png


    而在低纬信风带控制的地区,在山脉的西侧地区也有此类现象,比如非洲东南部的马达加斯加岛,常年受东南信风的影响,岛屿东侧为热带雨林气候,而西侧为热带草原气候,就是此类效应的结果。在我国,一些区域也有焚风和雨影效应,其中位于我国东南部的台湾岛最为明显,岛上分布着东北西南走向的台湾山脉,是我国东部地区海拔最高的山脉,最高峰玉山海拔达3952米,台湾山脉西侧的地区处在东南季风的背风坡,常受干热风的影响,降水也较少。

    7d71eaaea4956bcda75282d09a9332d8.png

    我国焚风效应和雨影效应分布图
    来自南亚的西南季风,在我国横断山脉地区也会形成干热河谷,也是此类效应的结果。我国西北地区的天山山脉主要受到来自大西洋的盛行西风带和来自北冰洋的偏北风影响,北坡为迎风坡,而天山山脉南坡地区,通常也降水较少,也有“焚风效应”。我国华北地区的太行山脉,东侧为华北平原,西侧为黄土高原,当冬季的西北季风经过太行山脉时,而山脉东侧地区,由于空气下沉运动,在华北平原产生“焚风效应”。

    1fdf3881628958725d4995695964b564.png

    台湾地形图

    展开全文
  • 而one-stage目标检测速度相对较快,但是检测精度相对较低.one-stage精度不如two-stage精度,一个主要的原因是训练过程中样本极度不均衡造成. 目标检测任务中,样本包括哪些类别呢?正样本:标签区域...

    5cd2aa1f71e28f18d74de48ef14ffaac.png

    引言

    当前基于深度学习的目标检测主要包括:基于two-stage的目标检测和基于one-stage的目标检测.two-stage的目标检测框架一般检测精度相对较高,但检测速度慢;而one-stage的目标检测速度相对较快,但是检测精度相对较低.one-stage的精度不如two-stage的精度,一个主要的原因是训练过程中样本极度不均衡造成的. 目标检测任务中,样本包括哪些类别呢?

    • 正样本:标签区域内的图像区域,即目标图像块
    • 负样本:标签区域以外的图像区域,即图像背景区域
    • 易分正样本:容易正确分类的正样本,在实际训练过程中,该类占总体样本的比重非常高,单个样本的损失函数较小,但是累计的损失函数会主导损失函数
    • 易分负样本:容易正确分类的负样本,在实际训练过程中,该类占的比重非常高,单个样本的损失函数较小,但是累计的损失函数会主导损失函数
    • 难分正样本:错分成负样本的正样本,这部分样本在训练过程中单个样本的损失函数教高,但是该类占总体样本的比例教小
    • 难分负样本:错分成正样本的负样本,这部分样本在训练过程中单个样本的损失函数教高,但是该类占总体样本的比例教小

    那么什么是样本不平衡问题?
    所谓的样本不平衡问题是指在训练的时候各个类别的样本数量极不均衡.以基于深度学习的单阶段目标检测为例,样本类别不均衡主要体现在两方面:正负样本不均衡(正负样本比例达到1:1000)和难易样本不均衡(简单样本主导loss).一般在目标检测任务框架中,保持正负样本的比例为1:3(经验值)
    对于一个样本,如果它能很容易地被正确分类,那么这个样本对模型来说就是一个简单样本,模型很难从这个样本中得到更多的信息;而对于一个分错的样本,它对模型来说就是一个困难的样本,它更能指导模型优化的方向。对于单阶段分类器来说,简单样本的数量非常大,他们产生的累计贡献在模型更新中占主导作用,而这部分样本本身就能被模型很好地分类,所以这部分的参数更新并不会改善模型的判断能力,这会导致整个训练变得低效。 实际训练过程中如何划分正负样本训练集?
    近年来,不少的研究者针对样本不均衡问题进行了深入研究,比较典型的有OHEM(在线困难样本挖掘)、S-OHEM、A-Fast-RCNN、Focal Loss、GHM(梯度均衡化)

    样本不均衡的处理方法

    OHEM(在线困难样本挖掘)

    OHEM算法(online hard example miniing,发表于2016年的CVPR)主要是针对训练过程中的困难样本自动选择,其核心思想是根据输入样本的损失进行筛选,筛选出困难样本(即对分类和检测影响较大的样本),然后将筛选得到的这些样本应用在随机梯度下降中训练。在实际操作中是将原来的一个ROI Network扩充为两个ROI Network,这两个ROI Network共享参数。其中前面一个ROI Network只有前向操作,主要用于计算损失;后面一个ROI Network包括前向和后向操作,以hard example作为输入,计算损失并回传梯度。该算法在目标检测框架中被大量使用,如Fast RCNN.

    bbb8f4d976ab883d46aa016df4961d58.png

    该算法的优点:1).对于数据的类别不平衡问题不需要采用设置正负样本比例的方式来解决,这种在线选择方式针对性更强;2).随着数据集的增大,算法的提升更加明显;
    该算法的缺点:只保留loss较高的样本,完全忽略简单的样本,这本质上是改变了训练时的输入分布(仅包含困难样本),这会导致模型在学习的时候失去对简单样本的判别能力.

    S-OHEM(基于loss分布采样的在线困难样本挖掘)

    先来看看原生的OHEM存在什么问题?假设给定RoI_A和RoI_B,其对应的分类和边框回归损失分别为

    .如果按照原生的OHEM(假定各损失函数权重相同),此时RoI_A的总体loss大于RoI_B,也就是说A相对于B更难分类;而实际上单从分类损失函数(交叉熵),RoI_A和RoI_B的实际类别概率分别是61.6%和64.5%,在类别概率上两者只相差0.031,可以认为A和B具有相同的性能;单从边框损失函数(Smooth L1),虽然A和B的损失函数之相差0.01,但这个微小的差会导致预测边框和groudtruth有0.14的差距,此时,B相对于A更难分类,因此单从top-N损失函数来筛选困难样本是不可靠的.针对上述问题,提出了S-OHEM方法(发表于2017年的CCCV),主要考虑OHEM训练过程忽略了不同损失分布的影响,因此S-OHEM根据loss的分布抽样训练样本。它的做法是将预设loss的四个分段:
    ;给定一个batch,先生成输入batch中所有图像的候选RoI,再将这些RoI送入到Read only RoI网络得到RoIs的损失,然后将每个RoI根据损失(这里损失是一个组合,具体公式为
    随着训练阶段变化而变化;之所以采用这个公式是因为在训练初期阶段,分类损失占主导作用;在训练后期阶段,边框回归损失函数占主导作用)划分到上面四个分段中,然后针对每个分段,通过排序筛选困难样本.再将经过筛选的RoIs送入反向传播,用于更新网络参数.

    b144d8d3bfdb4849d446867a97f66eb4.png

    优点:相比原生OHEM,S-OHEM考虑了基于不同损失函数的分布来抽样选择困难样本,避免了仅使用高损失的样本来更新模型参数.
    缺点:因为不同阶段,分类损失和定位损失的贡献不同,所以选择损失中的两个参数

    需要根据不同训练阶段进行改变,当应用与不同数据集时,参数的选取也是不一样的.即引入了额外的超参数

    A-Fast-RCNN(基于对抗生成网络的方式来生成困难样本)

    从更好的利用数据的角度出发,OHEM和S-OHEM都是发现困难样本,而A-Fast-RCNN的方法(发表于2017年CVPR)则是通过GAN的方式在特征空间产生具有部分遮挡和形变(本文主要考虑旋转特性)的困难样本,而这部分样本数据很难出现在实际训练数据集中.本文通过生成的方式来教网络什么是“遮挡”和“变形”,区别于传统的直接生成样本图片的方法,这些变换都是基于特征图的:1).通过添加遮挡mask来实现特征的部分遮挡;2).通过操作特征响应图来实现特征的部分变形.本文设计了两个对抗网络 ASDN and ASTN,分别对应于样本的遮挡和样本的变形,并将这两种变形相融合(ASDN的输出作为ASTN的输入),使得检测器在训练的时候可以更加鲁棒.

    f5b352eda05f472876f5dce2c7b8fbca.png

    优点:与OHEM相比,区别在于文本的方法是构建不存在的Hard Poistive样本,而OHEM是挖掘现有样本中的Hard样本.
    缺点:从改善效果上来讲,A-Fast-RCNN的方法的效果并不比 OHEM 好太多,也许是仿造的数据和真实性还存在差距,此外GAN网络也比较难训练.

    Focal Loss(损失函数的权重调整)

    针对OHEM算法中忽略易分样本的问题,本文提出了一种新的损失函数Focal Loss(发表于2017ICCV),它是在标准交叉熵损失基础上修改得到的。这个损失函数可以通过减少易分类样本的权重,使得模型在训练时更专注于难分类的样本。为了证明Focal Loss的有效性,作者设计了一个dense detector:RetinaNet,并且在训练时采用Focal Loss训练。实验证明RetinaNet不仅可以达到one-stage detector的速度,也能有two-stage detector的准确率。
    先来看看Focal Loss损失函数的公式:

    其中

    用于控制正负样本的权重,当其取比较小的值来降低负样本(多的那类样本)的权重;
    用于控制难易样本的权重,目的是通过减少易分样本的权重,从而使得模型在训练的时候更加专注难分样本的学习.文中通过批量实验统计得到当
    时效果最好.

    594260b047f1df2cb002abc4d34c4c88.png

    进一步来看看Focal Loss函数有什么性质?

    • 当一个样本被错分的时候,
      是很小的,那么调制系数
      就接近1,损失函数损失函数影响很小;但是当
      接近1的时候(也就是样本被正确分类),则调制系数
      就接近0,此时易分类样本的损失函数权重被大大地降低了.即易分样本的权重被大大地降低了.
    • 增加时,调制系数也会增加.假设
      ,对于一个易分样本(
      )的损失函数要比标准的交叉熵小100倍;当
      时,要小1000+倍,但是对于难分样本(
      ),loss最多小了4倍。由此可见难分样本的权重相对提升了很多,从而增加哪些错误分类的重要性.

    GHM(损失函数梯度均衡化机制)

    对于一个样本,如果它能很容易地被正确分类,那么这个样本对模型来说就是一个简单样本,模型很难从这个样本中得到更多的信息,从梯度的角度来说,这个样本产生的梯度幅值相对较小。而对于一个分错的样本来说,它产生的梯度信息则会更丰富,它更能指导模型优化的方向。对于单阶段分类器来说,简单样本的数量非常大,他们产生的累计贡献在模型更新中占主导作用,而这部分样本本身就能被模型很好地分类,所以这部分的参数更新并不会改善模型的判断能力,这会导致整个训练变得低效。因此单阶段目标检测中样本不均衡性的本质是简单困难样本的不均衡性。
    受Focal loss启发,本文通过深入分析one-stage目标检测框架中样本分布不平衡(正负样本不均衡和难易样本不均衡)的本质影响,提出了基于梯度分布的角度(简称GHM,gradient harmonizing mechanism,发表于2019AAAI,并获得了Oral)来缓解one-stage中的训练样本不平衡,从而改善one-stage的目标检测的检测精度.本文提出了梯度密度,并将梯度密度的倒数作为损失函数的权重分别引入到分类损失函数(GHM-C)和边框损失函数(GHM-R).

    • 损失函数的权重(梯度密度的倒数)
      就是把梯度幅值范围(X轴)划分为M个区域,对于落在每个区域样本的权重采取相同的修正方式,类似于直方图。具体推导公式如下所示。X轴的梯度分为M个区域,每个区域长度即为 ,第j个区域范围即为
      ,用
      表示落在第j个区域内的样本数量。定义ind(g)表示梯度为g的样本所落区域的序号,那么即可得出新的参数
      .由于样本的梯度密度是训练时根据batch计算出来的,通常情况下batch较小,直接计算出来的梯度密度可能不稳定,所以采用滑动平均的方式处理梯度计算。

    这里注意M的选取.当M太小的时候,不同梯度模上的密度不具备较好的方差;当然M也不能太大,因为M过大的时候,受限于GPU限制,batch size一般都比较小,此时如果M太大的话,会导致每次统计过于稀疏(分的太细了),异常值对小区间的影响较大,导致训练不稳定.本文根据实验统计,M取30为最佳.

    • GHM-C分类损失函数
      对于分类损失函数,这里采用的是交叉熵函数,梯度密度中的梯度模长是基于交叉熵函数的导数进行计算的,GHM-C公式如下:

    5b17b3070c4806b34603cb1f551f309d.png

    70510857e84355c73597c416e1795e20.png

    GHM-R边框回归损失函数
    对于分类损失函数,由于原生的Smooth L1损失函数的导数为1时,样本之间就没有难易区分度了,这样的统计明显不合理.本文修改了损失函数

    ,梯度密度中的梯度模长是基于修改后的损失函数ASL1的导数进行计算的,GHM-R公式如下:

    9c8e402fd9baf9d088d99b9df09c946c.png

    55640d7e749b70035898caa022b55e4f.png

    总结与困惑

    总结:

    • OHEM系列的困难样本挖掘方法在当前的目标检测框架上还是被大量地使用,在一些文本检测方法中还是被经常使用;
    • OHEM是针对现有样本并根据损失loss进行困难样本挖掘,A-Fast-RCNN是构建不存在的Hard Poistive样本(即造样本),Focal Loss和GHM则从损失函数本身进行困难样本挖掘;
    • 相比Focal loss,本文提出的GHM是一个动态的损失函数,即随着不同数据的分布进行变换,不需要额外的超参数调整(但是这里其实还是会涉及到一个参数,就是Unit region的数量);此外GHM在降低易分样本权重的同时,对outliner也会有一定程度的降权;
    • 无论是Focal Loss,还是基于GHM的损失函数都可以嵌入到现有的目标检测框架中;Focal Loss只针对分类损失,而GHM对分类损失和边框损失都可以
    • GHM方法在源码实现上,作者采用平均滑动的方式来计算梯度密度,不过与论文中有一个区别是在计算梯度密度的时候,没有乘以M,而是乘以有效的(也就是说有梯度信息的区间)bin个数
    • 之前尝试过Focal Loss用于多分类任务中,发现在精度并没有提升;但是我试过将训练数据按照训练数据的原始分布并将其引入到交叉熵函数中,准确率提升了;GHM方法的本质也是在改变训练数据的分布(将难易样本拉匀),但是到底什么的数据分布是最优的,目前尚未定论;

    困惑:

    • 从GHM与其它经典方法的对比中,不难看出在相同框架的基础上,GHM对中大型目标的检测(特别是大目标)优于Focal loss,但对于小目标的检测不如Focal loss好;这里是什么原因导致的?

    54a78d1ec582907af6a08ba9fc1fd345.png

    本文仅是个人的理解和总结,若有错误或遗漏的地方,欢迎指正和补充.

    参考文献

    OHEM:Training Region-based Object Detectors with Online Hard Example Mining
    S-OHEM:Stratified Online Hard Example Mining for Object Detection S-OHEM
    A-Fast-RCNN:Hard positive generation via adversary for object detection
    Focal Loss:Focal Loss for Dense Object Detection
    GHM:Gradient Harmonized Single-stage Detector

    展开全文
  • 修汽车、卖汽配离职原因,只有两点最真实流量党请放心看,只需2兆▼曲率分界线双曲率后视镜 不知道大家发现没有,有的汽车后视镜上有一条细细的... 原来,这区分两个镜面区域的提示线,而这种类型的后视镜有个学...

    b66fd9181b521f86870897b393433066.gif  点击汽配内参关注置顶,卖配件的都发财

    如果你需要找配件、咨询配件价格,请在下面写留言,留下自己的联系方式,卖配件的都会看到联系你

    0d09baf0e94e1b2ef4e3fa7dda0f8f36.png

    点击阅读?修汽车、卖汽配离职原因,只有两点最真实

    流量党请放心看,只需2兆

    94ca9b68aaa7d617d24f4e72bddc166d.png

    bf40a0eea15de8b603f314ddeff2cdc6.png

    曲率

    分界线

    e7da2e7ec7a72430fc596e8c2b8d9e53.png90d67a2467b5c4844b7a8e2e1ccd5433.png

    双曲率后视镜

            不知道大家发现没有,有的汽车后视镜上有一条细细的虚线,那是做什么的呢?

            原来,这是区分两个镜面区域的提示线,而这种类型的后视镜有个学名叫“双曲率后视镜”,也就是在同一镜面中有两种不同的曲率。靠外部分的镜面是曲率更大的凸面镜,作用在于放大可视角度减小驾驶员的盲区

            采用了双曲率后视镜的车型,在我们观察后视镜时可以提升2倍左右的视野范围,对于后车的情况能够做到更清晰的了解。但这种凸面镜也存在一定的问题,那就是畸变,畸变的产生会导致我们不好判断与后车的真实车距,所以,必须保留大部分的区域是正常曲度的普通镜面,而作为两种曲率镜面之间的过渡提示,就会存在我们看到的这条线啦~~

    点击看?也许你还不知道,刷ECU可以打开汽车的这些隐藏功能~

    汽配内参:qipeineican 

    汽配内参科普汽车上面的各个配件、讲解汽配经营、汽配挣钱之道!汽修圈子、汽修技术,我们这里共同加入属于我们的圈子

    fb00f40c8cfa61b58515a5edf57f0749.png

    展开全文
  • 第一个原因是在对象生命周期中初始化最重要一步;每个对象必须正确初始化后才能正常工作。第二个原因是__init__()参数值可以有多种形式。因为有很多种方式为__init__()提供参数值,对于对象创建有大量用例,...
  • 3.删除工作表或区域中所有不必要空白行列。4.以工程建设程序为主线,从前期准备阶段、项目实施阶段、审计日记与工作底稿等几个方面具体阐述了提高工程造价审计质量措施。5.与数据透视表和数据透视图对每一个工作...
  • 第一个原因是在对象生命周期中初始化最重要一步;每个对象必须正确初始化后才能正常工作。第二个原因是__init__()参数值可以有多种形式。因为有很多种方式为__init__()提供参数值,对于对象创建有大量用例,...
  • BFC:中文的意思是块级格式上下文 ,他是一个独立的渲染区域,他规定了内部的元素如何布局,而且这个区域与外部的元素毫不相干。 普通文档流布局规则 1.浮动的元素是不会被父级计算高度的(列入高度自适应布局中高度...
  • 什么链表特别难以理解

    千次阅读 2019-03-20 17:42:09
    什么对于某些同学来说,链表特别难以理解? 大概率的原因是没有分清楚节点和指向节点的指针这两个概念...// 这行代码的意思是:将pNode1 指针指向pNode2指针所指向的节点,造成一个节点被两个指针指向 pNode1-...
  • unity3d,学习坦克大战后总结笔记

    千次阅读 2018-10-21 22:17:08
    在此记录,以防遗忘。...Convex勾选后,unity会将碰撞体的凹凸面自动补平,这也什么勾选后,进不去模型的凹面区域的原因。参考百度知道(Unity3d 中MeshCollider组件下Convex勾选有什么用?) 二...
  • 在UG编程清角参考刀具,有时会出现先加工下面再加工上面,导致在CNC加工中,直接断刀,这是什么原因造成呢 我们来看一下以下图 可以看到,在左上角还未清完就直接先清了下面了,这样话,就会直接撞到左边角落...
  • 我只通过查阅一些资料知道是通过隔点采样方法提取而导致每层尺寸大小不同,那这个隔点采样标准又是什么呢? 2.查阅了一些有关SURF资料,上面说它和SIFT算法中一个不同是SURF算法在生成尺度空间过程中...
  • 文章只针对比赛方法说出自己的想法,并没有不是对其他团队的方法贬低的意思,希望引入更多思考和讨论,推动大家一起进步。开篇:为什么叫“文字定位”,而不是文字检测。原因很简单,因为“印章”的存在导致CPTN、...
  • 一、高级筛选功能学习与掌握 以前从未用过高级筛选,原因就是不会,试了好多次,总是在将筛选结果得到其他区域时提示:只能将复制到筛选后活动工作表,搞了半天也没明白是什么意思。 到网上查了一下,一位仁兄...
  • 理解margin-left:-100%

    千次阅读 2019-09-20 18:41:36
    但是在三栏式写法(其中一种)里面的盒子却可以移动到上图的黑色区域的,这个原因是: 黑色区域和蓝色区域都加了浮动,当再次使用margin-left的负百分比的时候盒子其实相对上一个浮动的盒子 ...
  • 相同的机构也可能有不同测试目的,可能测试不同区域或是对同一区域的不同层次的测试。 在谈到软件测试时,许多人都引用Grenford J. Myers在《The Art of Software Testing》一书中的观点: ①、软件测试为了...
  • 至简·跨域 JSONP与CORS

    2018-10-22 20:36:43
    其实也没什么,完全可以通过字面意思去揣摩,坦白讲,就是跨越不同的区域,就这个意思,当然为什么要去不同的区域呢,因为要拿哪里资源呀,嘿嘿嘿嘿…。 咳咳,正经点啊,用官话来说:跨域,什么是跨域呢? 就是...
  • 一个牛人提供GIS源码(很好)

    千次下载 热门讨论 2010-08-25 22:49:21
    这个应该05年的时候做的毕业设计,用超图的Supermap IS 2003+SQL Server 2000建立的一个比较的简单的系统,只是玄乎了下就变的有点意思了,甚至也有点学习或者创新的意思。 加上上次发布的论文部分,这样整个系统...
  • colormap

    千次阅读 2018-09-28 17:17:51
    colormap(色度图)是什么?  假设我们想在地图上显示美国不同地区温度。我们可以把美国地图上温度数据叠加为灰度图像——较暗的区域代表较冷温度,更明亮的区域代表较热的区域。这样表现不仅令人难以置信...
  • 1、 colormap(色度图)是什么? 假设我们想在地图上显示美国不同地区温度。我们可以把美国地图上温度数据叠加为灰度图像——较暗的区域代表较冷温度,更明亮的区域代表较热的区域。这样表现不仅令人...
  • 复制代码代码如下: <thead> <!–把前两行视为头部区域–> <tr> ”2″></td> ”2″></td> ”2″></td> ”3″></td> ”col” colspan=”2″ ...还是别的什么原因? 还有scope=”col”的意思是不是把范围锁定在列中?
  • 图片懒加载

    2020-09-09 22:56:24
    比如我们进入一个新的页面进行加载的时候,这个页面很长超过了屏幕可视区域的时候,那么懒加载就会优先加载我们可视区域可见的内容,剩余部分当进入到可视区域之后再进行加载。 所以这就是为什么要使用懒加载的...
  • 面再提示缺少什么dll 文件,都像这样解决就可以了。 二、Qt Creator 编写多窗口程序(原创) 实现功能: 程序开始出现一个对话框,按下按钮后便能进入主窗口,如果直 接关闭这个对话框,便不能进入主窗口,整个程序...
  • 首先,“映射”这个词,就和数学课上说“一一映射”一个意思,就是建立一种一一对应关系,在这里主要只 硬盘上文件 位置与进程 逻辑地址空间 中一块大小相同的区域之间一一对应,如图1中过程1所示。...
  • 首先,“映射” 这个词,就和数学课上 “一一映射” 一个意思,就是建立一种一一对应关系,在这里主要指硬盘上文件位置与进程逻辑地址空间中一块大小相同的区域之间一一对应,如图1中过程1所示。...
  • <div><p>学习 React 过程中实现了一个个人...或者想法有偏差,欢迎大家交流指正 欢迎参观:<a href="http://axuebin.com/react-blog">http://axuebin.com/react-blog</a></p> <p>Github:...
  • 是什么意思呢?就是普通卷积神经网络只能提取到局部区域(感受野)内依赖关系,而自注意力机制则是希望寻找到每个像素点与其他所有像素点之间依赖关系,或者叫做相关性。这样做的原因是,支持集图像和查询集...

空空如也

空空如也

1 2 3 4
收藏数 64
精华内容 25
关键字:

区域的意思是什么原因