Оцените геометрическое преобразование

Оцените геометрическое преобразование от соответствия с парами точки

Библиотека

Геометрические преобразования

visiongeotforms

Описание

Используйте блок Estimate Geometric Transformation, чтобы найти матрицу преобразования, которая сопоставляет самое большое количество пар точки между двумя изображениями. point pair относится к точке во входном изображении и его связанной точке на изображении, созданном с помощью матрицы преобразования. Можно выбрать, чтобы использовать Согласие Случайной выборки (RANSAC) или Наименее средний алгоритм Квадратов, чтобы исключить выбросы и вычислить матрицу преобразования. Можно также использовать все точки ввода, чтобы вычислить матрицу преобразования.

ПортВвод/выводПоддерживаемые типы данныхПоддерживаемые комплексные числа

Pts1/Pts2

M-by-2 Матрица на основе одного [x y] указывает координаты, где M представляет число точек.

  • 'double'

  • Единственный

  • 8, 16, 32-битное целое число со знаком

  • 8, 16, 32-битное беззнаковое целое

Нет

Num

Скалярное значение, которое представляет количество актуальных вопросов в Pts1 и Pts 2.

  • 8, 16, 32-битное целое число со знаком

  • 8, 16, 32-битное беззнаковое целое

Нет

TForm

3 2 или 3х3 матрица преобразования.

  • 'double'

  • Единственный

Нет

Inlier

M-by-1 вектор, указывающий, какие точки использовались, чтобы вычислить TForm.

Булевская переменная

Нет

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

Когда Pts1 и Pts2 будут одним или двойными, выходная матрица преобразования будет также иметь один или двойной тип данных. Когда Pts1 и изображения Pts2 являются встроенными целыми числами, опция доступна, чтобы установить тип данных матрицы преобразования или на Single или на Double. TForm вывод обеспечивает матрицу преобразования. Выходной порт Inlier обеспечивает точки Inlier, на которых базируется матрица преобразования. Этот вывод появляется, когда вы устанавливаете флажок Output Boolean signal indicating which point pairs are inliers .

RANSAC и наименьшее количество средних алгоритмов квадратов

Алгоритм RANSAC полагается на порог расстояния. Пара точек, pia(отобразите a, Pts1), и pib(отобразите b, Pts 2), inlier только когда расстояние между pib и проекция piaна основе матрицы преобразования находится в пределах заданного порога. Метрика расстояния, используемая в алгоритме RANSAC, следующие:

d=i=1Nummin(D(pib, ψ(pia:H)),t)

Наименее средний алгоритм Квадратов принимает, что по крайней мере 50% пар точки могут быть сопоставлены матрицей преобразования. Алгоритм не должен явным образом задавать порог расстояния. Вместо этого это использует среднее расстояние между всеми парами точки ввода. Метрика расстояния, используемая в Наименее среднем из алгоритма Квадратов, следующие:

d=median(D(p1b,ψ(p1a:H)),D(p2b,ψ(p2a:H)),...,D(pNumb,ψ(pNa:H)))

Для обоих уравнений:

pia точка в изображении (Pts1)

pib точка в изображении b (Pts2)

ψ(pia:H) проекция точки на изображении на основе матрицы преобразования H

D(pib,pjb) расстояние между двумя парами точки на изображении b

t порог

Numчисло точек

Чем меньший метрика расстояния, тем лучше матрица преобразования и поэтому более точное изображение проекции.

Преобразования

Блок Estimate Geometric Transformation поддерживает Nonreflective similarity, Affine и типы преобразования Projective, которые описаны в этом разделе.

Неотражающее преобразование подобия поддерживает перевод, вращение и изотропное масштабирование. Это имеет четыре степени свободы и требует двух пар точек.

Матрица преобразования: H=[h1h2h2h1h3h4]

Проекция точки [xy] H: [x^y^]=[xy1]H

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

