DEKR 解构式人体关键点回归(三):损失函数

前言

损失函数是一项工作里很重要的部分,它意在每个训练阶段告诉模型有多“犯傻”、离“正确答案”还有多远,然后基于损失反向传播回去使得各模型参数获得相应的梯度,于是模型就知道该如何纠正错误(当然,还要结合优化算法,由于不在本文内容之中,这里就不给它出场的机会了)。正是这样经历一系列迭代训练后,模型最终才能学习成长为“三好学生”。

上一期CW已向大家介绍了DEKR的标签分配方法,那么本期就接着来看看损失函数的设计吧!

目录

i, 分类损失

ii. 回归损失

分类损失

分类指的是区分每个位置是否是关键点(COCO中有17类)和虚拟中心点(代表人的中心点,具体意义可以回顾上期内容),对于COCO数据集来说,这里就会设置18个类别(17类+虚拟中心点1类)。类别对应到通道这个维度,于是,网络的输出是17张关键点热度图+1张虚拟中心点热度图,标签也是一样的形式,loss 使用的是加权的 L2 损失函数:

其中,H,C 分别代表预测的关键点和虚拟中心点热度图,带 [公式] 的是对应的标签,它们相减是 element-wise 的形式。 [公式] 代表掩膜(mask),用于为正负样本分配不同的权重:正样本1,负样本0.1(注意不是0)。 [公式] 的 shape 和 [公式] 一致,比如: [公式] 则有17个通道,每个通道对应一类关键点,而 [公式] 当然就只有1个通道了。 于是,[公式] 就是 element-wise product,每个元素一对一相乘。 

回归损失

网络回归的是虚拟中心点到关键点位置的 offset maps,对于COCO数据集来说,这个输出通道则为17x2=34,对应17类关键点的 x,y 坐标,标签也是同样的形式,虚拟中心点邻域的位置是正样本,loss 使用归一化的 Smooth-L1 损失:

 

其中, C 代表正样本位置集合, [公式] 代表网络预测的offset map,带 [公式] 表示对应的标签, [公式] 代表人物面积,实际是根据人物中关键点在 x, y 方向的最远距离 [公式] 来计算的: [公式] , [公式] 的 shape 和 [公式] 是一致的,这里的所有操作也是 element-wise 的。

最终的 loss 计算如下:

其中是分类和回归损失的 trade-off,默认设为0.03。

这部分内容没有太多可言,loss 也很常规,对于正样本不熟悉的可以再回顾下前一期的内容。

可以思考下的是,为何 heatmap (分类)部分要使用 L2 Loss? Cross Entropy,Focal Loss 会怎样呢?

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值