Для оценки аффинного преобразования между двумя наборами 3D точек, где были установлены соответствующие пары точек, я использую разложение на одно значение корреляционной матрицы, рассчитанной так (псевдокод):ICP вес точечных соответствий
vector3 fixed_center = (0, 0, 0)
vector3 loose_center = (0, 0, 0)
n = 0
foreach (fixed_pt, loose_pt) in correspondences
fixed_center += fixed_pt
loose_center += loose_pt
n++
fixed_center /= n
loose_center /= n
matrix3x3 correlation = ((0,0,0), (0,0,0), (0,0,0))
foreach (fixed_pt, loose_pt) in correspondences
correlation += (fixed_pt - fixed_center) * (loose_pt - loose_center)
Если веса присваиваются соответствию, как должна вычисляться матрица корреляции? Нужно ли нормализовать веса, и нужно ли их включать в расчет центров?