Введение
К предыдущей статье -Объясните процесс получения «основной матрицы» за одну минуту, как надежно оценить существенную или фундаментальную матрицу? Именно этому посвящена данная статья.
Основные методы решения матриц в основном включают:
- прямое линейное преобразование
- 8-точечный метод
- Наименьших квадратов
- Надежный метод на основе RANSAC.
Во-первых, краткое введение в метод прямого линейного преобразования:
Примечание:Три уравнения, отмеченные тремя красными линиями, эквивалентны.В ходе вышеуказанного анализаЕсли n>=8, является ли решение методом наименьших квадратов оптимальной оценкой?
Далее мы сосредоточимся на этом вопросе.
Две надежные оценки
2.1 Надежное определение
Надежный: чувствительность к шуму данных.
Для приведенной выше выборки, если есть выбросы (далекие от правильного значения), это повлияет на фактический эффект оценки.
2.2 RANSAC — Случайная согласованная выборка
RANSAC в основном решает проблему выбросов в выборке и может обрабатывать до 50% выбросов.
Основная идея:RANSAC достигает своей цели, многократно выбирая случайное подмножество данных. Предполагается, что выбранные подмножества являются точками в офисе и проверяются следующим образом:
- Есть модель, подходящая для гипотетической внутриофисной точки, т.е. все неизвестные параметры можно вычислить от гипотетической внутриофисной точки.
- Используйте модель, полученную в 1, для проверки всех остальных данных, и, если точка соответствует оценочной модели, считайте ее также служебной точкой.
- Если достаточное количество очков классифицируется как гипотетические внутриигровые очки, то оценочная модель является достаточно разумной.
- Затем переоцените модель со всеми гипотетическими игровыми точками, поскольку она была оценена только по исходным гипотетическим игровым точкам.
- Наконец, модель оценивается путем оценки частоты ошибок между вставками и моделью.
Этот процесс повторяется определенное количество раз, и каждый раз полученная модель либо отбрасывается, потому что у нее слишком мало внутриигровых очков, либо выбирается потому, что она лучше существующих моделей.
Вышеупомянутые шаги кратко резюмируются следующим образом:
Например:Использование RANSAC — подгоночные линии
2.3 О связанных функциях RANSAC, используемых в OpenCV
- solvePnPRansac
- findFundamentalMat