2015-06-30 7 views
4

Я пытаюсь выполнить калибровку камеры с помощью шахматной доски известным способом Чжана, за которым следует настройка пучка, которая доступна как в Matlab, так и в OpenCV. Есть много эмпирических рекомендаций, но из моего личного опыта точность довольно случайная. Иногда это может быть действительно хорошим, а иногда и очень плохим. Результат на самом деле может варьироваться довольно просто, просто поместив шахматную доску в разных местах. Предположим, что целевая камера является прямолинейной с горизонтальным полем зрения 110 градусов.Калибровка камеры: как это сделать

  1. Влияет ли количество квадратов в шахматной доске на точность? Чжан использует 8x8 в своей оригинальной статье, не объясняя почему.

  2. Не влияет ли длина квадрата на точность? Чжан использует 17 см x 17 см, не объясняя почему.

  3. Какое оптимальное количество снимков с различными позициями/ориентацией шахматной доски? Чжан использует только 5 изображений. Я видел, как люди предлагали 20-30 изображений с шахматными досками под разными углами, заполняли все поле зрения, наклонялись влево, вправо, сверху и снизу и предположили, что не должно быть шахматной доски, размещенной в аналогичной позиции/ориентации, иначе результат будет смещен к этой позиции/ориентации. Это верно?

Цель состоит в том, чтобы определить рабочий процесс, чтобы получить согласованный результат калибровки.

ответ

2

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

Другое дело, что шахматная доска должна быть асимметричной. В идеале вы хотите иметь четное число квадратов вдоль одной стороны и нечетное число квадратов вдоль другого. Таким образом, ориентация платы в плоскости однозначна.

Кроме того, я предлагаю вам попробовать Camera Calibrator app в MATLAB. По крайней мере, посмотрите документацию, в которой есть много полезных предложений для калибровки камер.

+1

Расстояние, которое я сделаю, мое измерение не ограничивается небольшой областью. Вероятно, это примерно с 2 м ~ 50 м. Не могли бы вы рассказать о математической стороне о том, почему «в идеале вы хотите разместить свою шахматную доску примерно на том же расстоянии от камеры, что и расстояние, на котором вы хотите выполнить свои измерения».? Я думал, что расстояние не должно иметь значения. Также спасибо за большое предложение. – user3667089

+3

Теоретически расстояние не имеет значения. В действительности у вас есть шум, ошибки квантования, ошибки округления и т. Д., Поэтому вы хотите откалибровать как можно ближе к тому, где вы собираетесь делать свои измерения, как можете. – Dima

4

Если точность, которую вы получаете, является «довольно случайной», тогда вы, вероятно, не будете делать это правильно: со стабильной оптикой и хорошо проведенной процедурой вы должны последовательно получать ошибки RMS-проекции в пределах нескольких десятых пикселя. Независимо от того, соответствует ли это отклонениям в миллиметрах или метрах в трехмерном пространстве, конечно, зависит от вашей оптики и разрешения датчика (калибровка - это не путь к физике).

Я написал несколько предложений в this answer, и я рекомендую вам следовать им. В частности, обратите внимание на блокировку расстояния фокусировки (я видел, что & слышал бесчисленное количество людей, пытающихся откалибровать камеру на автофокусе, и быть очень разочарованным). Что касается размера цели, опять же это зависит от вашей оптики и разрешения камеры, но в целом цели: (1) заполнить измерениями и поле зрения и объем пространства, в котором вы будете работать с и (2) наблюдать значительную перспективу ракурса, потому что именно это ограничивает решение для FOV. Удачи!

[Ред.для ответа на этот вопрос]

Что касается вариаций значений параметров при последовательных калибровках, первое, что я хотел бы сделать, это рассчитать кросс-ошибки RMS, то есть ошибку RMS на наборе данных 1 с камерой, откалиброванной по набору данных 2, наоборот. Если либо значительно выше, чем ошибки калибровки, это указывает на то, что камера изменилась между двумя калибрациями, и поэтому все коэффициенты отключены (у вас есть автофокусировка, фокусировка, диафрагма, масштабирование, стабилизация)? Отключить все: auto-anything - это ошибка калибровки, за исключением исключения времени экспозиции). Если нет, то вам нужно увидеть, действительно ли вариации, которые вы наблюдаете по параметрам, имеют смысл (подсказка, часто их нет). Изменение фокусного расстояния в пикселях в несколько частей на тысячу, вероятно, не имеет отношения к сегодняшним разрешениям датчиков - вы можете убедиться, что, выразив его в мм и сравнивая его с шагом точки датчика. Кроме того, вариации положения главной точки в порядке десятков пикселей являются общими, так как они плохо соблюдаются, если только ваша процедура калибровки очень тщательно разработана для ее оценки.

+0

Я могу взять 20 изображений шахматной доски, и я получаю комбинацию параметров, которые являются фокальными точками, принципиальными точками и параметрами искажения, которые имеют низкие ошибки проекции RMS в отношении данных изображений шахматной доски. Проблема в том, что если я возьму еще 20 изображений шахматной доски, я получаю параметры, которые по-прежнему имеют низкие ошибки проекции RMS в отношении заданных изображений шахматной доски, но могут значительно отличаться от ранее определенных параметров. Вопрос в том, как узнать, какой набор параметров является правильным? Каков правильный рабочий процесс, который может гарантировать последовательный результат? – user3667089