Git Product home page Git Product logo

Comments (8)

github-luffy avatar github-luffy commented on July 24, 2024

论文中有这样一段描述:
One may wonder that given predicted and ground-truth
landmarks, why not directly compute the Euler angles from
them? Technically, it is feasible. However, the landmark
prediction may be too inaccurate especially at the beginning
of training, which consequently results in a low-quality estimation of the angles. This could drag the training into
dilemmas, like over-penalization and slow convergence. To
decouple the estimation of rotation information from landmark localization, we bring the auxiliary subnet.
这里只解释了为什么不能用训练得到的landmarks去计算Eular角,但为什么不能直接用标注数据去计算Eular角呢?(用本身的标注数据去计算Eular角不会更准确吗?)

题主说的方法也是可以的,但是论文表示该子网络的输入并不是训练数据,而是PFLD主网络的中间输出,可见该网络的目的是监督和辅助训练收敛,在一定程度上是可以提升模型性能的。而且辅助网络在训练中用到,测试过程是不需要的,因此不必考虑模型速度受此影响。

from pfld_68points_pytorch.

wx19941204 avatar wx19941204 commented on July 24, 2024

在仔细读了论文和代码之后我发现我之前理解错了,但是现在对于这个损失函数的设计还有点疑问:
image
把Eular角加入到损失函数的计算中是为了平衡数据,也就是让姿态偏差较大(与正脸比较)的前脸图片所占的损失更大。那么为什么要用 AuxiliaryNet预测的Eular角 与 通过真实标注得到的Eular角 之差去计算这个权重,而不是直接用 通过真实标注得到的Eular角 去计算这个权重呢?
我觉得如果是为了增大姿态偏差较大的样本所计算出的损失函数,应该直接用 这个样本计算出的Eular角 去扩大权重,而不用加上 AuxiliaryNet预测的Eular角。

from pfld_68points_pytorch.

github-luffy avatar github-luffy commented on July 24, 2024

在仔细读了论文和代码之后我发现我之前理解错了,但是现在对于这个损失函数的设计还有点疑问:
image
把Eular角加入到损失函数的计算中是为了平衡数据,也就是让姿态偏差较大(与正脸比较)的前脸图片所占的损失更大。那么为什么要用 AuxiliaryNet预测的Eular角 与 通过真实标注得到的Eular角 之差去计算这个权重,而不是直接用 通过真实标注得到的Eular角 去计算这个权重呢?
我觉得如果是为了增大姿态偏差较大的样本所计算出的损失函数,应该直接用 这个样本计算出的Eular角 去扩大权重,而不用加上 AuxiliaryNet预测的Eular角。

个人理解:假设用通过真实标注得到的Eular角 去计算这个权重,那么模型一开始就会去偏向学习姿态偏差较大的图片,学习这些偏差较大的图片可能会导致模型难以收敛(毕竟模型可能会学习不到去表示这些困难样本的特征,除非增大样本集),正脸图片可能就会来不及去学习了;而通过 AuxiliaryNet预测的Eular角 与 通过真实标注得到的Eular角 之差去计算这个权重,模型是会慢慢学习所有的样本,随着偏差角的增加,模型会增加对姿态偏差较大的图片的惩罚,这样就促进了模型的收敛程度,提升了模型的性能。

from pfld_68points_pytorch.

wx19941204 avatar wx19941204 commented on July 24, 2024

我大概理解了,之后有机会会尝试一下直接用 通过真实标注得到的Eular角 去计算权重。
感谢解答~~

from pfld_68points_pytorch.

barbel-bb avatar barbel-bb commented on July 24, 2024

我想你们两个都理解错了,作者在论文中提到的这三个角度是真实值和预测值的偏差值。真实值就是用标注算的,预测是用辅助网络算的,他两差别越大,越需要加重训练。不是人脸越斜越加重训练。否则正脸loss都直接是0了,还学什么。我认为辅助网络一方面是一个新的辅助任务,学人脸姿态来提升关键点的性能。另外一方面因为辅助任务和主线任务都受到姿态分布不均的影响,用辅助任务的loss来加权主线任务的权重,代表了其实际学习的难易程度。

from pfld_68points_pytorch.

wx19941204 avatar wx19941204 commented on July 24, 2024

你是对的,不过有没有思考过为什么不能直接用网络预测的特征点去计算人脸欧拉角呢?

from pfld_68points_pytorch.

github-luffy avatar github-luffy commented on July 24, 2024

我想你们两个都理解错了,作者在论文中提到的这三个角度是真实值和预测值的偏差值。真实值就是用标注算的,预测是用辅助网络算的,他两差别越大,越需要加重训练。不是人脸越斜越加重训练。否则正脸loss都直接是0了,还学什么。我认为辅助网络一方面是一个新的辅助任务,学人脸姿态来提升关键点的性能。另外一方面因为辅助任务和主线任务都受到姿态分布不均的影响,用辅助任务的loss来加权主线任务的权重,代表了其实际学习的难易程度。

这样理解更加正确

from pfld_68points_pytorch.

barbel-bb avatar barbel-bb commented on July 24, 2024

用预测的关键点,作者说会在初期效果很差。我理解初期的关键点很随机,可能根本就算不出角度。比如预测的点全部共线,程序直接报错推出。或者都是些极端大的值没有实际的意义。 但为什么会over-penalization and slow convergence,可能你训练的时候试试能分析出原因,我还没想清楚。感觉作者也没有深究。另外作者用了decouple 这个词,很多网络设计会用到这个概念,解耦之后会更灵活,但为什么也不是很清楚。

from pfld_68points_pytorch.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.