Матрица преобразования: H=[h1h4h2h5h3h6]

Проекция точки [xy] H: [x^y^]=[xy1]H

Проективные поддержки преобразования, наклоняющиеся в дополнение ко всем преобразованиям, которые поддерживает аффинное преобразование.

Матрица преобразования: h=[h1h4h7h2h5h8h3h6h9]

Проекция точки [xy] Hпредставлен однородными координатами как: [u^v^w^]=[xy1]H

Измерение расстояния

Для вычислительной простоты и эффективности, этот блок использует алгебраическое расстояние. Алгебраическое расстояние для пары точек, [xaya]T на изображении a, и [xbyb] на изображении b, согласно преобразованию H,задан можно следующим образом;

Для проективного преобразования:

D(pib,ψ(pia:H))=((u^aw^axb)2+(v^aw^ayb)2)12, где [u^av^aw^a]=[xaya1]H

Для Неотражающего подобия или аффинного преобразования: D(pib,ψ(pia:H))=((x^axb)2+(y^ay^b)2)12,

где [x^ay^a]=[xaya1]H

Алгоритм

Блок выполняет сравнение и повторяет его число раз K между последовательными матрицами преобразования. Если вы выбираете опцию Find and exclude outliers, RANSAC и алгоритмы Наименьшее количество средних квадратов (LMS) становятся доступными. Эти алгоритмы вычисляют и сравнивают метрику расстояния. Матрица преобразования, которая производит меньшую метрику расстояния, становится новой матрицей преобразования, которую использует следующее сравнение. Итоговая матрица преобразования разрешена когда также:

  • Количество K случайных выборок выполняется

  • Алгоритм RANSAC, когда достаточно количества пар точки inlier может быть сопоставлено, (динамически обновление K)

Оценочный алгоритм Геометрического преобразования выполняет эти шаги:

  1. Матрица преобразования H инициализируется к нулям

  2. Установите count = 0 (Случайным образом выбирающий).

  3. В то время как count < K, где K является общим количеством случайных выборок, чтобы выполнить, выполняет следующее;

    1. Постепенно увеличьте количество; count = count + 1.

    2. Случайным образом выберите пару точек от изображений a и b, (2 пары для Неотражающего подобия, 3 пары для аффинного, или 4 пары для проективного).

    3. Вычислите матрицу преобразования H, от выбранных точек.

    4. Если Hимеет метрику расстояния меньше, чем тот из H, затем замена H с H.

      (Дополнительный только для алгоритма RANSAC)

      1. Обновите K динамически.

      2. Выйдите из выборки цикла, если достаточно количества пар точки может быть сопоставлено H.

  4. Используйте все пары точки в изображениях a и b, который может быть сопоставлен H вычислить усовершенствованную матрицу преобразования H

  5. Итеративное Улучшение, (Дополнительный для RANSAC и LMS-алгоритмов)

    1. Обозначьте все пары точки, которые могут быть сопоставлены H как inliers.

    2. Используйте пары точки inlier, чтобы вычислить матрицу преобразования H.

    3. Если Hимеет метрику расстояния меньше, чем тот из H, затем замена H с H, в противном случае выйдите из цикла.

Количество случайных выборок

Количество случайных выборок может быть задано пользователем для RANSAC и Наименьшего количества Средних алгоритмов Квадратов. Можно использовать дополнительную опцию с алгоритмом RANSAC, который вычисляет этот номер на основе требования точности. Уровень Desired Confidence управляет точностью.

Расчетное количество случайных выборок, K, используемый с алгоритмом RANSAC, следующие:

K=журнал(1p)журнал(1qs)

где

  • p является вероятностью независимых пар точки, принадлежащих самой многочисленной группе, которая может быть сопоставлена тем же преобразованием. Вероятность динамически вычисляется на основе количества inliers, найденного по сравнению с общим количеством точек. Когда вероятность увеличивается, количество выборок, K, уменьшений.

  • q является вероятностью нахождения самой многочисленной группы, которая может быть сопоставлена тем же преобразованием.

  • s равен значению 2, 3, или 4 для Неотражающего подобия, аффинно, и проективного преобразования, соответственно.

