Adaloss: 用于关键点定位的自适应损失函数

2024-06-21 08:18

本文主要是介绍Adaloss: 用于关键点定位的自适应损失函数,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”


作者:Jae Duk Seo

编译:ronghuaiyang

导读

逐步的增加训练的难度,让模型越来越准确。

这里给大家介绍关键点定位的另一个损失函数,但现在我们使用的是热图,我们使用2D概率图。(但这种损失有点特殊,因为它会自适应ground truth数据,并进行梯度控制)。

因此,某些损失的值会更集中,如中小损失。

对于任何与计算机视觉相关的任务,如果我们需要检测关键点的话,通常准确的预测这些关键点是很难的。

这个方法能给出令人印象深刻的结果,非常的准确。大多数现有的深度学习方法都是输出坐标或热图。

首先,对二维高斯分布进行展开,但随着训练的进行,它会变得更加精确,这很好,因为网络正在处理一个更困难的问题。首先,我们将使用较大的方差,因此训练可以更容易地进行,然而,随着训练的进行,我们将变得更精确。

本文的特别之处在于,他们创建了一个基于自适应损失函数的应用,这是非常有趣的。模型需要更少的迭代就能收敛了,这是很好的优点。

他们在不同的应用上尝试了他们的方法,希望能够向所有人展示令人印象深刻的结果。热力图更好?在添加了跳跃连接和FCN之后似乎是这样的。有些工作是与视频相关的,有些工作甚至是使用GANs创建一个新的数据集,这是一项艰巨的任务。

他们使用的是热力图的回归方法,他们的损失函数是专门创建的,在创建损失函数之前考虑优化器。这是一种创造自适应损失函数的有趣方法,我们需要设置一些超参数,并根据这些值改变梯度,而不是调整优化器。

如上图所示,损失值在变小,这是因为Adaloss能够适应当前的误差损失值,使事情变得更加困难,从而获得更好的精度。

他们使用了不同的数据集 —— 医学图像和cat图像。

Adaloss真的很好,更好的收敛性。而且距离变得更精确了。

损失值变得更小了,模型也更精确了。

在这里我们可以看到,高斯分布的标准差变小了,并且在收敛时并没有减小。

哇,这是非常好的特点,在做人脸关键点检测的时候,我们能够为某些部位设置特定的σ值,这样就可以专注于人脸的特定部位。

眉毛和下巴的轮廓很难预测,因为它们可能被遮住了,或者因为那里的角点没有显示出来。

我们可以观察到作者的方法给出了很多稳定的结果,将这种方法用于不同的应用,如医疗手术,是另一个伟大的应用。

他们能够提高结果的状态 —— 这要归功于创建了一个新的损失函数,在这个函数中,随着训练的继续,问题会变得更加困难(梯度控制)。

—END—

英文原文:https://medium.com/@SeoJaeDuk/adaloss-adaptive-loss-function-for-landmark-localization-13315f9943d3

请长按或扫描二维码关注本公众号

喜欢的话,请给我个在看吧

这篇关于Adaloss: 用于关键点定位的自适应损失函数的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1080688

相关文章

无人叉车3d激光slam多房间建图定位异常处理方案-墙体画线地图切分方案

墙体画线地图切分方案 针对问题:墙体两侧特征混淆误匹配,导致建图和定位偏差,表现为过门跳变、外月台走歪等 ·解决思路:预期的根治方案IGICP需要较长时间完成上线,先使用切分地图的工程化方案,即墙体两侧切分为不同地图,在某一侧只使用该侧地图进行定位 方案思路 切分原理:切分地图基于关键帧位置,而非点云。 理论基础:光照是直线的,一帧点云必定只能照射到墙的一侧,无法同时照到两侧实践考虑:关

hdu1171(母函数或多重背包)

题意:把物品分成两份,使得价值最接近 可以用背包,或者是母函数来解,母函数(1 + x^v+x^2v+.....+x^num*v)(1 + x^v+x^2v+.....+x^num*v)(1 + x^v+x^2v+.....+x^num*v) 其中指数为价值,每一项的数目为(该物品数+1)个 代码如下: #include<iostream>#include<algorithm>

C++操作符重载实例(独立函数)

C++操作符重载实例,我们把坐标值CVector的加法进行重载,计算c3=c1+c2时,也就是计算x3=x1+x2,y3=y1+y2,今天我们以独立函数的方式重载操作符+(加号),以下是C++代码: c1802.cpp源代码: D:\YcjWork\CppTour>vim c1802.cpp #include <iostream>using namespace std;/*** 以独立函数

函数式编程思想

我们经常会用到各种各样的编程思想,例如面向过程、面向对象。不过笔者在该博客简单介绍一下函数式编程思想. 如果对函数式编程思想进行概括,就是f(x) = na(x) , y=uf(x)…至于其他的编程思想,可能是y=a(x)+b(x)+c(x)…,也有可能是y=f(x)=f(x)/a + f(x)/b+f(x)/c… 面向过程的指令式编程 面向过程,简单理解就是y=a(x)+b(x)+c(x)

利用matlab bar函数绘制较为复杂的柱状图,并在图中进行适当标注

示例代码和结果如下:小疑问:如何自动选择合适的坐标位置对柱状图的数值大小进行标注?😂 clear; close all;x = 1:3;aa=[28.6321521955954 26.2453660695847 21.69102348512086.93747104431360 6.25442246899816 3.342835958564245.51365061796319 4.87

OpenCV结构分析与形状描述符(11)椭圆拟合函数fitEllipse()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C++11 算法描述 围绕一组2D点拟合一个椭圆。 该函数计算出一个椭圆,该椭圆在最小二乘意义上最好地拟合一组2D点。它返回一个内切椭圆的旋转矩形。使用了由[90]描述的第一个算法。开发者应该注意,由于数据点靠近包含的 Mat 元素的边界,返回的椭圆/旋转矩形数据

Unity3D 运动之Move函数和translate

CharacterController.Move 移动 function Move (motion : Vector3) : CollisionFlags Description描述 A more complex move function taking absolute movement deltas. 一个更加复杂的运动函数,每次都绝对运动。 Attempts to

SigLIP——采用sigmoid损失的图文预训练方式

SigLIP——采用sigmoid损失的图文预训练方式 FesianXu 20240825 at Wechat Search Team 前言 CLIP中的infoNCE损失是一种对比性损失,在SigLIP这个工作中,作者提出采用非对比性的sigmoid损失,能够更高效地进行图文预训练,本文进行介绍。如有谬误请见谅并联系指出,本文遵守CC 4.0 BY-SA版权协议,转载请联系作者并注

js定位navigator.geolocation

一、简介   html5为window.navigator提供了geolocation属性,用于获取基于浏览器的当前用户地理位置。   window.navigator.geolocation提供了3个方法分别是: void getCurrentPosition(onSuccess,onError,options);//获取用户当前位置int watchCurrentPosition(

✨机器学习笔记(二)—— 线性回归、代价函数、梯度下降

1️⃣线性回归(linear regression) f w , b ( x ) = w x + b f_{w,b}(x) = wx + b fw,b​(x)=wx+b 🎈A linear regression model predicting house prices: 如图是机器学习通过监督学习运用线性回归模型来预测房价的例子,当房屋大小为1250 f e e t 2 feet^