【发布时间】:2018-11-24 11:34:27
【问题描述】:
graphical representation of my pipeline
我正在尝试对从视频源中捕获的人脸进行姿势估计。 我使用tracking.js 的面部对齐算法。 这给了我一些分数,然后我用这些分数来尝试估计我的脸在相机空间中的位置。
由于人脸是非刚性物体,角度问题可能会修改图像上的对齐点,我使用参数化的 3D 点列表,然后将其投影到平面上以获取相应的 2D 点列表。
然后我做一个点到点的平方距离来计算一个错误率,然后我尝试将其最小化。
我正在使用FMIN.js 的共轭梯度算法来最小化错误率。
但大多数时候,算法似乎由于零值而卡在 wolfe 线性部分。是因为使用了finite differential gradient吗?
我做错了吗?
我对优化算法很陌生,我不确定我是否正在做一切正确的工作。我的值往往很高(~ 80k),这导致我的渐变也很大。我尝试进行规范化过程(使用第一个错误作为规范),但并没有变得更好。
现在对于有限差分梯度计算,我使用的是遇到值中的一个小值。
我还将旋转梯度限制为 Pi/2,因为我认为太大的值会导致算法超出步长,超出角度范围。
【问题讨论】:
标签: javascript algorithm machine-learning gradient-descent