源代码理解
固定3D关键点,2D投影关键点,求s, R, t
def _optimize_rigid_pos(self, scale, trans, rot_vector, lm_pos_3D, lm_pos)
scale: 标量
trans: 2维向量
rot_vector: 3维向量
lm_pos_3D: (68, 3)
lm_pos: (68, 2)
核心调用
from scipy.optimize import least_squares
result = least_squares(self._compute_res_rigid, params, verbose=0, x_scale='jac', ftol=1e-5, method='lm',
args=(lm_pos_3D, lm_pos))
参数说明
fun=self._compute_res_rigid,计算残差的function(返回y_pred - y_true),调用格式fun(未知量, 已知量1, 已知量2),具体使用什么损失函数还需要配合loss
x0=params,优化问题中的未知量的初始值(initial guess)
verbose=0
x_scale='jac'
ftol=1e-5
method='lm'
args=(lm_pos_3D, lm_pos),优化问题中的已知量