пятница, 14 сентября 2012 г.

Как быстро и просто откалибровать камеру?

Занимаясь разработкой программ анализа изображений и машинного зрения, я столкнулся с проблемой калибровки камеры. Точно определить её параметры - значит повысить точность анализа изображений. К тому же, современные средства предоставляют возможность уменьшить эффект дисторсии. Далее я расскажу в подробностях о решениях этих проблем и различных дополнительных возможностях.

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

Сначала я подумал о регрессивном анализе и решении систем линейных уравнений. В этом случае необходимо было бы сделать примерно следующее: разложить в ряд Тейлора аналитически найденное уравнение по искомым параметрам, оставляя только первый член и составить уравнения поправок. Потом нужно бы было решить систему, например, методом наименьших квадратов и внести поправки в параметры. В общем, это ещё одна полноценная  статья.

Но существуют уже готовые программы для быстрой автоматической калибровке камер, одной из таких является утилита GML C++ Camera Calibration Toolbox.
Для калибровки вашей камеры понадобится лишь распечатать специальный образец - т.н.  "шахматку" с заданными параметрами.
 Если по пунктам, то так::

1)Распечатываем "шахматку". Её параметры можно задать при создании нового проекта. Причём, лучше использовать доску большого размера, тогда ошибка измерения будет меньше.
2)Делаем несколько снимков с разных ракурсов.
3)Добавляем снимки в список изображений в программе.
4)Производим анализ.
В отчёте вы увидите различные параметры камеры, такие как фокус(fx,fy) в пикселах, главная точка и дисторсия. В этом же пакете вы можете с учётом полученных в результате анализа данных можете корректировать снимки избавляя их от аберраций.
С нетерпением жду ВАШИХ вопросов и комментариев.

1 комментарий: