Структура из движения из нескольких представлений с MATLAB

Я новичок, когда дело доходит до темы «Структура из движения». Я пытался следовать руководству здесь, на веб-странице MathWorks для SFM: ССЫЛКА.

Однако после запуска кода я получаю это сообщение об ошибке:

Warning: Maximum number of trials reached. Consider increasing the maximum
distance or decreasing the desired confidence. 
> In vision.internal.ransac.msac (line 136)
  In estimateEssentialMatrix (line 161)
  In helperEstimateRelativePose (line 43)
  In PERFORM_SFM (line 70) 
Error using helperEstimateRelativePose (line 70)
Unable to compute the Essential matrix

Error in PERFORM_SFM (line 70)
    [relativeOrient, relativeLoc, inlierIdx] = helperEstimateRelativePose(...

Может ли кто-нибудь помочь мне понять, почему это происходит? Может ли кто-нибудь предложить мне другой подход?


person troymyname00    schedule 07.02.2017    source источник
comment
Рассматривали ли вы возможность увеличения максимального расстояния или уменьшения желаемой достоверности?   -  person Ander Biguri    schedule 07.02.2017
comment
Я не уверен, как это сделать, поэтому и вопрос... :)   -  person troymyname00    schedule 08.02.2017
comment
@troymyname00 тот же учебник и ошибка :-) ты понял, как это решить?   -  person Incanus    schedule 17.05.2017
comment
Нет... я этого не делал. Я переключился на Python и нашел инструмент с открытым исходным кодом, который легко выполняет SFM.   -  person troymyname00    schedule 18.05.2017


Ответы (2)


Мне только что удалось решить эту же ошибку. В моем случае, кажется, я использовал слишком много изображений, поэтому результирующая система уравнений была переопределена, и, следовательно, матрица не могла быть вычислена. Я только что протестировал несколько изображений, похожих на пример (6 в моем случае) и достаточное движение камеры от кадра к кадру, и все работает как надо.

Надеюсь это поможет.

person Victor Medina    schedule 20.10.2017

Как сказал @Ander Biguri, рассмотрите возможность увеличения максимального расстояния или уменьшения желаемой уверенности. Это можно сделать, изменив встроенную функцию Matlab helperEstimateRelativePose.m: строка 43. Затем вы можете добавить столько изображений, сколько хотите. После модификации это должно выглядеть так:

 [E, inlierIdx] = estimateEssentialMatrix(matchedPoints1, matchedPoints2,...
    cameraParams, 'Confidence', 50, 'MaxDistance', 5);

Но будьте осторожны при редактировании встроенных функций. В моем случае я изменил функцию и сохранил ее в другую папку под другим именем и добавил эту папку в путь. Я надеюсь, что это поможет кому-то.

person jHz    schedule 20.09.2018