Ошибка Сэмпсона для пятизначной оценки существенной матрицы

Я использовал 5-точечный метод Нистера, чтобы вычислить основную матрицу. Дальнейшее улучшение отклонения выбросов с использованием RANSAC и Sampson Error Threshold. Я случайным образом выбираю наборы из 5 точек, оцениваю основную матрицу и оцениваю ошибку Сэмпсона для вектора совпадений. Координаты точек, у которых ошибка Сэмпсона ниже порогового значения t (в примере, который мне принадлежит, задается равным 0,01), задаются в виде значений. Процесс повторяется для всех существенных матриц, и мы сохраняем тот, который имеет лучший результат среди вкладышей.

Я заметил, что большинство значений d, вектор ошибок сэмпсона слишком велики: например, если размер d равен (1x1437), если я делаю g=find(abs(d)>0.01); Длина (г)

тогда длина (g)=1425, что означает, что только 7 значений являются отклонениями с этим порогом, который не является правильным!

Как установить порог? как интерпретировать значения ошибки Сэмпсона?

Помоги мне, пожалуйста. Спасибо

3 ответа

Решение

Расстояние Сэмпсона является приближением первого порядка геометрического расстояния. Это можно понять следующим образом:

Учитывая Фундаментальную матрицу F и пару соответствия (x,x'), такую ​​что x'Fx=e, каково расстояние / ошибка этой пары соответствия? Геометрическое расстояние определяется для всех соответствий (y,y'), таких что y'Fy=0, минимальное значение ||xy||^2+||x'-y'||^2 (другими словами, самая близкая пара соответствия к (x,x'), которая точно удовлетворяет F-матрице). И можно показать, что ошибка Сэмпсона является первым приближением этого минимального расстояния.

Интуитивно понятно, что ошибку Сэмпсона можно приблизительно представить как квадратное расстояние между точкой x до соответствующей эпиполярной линии x'F. И в этом контексте порог 0,01 слишком мал (вы редко находите фундаментальную матрицу, такую, чтобы все соответствия были в пределах точности 0,1 пикселя). Предлагаемый порог будет где-то между 1 и 10 (ошибка 1~3 пикселя), в зависимости от размера / разрешения / качества ваших пар изображений.

0,01 слишком маленький порог. В качестве последнего ответа, от 1 до 10 лучше.

x и x 'с использованием ошибки семпсона означает, что они не находятся на каждой эпиполярной линии, нам нужно вычислить эту ошибку для обеих двух точек.

Если вы исправите x, используйте F и x для вычисления линии на втором изображении (x'на этом изображении), тогда вы можете вычислить расстояние от точки до линии (x' до эпиполярной линии). Это означает, что вы думаете, что точка x правильная, прямо на ее линии.

Это два пути разные.

0,01 не слишком мало, если вы имеете дело с нормализованными камерами, то есть вы умножили свои координаты пикселей на обратную матрицу внутренних параметров.

Другие вопросы по тегам