polarisZhao / PFLD-pytorch

PFLD pytorch Implementation
808 stars 198 forks source link

calculate_pitch_yaw_roll #7

Closed jiangtaoo2333 closed 5 years ago

jiangtaoo2333 commented 5 years ago

so damn hard to understand.... 能分享一下资料么,这个函数好难懂...

jiangtaoo2333 commented 5 years ago

测试效果有点差啊。。。

polarisZhao commented 5 years ago

这个文件最主要的就是一个solvepnp函数, 你可以去查找一下“三维位姿估计”或者“人脸姿态估计”,应该可以找到相关的资料。另外,这种方法其实估计不是很准确,去掉这个辅助分支网络,对精度影响也不大。

polarisZhao commented 5 years ago

测试效果有点差啊。。。

嗯呢,人脸离摄像头远一点看起来效果可能好点。

jiangtaoo2333 commented 5 years ago

@polarisZhao 我看您的setpreparation主要参照了tensorflow版本的实现,但是做了一些修改,比如:euler_angles_landmark.append([landmark[index][0]img.shape[0],landmark[index][1]img.shape[1]]) pitch, yaw, roll = calculate_pitch_yaw_roll(euler_angles_landmark[0],self.image_size,self.image_size)。这两个函数,参数比tensorflow少了一部分,但是我感觉这个参数应该不能少吧,然后我又给加回来了,结果train又出现bug,提示维度错误。您当时是怎么考虑这几个参数的呢?

jiangtaoo2333 commented 5 years ago

Bug是我自己的问题,修改好了。 这个算法效果差的简直想吐,稍微一侧脸就gg,正脸效果也不怎么样,效果类似只使用shufflenet拟合特征点,PFLDLoss的实现方法也看不出来问题。感觉是2D转3D,计算角度那里精度不够。。。

polarisZhao commented 5 years ago

是的,但是按照原论文的方法说的就是用这种利用landmark估计角度。我们测试过,去掉这个辅助网络,其实landmark效果差不多

zhanglaplace commented 4 years ago

估算roll yaw pitch时候,输入的图像一定需要256x256吗,如果是其他的size。估算会不会不准确。