来源:天津大学 论文名称:Distance-IoU Loss: Faster and Better Learning for Bounding BoxRegression 原文作者:Zhaohui Zheng...本文提出了一个Distance-IoU (DIoU) loss,合并了预测框和目标框之间的标准化距离,在训练中比IoU和GIoU loss收敛得更快。...此外,本文还总结了边界盒回归中的三个几何因素(重叠面积、中心点距离和纵横比),并以此为基础提出了一个Complete IoU(CIoU)损失,从而加快了收敛速度,提高了性能。...通过将DIoU和CIoU损失合并到YOLOv3、SSD和Faster RCNN等最新的目标检测算法,在IoU度量方面和GIoU度量方面实现了显著的性能提高。
进入正题~categorical_crossentropy loss(交叉熵损失函数)讲交叉熵损失函数,我想先从均方差损失函数讲起 均方差损失函数 简单来说,均方误差(MSE)的含义是求一个batch中...那么 loss=−(1∗log(0.8)+0∗log(0.2))=−log(0.8)。...Hinge loss 在网上也有人把hinge loss称为铰链损失函数,它可用于“最大间隔(max-margin)”分类,其最著名的应用是作为SVM的损失函数。 ? 二分类情况下 ?...hinge loss: 栗子②△取10 ?
最近在工作中也是碰到这个问题,花了些时间梳理并实践了类别不均衡问题的解决方式,主要实践了“魔改”loss(focal loss, GHM loss, dice loss 等),整理如下。...因此,就集中看下重加权 loss 改进的部分。 2. 模型层面的重加权 重加权主要指的是在 loss 计算阶段,通过设计 loss,调整类别的权值对 loss 的贡献。...比较经典的 loss 改进应该是 Focal Loss, GHM Loss, Dice Loss。...在交叉熵 loss 基础上,当正样本预测值 大于 0.5 时,需要给它的 loss 一个小的权重值 ,使其对总 loss 影响小,反之正样本预测值 小于 0.5,给它的 loss 一个大的权重值。...& DSC Loss Dice Loss 是来自文章 V-Net 提出的,DSC Loss 是香侬科技的 Dice Loss for Data-imbalanced NLP Tasks。
新框架 作者定义了本文提出的基于DIoU、CIoU损失函数如下: ? 其中 ? 表示预测框 ? 和 ? 间的惩罚项。 Distance-IoU Loss ?...基于此,作者提出了Complete-IoU Loss。其损失函数定义如下: ? 上述损失函数为CIoU的损失,通过公式可以很直观的看出,CIoU比DIoU多出了 ? 和 ? 这两个参数。...最后,CIoU loss的梯度类似于DIoU loss,但还要考虑 ? 的梯度。w,h取值范围[0,1]的情况下, ? 的值通常很小,会导致梯度爆炸,因此在实现时将 ? 替换成1。...基于IoU指标,在SSD-FPN上进行实验对比,因为本身模型已经精度很好了,DIoU loss和CIoU的效果不是很显著,但仍有提升。...总结 论文提出了两种新的IoU-based损失函数,DIoU loss和CIoU loss:DIoU loss最小化bbox间的中心点距离,从而使得函数快速收敛;CIoU loss则在DIoU loss
基于此,作者提出了Complete-IoU Loss。其损失函数定义如下: 上述损失函数为CIoU的损失,通过公式可以很直观的看出,CIoU比DIoU多出了 和 这两个参数。...由 定义可以看出来,损失函数会更加倾向于往重叠区域增多方向优化: 最后,CIoU loss的梯度类似于DIoU loss,但还要考虑 的梯度。...实验结果 在YOLOv3上进行实验对比,DIoU loss和CIoU的效果都很显著,mAP分别提升3.29%和5.67%,而AP75则分别提升6.40%和8.43%,而使用DIoU-NMS则能进一步提升...上图对GIoU和CIoU的结果进行了可视化,可以看到,在中大型物体检测上,CIoU的结果比GIoU要准确。...总结 论文提出了两种新的IoU-based损失函数,DIoU loss和CIoU loss:DIoU loss最小化bbox间的中心点距离,从而使得函数快速收敛;CIoU loss则在DIoU loss
Contrastive Loss 在传统的siamese network中一般使用Contrastive Loss作为损失函数,这种损失函数可以有效的处理孪生神经网络中的paired data的关系。...siamese network-孪生神经网络 contrastive loss的表达式如下: ?...# tensorflow伪代码 def contrastive_loss(self, y,d,batch_size): tmp= y *tf.square(d) #tmp= tf.mul...观察上述的contrastive loss的表达式可以发现,这种损失函数可以很好的表达成对样本的匹配程度,也能够很好用于训练提取特征的模型。当y=1(即样本相似)时,损失函数只剩下 ?...与欧式距离之间的关系,因为欧式距离越大与"两个文本相似"这个事实事与愿违,那么我们就对它们惩罚越大(即loss越大)。
论文提出了IoU-based的DIoU loss和CIoU loss,以及建议使用DIoU-NMS替换经典的NMS方法,充分地利用IoU的特性进行优化。...最后,CIoU loss的梯度类似于DIoU loss,但还要考虑的梯度。...在SSD-FPN上进行实验对比,因为本身模型已经精度很好了,DIoU loss和CIoU的效果不是很显著,但仍有提升。...如图9所示,DIoU-NMS的整体性能都比原生的NMS效果要好 Conclusion ---- 论文提出了两种新的IoU-based损失函数,DIoU loss和CIoU loss:DIoU loss...最小化bbox间的中心点距离,从而使得函数快速收敛;CIoU loss则在DIoU loss的基础上加入长宽比的考量,能够进一步地快速收敛和提升性能。
(3)DIOU DIOU和CIOU都出自论文《Distance-IoU Loss: Faster and Better Learning for Bounding Box Regression》(https...= 2.0 - 1.0 * label_xywh[:, :, :, :, 2:3] * label_xywh[:, :, :, :, 3:4] / (input_size ** 2) ciou_loss...= respond_bbox * bbox_loss_scale * (1 - ciou) # 1. respond_bbox作为mask,有物体才计算xxxiou_loss (2)置信度损失...(论文里称之为ignore) 最后对上述的三个损失取个平均即可,如下 ciou_loss = tf.reduce_mean(tf.reduce_sum(ciou_loss, axis=[1, 2,...3, 4])) # 每个样本单独计算自己的ciou_loss,再求平均值 conf_loss = tf.reduce_mean(tf.reduce_sum(conf_loss, axis=[1
The hinge loss is used for "maximum-margin" classification, most notably for support vector machines...For an intended output t = ±1 and a classifier score y(raw score), the hinge loss of the prediction y...that when t and y have the same sign (meaning y predicts the right class) and |y| \ge 1, the hinge loss...ml-hinge-loss
论文提出了IoU-based的DIoU loss和CIoU loss,以及建议使用DIoU-NMS替换经典的NMS方法,充分地利用IoU的特性进行优化。...另外,论文考虑bbox的三要素,重叠区域,中心点距离和长宽比,进一步提出了Complete IoU(CIoU) loss,收敛更快,效果更好 Analysis to IoU and GIoU Losses...VOC [1240] 在SSD-FPN上进行实验对比,因为本身模型已经精度很好了,DIoU loss和CIoU的效果不是很显著,但仍有提升。...如图9所示,DIoU-NMS的整体性能都比原生的NMS效果要好 Conclusion *** 论文提出了两种新的IoU-based损失函数,DIoU loss和CIoU loss:DIoU loss...最小化bbox间的中心点距离,从而使得函数快速收敛;CIoU loss则在DIoU loss的基础上加入长宽比的考量,能够进一步地快速收敛和提升性能。
CIoU loss,以及建议使用DIoU-NMS替换经典的NMS方法,充分地利用IoU的特性进行优化。...另外,论文考虑bbox的三要素,重叠区域,中心点距离和长宽比,进一步提出了Complete IoU(CIoU) loss,收敛更快,效果更好。...2、Complete IoU loss 论文考虑到bbox回归三要素中的长宽比还没被考虑到计算中,因此,进一步在DIoU的基础上提出了CIoU。...最后,CIoU loss的梯度类似于DIoU loss,但还要考虑的梯度。在长宽在的情况下,的值通常很小,会导致梯度爆炸,因此在实现时将替换成1。...五、总结 论文提出了两种新的IoU-based损失函数,DIoU loss和CIoU loss:DIoU loss最小化bbox间的中心点距离,从而使得函数快速收敛;CIoU loss则在DIoU loss
Huber Loss 是一个用于回归问题的带参损失函数, 优点是能增强平方误差损失函数(MSE, mean square error)对离群点的鲁棒性。...Huber Loss 定义如下?...参数 a 通常表示 residuals,写作 ,当 时,Huber loss 定义为: 是 的参数, 是真实值
CIoU Loss 为了回答第二个问题,作者提出了Complete-IoU Loss。一个好的目标框回归损失应该考虑三个重要的几何因素:重叠面积,中心点距离,长宽比。...基于这一点,论文提出了CIoU Loss。 ? 从上面的损失可以看到,CIoU比DIoU多了和这两个参数。其中是用来平衡比例的系数,是用来衡量Anchor框和目标框之间的比例一致性。...CIoU类似。 实验结论 Table1给出了分别在YOLOv3上使用IoU Loss,GIoU Loss,DIoU Loss, CIoU Loss获得的AP值。...可以看到CIoU Loss涨了快3个点,证明了这种Loss的有效性。遗憾的是论文没有给出其他的对比数据了,究竟有没有用欢迎大家去试,个人认为这种带有工程性Trick的论文是最值得去尝试的。 ?...和CIoU Loss就介绍到这里了,希望对大家目标检测升点有帮助。
标签平滑(Label Smoothing) 边界框回归的损失函数 IOU Loss GIOU Loss DIOU Loss CIOU Loss Bag of specials 增强感受野 SPP ASPP...(2020)->CIoU Loss(2020) 我们从最常用的IOU_Loss开始,进行对比拆解分析,看下Yolov4为啥要选择CIOU_Loss。...DIOU Loss 和 CIOU Loss 好的目标框回归函数应该考虑三个重要几何因素:重叠面积、中心点距离,长宽比。...CIOU Loss的性能要比DIOU Loss好,那为什么不用CIOU_nms,而用DIOU_nms?...因为CIOU_loss,是在DIOU_loss的基础上,添加了一个的影响因子,包含groundtruth标注框的信息,在训练时用于回归。
Huber Loss 是一个用于回归问题的带参损失函数, 优点是能增强平方误差损失函数(MSE, mean square error)对离群点的鲁棒性。...Huber Loss 定义如下??参数 a 通常表示 residuals,写作 y−f(x),当 a = y−f(x) 时,Huber loss 定义为:?...δ 是 HuberLoss 的参数,y是真实值,f(x)是模型的预测值, 且由定义可知 Huber Loss 处处可导。各位看官老爷,如果觉得对您有用麻烦赏个子,创作不易,0.1元就行了。
print('1111',loss) print('2222',loss.data)#tensor且GPU print('3333',loss.cpu()) print('4444',loss.cpu(...).data)#tensor且CPU # print('5555',loss.cpu().data[0])#报错 IndexError: invalid index of a 0-dim tensor....Use tensor.item() to convert a 0-dim tensor to a Python number # print('6666',loss.cpu().numpy())#报错...Use var.detach().numpy() instead. print('7777',loss.cpu().detach().numpy()) print('8888',loss.cpu().data.numpy...()) print('9999',loss.cpu().item()) print('aaaa',loss.item())#后四者一样,都是把数值取出来 结果:
1) 两个分布很接近,但是与0和1不接近,loss仍然很大,只适合分类 2)mse只计算两个差异,做回归用的,数据相同,bceloss比mseloss大。...3)SmoothL1Loss比mseloss小 4) bceloss收敛比较快 5)bceloss input必须是0-1之间,targets可以不是 6)target 是0.5 input 是0.4与...0.6,loss无正负之分,只有大小之分。...('self',x) x= loss_fn(conf_data, conf_mask).item() print('mse',x) loss_fn = torch.nn.BCELoss() # reduce...=False, size_average=False) x = loss_fn(conf_data, conf_data).item() print('self',x) x = loss_fn(conf_data
很简单,调整损失函数即可,这里主要借鉴了hinge loss和triplet loss的思想。...这一节我们试着理解为什么Focal Loss有效,下图展示了不同\gamma值下Focal Loss曲线。特别地,当\gamma=0时,其形式就是CrossEntropy Loss ?...中 (1-pt)**γ loss = torch.mul(alpha, loss.t()) if self.size_average: loss...= loss.mean() else: loss = loss.sum() return loss y_pred = torch.randn...focal loss理解与初始化偏置b设置解释 使用focal loss训练数据不平衡的模型
图像的超分辨率也用了perceptual loss 图像超分辨率的loss 原代价函数使重建结果有较高的信噪比PSNR,但是缺少了高频信息,出现过度平滑的纹理。...图像分割转移也用了perceptual loss,注意看蓝线加黑线呦,她就是内容损失,而且它作用在较低层特征层上的。然后同样看红线和黑线,她就是风格损失,他是作用在从低到高所有特征层上。...图像风格转移元老级文章 perceptual loss是是如何做的? ...转移网络内容的特征重建loss,φj(y)是y的第j层输出特征层 转移网络风格的特征重建loss,φj(x)是x的第j层输出特征层 损失网络有什么优点? ...为什么用perceptual loss收敛速度快? 回传导数时,相比于MSE对pixel与pixel之间的差异, 回传分布更具有普适性。
框回归可以分为两大类,基于x,y,w,h的回归(比如Faster R-CNN、YOLO、RetinaNet里框回归的loss),基于IoU的回归(比如IoU loss、GIoU loss、DIoU loss...、CIoU loss)。...GIoU loss关注了1,DIoU loss关注了2,CIoU loss关注了2和3。 GIoU loss缓解了IoU loss在预测框和GT框之间IoU为0,梯度为0的问题。...实验中GIoU收敛比较慢,DIoU缓解了GIoU这个问题;CIoU基于DIoU,添加了一个关于长宽比的惩罚项。...提出来之后,后续大家打了一个接一个的补丁(比如GIoU、DIoU、CIoU),甚至PP-YOLO发现把基于x、y、w、h的回归和基于IoU的回归结合起来效果更好。
领取专属 10元无门槛券
手把手带您无忧上云