Як отримати найточнішу калібрування камери?


16

По-перше, я сподіваюся, що це правильна плата Exchange Stack. Мої вибачення, якщо це не так.

Я працюю над тим, що вимагає від мене калібрування камери. Я успішно реалізував код для цього в OpenCV (C ++). Я використовую вбудовані функції шахової дошки та шахову дошку, яку я роздрукував.

В Інтернеті є багато навчальних посібників, які дозволяють надати більше оглядів шахової дошки та витягнути кути з кожного кадру.

Чи є оптимальний набір переглядів, щоб надати функції, щоб отримати найбільш точну калібрування камери? Що впливає на точність калібрування?

Наприклад, якщо я даю йому 5 зображень того ж виду, не рухаючи нічого, це дає певні результати, коли я намагаюся сказити канал веб-камери.

FYI для всіх, хто відвідує: Нещодавно я дізнався, що ви можете отримати кращу калібрування камери за допомогою сітки асиметричних кіл та відповідної функції OpenCV.

Відповіді:


8

Ви повинні брати зображення для калібрування з різних точок зору та кутів, з якомога більшою різницею між кутами (всі три кути Ейлера повинні відрізнятися), але так, щоб діаметр візерунка все ще підходив до поля зору камери. Чим більше ви використаєте, тим краще буде калібрування. Це потрібно, тому що під час калібрування ви виявляєте параметри фокусної відстані та спотворень, тому для їх отримання методом найменших квадратів потрібні різні кути. Якщо ви зовсім не пересуваєте камеру, ви не отримуєте нової інформації, а калібрування марно. Зверніть увагу, що вам зазвичай потрібна лише фокусна відстань, параметри спотворень, як правило, незначні навіть для споживчих камер, веб-камер та камер стільникового телефону. Якщо ви вже знаєте фокусну відстань із специфікації камери, можливо, вам навіть не потрібна калібрування.

Коефіцієнт викривлення більше присутній у "спеціальних" камерах, таких як ширококутна або 360 °.

Ось запис у Вікіпедії про калібрування . І тут відбувається нелінійне спотворення , що для більшості камер є незначним.


Під кутами Ейлера я припускаю, що ви маєте на увазі обертати камеру навколо шахової дошки (при шаховій дошці як шарнір) у x, y та переміщувати камеру на шахову дошку та від неї? Я читав про когось, хто просто роздрукував трансформовані шахові дошки та тримав камеру в тому самому місці. Наприклад: i.imgur.com/rYzV4.png та i.imgur.com/McG9z.png . Невже використання подібних речей є поганим рішенням, оскільки воно може не відображати, як все може перетворюватися на ділі?
Гепард

Так щодо камери, що рухається. Так, знову ж таки про збереження свого місця.
mirror2image

@ mirror2image Ви маєте на увазі в практичних операціях краще змінювати різні кути. Але це означає, що різні погляди матимуть різні світові системи координації. Чи потрібно використовувати спільну світову систему координації, щоб зберегти точки об’єкта в тій же системі координації?
Річард

3

@Ben - кількість переглядів залежить від камери та необхідної кінцевої точності.

При дуже якісних лінзах із низьким викривленням (35-мм дзеркально-випромінювач високого класу) з використанням безлічі зображень на шаховій дошці для картографування спотворень може бути нестабільним - оскільки спотворення є часткою пікселя.
Вам все одно потрібно кілька знімків з поверненою дошкою (або камерою), оскільки центр зображення, як правило, знаходиться лише в межах декількох пікселів номінальної x / 2, y / 2 і змінюватиметься з фокусом. І звичайно масштабування все змінює.

Коли у вас є центр і фокусна відстань об'єктива (у X та Y), вам потрібна лише одна шахова дошка для знімка, щоб ви могли розмістити камеру


Я продовжую отримувати дуже погану калібрування, і я, чесно кажучи, не можу зрозуміти, чому. У мене на стіні друкована шахівнича дошка, і я переміщую камеру в різні позиції, тому вона має різні види на шаховій дошці, але всякий раз, коли я використовую функцію спотворень у opencv, вона просто виходить дуже дивною і спотвореною порівняно з оригіналом. Моя камера - це Microsoft LifeCam Studio 1080p.
Гепард

@Ben Вимкніть автоматичне фокусування. На крихітних веб-камерах об'єктива фокусна відстань та центр об'єктива змінюються фокусом. Ви достатньо обертаєтесь, щоб він добре підходив до центру? Чи виходять квадрати до кутів? Нарешті перевірте, чи всі цілі виявили всі квадрати.
Мартін Бекетт

Автофокусування вже вимкнено. Визначити достатньо? Я намагаюсь настільки ж крайні кути, щоб зібрати очки. Не впевнений, що ви маєте на увазі під "квадрати, що виходять в кути", якщо ви маєте на увазі функцію, яка малює витягнуті кути на зображенні - то так. У мене вже є перевірка, щоб побачити, що всі кути були виявлені. Я думаю, що моя проблема МОЖЕ бути в тому, що я встановив початкову фокусну відстань у внутрішній матриці, яку я передаю функції калібрування. Я спробував 1: 1, 16: 9 (що я вважаю, співвідношення сторін веб-камери), а також спробував НІЧОГО (що ви можете зробити)
Гепард

@Martin Чи можливо зробити калібрування, утримуючи камеру в канцелярському положенні та змінивши орієнтацію шахової дошки без зміни відстані між камерою та шаховою дошкою ??

@Santosh - так, це очевидно рівнозначно. Вам потрібно переконатися, що ви охопили багато різних кутів
Мартін Бекетт

3

