Сшивка изображений с нескольких камер

Я выполняю проект по сшивке изображений с нескольких камер, но мне кажется, что у меня есть узкое место... У меня есть несколько вопросов по этому поводу.

Я хочу попытаться установить их на транспортное средство в будущем, и это означает, что относительное положение и ориентация камер ИСПРАВЛЕНЫ.

Также, так как я использую несколько камер и пытаюсь сшить изображения с них с помощью HOMOGRAPHY, я буду ставить камеры как можно ближе, чтобы ошибки (из-за того, что фокусы камер не находятся в одном положении и это невозможно, так как камеры занимают определенное место.) можно уменьшить.

Вот небольшое видео моего эксперимента. http://www.youtube.com/watch?v=JEQJZQq3RTY

Результат сшивки очень ужасен, как показано здесь... Несмотря на то, что сцена, снятая камерами, статична, гомография все еще продолжает меняться.

Следующая ссылка — это код, который я сделал до сих пор, а code1.png и code2.png — это изображения, которые показывают часть моего кода в Stitching_refind.cpp.

https://docs.google.com/folder/d/0B2r9FmkcbNwAbHdtVEVkSW1SQW8/edit?pli=1

Несколько дней назад я изменил кое-что в коде, например, чтобы выполнить шаги 2, 3 и 4 (пожалуйста, проверьте 2 изображения png, упомянутые выше) ТОЛЬКО ОДИН РАЗ.


Подводя итог, мои вопросы:

<сильный>1. Можно ли обнаружить перекрывающиеся области перед вычислением признаков? Я не хочу вычислять признаки на всех изображениях, так как это приведет к увеличению времени вычислений и возникновению несоответствий. Интересно, возможно ли ТОЛЬКО компьютерные функции в перекрывающихся областях двух соседних изображений?

2.Что я могу сделать, чтобы сделать полученную гомографию более точной? Некоторые люди говорили о КАЛИБРОВКЕ КАМЕРЫ и пробовали какой-то другой метод сопоставления. Я все еще новичок в Computer Vision... Я пытался изучить некоторые материалы о калибровке камеры, но я так и не понял, для чего это нужно.

Около 2 месяцев назад я задал аналогичный вопрос здесь: сшивание с использованием OpenCV

, где один из ответивших Крис сказал:

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

Что означает «калибровать в автономном режиме»? и чем это помогает?

Спасибо за любые советы и помощь.


person SilentButDeadly JC    schedule 15.07.2012    source источник
comment
Извините за поздний ответ, меня не было пару недель. Боюсь, я фактически не проходил процесс совмещения двух камер таким образом, я просто знаю общий принцип. Однако функция, которую вы хотите изучить, это stereoCalibrate. , с калибровкой стерео ваш поисковый запрос для Google.   -  person Chris    schedule 23.07.2012


Ответы (1)


Как написал Крис:

However, your points are not restricted to a specific plane as they are 
imaging a 3D scene. If you wanted to calibrate offline, you could image 
a chessboard with both cameras, and the detected corners could be used
in this function.

Калибровка в автономном режиме означает, что вы используете некоторый шаблон калибровки, который легко обнаружить. Затем вычислить матрицу преобразования. После этой калибровки вы применяете эту (ранее рассчитанную) матрицу к полученным изображениям, она должна работать для вас.

person krzych    schedule 15.07.2012
comment
Извините, я так и не понял... 1. Какое отношение имеет калибровка к вычислению гомографии? 2. Калибровка в автономном режиме означает, что вы используете какой-либо шаблон калибровки, который легко обнаружить. Затем вычислить матрицу преобразования. После этой калибровки вы применяете эту (ранее рассчитанную) матрицу к полученным изображениям. Я знаю, что в OpenCV есть код калибровки камеры opencv.itseez.com/doc/tutorials/calib3d/camera_dication/ Итак, что мне нужно сделать, так это запустить такой код калибровки только ОДИН РАЗ, а затем запустить свой собственный код сшивания? - person SilentButDeadly JC; 16.07.2012
comment
В ссылке, которую вы добавили, есть информация о сохранении параметров камеры, вы вычисляете их один раз по шаблону шахматной доски, а затем используете для получения. Вот также некоторые ссылки на гомографию: ics.uci.edu/~majumder/vispercep /cameracalib.pdf epixea.com/research/multi- view-coding-thesisse9.html люди. scs.carleton.ca/~c_shu/Courses/comp4900d/notes/ - person krzych; 16.07.2012
comment
Означает ли это, что я должен подготовить шахматную доску к калибровке? У меня есть набор изображений шахматной доски, которые используются для стереокалибровки на компьютере моего товарища по лаборатории. Я только что загрузил их на свой гугл диск. docs.google.com/folder/d/0B2r9FmkcbNwAbHdtVEVkSW1SQW8/edit - person SilentButDeadly JC; 16.07.2012
comment
Я до сих пор понятия не имею :( (извините, я все еще новичок в области CV.), но мне интересно, нужно ли мне выполнять калибровку камеры всякий раз, когда я выполняю свой код сшивания нескольких камер (Stitching_refined.cpp на мой гугл диск) или мне нужно сделать это ТОЛЬКО ОДИН РАЗ и это раз и навсегда? - person SilentButDeadly JC; 16.07.2012
comment
Калибровка один раз, затем следует применить рассчитанные параметры. - person krzych; 16.07.2012
comment
Я нашел более старую версию кода калибровки камеры OpenCV здесь dsynflo. blogspot.tw/2010/03/ - person SilentButDeadly JC; 16.07.2012
comment
Я попытался скомпилировать его, и он был успешно выполнен. Итак, что мне теперь делать? В этом .rar также есть большая картинка шахматной доски. Что я должен сделать, это открыть изображение шахматной доски, держать камеру рукой и позволить ей смотреть на изображение шахматной доски на компьютере? - person SilentButDeadly JC; 16.07.2012
comment
Я использовал код калибровки и сделал шахматную доску перед камерой, чтобы сделать снимки (12 снимков) для калибровки. Я сделал калибровку на 2-х камерах ОТДЕЛЬНО и получил Distortion.xml и Intrinsics.xml для обеих камер. - person SilentButDeadly JC; 16.07.2012
comment
Я не уверен, правильно ли я поступил. Я взял шаблон шахматной доски и продолжал двигаться ПЕРЕД КАМЕРОЙ, КОТОРУЮ НУЖНО КАЛИБРОВАТЬ, и, наконец, я получил два XML-файла, упомянутых выше. Кроме того, каков мой следующий шаг, пожалуйста? - person SilentButDeadly JC; 16.07.2012
comment
Может быть, я так раздражаю. Прости за то, что я такой. - person SilentButDeadly JC; 18.07.2012
comment
Я пытаюсь сделать то же, что и вы ... и хотел бы также узнать некоторые ответы ... Во-первых: калибровка камеры будет производить внутренние и внешние параметры. Те, которые определены внутренней матрицей документации OpenCV, коэффициентами искажения и векторами вращения + перевода. Теперь, когда мальчик описывает свою проблему, положение его камер зафиксировано относительно друг друга. Так что, если калибровка камеры дает что-то, он уже знает! какая от него польза? Можете ли вы уточнить, пожалуйста? - person user573014; 01.08.2012