Итеративное улучшение матрицы преобразования

Матрица преобразования, вычисленная от всего inliers, может использоваться, чтобы вычислить усовершенствованную матрицу преобразования. Усовершенствованная матрица преобразования затем используется, чтобы найти новый набор inliers. Эта процедура может быть повторена, пока матрица преобразования не может быть далее улучшена. Это итеративное улучшение является дополнительным.

Параметры

Transformation Type

Задайте тип преобразования, или Nonreflective similarity, Affine или преобразование Projective. Если вы выбираете преобразование Projective, можно также задать скалярный алгебраический порог расстояния для определения inliers. Если вы выбираете Affine или преобразование Projective, можно задать порог расстояния для определения inliers в пикселях. Смотрите Преобразования для более детального обсуждения. Значением по умолчанию является Projective.

Find and exclude outliers

Когда выбрано, блок находит и исключает выбросы из точек ввода и использует только точки inlier, чтобы вычислить матрицу преобразования. Когда эта опция не выбрана, все точки ввода используются, чтобы вычислить матрицу преобразования.

Method

Выберите RANdom SAmple Consensus (RANSAC) или алгоритм Least Median of Squares, чтобы найти выбросы. См. RANSAC и Наименьшее количество Средних Алгоритмов Квадратов для более детального обсуждения. Этот параметр появляется, когда вы устанавливаете флажок Find and exclude outliers.

Algebraic distance threshold for determining inliers

Задайте скалярное пороговое значение для определения inliers. Порог управляет верхним пределом, используемым, чтобы найти алгебраическое расстояние в алгоритме RANSAC. Этот параметр появляется, когда вы устанавливаете параметр Method на Random Sample Consensus (RANSAC) и параметр Transformation type к Projective. Значением по умолчанию является 1.5.

Distance threshold for determining inliers (in pixels)

Задайте расстояние верхнего предела, точка может отличаться от местоположения проекции своей точки соединения. Этот параметр появляется, когда вы устанавливаете параметр Method на Random Sample Consensus (RANSAC), и вы устанавливаете значение параметра Transformation type к Nonreflective similarity или Affine. Значением по умолчанию является 1.5.

Determine number of random samplings using

Выберите Specified value , чтобы ввести положительное целочисленное значение для количества случайных выборок или выбрать Desired confidence, чтобы определить номер случайных выборок как процент и максимальное количество. Этот параметр появляется, когда вы устанавливаете флажок Find and exclude outliers, и вы устанавливаете значение параметра Method к Random Sample Consensus (RANSAC).

Number of random samplings

Задайте количество случайных выборок для алгоритма, чтобы выполнить. Этот параметр появляется, когда вы устанавливаете значение параметра Determine number of random samplings using к Specified value.

Desired confidence (in %)

Задайте процент путем введения номера между 0 и 100. Значение Desired confidence (in %) представляет вероятность алгоритма, чтобы найти самую многочисленную группу точек, которые могут быть сопоставлены матрицей преобразования. Этот параметр появляется, когда вы устанавливаете параметр Determine number of random samplings using на Desired confidence.

Maximum number of random samplings

Задайте целое число для максимального количества случайных выборок. Этот параметр появляется, когда вы устанавливаете параметр Method на Random Sample Consensus (RANSAC), и вы устанавливаете значение параметра Determine number of random samplings using к Desired confidence.

Stop sampling earlier when a specified percentage of point pairs are determined to be inlier

Задайте, чтобы остановить случайную выборку, когда процент точек ввода будет найден как inliers. Этот параметр появляется, когда вы устанавливаете параметр Method на Random Sample Consensus (RANSAC).

Perform additional iterative refinement of the transformation matrix

