1

Что делает MATLAB's estimateUncalibratedRectification в математическом/геометрическом терминах?Что делает оценка MATLABUncalibratedRectification математически выраженной? Что он точно вычисляет?

Что именно это вычислит?

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

Итак, насколько я понимаю, результат estimateUncalibratedRectification «s должен быть неоднозначным до какого-то преобразования T, поскольку фундаментальная матрица - которая может быть вычислена из двух изображений, если внутренние параметры фотокамеры не известны - неоднозначна вплоть до произвольного проективного преобразования.

Это правильно?

Моя догадаться, что estimateUncalibratedRectification вычисляет проективное преобразование P1 для image1 и другое проективное преобразование P2 для image2 таким образом, что при использовании этих двух преобразований (P1 и P2) на соответствующих изображений, то полученные изображения (R1 и R2) будут исправлены в том смысле, что соответствующие эпиполярные линии будут в тех же строках, что показаны на изображении ниже.

enter image description here

Мой вопрос: как неоднозначный этот результат? Я чувствую, что полученные преобразования P1 и P2 неоднозначны до некоторой трансформации T, но я действительно не вижу, что это такое T.

Может кто-нибудь объяснить, как estimateUncalibratedRectification работает концептуально/математически/геометрически, а также сообщить, что такое T?

Других слов, , что это преобразованиеT, который при нанесении на R1 и R2 приведет к паре изображения TR1 и TR2, которые будут иметь такое же выпрямленное свойство как R1 и R2, а именно, что соответствующие эпиполярные линии появляются в совпадающие строки в TR1 и TR2, как и в R1 и R2?

Что это такое T? Есть ли такой T?

PS .: Я прочитал код estimateUncalibratedRectification.m, прежде чем публиковать этот вопрос, но это не помогло мне.

+2

Я практически не использовал этот подход на практике, но вы можете прочитать теоретический фон в приведенной ниже статье: _Hartley, R.I., Theory and Practice of Projective Rectification. IJCV 35 2, pp. 115-127 (1999) _ [PDF] (http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.6.1107&rep=rep1&type=pdf) – Kornel

+0

Я снова и думаю о том, что функция выводит не преобразования выпрямления в пространстве объектов (3D), а как вы написали плоские преобразования перспективы, закодированные матрицами гомографии «T1» и «T2». – Kornel

+0

Большое спасибо за информацию Kornel! – jhegedus

ответ

1

Если свойства не известны, результат неоднозначен до проективного преобразования. Другими словами, если вы используете estimateUncalibratedRectification для исправления пары изображений, а затем вычислите несоответствие и выполните 3D-реконструкцию, то вы восстановите 3D-сцену до проективного преобразования. Прямые линии будут прямыми, параллельные линии будут параллельными, но ваши углы и размеры, скорее всего, будут неправильными.

Чтобы определить, что такое проективное преобразование, вам потребуется дополнительная информация. Если вы знаете встроенные функции камеры, то вы получите масштабную реконструкцию. Другими словами, вы получаете правильные углы и относительные размеры. Чтобы получить правильный масштаб, вам нужно либо знать базовую линию (расстояние между камерами), либо размер какого-либо ссылочного объекта в сцене.

Более прямой способ приблизиться к этому - это калибровка ваших камер с помощью приложения Calibrator Camera или приложения Caleraator Stereo Camera.

+0

Большое спасибо за объяснение. Что же такое значение «оценкаУкалиброванное преобразование»? Почему это было реализовано в первую очередь? Практически, ИМХО, это ни для чего не подходит, если 3D-реконструкция неоднозначна до проективной трансформации. – jhegedus

+1

@jhegedus, иногда проективная реконструкция - это все, что вам нужно. E. g. если вам нужно только знать, что перед ним. Кроме того, как я уже сказал, вы можете использовать 'evaluationUncalibratedRectification', чтобы получить перестроенную реконструкцию, если вы знаете внутренние свойства. Вы также можете использовать полученную ректификацию в качестве промежуточного шага для дальнейшей калибровки вашей системы или для лучшей реконструкции. – Dima

+1

@jhegedus, не говоря уже о том, что 'evaluationUncalibratedRectification' позволяет создавать классные стерео анаглифы, которые вы можете смотреть со стерео-очками. :) – Dima