掩码损失将每个像素视为一个对象,并计算相关的BCE值。在图5中计算了一个3x3的预测掩码和相应的掩码损失。 总损失 # yolo/cfg/default.yaml ... box: 7.5 # box loss gain cls: 0.5 # cls loss gain (scale with pixels) dfl: 1.5 # dfl loss gain pose: 12.0 # pose loss gain kobj: 1.0 # keyp...
YOLOv8采用了TAL(Task Alignment Learning)任务对齐分配技术(正负样本分配),并引入了DFL(Distribution Focal Loss)结合CIoU Loss做回归分支的损失函数,使用BCE做分类损失,使得分类和回归任务之间具有较高的对齐一致性。 2. TAL TAL一般用在decoupled head网络中,用于将不同的任务进行对齐。典型的,用来解决分类与回归cel...
其中DFL损失函数的定义如下,通俗来讲就是训练的过程中,目标的边界框不应该是一个确定的数值,目标的边界框应该是一个分布,比如对于浪花这个物体而言,他的边界就是不清晰的,通过这样的损失函数可以减少网络在训练过程中出现的过拟合的现象。 image-20240816235150126 其中,DFL实现的代码如下: ``python def distribution_f...
除了分类任务外,IoU损失在YOLOv8中的所有其他任务中都会应用。 分布焦点损失(DFL) 复制 def_df_loss(pred_dist,target):"""Return sum of left and right DFL losses."""# Distribution FocalLoss(DFL)proposedinGeneralized Focal Loss https://ieeexplore.ieee.org/document/9792391tl=target.long()# target ...
target_bboxes[bx8400x4](target_bboxes需要缩放到特征图尺度,即除以相应的stride),在计算损失时,分别与预测的pred_bboxes计算CiouLoss, 同时与pred_regs(预测的anchors中心点到各边的距离)计算回归DFL Loss。 c. 训练mask值:fg_mask[bx8400],对8400个anchor进行正负样本标记,计算损失过程中通过fg_mask筛选正负...
损失函数设计 Loss 计算包括 2 个分支: 分类和回归分支,没有了之前的 objectness 分支。 分类分支依然采用 BCE Loss。回归分支使用了 Distribution Focal Loss(DFL Reg_max默认为16)+ CIoU Loss。3 个 Loss 采用一定权重比例加权即可(默认如下:https://github.com/ultralytics/ultralytics/blob/main/ultralytics...
Loss计算在YOLOv8中发生了显著变化,摒弃了传统的objectness分支,而仅保留了分类和回归两个分支。对于分类任务,YOLOv8采用了VFL Loss(Varifocal Loss),这种损失函数深受Focal Loss的启发。Focal Loss的提出正是为了应对密集目标检测器训练时,前景类与背景类之间严重的不平衡问题。同时,回归任务则采用了DFL Loss和...
DFL 模块的这种设计允许它作为一个损失函数的组成部分,用于训练过程中的优化。通过这种方式,DFL 有助于提高目标检测模型在处理不平衡数据和边界框不确定性方面的能力。 2. Proto Proto的原理和作用 Proto 是 YOLOv8 中用于分割模型的一个组件,它代表“Prototype”(原型)。在分割任务中,Proto 模块用于生成分割掩码,...
在损失函数上,YOLOv8引入了DFL(Distribution Focal Loss),这是一种新的损失函数,它注重于改善模型对于各种难易程度目标的识别能力,尤其是对于小目标和模糊目标。DFL通过调整损失权重,使得模型在训练过程中更加关注那些难以检测和分类的实例。 总体来说,YOLOv8的设计集成了多项前沿技术,其创新点在于优化了特征提取网络...