Геометрия

Проективная геометрия

Каждый раз, когда Google Фото «выравнивает» скан документа или ARCore накладывает объект на поверхность - работает гомография. OpenCV, PyTorch3D, COLMAP - везде проективная геометрия.

  • **Camera calibration:** cv2.calibrateCamera использует проективную модель пинхол-камеры
  • **Image stitching:** гомография + RANSAC = панорамные фотографии в Google Maps
  • **AR/VR:** матрица проекции в OpenGL/Vulkan - прямо из проективной геометрии
  • **Epipolar geometry:** fundamental matrix F - обобщение гомографии для двух камер

Предварительные знания

  • Vector Geometry

Однородные координаты и точки на бесконечности

Проективная плоскость RP² дополняет евклидову плоскость «точками на бесконечности» - по одной для каждого направления. Это устраняет исключения при параллельных прямых.

**Однородные координаты:** точка (x, y) → (X:Y:W) где x=X/W, y=Y/W. (X:Y:W) и (kX:kY:kW) - одна точка для k≠0. **Точка на бесконечности:** W=0, например (1:0:0) - бесконечно далеко по оси X. **Прямая** в однородных: ax+by+c=0 → вектор (a:b:c). Пересечение прямых l и m: l×m (векторное произведение).

В проективной геометрии точка на бесконечности - полноправный объект. Параллельные прямые пересекаются в точке бесконечности в своём направлении.

Что означает однородная координата (3:6:0)?

Кросс-отношение

Кросс-отношение (double ratio) - единственный числовой инвариант проективных преобразований. Оно сохраняется при перспективной проекции, что делает его ключевым в computer vision.

**Кросс-отношение** четырёх точек A, B, C, D на прямой: (A, B; C, D) = (AC/BC) · (BD/AD) где AC = расстояние от A до C. **Инвариантность:** сохраняется при проекциях, гомографиях и конформных отображениях. **Применение:** восстановление проективных свойств из изображений (camera calibration).

Какой инвариант проективных преобразований используется в camera calibration?

Матрица перспективной проекции

Матрица камеры (camera matrix / projection matrix) переводит 3D точки в 2D пикселы. Она состоит из intrinsic (внутренние параметры) и extrinsic (позиция/ориентация) матриц.

**Пинхол-камера (pinhole camera model):** P = K · [R | t] где: - K - intrinsic matrix: [[f, 0, cx], [0, f, cy], [0, 0, 1]] - R - матрица поворота камеры (3×3) - t - вектор переноса (3×1) - f - фокусное расстояние в пикселах - (cx, cy) - principal point

Что хранит intrinsic matrix K камеры?

Гомография и DLT-алгоритм

Гомография H - проективное преобразование между двумя плоскостями (или изображениями). 8 степеней свободы (8 DOF) определяются по 4 парам соответствующих точек.

**Гомография:** p' = H · p (в однородных координатах) H - матрица 3×3, определена с точностью до масштаба (8 DOF). **DLT (Direct Linear Transform):** для каждой пары точек получаем 2 уравнения. 4 пары → 8 уравнений → решаем SVD. **Применение:** image stitching (панорамы), AR marker tracking, document rectification.

Сколько пар соответствующих точек минимально нужно для вычисления гомографии?

Ключевые идеи

  • **Однородные координаты:** (x:y:1) - обычная точка; (x:y:0) - точка на бесконечности
  • **Cross-ratio:** единственный проективный инвариант - сохраняется при любых проекциях
  • **Camera matrix P = K[R|t]:** K - внутренние параметры, R,t - поза камеры
  • **Гомография H (8 DOF):** проективное отображение плоскостей; 4 пары точек → DLT → SVD

Связанные темы

Проективная геометрия - основа computer vision и рендеринга:

  • Геометрические преобразования — Гомография = обобщение аффинных трансформаций
  • Геометрия в CS — RANSAC + гомография - базовый pipeline feature matching
  • Геометрия на собеседовании — Camera matrix и проекции - частые вопросы в FAANG CV-ролях

Вопросы для размышления

  • Почему параллельные рельсы на фотографии сходятся в точку? Как это объясняет проективная геометрия?
  • Что такое epipolar constraint и как он связан с гомографией для двух камер?
  • Как RANSAC помогает вычислить гомографию при наличии ошибок в соответствиях точек?

Связанные уроки

  • la-05-matrices-intro
Проективная геометрия

0

1

Войти