Я вирішив опублікувати цю відповідь тут, тому що деякий час повернувся, це стало головним результатом в Google, і його пропозиції допомогли мені. Тому я вирішив поділитися своїм досвідом теж.

Провівши незліченну кількість годин, намагаючись досягти найкращої стереокалібрування на Kinect, я поділився своїми порадами та висновками у своїй публікації в блозі .

Хоча це спрямовано на стереокалібрування, а точніше на Kinect, я вважаю, що поради допоможуть усім, хто намагається відкалібрувати камеру.

Також, якщо я колись помер або забуду відновити хостинг, ось модифікована цитата з поста:

  1. Переконайтеся, що у вас є найбільша можлива схема калібрування. Дотримуйтесь того, що я сказав вище. Отримайте приємний візерунок професійно надрукований. Переконайтеся, що кожен квадрат не менше 8 см х 8 см. Також переконайтеся, що одна сторона шаблону калібрування має непарну кількість квадратів, а інша сторона має парне число квадратів (наприклад, 9 × 6 або 7 × 8). Це важливо для правильного виявлення пози мішені. Крім того, деякі набір інструментів не зможуть виявити шаблон у цій вимозі. Як вже згадувалося раніше, шаблони, які я використовував, які підходять для друку на великих аркушах, завантажуються тут (для квадратів 9 см) і сюди (для квадратів 10 см).
  2. Переконайтеся, що на друкованому шаблоні навколо нього достатньо білої рамки, інакше більшість скриньок інструментів може виявити його непросто.
  3. Переконайтесь, що Kinect не рухається. Я використовував кріплення для кріплення свого Kinect до штатива.
  4. Спробуйте отримати якомога більше зображень цілі калібрування. Моя найкраща калібрування була отримана за допомогою 300 зображень на відстані від 0,5 метра до 10 метрів від камери. Переконайтеся, що ви обертаєте візерунок навколо осей X, Y і Z. Також спробуйте "плиткувати" вигляд зображеннями, зробленими на однаковій відстані: тобто зробіть одне зображення, перемістіть ціль до наступної плитки в полі зору, зробіть інше і повторіть, поки ви не "плиткою" весь поточний поле зору. Мета - максимально охопити все поле зору на кожній відстані.
  5. Якщо можливо, використовуйте стереокалібрування програми MATLAB. Це дозволяє позбутися від залишків після кожної фази калібрування.

3

Ось перелік «найкращих практик» щодо калібрування камери, який я спочатку розмістив тут: https://calib.io/blogs/knowledge-base/calibration-best-practices

  • Виберіть потрібну ціль калібрування розміру. Досить великий, щоб правильно обмежити параметри. Переважно він повинен охоплювати бл. половина всієї площі, коли на зображеннях камери видно фронто-паралель.
  • Виконуйте калібрування на приблизній робочій відстані (WD) остаточної заявки. Камера повинна бути сфокусована на цій відстані, а фокус повинен бути незмінним після калібрування.
  • Ціль повинен мати велику кількість функцій. Використання тонких візерунків є кращим. Однак у певний момент виявляється стійкість. Наша рекомендація полягає у використанні точного підрахунку малюнків для камер вище 3MPx, а також якщо освітлення контролюється та добре.
  • Збирайте зображення з різних областей та нахилів. Перемістіть ціль, щоб повністю покрити область зображення і націліться на рівномірне охоплення. Викривлення об'єктива може бути визначено належним чином лише із фронто-паралельних зображень, але оцінка фокусної відстані залежить від дотримання ракурсу. Включіть як передньопаралельні зображення, так і зображення, зроблені за допомогою нахилу дошки до +/- 45 градусів у горизонтальному вертикальному напрямку. Нахил більше зазвичай не є хорошою ідеєю, оскільки страждає точність локалізації функцій.
  • Використовуйте хороше освітлення. Це часто не помічається, але надзвичайно важливо. Переважно калібрувальну ціль слід дифузно освітлювати за допомогою контрольованого освітлення фотографії. Сильні точкові джерела спричиняють нерівномірне освітлення, можливо, робить виявлення невдалим і не дуже добре використовують динамічний діапазон камери. Тіні можуть зробити те саме.
  • Майте достатньо спостережень. Зазвичай калібрування повинно проводитися принаймні на 6 спостереженнях (зображеннях) цілі калібрування. Якщо використовується камера вищого порядку або модель спотворення, корисніші спостереження.
  • Подумайте про використання унікально кодованих цілей, таких як дошки CharuCo. Вони дозволяють збирати спостереження із самих країв датчика та об'єктива камери, а значить, дуже добре обмежують параметри спотворень. Крім того, вони дозволяють збирати дані навіть тоді, коли окремі пункти функцій не відповідають іншим вимогам.
  • Калібрування настільки ж точно, як і ціль калібрування, що використовується. Використовуйте лазерні друковані мішені лише для перевірки та тестування.
  • Правильне встановлення калібрування цілі та камери. Щоб мінімізувати викривлення і нахилитися у більші цілі, встановіть їх вертикально, або покладіть плоско на жорстку опору. Подумайте про переміщення камери в цих випадках. Використовуйте якісний штатив і не торкайтеся камери під час придбань.
  • Видаліть погані спостереження. Уважно перевірте помилки перепроектування. Як за перегляд, так і за функцію. Якщо будь-який із них є видатками, виключіть їх і повторно відкалібруйте.

Інтернет-інструмент для створення PDF-файлів для цілей калібрування можна знайти тут: https://calib.io/pages/camera-calibration-pattern-generator


Привіт, ласкаво просимо до DSP SE. Відповіді на саморекламу зазвичай тут не вітаються. Будь ласка, подумайте, як відповісти вищої якості
jojek
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.