Задайте, выполнить ли улучшение на матрице преобразования. Этот параметр появляется, когда вы устанавливаете флажок Find and exclude outliers .

Output Boolean signal indicating which point pairs are inliers

Выберите эту опцию, чтобы вывести пары точки inlier, которые использовались, чтобы вычислить матрицу преобразования. Этот параметр появляется, когда вы устанавливаете флажок Find and exclude outliers . Блок не будет использовать этот параметр с со знаком или двойным, точками типа данных.

When Pts1 and Pts2 are built-in integers, set transformation matrix date type to

Задайте тип данных матрицы преобразования как Single или Double, когда точки ввода будут встроенными целыми числами. Блок не будет использовать этот параметр с со знаком или двойным, точками типа данных.

Примеры

Вычислите матрицу преобразования от самой многочисленной группы пар точки

Примеры входных данных и приложение блока Estimate Geometric Transformation появляются в следующих фигурах. Рисунки (a) и (b) показывают пары точки. Точки обозначаются звездами или кругами, и числа после них показывают, как они соединяются. Некоторые пары точки могут быть сопоставлены той же матрицей преобразования. Другие пары точки требуют различной матрицы преобразования. Одна матрица существует, который сопоставляет наибольшее число пар точки, блок вычисляет и возвращает эту матрицу. Блок находит пары точки в самой многочисленной группе и использует их, чтобы вычислить матрицу преобразования. Пары точки, соединенные пурпурными строками, являются самой многочисленной группой.

Матрица преобразования может затем использоваться, чтобы сшить изображения как показано в рисунке (e).

Видео Mosaicking

Чтобы видеть пример блока Estimate Geometric Transformation, используемого в модели с другими блоками, посмотрите Видео пример Mosaicking.

Поиск и устранение проблем

Успех оценки правильного геометрического преобразования зависит в большой степени от качества пар точки ввода. Если вы выбрали RANSAC или LMS-алгоритм, блок случайным образом выберет пары точки, чтобы вычислить матрицу преобразования и будет использовать преобразование что лучшие подгонки точки ввода. Существует шанс, что все случайным образом выбранные пары точки могут содержать выбросы несмотря на повторные выборки. В этом случае выходная матрица преобразования, TForm, недопустима, обозначается матрицей нулей.

Чтобы улучшить ваши результаты, попробуйте следующее:

Увеличьте процент inliers в точках ввода.
Увеличьте число для случайных выборок.
Для метода RANSAC увеличьте желаемую уверенность.
Для метода LMS убедитесь, что точки ввода имеют 50% или больше inliers.
Используйте функции, подходящие для содержимых изображения
Следует иметь в виду, что повторные шаблоны, например, окна в офисном здании, вызовут ложные соответствия, когда вы будете совпадать с функциями. Это увеличивает число выбросов.
Не используйте эту функцию, если изображения имеют значительный параллакс. Можно использовать функцию estimateFundamentalMatrix вместо этого.
Выберите минимальное преобразование для своей проблемы.
Если проективное преобразование производит сообщение об ошибке, “Фрагмент входного изображения был преобразован к местоположению в бесконечности. Только матрицы преобразования, которые не преобразовывают части изображения к бесконечности, поддерживаются”. это обычно вызывается матрицей преобразования и изображением, которое привело бы к выходному искажению, которое не соответствует физической действительности. Если бы матрицей был вывод блока Estimate Geometric Transformation, то, скорее всего, это не могло найти достаточно inliers.

Ссылки

Р. Хартли и А. Зизермен, “Несколько Геометрия Представления в Компьютерном зрении”, Второй выпуск, издательство Кембриджского университета, 2003

Смотрите также

cp2tform

Image Processing Toolbox™

vipmosaicking

Computer Vision Toolbox™

Расширенные возможности

Генерация кода C/C++
Генерация кода C и C++ с помощью Simulink® Coder™.

Введенный в R2008a