Этот вопрос довольно старый, но он интересен и может быть кому-то полезен.
Во-первых, вот как я понял проблему, изложенную в вопросе:
У вас есть два изображения I1 и I2, полученные одной и той же цифровой камерой в двух разных положениях. На обоих изображениях показан набор маркеров, лежащих в общей плоскости pm. Также имеется измеряемый объект, видимая поверхность которого лежит в плоскости po, параллельной плоскости маркера, но с небольшим смещением. Вы вычислили гомографию Hm12, сопоставив позиции маркеров в I1 с соответствующими позициями маркеров в I2 и вы измерили смещение dmo между плоскостями po и pm. Исходя из этого, вы хотите рассчитать гомографию Ho12, отображающую точки измеряемого объекта в I1 в соответствующие точки в I< под>2под>.
Несколько замечаний по этой проблеме:
Во-первых, обратите внимание, что гомография — это отношение между точками изображения, тогда как расстояние между плоскостью маркеров и плоскостью объекта — это расстояние в мировых координатах. Использование последнего для вывода о первом требует метрической оценки положения камеры, т. е. необходимо определить евклидиан и максимум относительное положение и ориентация камеры для каждого из двух изображений. Требование евклидова подразумевает, что цифровая камера должна быть откалибрована, что не должно быть проблемой для «оптической измерительной системы». Требование в масштабе подразумевает, что истинное трехмерное расстояние между двумя заданными трехмерными точками должно быть известно. Например, вам нужно знать истинное расстояние l0 между двумя произвольными маркерами.
Поскольку нам нужна только относительная поза камеры для каждого изображения, мы можем использовать трехмерную систему координат, центрированную и выровненную с системой координат камеры для I1. . Следовательно, мы будем обозначать матрицу проекции для I1 как P1 = K1 * [ I | 0]. Затем мы обозначаем матрицу проекции для I2 (в той же трехмерной системе координат) как P2 = K2 * [ R2 | т2]. Обозначим также через D1 и D2 коэффициенты, моделирующие дисторсию объектива соответственно для I1 и I2 .
Поскольку одна цифровая камера зафиксировала как I1, так и I2, вы можете предположить, что K1 = K2 = K и D1 = D2 = D. Однако, если I1 и I2 были получены с большая задержка между захватами (или с другим зумом и т.п.), то правильнее будет считать, что задействованы две разные матрицы камер и два набора коэффициентов дисторсии.
Вот как можно решить такую проблему:
Шаги для оценки P1 и P2 следующие:
Оценить K1, K2 и D1, D2 с помощью калибровки цифровой камеры
Используйте D1 и D2, чтобы скорректировать изображения I1 и I2 для искажения объектива, затем определите маркер позиции в исправленных изображениях
Вычислите фундаментальную матрицу F12 (сопоставление точек в I1 эпилиням в I2) по позициям соответствующих маркеров и выведите основную матрицу E 12 = K2T * F12 * K1
Выведите R2 и t2 из E12 и одноточечного соответствия (см. этот ответ на соответствующий вопрос). На данный момент у вас есть аффинная оценка позы камеры, но не масштабная оценка, так как t2 имеет единичную норму .
Используйте измеренное расстояние l0 между двумя произвольными маркерами, чтобы вывести правильную норму для t2.
Для наилучшей точности вы можете уточнить P1 и P2, используя настройку пакета с K1 и ||t2. || фиксировано на основе соответствующих позиций маркеров в I1 и I2.
На данный момент у вас есть точная метрическая оценка поз камеры P1 = K1 * [ I | 0 ] и P2 = K2 * [ R2 | т2]. Теперь шаги для оценки Ho12 следующие:
Используйте D1 и D2, чтобы скорректировать изображения I1 и I2 для искажения объектива, затем определите маркер позиции в исправленных изображениях (то же, что и 2. выше, нет необходимости делать это повторно) и оценить Hm12 из этих соответствующих позиций
Вычислите вектор 3x1 v, описывающий плоскость маркеров pm, решив следующее линейное уравнение: Z * Hm12 = K2 * ( R2 - t2 * vT ) * K1- 1 (см. HZ00, глава 13, результат 13.5 и уравнение 13.2 для справки по этому вопросу), где Z — коэффициент масштабирования. Определите расстояние до начала координат dm = ||v|| и нормали n = v / ||v||, которые описывают плоскость маркеров pm в 3D.
Так как плоскость объекта po параллельна pm, они имеют одинаковые нормаль n. Следовательно, вы можете вывести расстояние до начала координат do для po по расстоянию до начала координат dm для pm. sub> и от измеренного смещения плоскости dmo следующим образом: do = dm ± dmo (знак зависит от взаимного расположения плоскостей: положительный, если pm ближе к камере для I1, чем po, отрицательный иначе).
Из n и do, описывающих плоскость объекта в 3D, сделайте вывод о гомографии Ho12 = K2 * ( R2 - t2 * nT / do ) * K1 >-1 (см. HZ00, глава 13, уравнение 13.2)
Гомография Ho12 сопоставляет точки измеряемого объекта в I1 с соответствующими точками в I2, где предполагается, что и I1, и I2 скорректированы для искажения объектива. Если вам нужно сопоставить точки с исходным искаженным изображением и с ним, не забудьте использовать коэффициенты искажения D1 и D2 для преобразования входных и выходных точек Но12.
Ссылка, которую я использовал:
[HZ00] «Геометрия с несколькими представлениями для компьютерного зрения», Р. Хартли и А. Зиссерман, 2000 г.
person
BConic
schedule
04.04.2014