13.8. Внутреннее ориентирование
Мы умолчали об одной детали: везде неявно предполагалось, что мы знаем величину фокусного расстояния, т. е. точное расстояние от линзы до плоскости изображения, а также точку, в которой оптическая ось пересекает эту плоскость. Нам необходима эта информация для выполнения преобразования от координат камеры к координатам изображения х и у. Мы подразумевали, что начало системы координат изображения лежит на оптической оси. Мы можем, конечно, выбрать систему координат камеры так, чтобы ее оси были параллельны осям на плоскости изображения, поскольку
это достигается простым поворотом, однако при этом мы должны точно знать величину и поместить центр системы координат изображения на оптическую ось.
Необходимая нам информация получается в ходе так называемого внутреннего ориентирования. Если линза имеет достаточно большие радиальные искажения (дисторсию), чтобы влиять на результат, то ставится задача внутреннего ориентирования, включающая измерения этих искажений как функции расстояния от начала координат.
Задачу восстановления точного расстояния от линзы до плоскости изображения и точного места пересечения ее оптической осью можно решить, комбинируя внешнее и внутреннее ориентирование. Идея заключается в том, что измерения на изображении признаются неидеальными, и поэтому отбрасываются условия ортогональности. Это облегчает задачу, так как оставшиеся уравнения линейны.
До сих пор мы также предполагали идеальность измерений координат изображения х и у. Однако в электронно-оптических системах получения изображений трудно гарантировать строгую ортогональность осей и полное совпадение масштабов по двум осям. Для учета этого явления можно ввести линейное преобразование от идеальных осей к реально используемым. Аффинное преобразование на плоскости является линейным, и с его помощью можно описать подобие, движение (перенос и вращение), сжатие и перекос. Такое преобразование может учесть все отклонения от идеальности, которые мы обсуждали ранее:
— ошибки масштабирования, обусловленные неточностью измерения величины
— ошибки переноса (сдвига), обусловленные неточным знанием положения начала координат;
— вращение, обусловленное неточным знанием поворота визуального датчика;
— перекос из-за отклонения осей зрительной системы от ортогональности;
— сжатие из-за неодинакового масштабирования по осям.
Аффинное преобразование зависит от шести параметров, и его можно записать в виде Поэтому
где новые коэффициенты являются суммами произведений старых коэффициентов и коэффициентов аффинного преобразования. Эти уравнения имеют тот же вид, что и рассмотренные ранее. Разница состоит в том, что матрица коэффициентов не должна
быть ортогональной. Вследствие этого нам не нужно рассматривать нелинейные уравнения, возникшие из-за условий ортогональности. У нас остается для каждой точки по одной паре линейных уравнений вида
На первый взгляд кажется, что нам для нахождения двенадцати неизвестных необходимо шесть точек. Однако эти уравнения однородны, или, другими словами, преобразование не меняется при одновременном масштабировании всех коэффициентов, и поэтому фактически мы имеем только одиннадцать независимых параметров. В любом случае без дополнительных предположений пяти измерений недостаточно, а при шести система переопределена. На практике измеряется гораздо больше точек и используется метод наименьших квадратов, отыскивающий лучшее приближение к преобразованию. В данном случае это просто, так как все уравнения линейны, как будет показано в упражнении 13.11.
Метод, аналогичный рассмотренному выше, необходим, чтобы связать координатную систему промышленного робота с координатной системой визуального датчика. В упражнениях мы выведем некоторые приближенные соотношения, с которыми легче работать. Приложения этих методов мы увидим в гл. 18, в которой мы объединим многие идеи этой книги при построении системы, разбирающей детали из навала.