GitHub CSDN
目前。计算机视觉中的性能最好的目标检测方法主要分为两种: one-stage 和two-stage 方法。two-stage方法分为两步,第一步为候选区域生成阶段(Proposal stage),通过如Selective Search、EdgeBoxes等方法可以生成数量相对较小候选目标检测框;第二步为分类与回归阶段,对第一阶段生成的 Candiate Proposal 进行分类和位置回归。one-stage 代表性的方法是R-CNN系列,如 R-CNN, Fast R-CNN, Faster R-CNN。 而one-stage 方法直接对图像的大量 Candiate Proposals 进行分类与回归。
这两类方法中均存在类别不平衡问题,two-stage 方法通过第一步已经将当量的候选区域降低到一个数量较小的范围,同时又在第二步通过一些启发式原则,将正负样本的比例降低到一定程度。而 one-stage 优于没有这降低候选框的步骤,因此,候选区域的数量大大超过 two-stage 方法,因此,在精度上,two-stage 仍然优于 one-stage 方法,但是在速度和模型复杂度上, one-stage 占优势。
类别不平衡会使检测器评估 的候选位置,但是通常只有少量的位置存在目标,这回导致两个问题:
因此,解决样本不平衡问题是提高目标检测精度的一个关键技术之一。
论文题目: Training Region-based Object Detectors with Online Hard Example Mining
OHEM 是通过改进 Hard Example Mining 方法,使其适应online learning算法特别是基于SGD的神经网络方法。Hard Example Mining 通过交替地用当前样本集训练模型,然后将模型固定,选择 False Positive 样本来重新组建用于下一次模型训练的样本集。但是因为训练神经网络本事就是一个耗时的操作,这样在训练中固定模型,这样会急剧降低模型的训练进程。
Hard Examples Mining通常有两种方法:
OHEM算法的大致流程是: 首先计算出每个ROI的loss, 然后按loss从高到低来排列每个 ROI, 然后为每张图片选择 个损失最高的 ROI 作为Hard Examples,其中 B 表示总的 ROI 数量, 表示batch-size 的大小,在 Fast R-CNN 中, N=2, B=128时,效果很好。
但是如果直接按照 loss 对所有的 ROI 进行选择,会有一个缺点,由于 ROI 很多,这样 很多 ROI 的位置就会相关并重叠,如果和某个高 Loss 的 ROI 重合度很高的其它 ROI很多, 这样, 这些 ROI 的 Loss 通常也会很多,这样这些样本都会被选择,但是它们可以近似认为时同一个,这样就会给其它较低 Loss 的 ROI 更少的选择余地,这样就会存在冗余。为了消除这种冗余,作者提出先使用 NMS (non-maximum suppression) 删除部分重合度很高的 ROI, 在使用上述方法进行 选择 Hard Example。
实现技巧:
论文,作者将该方法是现在 Fsat R-CNN 目标检测方法中。最简单做法是更改损失函数层,损失函数层首先计算所有 ROI 的 loss, 然后根据 loss 对 ROI 进行排序,并选择 hard RoIs, 让 那些 non-RoIs的损失变为0. 这种方法虽然很简单,但是非常不高效,因为还需要为所有的 RoIs 分配进行反向传播时需要的内存空间。
为了克服这个缺点,作者对下面的 Figure 1 进行改进, 如下面的 Figure 2.该改进时使用两份同样的 RoI network。 其中一个是只读的(readonly), 即只进行前向计算,不进行反向传播优化,所以只需要为前向传播分配内存,它的参数实时保持和另一个 RoI network(regular RoI network)保持一样。在每次迭代时,首先使用 readonly RoI network 对每个 ROI 计算起 loss,然后用上面描述的选择 hard RoIs 的方法选择 hard RoIs. 然后利用 regular RoI network来对选择的 hard RoIs 进行前向和后向计算来优化网络。
论文题目 Focal Loss for Dense Object Detection
在改论文中,作者认为样本类别的不平衡可以归结为难易样本的不平衡,从而更改交叉熵损失函数,重新对样本赋予不同的权值,之前的模型这些样本都是同等重要的,从而使模型训练更加关注 hard examples。
首先引入交叉熵的公式:
其中, ,表示真实类别, 表示我们预测的概率,为了方便,我们定义:
因此, ,该方法在 较大时,该loss是一个较小的量级, 如下图的连线所示所示,因为存在大量的易分类样本,相加后会淹没正样本的loss。
一个常见的解决类别不平衡的方式是引入一个加权因子 来表示正样本的权重, 表示负样本的权重。我们按照定义 的方法重新定义 为 , 定义如下:
虽然可以平衡 positive和negative的重要性,但是对 easy/hard 样本还是无法区分, Focal loss 通过更 Cross loss来达到区分easy/hard的目的:
上图展示了不同 取值对应的 loss,通过分析上述公式,我们发现,当 非常小时,即样本被分类错误,此时 接近1, loss几乎不受影响,当 接近于1时,即样本被分类正确,此时 接近0,此时降低了该样本的权重,比如,取 , 当时 时,该样本的 loss 会降低100倍,
在实际应用中,作者使用了该 Focal loss的变体,即加入了 平衡因子:
作者提出,对于二分类,一般模型的模型初始化会同概率的对待正负样本,由于类别不平衡,负样本的 loss 会占主导,作者提出在训练初始阶段对正样本的概率估计“prior”的概念,用 表示, 通过设置它来达到正样本的输出概率低的效果,比如为,从而使模型更加关注正样本。实际操作中,出了最后一个用于分类的卷积层,其余卷积层的参数初始化为bias ,而最后一层 , 实验中设置为 .
两个实现细节
论文题目: Gradient Harmonized Single-stage Detector
改论文提出 Focal Loss 存在两个缺点:
该论文有一句概括该篇论文的核心思想的一句话: 类别的不平衡可以归结为难易样本的不平衡,难易样本的不平衡可以归结为梯度的不平衡原话如下:
如下图所示:
左边是样本数量关于梯度的分布,中间表示各个修正后的函数的梯度(使用了log scale)对原始梯度的,右边表示所有样本集的梯度贡献的分布。
定义 是模型未经过 sigmoid 之前的输出, 则 ,得出该损失函数对 的梯度为:
定义梯度的模长(norm) 为:
训练样本的梯度密度(Gradient Density)定义如下:
其中, 是第 k 个样本的gradient norm,
这个公式可以理解为,以梯度 为中心,宽度为 的区域内的样本密度。
梯度密度协调参数:
分母是对梯度位于 范围的部分样本进行归一化,如果所有样本的梯度时均分分布,那么对于任意 都有 .(这里不是很理解为什么N,可以理解它们相等)
通过将梯度密度协调参数将 GHM 嵌入到损失函数中,则 GHM-C Loss 为:
计算公式11时,求和有一个N,再求 时会遍历所有的样本,因此该公式的时间复杂度为 .如果并行的化,每个计算单元也有N的计算量。对gradient norm进行排序的最好的算法复杂度为 ,然后用一个队列去扫描样本得到梯度密度的时间复杂度为 n 。基于排序的方法即使并行也不能较快的计算,因为N往往是 甚至 ,仍然是非常耗时的.
作者提出的近似求解的方法如下:
根据上述定义,得出近似梯度密度函数为:
利用上面的公式,由于我们可以事先求好 , 在求和时只需查找 即可,因此时间复杂度为 .
因为loss的计算是基于梯度密度函数,而梯度密度函数根据一个batch中的数据得到,一个batch的统计结果是有噪声的。与batch normalization相同,作者用Exponential moving average来解决这个问题,也就是
将模型鱼的的偏移量定义为 , 将真实的偏移量定义为 ,回归loss采用 Smooth L1 loss:
其中
则 关于 的梯度为:
从公式可以看出,当样本操作 时, 所有样本都有相同的梯度 1, 这就使依赖梯度范数来区分不同样本是不可能的, 一种简单的替代方法时直接使用 作为衡量标准,但是该值理论上无限大,导致 无法实现,
为了将 GHM 应用到回归损失上,作者修改了原始的 损失函数:
该函数和 具有类似的属性,当d的绝对值很小时,近似 L2 loss, 当d的绝对值比较大时, 近似 L1 loss, 关于d的梯度为:
这样就将梯度值限制在
定义 , 则 GHM-R Loss 为:
论文题目: Prime Sample Attention in Object Detection
PISA 方法和 Focal loss 和 GHM 有着不同, Focal loss 和 GHM 是利用 loss 来度量样本的难以程度,而本篇论文作者从 mAP 出法来度量样本的难易程度。
作者提出提出改论文的方法考虑了两个方面:
Prime Samples 是指那些对检测性能有着巨大影响的样本。作者研究表明样本的重要程度依赖于它和ground truth 的 IoU值,因此作者提出了一种 IOU-HLR 排序。
在目标检测中时如何定义正样本(True Positive)的呢?
剩余的标注为负样本。
mAP 的原理揭露了对目标检测器更重要的 两个准则 :
基于上述分析,作者提出了一种称为 IoU-HLR 的排序方法,它既反映了局部的IoU关系(每个ground truth目标周围),也反映了全局的IoU关系(覆盖整个图像或小批图像)。值得注意的是,不同于回归前的边界框坐标,IoU-HLR是根据样本的最终定位位置来计算的,因为mAP是根据回归后的样本位置来计算的。
该排序方法的大致流程如下图所示,其原理如下:
IoU-HLR遵循上述两个准则。首先,它通过局部排序(即上面的步骤2)将每个单独的 GT 的 对应的样本中 IoU 较高的样本放在前面,其次通过重采样和排序(步骤3, 4)将不同 GT 的 对应的样本中, 将 IoU 较高的放在了前面。
作者提出Prime Sample Attention,一种简单且有效的采样策略,该采样策略将更多的注意力集中到 Prime examples 上, PISA 由两部分组成: Importance- based Sample Reweighting(ISR)和Classification Aware Regression Loss(为CARL).
PISA 的训练过程是基于 prime samples 而不是同等对待所有样本。
作者提出一种基于 soft sampling 的方法: Importance-based Sample Reweighting (ISR), 他给不同样本根据重要性赋予不同的权重。首先它将Iou-HLR排序转化为线性映射的真实值。 IoU-HLR在每个类中分别进行计算。对于类 , 假设总共有 个样本, 通过 IoU-HLR 表示为 . 其中 ,使用一个线性转换函数将 转换为 , 表示第 类中的第 个样本的重要程度:
采用指数函数的形式来京一部将样本重要性 转换为 loss 的权值 , 表示对重要样本给予多大的优先权的程度因子, 决定最小样本权值的偏差(感觉就是一个决定最小的权值大小的一个变量)。
根据上面得到的权重值,重写交叉熵:
其中 n 和 m 分别表示真样本和负样本的数量, 和 分别表示预测分数和分类目标,需要注意的是,如果只是简单的添加 loss 权值将会改变 loss 的值,并改变正负样本的比例,因此为了保持正样本的总的 loss 值不变, 作者将 归一化为 (这里不是很理解,欢迎大家解惑)
已经介绍如何染个分类器知道 prime samples, 那么如何让回归其也知道 prime sample,作者提出了 Classification-Aware Regression Loss(CARL) 来联合优化分类器和回归其两个分支。CARL可以提升主要样本的分数,同时抑制其他样本的分数。回归质量决定了样本的重要性,我们期望分类器对重要样本输出更高的分数。两个分支的优化应该是相互关联的,而不是相互独立的。
作者的方法是让回归器知道分类器的分数,这样梯度就可以从回归器传播到分期其分支。公式如下:
表示相应类别的预测分数, 表示输出的回归偏移量。利用一个指数函数将 转化为 ,随后根据所有样本的平均值对它进行缩放。为了保持损失规模不变,对具有分类感知的 进行归一化。 是常用的smooth L1 loss。
关于 的梯度与原回归损失 成正比。 p_i \mathcal{L}(d_i, \hat d_i) \mathcal{L}(d_i, \hat d_i)$ 反映了样本i的定位质量,因此可以认为是一个IoU的估计,进一步可以看作是一个IoU-HLR的估计。可以近似认为,排序靠前的样本有较低的回归损失,于是分类得分的梯度较小。对于CARL来说,分类分支受到回归损失的监督。 不重要样本的得分被极大的抑制掉,而对重要样本的关注得到加强。
待续。。。
上面的方法大致可以分为两种:
Focal Loss认为正负样本的不平衡,本质上是因为难易样本的不平衡,于是通过修改交叉熵,使得训练过程更加关注那些困难样本,而GHM在Focal Loss的基础上继续研究,发现难易样本的不平衡本质上是因为梯度范数分布的不平衡,和Focal Loss的最大区别是GHM认为最困难的那些样本应当认为是异常样本,让检测器强行去拟合异常样本对训练过程是没有帮助的。PISA则是跳出了Focal Loss的思路,认为采样策略应当从mAP这个指标出发,通过IoU Hierarchical Local Rank (IoU-HLR),对样本进行排序并权值重标定,从而使得recall和precision都能够提升。
论文: EfficientDet: Scalable and Efficient Object Detection
目前目标检测领域,高精度的模型通常需要很大的参数量和计算量,而轻量级的网络则一般都会牺牲精度。因此,论文希望建立一个可伸缩的高精度且高性能的检测框架。论文基于one-stage的检测网络范式,进行了多种主干网络、特征融合和class/box预测的结构尝试,主要面临两个挑战:
FPN是目前最广泛的多尺度融合方法,最近也有PANet和NAS-FPN一类跨尺度特征融合方法。对于融合不同的特征,最初的方法都只是简单地直接相加,然而由于不同的特征是不同的分辨率,对融合输出特征的共享应该是不相等的。为了解决这一问题,论文提出简单但高效加权的bi-directional feature pyramid network(BiFPN),该方法使用可学习的权重来学习不同特征的重要性,同时反复地进行top-down和bottom-up的多尺度融合
论文认为除了缩放主干网络和输入图片的分辨率,特征网络(feature network)和box/class预测网络的缩放对准确率和性能也是很重要的。作者借鉴EfficientNet,提出针对检测网络的混合缩放方法(compound scaling method),同时对主干网络,特征网络和box/class预测网络的分辨率/深度/宽度进行缩放
最后,论文将EfficientNet作为主干,结合BiFPN和混合缩放,提出新的检测系列EfficientDet,精度高且轻量,COCO上的结果如图1,论文的贡献有以下3点:
定义多尺寸特征 ,论文的目标是找到变化函数 来高效融合不同的特征,输出新特征 。具体地,图2a展示了top-down FPN网络结构,一般FPN只有一层,这里应该为了对比写了repeat形式。FPN获取3-7层的输入 , 代表一个分辨率为 的特征层
top-down FPN操作如上所示, 为上采用或下采样来对齐分辨率, 通常是特征处理的卷积操作
top-down FPN受限于单向的信息流,为了解决这一问题,PANet(图2b)增加了额外的bottom-up路径的融合网络,NAS_FPN(图2c)使用神经架构搜索来获取更好的跨尺度特征网络的拓扑结构,但需要大量资源进行搜索。其中准确率最高的是PANet,但是其需要太多的参数和计算量,为了提高性能,论文对跨尺寸连接做了几点改进:
大多的特征融合方法都将输入特征平等对待,而论文观察到不同分辨率的输入对融合输出的特征的贡献应该是不同的。为了解决这一问题,论文提出在融合时对输入特征添加额外的权重预测,主要有以下方法:
, 是可学习的权重,可以是标量(per-feature),也可以是向量(per-channel),或者是多维tensor(per-pixel)。论文发现标量形式已经足够提高准确率,且不增加计算量,但是由于标量是无限制的,容易造成训练不稳定,因此,要对其进行归一化限制
,利用softmax来归一化所有的权重,但softmax操作会导致GPU性能的下降,后面会详细说明
,Relu保证 , 保证数值稳定。这样,归一化的权重也落在 ,由于没有softmax操作,效率更高,大约加速30%
BiFPN集合了双向跨尺寸的连接和快速归一化融合,level 6的融合操作如上, 为top-down路径的中间特征, 是bottom-up路径的输出特征,其它层的特征也是类似的构造方法。为了进一步提高效率,论文特征融合时采用depthwise spearable convolution,并在每个卷积后面添加batch normalization和activation
EfficientDet的结构如图3所示,基于one-stage检测器的范式,将ImageNet-pretrained的EfficientNet作为主干,BiFPN将主干的3-7层特征作为输入,然后重复进行top-down和bottom-up的双向特征融合,所有层共享class和box网络
之前检测算法的缩放都是针对单一维度的,从EfficientNet得到启发,论文提出检测网络的新混合缩放方法,该方法使用混合因子 来同时缩放主干网络的宽度和深度、BiFPN网络、class/box网络和分辨率。由于缩放的维度过多,EfficientNet使用的网格搜索效率太慢,论文改用heuristic-based的缩放方法来同时缩放网络的所有维度
EfficientDet重复使用EfficientNet的宽度和深度因子,EfficinetNet-B0至EfficientNet-B6
论文以指数形式来缩放BiFPN宽度 (#channels),而以线性形式增加深度 (#layers),因为深度需要限制在较小的数字
box/class预测网络的宽度固定与BiFPN的宽度一致,而用公式2线性增加深度(#layers)
因为BiFPN使用3-7层的特征,因此输入图片的分辨率必需能被 整除,所以使用公式3线性增加分辨率
结合公式1-3和不同的 ,论文提出EfficientDet-D0到EfficientDet-D6,具体参数如Table 1,EfficientDet-D7没有使用 ,而是在D6的基础上增大输入分辨率
模型训练使用momentum=和weight decay=4e-5的SGD优化器,在初始的5%warm up阶段,学习率线性从0增加到,之后使用余弦衰减规律(cosine decay rule)下降,每个卷积后面都添加Batch normalization,batch norm decay=,epsilon=1e-4,梯度使用指数滑动平均,decay=,采用 和 的focal loss,bbox的长宽比为 ,32块GPU,batch size=128,D0-D4采用RetinaNet的预处理方法,D5-D7采用NAS-FPN的增强方法
Table 2展示了EfficientDet与其它算法的对比结果,EfficientDet准确率更高且性能更好。在低准确率区域,Efficient-D0跟YOLOv3的相同准确率但是只用了1/28的计算量。而与RetianaNet和Mask-RCNN对比,相同的准确率只使用了1/8参数和1/25的计算量。在高准确率区域,EfficientDet-D7达到了,比NAS-FPN少使用4x参数量和计算量,而anchor也仅使用3x3,非9x9
论文在实际的机器上对模型的推理速度进行了对比,结果如图4所示,EfficientDet在GPU和CPU上分别有和加速
论文对主干网络和BiFPN的具体贡献进行了实验对比,结果表明主干网络和BiFPN都是很重要的。这里要注意的是,第一个模型应该是RetinaNet-R50(640),第二和第三个模型应该是896输入,所以准确率的提升有一部分是这个原因。另外使用BiFPN后模型精简了很多,主要得益于channel的降低,FPN的channel都是256和512的,而BiFPN只使用160维,这里应该没有repeat
Table 4展示了Figure 2中同一网络使用不同跨尺寸连接的准确率和复杂度,BiFPN在准确率和复杂度上都是相当不错的
Table 5展示了不同model size下两种加权方法的对比,在精度损失不大的情况下,论文提出的fast normalized fusion能提升26%-31%的速度
figure 5展示了两种方法在训练时的权重变化过程,fast normalizaed fusion的变化过程与softmax方法十分相似。另外,可以看到权重的变化十分快速,这证明不同的特征的确贡献是不同的,
论文对比了混合缩放方法与其它方法,尽管开始的时候相差不多,但是随着模型的增大,混合精度的作用越来越明显
论文提出BiFPN这一轻量级的跨尺寸FPN以及定制的检测版混合缩放方法,基于这些优化,推出了EfficientDet系列算法,既保持高精度也保持了高性能,EfficientDet-D7达到了SOTA。整体而言,论文的idea基于之前的EfficientNet,创新点可能没有之前那么惊艳,但是从实验来看,论文推出的新检测框架十分实用,期待作者的开源
论文: Sparse R-CNN: End-to-End Object Detection with Learnable Proposals
论文认为,目前的目标检测算法可以按预设框的多少分为两种:
上述两种方法都会预测大量的结果,需要进行NMS后处理,而在训练的时候会存在many-to-one的问题,并且anchor的设置对性能的影响很大。 于是,很多研究开始探讨稀疏(sparse)检测,比如近期的DETR算法。该算法不需要预设anchor,并且预测的结果可直接输出,不需要后处理。但论文认为DETR并不是真正的稀疏检测,因为DETR在各位置提取特征时,需要与全图的上下文进行交互,而真正的稀疏检测应该满足sparse boxes和sparse features,即较少的初始框设定以及框之间不需要过多的特征互动。 为此,论文提出了Sparse R-CNN,如图1c所示,仅需设定少量anchor即可进行检测,而且能够进行set prediction,免去NMS等后处理,其核心主要包含以下几点:
Sparse R-CNN的推理流程如图3所示,输入图片、可学习的proposal boxes以及可学习的proposal features,根据proposal boxes提取对应的RoIAlign特征,dynamic head将proposal features转换为卷积核参数,对RoIAlign特征进一步提取特征,再进行后续的分类和回归。整体的思想和Fast RCNN很像,将selective search替换为proposal boxes,再增加其它更强的模块。
论文采用FPN-ResNet作为主干网络,输出多层特征,每层特征的维度都是256。采用更复杂的主干网络可以获得更好的性能,但论文与Faster R-CNN对齐,采用标准的实现。
Sparse R-CNN的核心是采用数目固定的小批量可学习proposal boxes( )作为region proposal,而非RPN。每个box为4-d参数,在0~1范围内,值为归一化的中心点坐标、宽度和高度。这些参数在训练过程中通过反向传播进行更新,包含了训练集目标位置的统计信息,可用于推理时的初步目标位置猜测。
尽管4维的proposal box能够直观地表示目标的定位,但缺少了目标的信息,比如目标的姿态和形状,所以论文引入proposal feature( )进行补充。proposal features是高维的可学习向量,与proposal boxes一一对应,用于丰富目标的RoIAlign特征。
Dynamic instance interactive head的结构如图4所示,每个proposal box都有一个专属的预测head。给定 个proposal boxes和 个proposal features,先通过RoIAlign提取每个box的 维特征,Dynamic instance interactive head将其对应的 维proposal feature转换为卷积参数,使用这个卷积参数对RoIAlign特征进行提取,得到目标的 维特征,最后经过简单的3层感知机进行分类与回归。 Dynamic instance interactive head也可以使用类似Cascade R-CNN那样的级联模式进一步的提升性能,将输出的新回归框和 维特征作为下一次迭代的proposal box和proposal feature即可。
Sparse R-CNN的训练采用set prediction的形式,将固定数量的预测结果与GT之间进行二分图最优的匹配,然后计算损失值,完整的损失函数为:
各模块对比实验。
性能与收敛性。
在COCO上进行对比。
Sparse R-CNN贯彻了稀疏的思想,只提供少量初始框,可进行Set prediction,颠覆了当前密集预测的检测思路,整体框架十分简洁,跟Fast RCNN有点像,十分值得大家阅读。
今天,AI已经成为了一个所有人耳熟能详的名词了,各种各样的AI公司层出不穷,行业中最耀眼永远只是塔尖上的少数……
旷视 科技 、依图 科技 、云从 科技 和商汤 科技 就属于这一类少数派,这四家企业也被称为“AI四小龙”。
最近商汤 科技 开始IPO,我们就从它谈起,来看看AI这项业务到底行不行。
商汤 科技 属于含着金钥匙长大的邻家小孩,学习能力出众,自然也特别受到金主爸爸的疼爱,从来都不缺钱,喊一声,就有资本送钱来了。
商汤 科技 成立之初就在全球首次突破了人眼识别能力,自研算法在人脸数据库中的识别准确率高达,3个月后,商汤把这一数字提高到了。
根据天眼查的数据显示,商汤 科技 从成立到现在,共获得了12轮融资,融资总额超过52亿美元,投资人遍布国内外。
其中不乏阿里、苏宁这样的国内互联网巨头,还有招商证券、中金证券、东方证券这样的国资券商,还有高通创投、软银这样的国外顶级创投机构,厉害的是,这里面还出现了万达的身影。
简单来说,商汤 科技 既被国内看好,同时也被国外看好,即被互联网行业看好,还能被传统行业的房地产商看好,大有未来 科技 之光的架势。
当然,它也确实用一系列的实力证明了自己。
2016年,商汤 科技 研发的自动驾驶平台刷新了行人及车辆识别领域的世界纪录,2020年,商汤 科技 又完成了首个专业用人工智能芯片STPU流片,2021年,商汤又建造了世界上最大的计算机视觉模型,参数超过了300亿个。
我们过去的文章里经常说,研发是一个 科技 企业的立身之本,商汤 科技 确实是做到了。
招股书上显示,从2018年到2020年,商汤 科技 的研发费用占比分别是46%、63%、71%,他一家公司就囊括了40位教授、250多名博士,以及3593名科学家和工程师。
但是,在光芒的背后,是一谈到赚钱就掉链子,这也确实挺尴尬的。
在充足资金与研发人员的投入之下,商汤 科技 在全球的各类竞赛中拿到了70多个冠军,发表了超过600篇顶级学术论文,拥有8000多个专利申请。
但是,根据商汤 科技 的招股书显示,从2018年到2021年上半年,商汤 科技 的营收分别是亿、亿、亿、亿。
看着还不错,但同期他们分别亏损了亿、亿、亿和亿,三个财年加上今年上半年总共亏损达到了亿。
融资来的52亿美元基本上快亏得差不多了。
一边是技术的绽放与资本的热捧,另一边是长期陷入利润不佳的窘境,商汤 科技 的问题到底出在哪里了呢?
我们从技术,市场供需这两个纬度来看。
第一、再好的技术落地都需要时间。
我们在过去的文章里谈过关于产研结合的问题。
科技 的发展,企业的壮大是需要让更多的研究和专利能落地商用的。
虽然商汤 科技 在顶级期刊上发表了诸多论文,而且专利数量也相当庞大,但作为一家企业来说,研究的目的是为了能让技术落地,并且推向市场,被市场所接受,而不是单纯的秀论文数量。
而且,在技术深度方面,商汤 科技 拥有自己的独占技术其实并不多。
它的很多技术和专利是根据公开论文,开源代码的基础上实现的应用,虽然读懂这些公开论文的门槛很高,但对于人才济济的 科技 大厂来说,这不是什么太深的护城河。
比如在活体识别这个领域,玩家不仅只有商汤,云从这样的AI 科技 ,百度、腾讯也拥有深厚的技术积淀。
百度钱包用的就是自家的技术,腾讯的微众银行用的也是自家的技术。
前边提到的人脸识别准确率,百度在2015年达到了,刷新了商汤的纪录。
面对BAT这样的老牌大厂,商汤的技术护城河仍然是一个问题。
第二、市场供需还未爆发,业务领域细分且垂直。
不了解AI的人仿佛都觉得AI是个筐,啥都能往里装,万物皆可AI。
客观来说,AI是未来没错,但它并不是对现有产业的颠覆,更多的是一种赋能,高效的赋能。
比如用AI赋能垃圾分类,用智能化监管代替人工监管;比如AI赋能药物研发,谷歌就专门推出了可识别蛋白质结晶的AI系统,用于药物开发。
本质上,AI的价值是提高传统产业的生产效率,解放生产力。
AI这个赛道非常的广阔,实际上的业务十分细分、垂直。
目前被应用最多的是计算机视觉识别。
2020年中国的计算机视觉识别市场规模也不足150亿,这个规模的产业,无论是深度还是广度上都远远不能和手机、 汽车 这些万亿产业相比。
小池塘也很难养出大鱼来。
另一方面,国内AI产业化高度依赖于政府项目,比如智慧城市、智慧生活、智慧商业几大板块。
商汤 科技 的业务中,87%的业务都是来自于智慧商业和智慧城市两大板块。
但这也牵扯到了另一个问题,AI四小龙并没有独立获取项目的能力,项目真正的来源都在一些央企总包方手里。
智慧城市听上去很美好,可城市的智能化改造是一项大工程,项目周期至少需要3年,涉及的流程繁多,商汤等AI新兴势力所做的事只是诸多环节之一。
由于AI产业的碎片化特征,这就导致不同的用户需求不同,无法用同一个标准去面对所有人,这自然就很难形成规模化。
项目之间的差异,使得上一个项目的方案在这个项目无法适用,亏损就成为了常态。
从市场竞争的层面上看。
华为、腾讯、百度这些平台型巨头都在切入AI领域,甚至传统的半导体企业,比如德州仪器、英特尔、英伟达都在半道研发自己的AI解决方案。
举个简单的例子,在AI被广泛应用的安防行业当中,安防行业的原生巨头海康威视也在研发自己的AI解决方案,而且相对于商汤 科技 来说,海康威视本身就是终端生产商,更具有拿项目的优势。
仅以营收比较,2020年,商汤的营收亿,而海康威视的营收635亿,换句话来说,商汤的规模只有海康威视的5%不到,海康威视对商汤具有碾压优势。
上面所说的这些问题,不仅仅是针对一家商汤 科技 ,而是整个AI产业的企业都需要面对的问题。
其实,我们仔细对比一下AI四小龙,会发现这几家的处境都出奇的相似。
从过往的财报来看,AI四小龙都是亏损比营收多,营收越多,亏损越大。
这四家企业的崛起,都和中国安防摄像头的升级息息相关,简单地说就是吃到了政府升级安防项目的红利。
面对越来越多的亏损,投资人很着急,四小龙也很着急,所以在最近一年多时间里,四小龙都在集体冲击IPO。
作为 科技 企业,四小龙大书特书的都是自己的研发投入,旷视 科技 、云从 科技 和依图 科技 ,研发占比都超过了50%,商汤 科技 的研发占比更是高达70%。
在这些漂亮数字的背后,还得回到怎么样找到盈利模式这个本质的问题上来。
我们可以把视线转向另外一家AI企业,号称AI芯片第一股的寒武纪。
当年风光无限,成功登陆科创板的寒武纪,最高市值高达1191亿。
但后来,整个股价一路走跌,市值只剩下406亿,跌去6成之多。
寒武纪也是长期在研发上高投入,在AI芯片产业同样面对来自华为、百度这些巨头的夹击,自身造血能力不够,导致市场不看好。
对于一个 科技 企业来说,它跟平台型企业不一样。
京东持续亏损了12年,但它的商业模式很清晰,京东用12年的亏损回答了市场一个问题, 淘宝天猫跟我竞争,我凭什么能活下去?
答案是京东用巨资砸出来的基础物流设施,这是京东底层的护城河。
不解决根本的盈利和路线问题,即使上市融到了更多的资金,企业也只是拖延时间而已。
当前AI四小龙们还没有一条明确、长远的盈利模式。
不管是从技术上,还是未来的发展路径上,并没有一个可以信服的指引给到市场,自然也很难得市场认可。
在过去的文章中,我经常说技术是 科技 企业的立身之本,但我们也要时常问问自己,这些技术是不是我们的客户真正需要的?假如腾讯和阿里也要做这项业务,凭什么我能活下去?
回顾一下前辈们,台积电的技术很牛逼,全球第一,但这项技术的根基是在台积电创新的晶圆代工模式。
明白客户需要什么,比追求产品技术的先进性,可能更为重要,利润思维,一定不能舍去。
当然,AI未来一定是一门大产业,现在它仍然具有一定的超前性。
市场还没有快速发展到那一步,还需要更多的积累。
我们的AI企业还需要时间,需要尽快找到自己的商业模式和领域,助力和赋能更多的相关企业实现产业的升级。
但是,这个前提是路要扎扎实实地走,别贪快,贪快就容易摔倒。
—
责任编辑 | 罗英凡
原文: Scalable Object Detection using Deep Neural Networks——学术范 最近,深度卷积神经网络在许多图像识别基准上取得了最先进的性能,包括ImageNet大规模视觉识别挑战(ILSVRC-2012)。在定位子任务中获胜的模型是一个网络,它预测了图像中每个对象类别的单个边界框和置信度得分。这样的模型捕获了围绕对象的整幅图像上下文,但如果不天真地复制每个实例的输出数量,就无法处理图像中同一对象的多个实例。在这篇论文中提出了一个显著性启发的神经网络检测模型,它预测了一组与类无关的边界框,每个框有一个分数,对应于它包含任何感兴趣的对象的可能性。该模型自然地为每个类处理数量可变的实例,并允许在网络的最高级别上进行跨类泛化。 目标检测是计算机视觉的基本任务之一。一个解决这个问题的通用范例是训练在子图像上操作的对象检测器,并在所有的场所和尺度上以详尽的方式应用这些检测器。这一范例被成功地应用于经过区别训练的可变形零件模型(DPM)中,以实现检测任务的最新结果。对所有可能位置和尺度的穷举搜索带来了计算上的挑战。随着类数量的增加,这个挑战变得更加困难,因为大多数方法都训练每个类单独的检测器。为了解决这个问题,人们提出了多种方法,从检测器级联到使用分割提出少量的对象假设。 关于对象检测的文献非常多,在本节中,我们将重点讨论利用类不可知思想和解决可伸缩性的方法。 许多提出的检测方法都是基于基于部件的模型,最近由于有区别学习和精心设计的特征,已经取得了令人印象深刻的性能。然而,这些方法依赖于在多个尺度上详尽地应用零件模板,这是非常昂贵的。此外,它们在类的数量上是可伸缩的,这对像ImageNet这样的现代数据集来说是一个挑战。 为了解决前一个问题,Lampert等人使用分支绑定策略来避免计算所有可能的对象位置。为了解决后一个问题,Song et al.使用了一个低维部件基,在所有对象类中共享。基于哈希算法的零件检测也取得了良好的结果。 另一种不同的工作,与我们的工作更接近,是基于对象可以本地化的想法,而不必知道它们的类。其中一些方法建立在自底向上无阶级分割[9]的基础上。通过这种方式得到的片段可以使用自上而下的反馈进行评分。基于同样的动机,Alexe等人使用一种廉价的分类器对对象假设是否为对象进行评分,并以这种方式减少了后续检测步骤的位置数量。这些方法可以被认为是多层模型,分割作为第一层,分割分类作为后续层。尽管它们编码了已证明的感知原理,但我们将表明,有更深入的模型,充分学习可以导致更好的结果。 最后,我们利用了DeepLearning的最新进展,最引人注目的是Krizhevsky等人的工作。我们将他们的边界盒回归检测方法扩展到以可扩展的方式处理多个对象的情况。然而,基于dnn的回归已经被Szegedy等人应用到对象掩模中。最后一种方法实现了最先进的检测性能,但由于单个掩模回归的成本,不能扩展到多个类。 我们的目标是通过预测一组表示潜在对象的边界盒来实现一种与类无关的可扩展对象检测。更准确地说,我们使用了深度神经网络(DNN),它输出固定数量的包围盒。此外,它为每个盒子输出一个分数,表示这个盒子包含一个对象的网络信任度。 为了形式化上述思想,我们将i-thobject框及其相关的置信度编码为最后一网层的节点值: Bounding box: 我们将每个框的左上角和右下角坐标编码为四个节点值,可以写成vectorli∈R4。这些坐标是归一化的w. r. t.图像尺寸,以实现图像绝对尺寸的不变性。每个归一化坐标是由最后一层的线性变换产生的。 Confidence: 置信度:包含一个对象的盒子的置信度得分被编码为单个节点valueci∈[0,1]。这个值是通过最后一个隐藏层的线性变换产生的,后面跟着一个sigmoid。 我们可以组合边界盒位置sli,i∈{1,…K}为一个线性层。同样,我们可以将所有置信区间ci,i∈{1,…K}作为一个s型层的输出。这两个输出层都连接到最后一个隐藏层 在推理时,我们的算法生成kbound盒。在我们的实验中,我们使用ek = 100和K= 200。如果需要,我们可以使用置信分数和非最大抑制在推理时获得较少数量的高置信框。这些盒子应该代表对象。因此,它们可以通过后续的分类器进行分类,实现目标检测。由于盒子的数量非常少,我们可以提供强大的分类器。在我们的实验中,我们使用另一个dnn进行分类。 我们训练一个DNN来预测每个训练图像的边界框及其置信度得分,以便得分最高的框与图像的groundtruth对象框很好地匹配。假设对于一个特定的训练例子,对象被标记为boundingboxesgj,j∈{1,…,M}。在实践中,pre- dictionary的数量远远大于groundtruthboxm的数量。因此,我们试图只优化与地面真实最匹配的预测框子集。我们优化他们的位置,以提高他们的匹配度,最大化他们的信心。与此同时,我们将剩余预测的置信度最小化,这被认为不能很好地定位真实对象。为了达到上述目的,我们为每个训练实例制定一个分配问题。Wexij∈{0,1}表示赋值:xij= 1,如果第i个预测被赋值给第j个真对象。这项任务的目标可以表示为 其中,我们使用标准化边界框坐标之间的el2距离来量化边界框之间的不同。此外,我们希望根据分配x优化盒子的可信度。最大化指定预测的置信度可以表示为 最终的损失目标结合了匹配损失和信心损失 受式1的约束。α平衡了不同损失条款的贡献。 对于每个训练例子,我们通过解决一个最佳的赋值x*的预测到真实的盒子 约束执行赋值解决方案。这是二部匹配的一种变体,是一种多项式复杂度匹配。在我们的应用程序中,匹配是非常便宜的——每幅图像中标记的对象的数量少于一打,而且在大多数情况下只有很少的对象被标记。然后,通过反向传播优化网络参数。例如,反向传播算法的一阶导数计算w、r、t、l和c 尽管上述定义的损失在原则上是足够的,但三次修改使其有可能更快地达到更好的准确性。第一个修改是对地面真实位置进行聚类,并找到这样的聚类/质心,我们可以使用这些聚类/质心作为每个预测位置的先验。因此,鼓励学习算法为每个预测位置学习一个残差到一个先验。 第二个修改涉及到在匹配过程中使用这些先验:不是将N个groundtruth位置与K个预测进行匹配,而是在K个先验和groundtruth之间找到最佳匹配。一旦匹配完成,就会像之前一样计算目标的置信度。此外,位置预测损失也不变:对于任何一对匹配的(目标,预测)位置,其损失定义为groundtruth和对应于匹配先验的坐标之间的差值。我们把使用先验匹配称为先验匹配,并假设它促进了预测的多样化。 需要注意的是,尽管我们以一种与类无关的方式定义了我们的方法,但我们可以将它应用于预测特定类的对象盒。要做到这一点,我们只需要在类的边框上训练我们的模型。此外,我们可以预测每个类的kbox。不幸的是,这个模型的参数数量会随着类的数量线性增长。此外,在一个典型的设置中,给定类的对象数量相对较少,这些参数中的大多数会看到很少有相应梯度贡献的训练示例。因此,我们认为我们的两步过程——首先本地化,然后识别——是一个更好的选择,因为它允许使用少量参数利用同一图像中多个对象类型的数据 我们使用的本地化和分类模型的网络架构与[10]使用的网络架构相同。我们使用Adagrad来控制学习速率衰减,128的小批量,以及使用多个相同的网络副本进行并行分布式训练,从而实现更快的收敛。如前所述,我们在定位损失中使用先验——这些是使用训练集上的均值来计算的。我们还使用α = 来平衡局部化和置信度损失。定位器可以输出用于推断的种植区以外的坐标。坐标被映射和截断到最后的图像区域。另外,使用非最大抑制对盒进行修剪,Jaccard相似度阈值为。然后,我们的第二个模型将每个边界框分类为感兴趣的对象或“背景”。为了训练我们的定位器网络,我们从训练集中生成了大约3000万幅图像,并对训练集中的每幅图像应用以下步骤。最后,样品被打乱。为了训练我们的本地化网络,我们通过对训练集中的每一幅图像应用以下步骤,从训练集中生成了大约3000万幅图像。对于每幅图像,我们生成相同数量的平方样本,使样本总数大约为1000万。对于每幅图像,样本被桶状填充,这样,对于0 - 5%、5 - 15%、15 - 50%、50 - 100%范围内的每个比例,都有相同数量的样本,其中被包围框覆盖的比例在给定范围内。训练集和我们大多数超参数的选择是基于过去使用非公开数据集的经验。在下面的实验中,我们没有探索任何非标准数据生成或正则化选项。在所有的实验中,所有的超参数都是通过对训练集。 Pascal Visual Object Classes (VOC)挑战是最常用的对象检测算法基准。它主要由复杂的场景图像组成,其中包含了20种不同的对象类别的边界框。在我们的评估中,我们关注的是2007版VOC,为此发布了一个测试集。我们通过培训VOC 2012展示了结果,其中包含了大约。11000张图片。我们训练了一个100框的定位器和一个基于深度网络的分类器。 我们在一个由1000万作物组成的数据集上训练分类器,该数据集重叠的对象至少为 jaccard重叠相似度。这些作物被标记为20个VOC对象类中的一个。•2000万负作物与任何物体盒最多有个Jaccard相似度。这些作物被贴上特殊的“背景”类标签。体系结构和超参数的选择遵循。 在第一轮中,定位器模型应用于图像中最大-最小中心方形作物。作物的大小调整到网络输入大小is220×220。单次通过这个网络,我们就可以得到上百个候选日期框。在对重叠阈值为的非最大抑制后,保留评分最高的前10个检测项,并通过21路分类器模型分别通过网络进行分类。最终的检测分数是给定盒子的定位分数乘以分类器在作物周围的最大方形区域上评估的分数的乘积。这些分数通过评估,并用于计算精确查全曲线。 首先,我们分析了本地化器在隔离状态下的性能。我们给出了被检测对象的数量,正如Pascal检测标准所定义的那样,与生成的包围框的数量相对比。在图1中,我们展示了使用VOC2012进行训练所获得的结果。此外,我们通过使用图像的最大中心面积(max-center square crop)作为输入以及使用两个尺度(second scale)来给出结果:最大中心面积(max-center crop)的第二个尺度(select3×3windows的大小为图像大小的60%)正如我们所看到的,当使用10个边界框的预算时,我们可以用第一个模型本地化的对象,用第二个模型本地化48%的对象。这显示出比其他报告的结果更好的性能,例如对象度算法达到42%[1]。此外,这个图表显示了在不同分辨率下观察图像的重要性。虽然我们的算法通过使用最大中心作物获得了大量的对象,但当使用更高分辨率的图像作物时,我们获得了额外的提升。进一步,我们用21-way分类器对生成的包围盒进行分类,如上所述。表1列出了VOC 2007的平均精度(APs)。达到的平均AP是,与先进水平相当。注意,我们的运行时间复杂度非常低——我们只使用top10框。示例检测和全精度召回曲线分别如图2和图3所示。值得注意的是,可视化检测是通过仅使用最大中心方形图像裁剪,即使用全图像获得的。然而,我们设法获得了相对较小的对象,例如第二行和第二列的船,以及第三行和第三列的羊。 在本工作中,我们提出了一种新的方法来定位图像中的对象,该方法可以预测多个边界框的时间。该方法使用深度卷积神经网络作为基本特征提取和学习模型。它制定了一个能够利用可变数量的groundtruth位置的多箱定位成本。在“一个类一个箱”方法的情况下,对1000个盒子进行非max-suppression,使用与给定图像中感兴趣的DeepMulti-Box方法相同的准则,并学习在未见图像中预测这些位置。 我们在VOC2007和ILSVRC-2012这两个具有挑战性的基准上给出了结果,在这两个基准上,所提出的方法具有竞争力。此外,该方法能够很好地预测后续分类器将探测到的位置。我们的结果表明,deepmultibox的方法是可扩展的,甚至可以在两个数据集之间泛化,就能够预测感兴趣的定位,甚至对于它没有训练的类别。此外,它能够捕获同一类物体的多种情况,这是旨在更好地理解图像的算法的一个重要特征。 在未来,我们希望能够将定位和识别路径折叠到一个单一的网络中,这样我们就能够在一个通过网络的一次性前馈中提取位置和类标签信息。即使在其当前状态下,双通道过程(本地化网络之后是分类网络)也会产生5-10个网络评估,每个评估的速度大约为1个CPU-sec(现代机器)。重要的是,这个数字并不与要识别的类的数量成线性关系,这使得所提出的方法与类似dpm的方法非常有竞争力。
地址 : 主要思路 :这篇论文虽然是17年投的,19年TPAMI发表,但是论文的解决角度还是值得学习和借鉴的。从题目可以看出,这篇paper主要利用混合的监督信息,即强监督信息(包含目标边界框注释信息)和弱监督信息(只有图像标签信息)。作者把从源(强监督)域中学习到的目标知识迁移到目标(弱监督)域中。
强监督目标检测虽然在一些数据集上取得了显著的效果,比如PASCAL VOC和COCO,可是,现实世界中的目标类别成千上万,用强监督的方法就需要获取这些类别的边界框注释信息,这样的工作量太大且耗费人力。这样弱监督目标检测就应运而生,训练这样的目标检测器,我们只需要图像的标签信息(只告诉图像中存在的目标类别信息),并且这种数据很容易通过网络获取。
由于弱监督只有图像标签可以利用,所以弱监督目标检测常常被当作多事例学习(multiple instance learning(MIL))问题。但是这样就存在一个很大的问题,我们只有图像标签可是我们干的是目标检测的事,所以检测器无法得到目标区域的清晰定义,进而导致了这种方法训练出来的检测器可能包含如下图中所示的目标背景,或者只包含目标的一部分。
利用混合监督学习来解决弱监督中存在的问题。那森么是混合监督呢?就是你有一部分类别的数据是强监督的(称为源域 ),另外一部分类别数据是弱监督的(称为目标域 )。并且这两份数据之间的类别没有交叠。而存在一种情况:一张图片中包含多个类别目标,这些目标分别属于这两个数据集,那么这张图片同时被两个数据集所有,可是对应的类别的目标的标注信息不同。
从图中可以发现论文方法主要分为两个部分: 1 :两个数据集一起训练,学习域不变(domain-invariant)的目标知识,即可以学习到恰好框住完整目标的能力; 2 :利用学习到的域不变目标知识辅助弱监督学习,从而使学习到的检测器能定位到完整目标。
论文中提到第一部分学习到的域不变目标知识拥有两个重要的特性: (1) 类别独立,能够很好的推广到未知的类别; (2) 目标敏感,能过可靠的剔除干扰边界框(包含背景或者只包含目标的一部分)。
通过方法结果图,我们可以看到这个训练模型包含两个分支:(1)目标预测 (2)域分类。从分支名字上,你们应该已经猜到作用了。(1)分支用于辨别目标框,(2)分支用于辨别图像属于哪个域。网络主要是靠损失函数指导学习,前面特征提取层我们就不多描述了,可能不了解的会问,这些框框是如何来的呢?其实结构图中的ROI模块其实就是Fast-RCNN中的Roi-Pooling,这些框是预先用选择搜索(select-search,SS)算法提前准备好的(我们称为proposals,可以翻译为候选框)。接下来我们主要分析这两个分支。
输入是 中的proposals经过特征提取网络得到的特征向量,输出是维度为2的向量,用于判断是不是目标。 首先给出损失函数: 公式中符号解析: 表示边界框的标签,通过与ground-truth(就是目标的真实边界框,人为的标注信息)计算intersection-over-union (IoU)得到,即两个框的相交面积/并集面积。如果IoU大于, ,即正样本。如果在[)之间, ,即负样本。在一张图片中有很多冗余的框,肯定正样本框远远大于负样本框,为了平衡正负样本比例,限定选取正负样本比例为1:3总数64的边界框计算损失。 (sigmoid函数), 表示这个分支, 表示第 个边界框的特征向量,其实这个公式可以理解为: 就是第 个边界框的一个打分 ,则公式可以等效于 。
论文中的domain-invariance就是通过这个分支实现的。 不同于目标预测分支,这个分支的不仅考虑了 中的边界框,也考虑了 的边界框,输出也是一个维度为2的向量,就是图像属于 或 的打分。 给出损失函数: 损失函数与上一个分支功能一样, 表示来自于 的proposals是正样本; 表示来自于 的proposals是负样本。
下面要说才是我认为最有意思的地方,可以看到方法结构图中这个分支有一个梯度取反。一般我们优化网络都会让损失收敛到0,即最小值优化,而作者在梯度方向传播到特征f前取反,这是为了最大值优化。最小值优化是为了让网络可以区分数据是来自哪一个域,作者取反操作就是为了让网络无法区分,从而实现domain-invariance。 其实我感觉直接损失函数的负号去掉是一样的(欢迎指正)。
然后从 和 中都随机选取64个proposals计算损失。
下面我们讲方法的第二部分:利用学习到辨别目标的知识来训练一个弱监督检测器。 这部分可以分为两个部分讲解:(1)如何利用目标知识(2)如何用 的数据训练检测器
作者是采用中的目标预测分支,对 中每一张图片的proposals进行打分,得到他们属于目标的分数,然后排序,取前15%当作目标框(一起当作一个"object bag"),剩余的75%作为干扰框(一起当作一个"distractor bag")。注意这里只是区分是不是目标,并没有给出目标是哪一类。所以"object bag"中会有很多类型的目标。
作者使用的是Fast-RCNN的结构训练检测器(只包含分类分支),输出维度是K+1,K是类别数目。
为了更好的理解这里的训练过程,我们先举个栗子:输入图片1张,包含2000个SS生成的proposals,输入网络后得到1x2000x(K+1)矩阵。
如果我们要计算损失,是不是应该知道2000个框的类别标签,可是 数据是没有边界框注释信息的,我们无法得到这2000个框的标签,我们肿么办?
肯定有人想到用上面得到的"object bag"和"distractor bag"制作标签呀,的确,作者就是这么干的。
首先这个2000个框已经被我们分成了目标和干扰两个包。首先给"distractor bag"一个标签 ,然后我们根据这个图像包含的目标类别对"object bag"给出对应的类别标签 。
可是网络输出是每个框属于每一类的打分,你这给的都是包的标签,不对应呀? 然后你肯定会想使用包中框的最高分作为包的打分不就行了。但是这样做就只是考虑了最大分框,作者给出了一个更好的计算方法: 这样可以考虑包中所有的框。 是包, 是包中每个框的打分。
然后使用交叉商损失指导网络训练:
我个人感觉这篇论文最大的创新点就是把 和 的数据一起训练的方式。一般我们都会想的是用 训练一个检测器 ,然后通过一种方式,用 来得到 中的pseudo-gt,然后训练检测器 。可是这篇论文就不一样,感觉很有意思。想继续深入了解的小伙伴,可以阅读原文。
其实看官看到这里就可以结束。 可是,本着从一而终的原则,我决定把实验也分析一遍。
其实这篇论文实验之前才5页,后面实验作者足足写了7页。。。看来实验才是重点,前面全是小菜。
实验主要可以分为三个部分:(1)数据集内部检测(2)数据集间检测(3)消融实验
实验的评价的标准主要:mAP和CorLoc。 这里说一下,mAP肯定一般都知道,CorLoc一般都是弱监督的时候才会用。它是评价模型在训练集上的定位精度。就是检测到每一类中检测到的图片占的比例,怎么叫检测到呢?就是对于一样图片中的某一类,取检测的打分最高边界框,如果与ground-truth(标注的边界框)的IoU>就是检测正确。
实验开始之前,作者给出了三个基本的检测方法。由于论文的方法是由目标知识学习和弱监督检测训练两个子模块组成了混合监督整体方法,所以作者提出了分别对应两个子模块和整体方法的基本方法。
B-WSD :基本的若监督检测方法------->对应的子模块 B-MSD :基础的混合监督检测方法------->对应整体的方法 OOM-MSD :用于混合监督检测的原始的目标学习模型------->对应的子模块
下面简要说一说后两个方法: B-MSD :作者是先用Fast-RCNN基于 训练一个强监督的检测器,然后用训练得到的模型参数初始化弱监督的检测器,然后用MIL的方式基于 训练检测器。 OOM-MSD :这部分作者就是把模型的子模块的域分类的分支去掉了,就是直接基于 训练网络学习区分目标和干扰的知识。
就是把一个数据集按类别分为 , 。
作者使用PASCAL VOC 2007 和 ILSVRC2013来评价他的方法。
这里就只是以PASCAL VOC 2007为例吧,作者把trainval的数据按类别分为两部分,一共20类,前10类为 ,后10类为 (根据字母排序选择的)。
当然啦,这些模型怎么训练的呢,这我要说的估计得照论文翻译了,还是感兴趣的孩童去看论文吧,哈哈哈。
还是贴图看一下模型的性能吧
这应该不用描述解释了吧。认真看图吧。(我是不会告诉你,我是认真读了一边作者分析再贴的图, :) 滑稽脸)
这里作者把PASCAL VOC 2007 的trainval作为 ,ILSVRC2013作为 。 由于ILSVRC2013有200类包含PASCAL VOC 2007的20类,所以 是180类,剔除了 中的类别。
直接贴图,直接贴图
不得不佩服,作者做实验验证的能力。学习一波。
采用数据集间检测方式,都使用AlexNet
其实作者验证这个就是是否用那75%的proposals,作者把它丢掉,WSD的网络类别就是K了,训练了一个MSD-no-distractor的模型。
就是选取其他的值来训练,看哪个高。
作者选取了ILSVRC2013中人们创造的类别作为 ,PASCAL VOC 2007中自然界中的类别作为 ,进行训练。
所实话,作者真的很会来事,但是不得不佩服。
如果你更着我读到了这里,我不得不给你点个赞,其实笔者都快被你感动了,坚持一下马上就结束了。
其实我又看了下后面,好像还不能很快结束。。。你还得在坚持很久。 -_-# ,我继续码。
这里作者和其他的目标学习方法或者获得proposals的方法进行了比较。
目标学习模型其实就是给proposals打分,然后分包,只要有类是功能的方法应该就可以比较。
作者使用召回率来比较的。
实际是如何操作的呢? 可以看上图中的横轴是百分比,这是怎么来的呢?是由SS生存的proposals按打分排序(ss算法本身对proposals会有个打分),然后取前5%,与ground-truth计算一遍IoU,大于就算是目标框,这些框的个数/选取的proposals,这个值就是recall值。
然后用这些方法训练WSD。
作者发现一个很有意思的现象:EdgeBox,Original Obj,Domain-invarint obj 三个的Recall在15%的时候都差不多,为什么上图的性能差距这么多,为森么?
然后自问自答 :)
然后作者定义: 正样本 :IoU>= 局部目标 :0 作者 :快看,蓝色柱子,不要盯着绿色的看,我这是局部目标的比例,看我的方法多稳定。知道你们不懂,我给你举个例子 :) 我们来看0%~10% x轴 ,假设每个图片是2000个proposals 那么前15%就是300个proposals(那么其中就包含0~30个局部目标)。 让我们来看 y轴 ,蓝bar是,那么5011个训练图片中有大约500的图片的局部目标是在范围0%~10%。可以看图中,随着局部目标比例的增加,其他方法的对应的图片比例都在增加,而论文方法反而在减少,说明论文方法可以很好的剔除局部目标。 作者还进一步解释了为什么15%中包含局部目标的比例少,因为在训练图片中还包含了很多不属于数据集类别的完整目标,可是完整目标是被我们当作背景的,但是在使用学习到的目标辨别知识是与目标类别无关的,所以15%会包含很多背景中存在的完整目标,进一步相对减少了局部目标的比例。 在这里我不得不佩服作者脑回路清奇,我感觉我发现了这篇论文的另一个宝藏 。如果你读到了这里,我该恭喜你。 作者也给出了效果图,来分析几个效果较差的类别。 自行感受有多差吧。 终于结束了,我写的都累了,默默心疼在看的你。希望你有所收获。 第一次写blog,希望不是最后一次,以后应该陆续推出论文解读。 如果发现有问题,欢迎指正 _ 。 论文: EfficientDet: Scalable and Efficient Object Detection 目前目标检测领域,高精度的模型通常需要很大的参数量和计算量,而轻量级的网络则一般都会牺牲精度。因此,论文希望建立一个可伸缩的高精度且高性能的检测框架。论文基于one-stage的检测网络范式,进行了多种主干网络、特征融合和class/box预测的结构尝试,主要面临两个挑战: FPN是目前最广泛的多尺度融合方法,最近也有PANet和NAS-FPN一类跨尺度特征融合方法。对于融合不同的特征,最初的方法都只是简单地直接相加,然而由于不同的特征是不同的分辨率,对融合输出特征的共享应该是不相等的。为了解决这一问题,论文提出简单但高效加权的bi-directional feature pyramid network(BiFPN),该方法使用可学习的权重来学习不同特征的重要性,同时反复地进行top-down和bottom-up的多尺度融合 论文认为除了缩放主干网络和输入图片的分辨率,特征网络(feature network)和box/class预测网络的缩放对准确率和性能也是很重要的。作者借鉴EfficientNet,提出针对检测网络的混合缩放方法(compound scaling method),同时对主干网络,特征网络和box/class预测网络的分辨率/深度/宽度进行缩放 最后,论文将EfficientNet作为主干,结合BiFPN和混合缩放,提出新的检测系列EfficientDet,精度高且轻量,COCO上的结果如图1,论文的贡献有以下3点: 定义多尺寸特征 ,论文的目标是找到变化函数 来高效融合不同的特征,输出新特征 。具体地,图2a展示了top-down FPN网络结构,一般FPN只有一层,这里应该为了对比写了repeat形式。FPN获取3-7层的输入 , 代表一个分辨率为 的特征层 top-down FPN操作如上所示, 为上采用或下采样来对齐分辨率, 通常是特征处理的卷积操作 top-down FPN受限于单向的信息流,为了解决这一问题,PANet(图2b)增加了额外的bottom-up路径的融合网络,NAS_FPN(图2c)使用神经架构搜索来获取更好的跨尺度特征网络的拓扑结构,但需要大量资源进行搜索。其中准确率最高的是PANet,但是其需要太多的参数和计算量,为了提高性能,论文对跨尺寸连接做了几点改进: 大多的特征融合方法都将输入特征平等对待,而论文观察到不同分辨率的输入对融合输出的特征的贡献应该是不同的。为了解决这一问题,论文提出在融合时对输入特征添加额外的权重预测,主要有以下方法: , 是可学习的权重,可以是标量(per-feature),也可以是向量(per-channel),或者是多维tensor(per-pixel)。论文发现标量形式已经足够提高准确率,且不增加计算量,但是由于标量是无限制的,容易造成训练不稳定,因此,要对其进行归一化限制 ,利用softmax来归一化所有的权重,但softmax操作会导致GPU性能的下降,后面会详细说明 ,Relu保证 , 保证数值稳定。这样,归一化的权重也落在 ,由于没有softmax操作,效率更高,大约加速30% BiFPN集合了双向跨尺寸的连接和快速归一化融合,level 6的融合操作如上, 为top-down路径的中间特征, 是bottom-up路径的输出特征,其它层的特征也是类似的构造方法。为了进一步提高效率,论文特征融合时采用depthwise spearable convolution,并在每个卷积后面添加batch normalization和activation EfficientDet的结构如图3所示,基于one-stage检测器的范式,将ImageNet-pretrained的EfficientNet作为主干,BiFPN将主干的3-7层特征作为输入,然后重复进行top-down和bottom-up的双向特征融合,所有层共享class和box网络 之前检测算法的缩放都是针对单一维度的,从EfficientNet得到启发,论文提出检测网络的新混合缩放方法,该方法使用混合因子 来同时缩放主干网络的宽度和深度、BiFPN网络、class/box网络和分辨率。由于缩放的维度过多,EfficientNet使用的网格搜索效率太慢,论文改用heuristic-based的缩放方法来同时缩放网络的所有维度 EfficientDet重复使用EfficientNet的宽度和深度因子,EfficinetNet-B0至EfficientNet-B6 论文以指数形式来缩放BiFPN宽度 (#channels),而以线性形式增加深度 (#layers),因为深度需要限制在较小的数字 box/class预测网络的宽度固定与BiFPN的宽度一致,而用公式2线性增加深度(#layers) 因为BiFPN使用3-7层的特征,因此输入图片的分辨率必需能被 整除,所以使用公式3线性增加分辨率 结合公式1-3和不同的 ,论文提出EfficientDet-D0到EfficientDet-D6,具体参数如Table 1,EfficientDet-D7没有使用 ,而是在D6的基础上增大输入分辨率 模型训练使用momentum=和weight decay=4e-5的SGD优化器,在初始的5%warm up阶段,学习率线性从0增加到,之后使用余弦衰减规律(cosine decay rule)下降,每个卷积后面都添加Batch normalization,batch norm decay=,epsilon=1e-4,梯度使用指数滑动平均,decay=,采用 和 的focal loss,bbox的长宽比为 ,32块GPU,batch size=128,D0-D4采用RetinaNet的预处理方法,D5-D7采用NAS-FPN的增强方法 Table 2展示了EfficientDet与其它算法的对比结果,EfficientDet准确率更高且性能更好。在低准确率区域,Efficient-D0跟YOLOv3的相同准确率但是只用了1/28的计算量。而与RetianaNet和Mask-RCNN对比,相同的准确率只使用了1/8参数和1/25的计算量。在高准确率区域,EfficientDet-D7达到了,比NAS-FPN少使用4x参数量和计算量,而anchor也仅使用3x3,非9x9 论文在实际的机器上对模型的推理速度进行了对比,结果如图4所示,EfficientDet在GPU和CPU上分别有和加速 论文对主干网络和BiFPN的具体贡献进行了实验对比,结果表明主干网络和BiFPN都是很重要的。这里要注意的是,第一个模型应该是RetinaNet-R50(640),第二和第三个模型应该是896输入,所以准确率的提升有一部分是这个原因。另外使用BiFPN后模型精简了很多,主要得益于channel的降低,FPN的channel都是256和512的,而BiFPN只使用160维,这里应该没有repeat Table 4展示了Figure 2中同一网络使用不同跨尺寸连接的准确率和复杂度,BiFPN在准确率和复杂度上都是相当不错的 Table 5展示了不同model size下两种加权方法的对比,在精度损失不大的情况下,论文提出的fast normalized fusion能提升26%-31%的速度 figure 5展示了两种方法在训练时的权重变化过程,fast normalizaed fusion的变化过程与softmax方法十分相似。另外,可以看到权重的变化十分快速,这证明不同的特征的确贡献是不同的, 论文对比了混合缩放方法与其它方法,尽管开始的时候相差不多,但是随着模型的增大,混合精度的作用越来越明显 论文提出BiFPN这一轻量级的跨尺寸FPN以及定制的检测版混合缩放方法,基于这些优化,推出了EfficientDet系列算法,既保持高精度也保持了高性能,EfficientDet-D7达到了SOTA。整体而言,论文的idea基于之前的EfficientNet,创新点可能没有之前那么惊艳,但是从实验来看,论文推出的新检测框架十分实用,期待作者的开源 论文原文: YOLO(you only look once)是继RCNN、faster-RCNN之后,又一里程碑式的目标检测算法。yolo在保持不错的准确度的情况下,解决了当时基于深度学习的检测中的痛点---速度问题。下图是各目标检测系统的检测性能对比: 如果说faster-RCNN是真正实现了完全基于深度学习的端到端的检测,那么yolo则是更进一步,将 目标区域预测 与 目标类别判断 整合到单个神经网络模型中。各检测算法结构见下图: 每个网格要预测B个bounding box,每个bounding box除了要回归自身的位置之外,还要附带预测一个confidence值。这个confidence代表了所预测的box中含有object的置信度和这个box预测的有多准两重信息,其值是这样计算的: 其中如果有object落在一个grid cell里,第一项取1,否则取0。第二项是预测的bounding box和实际的groundtruth之间的IoU值。 每个bounding box要预测(x, y, w, h)和confidence共5个值,每个网格还要预测一个类别信息,记为C类。即SxS个网格,每个网格除了要预测B个bounding box外,还要预测C个categories。输出就是S x S x (5*B+C)的一个tensor。(注意:class信息是针对每个网格的,即一个网格只预测一组类别而不管里面有多少个bounding box,而confidence信息是针对每个bounding box的。) 举例说明: 在PASCAL VOC中,图像输入为448x448,取S=7,B=2,一共有20个类别(C=20)。则输出就是7x7x30的一个tensor。整个网络结构如下图所示: 在test的时候,每个网格预测的class信息和bounding box预测的confidence信息相乘,就得到每个bounding box的class-specific confidence score: 等式左边第一项就是每个网格预测的类别信息,第二三项就是每个bounding box预测的confidence。这个乘积即encode了预测的box属于某一类的概率,也有该box准确度的信息。 得到每个box的class-specific confidence score以后,设置阈值,滤掉得分低的boxes,对保留的boxes进行NMS(非极大值抑制non-maximum suppresssion)处理,就得到最终的检测结果。 1、每个grid因为预测两个bounding box有30维(30=2*5+20),这30维中,8维是回归box的坐标,2维是box的confidence,还有20维是类别。其中坐标的x,y用bounding box相对grid的offset归一化到0-1之间,w,h除以图像的width和height也归一化到0-1之间。 2、对不同大小的box预测中,相比于大box预测偏一点,小box预测偏一点肯定更不能被忍受的。而sum-square error loss中对同样的偏移loss是一样。为了缓和这个问题,作者用了一个比较取巧的办法,就是将box的width和height取平方根代替原本的height和width。这个参考下面的图很容易理解,小box的横轴值较小,发生偏移时,反应到y轴上相比大box要大。其实就是让算法对小box预测的偏移更加敏感。 3、一个网格预测多个box,希望的是每个box predictor专门负责预测某个object。具体做法就是看当前预测的box与ground truth box中哪个IoU大,就负责哪个。这种做法称作box predictor的specialization。 4、损失函数公式见下图: 在实现中,最主要的就是怎么设计损失函数,坐标(x,y,w,h),confidence,classification 让这个三个方面得到很好的平衡。简单的全部采用sum-squared error loss来做这件事会有以下不足: 解决方法: 只有当某个网格中有object的时候才对classification error进行惩罚。只有当某个box predictor对某个ground truth box负责的时候,才会对box的coordinate error进行惩罚,而对哪个ground truth box负责就看其预测值和ground truth box的IoU是不是在那个cell的所有box中最大。 作者采用ImageNet 1000-class 数据集来预训练卷积层。预训练阶段,采用网络中的前20卷积层,外加average-pooling层和全连接层。模型训练了一周,获得了top-5 accuracy为(ImageNet2012 validation set),与GoogleNet模型准确率相当。 然后,将模型转换为检测模型。作者向预训练模型中加入了4个卷积层和两层全连接层,提高了模型输入分辨率(224×224->448×448)。顶层预测类别概率和bounding box协调值。bounding box的宽和高通过输入图像宽和高归一化到0-1区间。顶层采用linear activation,其它层使用 leaky rectified linear。 作者采用sum-squared error为目标函数来优化,增加bounding box loss权重,减少置信度权重,实验中,设定为\lambda _{coord} =5 and\lambda _{noobj}= 。 作者在PASCAL VOC2007和PASCAL VOC2012数据集上进行了训练和测试。训练135轮,batch size为64,动量为,学习速率延迟为。Learning schedule为:第一轮,学习速率从缓慢增加到(因为如果初始为高学习速率,会导致模型发散);保持速率到75轮;然后在后30轮中,下降到;最后30轮,学习速率为。 作者还采用了dropout和 data augmentation来预防过拟合。dropout值为;data augmentation包括:random scaling,translation,adjust exposure和saturation。 YOLO模型相对于之前的物体检测方法有多个优点: 1、 YOLO检测物体非常快 因为没有复杂的检测流程,只需要将图像输入到神经网络就可以得到检测结果,YOLO可以非常快的完成物体检测任务。标准版本的YOLO在Titan X 的 GPU 上能达到45 FPS。更快的Fast YOLO检测速度可以达到155 FPS。而且,YOLO的mAP是之前其他实时物体检测系统的两倍以上。 2、 YOLO可以很好的避免背景错误,产生false positives 不像其他物体检测系统使用了滑窗或region proposal,分类器只能得到图像的局部信息。YOLO在训练和测试时都能够看到一整张图像的信息,因此YOLO在检测物体时能很好的利用上下文信息,从而不容易在背景上预测出错误的物体信息。和Fast-R-CNN相比,YOLO的背景错误不到Fast-R-CNN的一半。 3、 YOLO可以学到物体的泛化特征 当YOLO在自然图像上做训练,在艺术作品上做测试时,YOLO表现的性能比DPM、R-CNN等之前的物体检测系统要好很多。因为YOLO可以学习到高度泛化的特征,从而迁移到其他领域。 尽管YOLO有这些优点,它也有一些缺点: 1、YOLO的物体检测精度低于其他state-of-the-art的物体检测系统。 2、YOLO容易产生物体的定位错误。 3、YOLO对小物体的检测效果不好(尤其是密集的小物体,因为一个栅格只能预测2个物体)。 论文名称:Rich feature hierarchies for accurate object detection and semantic segmentation 提出时间:2014年 论文地址: 针对问题: 从Alexnet提出后,作者等人思考如何利用卷积网络来完成检测任务,即输入一张图,实现图上目标的定位(目标在哪)和分类(目标是什么)两个目标,并最终完成了RCNN网络模型。 创新点: RCNN提出时,检测网络的执行思路还是脱胎于分类网络。也就是深度学习部分仅完成输入图像块的分类工作。那么对检测任务来说如何完成目标的定位呢,作者采用的是Selective Search候选区域提取算法,来获得当前输入图上可能包含目标的不同图像块,再将图像块裁剪到固定的尺寸输入CNN网络来进行当前图像块类别的判断。 参考博客: 。 论文题目:OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks 提出时间:2014年 论文地址: 针对问题: 该论文讨论了,CNN提取到的特征能够同时用于定位和分类两个任务。也就是在CNN提取到特征以后,在网络后端组织两组卷积或全连接层,一组用于实现定位,输出当前图像上目标的最小外接矩形框坐标,一组用于分类,输出当前图像上目标的类别信息。也是以此为起点,检测网络出现基础主干网络(backbone)+分类头或回归头(定位头)的网络设计模式雏形。 创新点: 在这篇论文中还有两个比较有意思的点,一是作者认为全连接层其实质实现的操作和1x1的卷积是类似的,而且用1x1的卷积核还可以避免FC对输入特征尺寸的限制,那用1x1卷积来替换FC层,是否可行呢?作者在测试时通过将全连接层替换为1x1卷积核证明是可行的;二是提出了offset max-pooling,也就是对池化层输入特征不能整除的情况,通过进行滑动池化并将不同的池化层传递给后续网络层来提高效果。另外作者在论文里提到他的用法是先基于主干网络+分类头训练,然后切换分类头为回归头,再训练回归头的参数,最终完成整个网络的训练。图像的输入作者采用的是直接在输入图上利用卷积核划窗。然后在指定的每个网络层上回归目标的尺度和空间位置。 参考博客: 论文题目:Scalable Object Detection using Deep Neural Networks 提出时间:2014年 论文地址: 针对问题: 既然CNN网络提取的特征可以直接用于检测任务(定位+分类),作者就尝试将目标框(可能包含目标的最小外包矩形框)提取任务放到CNN中进行。也就是直接通过网络完成输入图像上目标的定位工作。 创新点: 本文作者通过将物体检测问题定义为输出多个bounding box的回归问题. 同时每个bounding box会输出关于是否包含目标物体的置信度, 使得模型更加紧凑和高效。先通过聚类获得图像中可能有目标的位置聚类中心,(800个anchor box)然后学习预测不考虑目标类别的二分类网络,背景or前景。用到了多尺度下的检测。 参考博客: 论文题目:DeepBox: Learning Objectness with Convolutional Networks 提出时间:2015年ICCV 论文地址: 主要针对的问题: 本文完成的工作与第三篇类似,都是对目标框提取算法的优化方案,区别是本文首先采用自底而上的方案来提取图像上的疑似目标框,然后再利用CNN网络提取特征对目标框进行是否为前景区域的排序;而第三篇为直接利用CNN网络来回归图像上可能的目标位置。创新点: 本文作者想通过CNN学习输入图像的特征,从而实现对输入网络目标框是否为真实目标的情况进行计算,量化每个输入框的包含目标的可能性值。 参考博客: 论文题目:AttentionNet: AggregatingWeak Directions for Accurate Object Detection 提出时间:2015年ICCV 论文地址: 主要针对的问题: 对检测网络的实现方案进行思考,之前的执行策略是,先确定输入图像中可能包含目标位置的矩形框,再对每个矩形框进行分类和回归从而确定目标的准确位置,参考RCNN。那么能否直接利用回归的思路从图像的四个角点,逐渐得到目标的最小外接矩形框和类别呢? 创新点: 通过从图像的四个角点,逐步迭代的方式,每次计算一个缩小的方向,并缩小指定的距离来使得逐渐逼近目标。作者还提出了针对多目标情况的处理方式。 参考博客: 论文题目:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition 提出时间:2014年 论文地址: 针对问题: 如RCNN会将输入的目标图像块处理到同一尺寸再输入进CNN网络,在处理过程中就造成了图像块信息的损失。在实际的场景中,输入网络的目标尺寸很难统一,而网络最后的全连接层又要求输入的特征信息为统一维度的向量。作者就尝试进行不同尺寸CNN网络提取到的特征维度进行统一。创新点: 作者提出的SPPnet中,通过使用特征金字塔池化来使得最后的卷积层输出结果可以统一到全连接层需要的尺寸,在训练的时候,池化的操作还是通过滑动窗口完成的,池化的核宽高及步长通过当前层的特征图的宽高计算得到。原论文中的特征金字塔池化操作图示如下。 参考博客 : 论文题目:Object detection via a multi-region & semantic segmentation-aware CNN model 提出时间:2015年 论文地址: 针对问题: 既然第三篇论文multibox算法提出了可以用CNN来实现输入图像中待检测目标的定位,本文作者就尝试增加一些训练时的方法技巧来提高CNN网络最终的定位精度。创新点: 作者通过对输入网络的region进行一定的处理(通过数据增强,使得网络利用目标周围的上下文信息得到更精准的目标框)来增加网络对目标回归框的精度。具体的处理方式包括:扩大输入目标的标签包围框、取输入目标的标签中包围框的一部分等并对不同区域分别回归位置,使得网络对目标的边界更加敏感。这种操作丰富了输入目标的多样性,从而提高了回归框的精度。 参考博客 : 论文题目:Fast-RCNN 提出时间:2015年 论文地址: 针对问题: RCNN中的CNN每输入一个图像块就要执行一次前向计算,这显然是非常耗时的,那么如何优化这部分呢? 创新点: 作者参考了SPPNet(第六篇论文),在网络中实现了ROIpooling来使得输入的图像块不用裁剪到统一尺寸,从而避免了输入的信息丢失。其次是将整张图输入网络得到特征图,再将原图上用Selective Search算法得到的目标框映射到特征图上,避免了特征的重复提取。 参考博客 : 论文题目:DeepProposal: Hunting Objects by Cascading Deep Convolutional Layers 提出时间:2015年 论文地址: 主要针对的问题: 本文的作者观察到CNN可以提取到很棒的对输入图像进行表征的论文,作者尝试通过实验来对CNN网络不同层所产生的特征的作用和情况进行讨论和解析。 创新点: 作者在不同的激活层上以滑动窗口的方式生成了假设,并表明最终的卷积层可以以较高的查全率找到感兴趣的对象,但是由于特征图的粗糙性,定位性很差。相反,网络的第一层可以更好地定位感兴趣的对象,但召回率降低。 论文题目:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 提出时间:2015年NIPS 论文地址: 主要针对的问题: 由multibox(第三篇)和DeepBox(第四篇)等论文,我们知道,用CNN可以生成目标待检测框,并判定当前框为目标的概率,那能否将该模型整合到目标检测的模型中,从而实现真正输入端为图像,输出为最终检测结果的,全部依赖CNN完成的检测系统呢? 创新点: 将当前输入图目标框提取整合到了检测网络中,依赖一个小的目标框提取网络RPN来替代Selective Search算法,从而实现真正的端到端检测算法。 参考博客 : 医学影像是指为了医疗或医学研究,对人体或人体某部分,以非侵入方式取得内部组织影像的技术与处理过程。下面,我为大家分享关于医学影像的论文,希望对大家有所帮助! 前 言 数字图像处理技术以当前数字化发展为基础, 逐渐衍生出的一项网络处理技术, 数字图像处理技术可实现对画面更加真实的展示。 在医学中,随着数字图像处理技术的渗透,数字图像将相关的病症呈现出来, 并通过处理技术对画面上相关数据进行处理,这种医疗手段,可大幅提升相关病症的治愈率,实现更加精准治疗的疗效。 在医学中医学影像广泛用于以下几方面之中,其中包括 CT(计算机 X 线断层扫描)、PET(正电子发射断层成像)、MRI(核磁共振影像)以及 UI(超声波影像)。 数字图像处理技术在技术发展基础上,其应用的范围将会在逐渐得到扩展,应用成效将会进一步得到提升。 1 关键技术在数字图像处理中的应用 医学影像中对于数字图像的处理, 通常是将数字图像转化成为相关数据,并针对相关数据呈现的结果,对患者病症进行分析,在对数字图像处理中,存在一定的关键技术,这些关键技术直接影响着整个医疗治疗与检查。 图像获取 图像获取顾名思义将医患的相关数据进行整理, 在进行数字图像检测时,得出的相关图像,在获取相关图像后,经过计算机的转变,将图像以数据的形式进行处理,最后将处理结果呈现出来。 在计算机摄取图像中,通过光电的转换,以数字化的形式展现出来, 数字图像处理技术还可实现将分析的结果作为医疗诊断的依据,进行保存[1]. 图像处理 在运用数字图像获取相关图像后,需对图像进行处理,如压缩处理、编码处理,将所有运行的数据进行整理,将有关的数据进行压缩,并将相关编码进行处理,如模型基编码处理、神经网络编码处理等。 图像识别与重建 在经过图像复原后,将图像进行变换,在进行图片分析后分割相关图像,测量图像的区域特征,最后实现图像设备与呈现,在重建图像后,进行图像配准。 2 医学影像中数字图像处理技术 数字图像处理技术的辅助治疗 当前医学图像其中包括计算机 X 线断层扫描、 正电子发射断层成像、核磁共振影像以及超声波影像,在医疗治疗中,可根据相关数据的组建,进而实现几何模式的呈现,如 3D,还原机体的各项组织中,对于细小部位可实现放大观察,可实现医生定量认识,更加细致的观察病变处,为接下来的医疗治疗提供帮助。 例如在核磁共振影像治疗中, 首先设定一定的磁场,通过无线电射频脉冲激发的'方式,对机体中氢原子核进行刺激,在运行过程中产生共振,促进机体吸收能力,帮助查找病症所在[2]. 提升放射治疗的疗效 在医疗中, 运用数字图像处理技术即可实现对患病处的观察,也可实现对病患处的治疗,这种治疗方式常见于肿瘤或癌症病变的放射性治疗。 在进行治疗前, 首先定位于病患方位,在准确定位后,借助数字图像处理技术,全方位的计划治疗方案,并在此基础上对病患处进行治疗。 例如在治疗肿瘤癌症等病变之处,利用数字图像排查病变以外机体状况,降低手术风险。 加深对脑组织以其功能认识 脑组织是人体机能运转的核心, 在脑组织中存在众多复杂的结构,因此想要实现对脑组织的功能认识,必须对脑组织进行全方位的观测,深层探析其各项组织结构。 近些年随着医疗技术的提升,数字图像处理技术被运用到医学之中,数字图像处理技术可实现透过大脑皮层对脑组织进行全方位观测,最后立体的呈现出脑组织中各项机构的运作状况[3]. 例如功能性磁共振成像即 FMRI,这种成像可对机体大脑皮层的活动状况进行检测, 还可实时跟踪信号的改变, 其高清的时间分辨率,为当代医疗提供了众多帮助。 实现了数字解剖功能 数字解剖即虚拟解剖, 这种解剖行为需以高科技为依托从力学、视觉等各方面,通过虚拟人资源得建立,透析机体各项组织结构,实现对虚拟人的解剖,增加对机体的认识,真实的还原解剖学相关知识,这种手段对于医疗教学、解剖研究具有重要的影响作用。 3 结 论 综上所述, 数字图像处理技术在医学影像中具有重要的应用价值,其技术的发展为医疗技术提供了进步的平台,也为数字图像处理技术的发展提供了应用空间, 这种结合的方式既是社会发展的要求,也是时代进步的趋势。 参考文献: [1]张瑞兰,华 晶,安巍力,刘迎九。数字图像处理在医学影像方面的应用[J].医学信息,2012,03:400~401. [2]刘 磊,JINChen-Lie.计算机图像处理技术在医学影像学上的应用[J].中国老年学杂志,2012,24:5642~5643. [3]李 杨,李兴山,何常豫,孟利军。数字图像处理技术在腐蚀科学中的应用研究[J].价值工程,2015,02:51~52. 随着现代化科学技术的快速发展,计算机图形图像处理技术也越来越成熟,为人们的生活、工作和学习提供了极大的便利。然而我们该如何写有关计算机图形图像处理的论文呢?下面是我给大家推荐的计算机图形图像处理相关的论文,希望大家喜欢! 《计算机图形图像处理技术分析》 摘 要:随着现代化科学技术的快速发展,计算机图形图像处理技术也越来越成熟,Photoshop、CAE、CAD等计算机图形图像处理软件被广泛的应用在各个领域,为人们的生活、工作和学习提供了极大的便利。在未来的发展过程中,要不断改进和完善计算机图形图像处理技术,推动计算机图形图像处理技术更加广泛的应用和发展。本文简要介绍了计算机图形图像处理技术,阐述了计算机图形图像处理技术的应用。 关键词:计算机;图形图像;处理技术 中图分类号: 计算机图形图像技术以计算机网络系统为平台,实现了人们主观意识中图像和真实存在的图形之间的相互结合,各种各样的计算机图形图像处理软件,为人们的主观处理和操作提供了很多的便利,随着现代化科学技术的快速发展,计算机图形图像处理技术的应用前景会更加广阔。 1 计算机图形图像处理技术概述 基本含义 计算机图形图像处理技术是指通过几何模型和数据将描述性的形象或者概念在计算机系统软件中进行存储、定稿、优化、修改和显现。计算机图形图像处理技术可以用来设计图形的色彩、做纹理和明暗的贴图处理、对图像进行建模设计和造型、消除图像隐线和隐面、对图形曲线和曲面进行拟合操作、数字化的图像存储、图像分割、分析、编码、增强、复原等操作[1],以及对图像进行形式转换,如投影、缩放、旋转、平移等几何形式。 基本组成 计算机图形图像处理技术的基本组成主要包括计算机硬件设备和计算机图形图像处理软件。计算机硬件设备性能的好坏对于计算机图形图像处理效果有着直接的影响,计算机图形图像处理软件将终端的显示和计算机结合在一起,由于计算机图形图像处理技术自身具有设计、存储、修改等功能,可以迅速整合图片数据,不仅可以保障计算机图形图像的处理效果,也可以有效地提高计算机中央处理器和计算机图形图像处理软件的运行效果。键盘和鼠标作为终端的输入设备,可以完成对图形的修改和定位,并且利用显示器、绘图仪、打印机等显示设备和输出设备,可以完整的保存计算机图片。 基本功能 计算机图形图像处理技术主要具有五个基本功能:对话、输入、输出、存储和计算。对话功能是指利用通讯交互设备和计算机显示器实现人机交流。输入和输出功能是指计算机图形图像处理软件可以随时输入和输出相关的图形图像。存数功能是指实时监控计算机的图形图像数据进行有效的检索和维护。计算功能是指计算机图形图像处理软件对相关的图形图像进行必要的数据交换和计算分析。 计算机图形图像处理技术的运行环境 计算机图形图像处理技术的硬件配置主要包括工作站和微型机,软件配置就是建立在工作站和微型机上的运行软件。计算机图形图像处理技术的工作站软件主要有TDI和Alias两种,工作站的软件主要负责处理计算机工作站中的各种图形图像处理。微型机上的计算机图形图像处理软件主要包括3DStudio、Winimage:morph和Photoshop等,3DStudio是微型机上的一种最主要的图形图像处理软件,被广泛的应用在多个计算机系统中;Winimage:morph是一种常用的二维图形图像处理软件,可以将一个图形或者图像制作成另外一个图形或者图像;Photoshop是一个非常专业的图形图像处理软件,其支持图形图像资料的分色制版,给人们进行图形图像处理带来很多的便利。 2 计算机图形图像处理技术的应用 用户接口 人们利用计算机系统的用户接口来操作多种计算机软件,计算机图形图像处理技术和用户接口的有效结合,借助于计算机操作系统构建友好的人机交互用户图形界面,极大地提高了计算机图形图像处理的简便性和易用性。近年来,微软公司普及和推广的图像化windows系统,充分发挥了计算机图形图像处理技术和用户接口全面融合的重要作用。 动画与艺术 随着计算机科学技术的快速发展,计算机硬件设备和计算机图形学也在蓬勃发展,静态的图形图像已经很难再满足人们对高质量、优质的、动态的图形图像的巨大需求,因此近年来,计算机动画技术蓬勃发展,特别是一些美术设计人员,多是依靠计算机图形图像处理软件来进行艺术创作。计算机图形图像处理技术的快速发展,同时推动了艺术设计技术的应用和开发,例如,3DS Studio Max三维设计软件和Photoshop二维平面设计软件[2]。 可视化科学计算 近年来,我国社会主义市场经济快速发展,各个领域的信息通信越来越频繁,计算机网络技术的广泛应用和普及,使得计算机系统数据库中的信息量日益庞大,计算机数据处理和分析技术面临着严峻的考验。相关的技术操作人员利用计算机数据处理和分析软件,很难准确、快速地从计算机的数据库系统中检索出需要的信息数据,难以总结出数据信息的共性和特征。通过将计算机数据处理技术和计算机图形图像处理技术有效的结合起来,可以通过计算机图形图像技术将大量的复杂结构的信息数据进行归类,操作人员通过计算机数据处理软件可以对有共性特征和本质特征的数据信息进行快速检索,极大地提高了计算机数据处理和分析的效率。可视化的科学计算技术最早出现在美国的科学协会研讨中,目前,可视化的科学计算技术被广泛的应用在气象分析、流体力学、医学等领域中[3],特别是在医学领域,利用可视化的科学计算技术可以实现高精度的远程控制和操作,可以应用在远程的脑部手术中,突破医学难题。在未来的发展过程中,可视化的科学计算技术将会在更多的领域发挥更加重要的作用。 工业制造和设计 目前,计算机图形图像处理技术在工业制造和设计领域应用的最为广泛,特别是二维三维CAD和CAE等计算机图形图像处理软件,不仅在工业生产的产品制造和产品设计过程中,还有土木工程领域,甚至是集成电路、网络分析和电子线路等电子电工领域都有着广泛的应用。在高精度的工业制造和设计领域中,利用计算机图形图像处理软件,可以在很短的时间内完成高精度的图形图像设计和画图,极大地提高了技术人员的工作效率,同时,标准的计算机图形图像处理程序,提高了工业制造和设计的精确度,有效地降低了设计误差。由于工业产品多是批量化的制造和生产,利用计算机图形图像处理技术,可以极大地提高企业批量化的运行效率和生产质量,降低工业产品的质量检测投入成本,为工业企业带来了更大的经济效益。 3 结束语 计算机图形图像处理技术的广泛应用和快速发展,推动了多个领域的技术革新,充分发挥人们的想象和创造力,创造出很多独特新奇的图形图像效果,丰富人们的日常生活,同时也为企业节约了很多的图形图像处理成本,提高了产品竞争力。在未来的发展过程中,计算机图形图像处理技术的应用前景会更加广阔。 参考文献: [1]韩晓颖.浅谈计算机图形图像处理技术[J].福建电脑,2011(10):83-84. [2]和晓娟.计算机图形图像处理技术的探讨[J].信息与电脑(理论版),2013(11):164-165. [3]王应荣,王静漪.计算机图形图像处理技术[J].天津理工学院学报,2012(03):6-10. 作者简介:刘倩(1981-),女,满族,硕士,讲师,研究方向:图形图像处理与多媒体技术。 作者单位:宁夏大学 数学计算机学院,银川 750001最快的目标检测技术论文
图像检测最新论文