Публичный аккаунт «Muggle Intelligence», следите за дополнительной информацией.
Эта статья в основном представляет собой обновление на основе двух предыдущих блогов по калибровке искаженной сетевой камеры. Для получения базовых теоретических знаний см.:
"Я не знаю, как откалибровать камеру? Все, что вы хотите знать, здесь! 》
«Второе обновление, основа калибровки параметров камеры: от изображения пинхола до калибровки одиночной и двойной цели»
Все коды и изображения в этой статье были загружены и могут использоваться в обычном режиме.Подпишитесь на официальный аккаунт для загрузки.
одиночная цель
Введение
2. Условия эксперимента
3. Экспериментальный контент
4. Экспериментальные шаги
5. Экспериментальный код
6. Экспериментальные снимки
7. Экспериментальные результаты
01 предисловие
Вчера секретарь нашей деревни Чжао Цзяньго намеренно отогнал повозку с волами на 30 миль, чтобы найти ее. Говорят, что камера на въезде в село выглядит плоской. Особенно Цянь Цзяньго в камере рядом с Сунь Цзяньго у входа в деревню совсем не похож на человека. Когда я думаю об этом, с этим что-то не так. Цянь Цзяньго только что вернулся с работы в других провинциях 22 января с.г.. Согласно требованиям начальства и указаниям секретаря сельского комитета, он должен быть изолирован дома на 14 дней. По логике вещей, Цянь Цзяньго не должен появляться рядом с Сунь Цзяньго на въезде в деревню. Мне даже не нужно думать об этом, я знаю, что происходит. Сунь Цзяньго вернулся из другой провинции 25 января и также находится на карантине. Сунь Цзяньго был должен деньги Цянь Цзянго, и Цянь Цзяньго пошел забрать долг.
Для противоэпидемического плана деревни я лично надел двухслойную маску и вместе с деревенским сантехником Ли Цзяньго снял камеру, вернулся домой и провел некоторые исследования. Посмотрите, в конце концов, что в этом плохого. По фактическому осмотру места происшествия изначально было установлено, что искажение камеры было слишком серьезным, что ослепило глаза секретаря сельского парткома. Этот вопрос должен быть решен, и мы не должны доставлять неприятностей секретарю деревенской партии из-за камеры.
02 Условия эксперимента
Основное экспериментальное оборудование показано на следующих двух рисунках.
Основное экспериментальное оборудование показано в следующем списке.
03 Экспериментальный контент
Основное экспериментальное содержание включает в себя:
1. Постройте всю экспериментальную платформу и наблюдайте, как камера делает снимки.
2. Откалибруйте сетевую камеру и получите параметры камеры.
3. Используйте откалиброванную камеру для исправления захваченного изображения.
4. Доложить секретарю партии села.
04 Экспериментальная процедура
(4.1) Создание экспериментальной платформы
Прежде всего, я построил платформу в соответствии с основным процессом фотографирования с помощью определенной сетевой камеры Kang.
Камера питается от адаптера питания.
Для передачи данных используется сетевой кабель длиной 1 метр для связи с ноутбуком.
В соответствии с открытым API некоего Канга я создал окно MFC для подключения камеры, и в этом окне есть функция предварительного просмотра.
Нажмите кнопку предварительного просмотра, и левое окно сможет в режиме реального времени просмотреть интерьер кладовой фермы моего родного города.
Нажмите кнопку Захват, чтобы сохранить изображение. Так как путь к смерти я прописал в коде, окна для настройки пути нет.
Судя по эффекту предварительного просмотра, прямые стены, выхлопные трубы обогревателя и край лестницы имеют очевидные изгибы.
Поэтому важной задачей данной калибровки камеры является не только получение параметров камеры, но и коррекция искажения изображения.
(4.2) Калибровочная камера
Фактический размер калибровочной доски показан на рисунке ниже. Фактическая длина такова, длина каждой ячейки 2 см.
(4.2.1) Сделать калибровочное изображение
Из всех сделанных снимков я выбрал 21 снимок в качестве калибровочных.
Вы определенно спросите, почему калибровочная плата составляет такую маленькую часть изображения, а не большую? И услышал это. Сетевая камера, которую я использую, за пределами этого места делает четкие снимки. Если в этом положении, фотография будет размытой. Вы можете увидеть картину.
Видно, что черная и белая сетки на калибровочной доске явно размыты, а края недостаточно четкие.
Другими словами, автор считает, что если требования не очень строгие, ранее скорректированное расстояние подходит для приложений, отвечающих общим условиям. Это не повлияет на ваше обучение калибровке камеры. Все эти снимки блогеры выложили в паблик для скачивания.
Увеличиваем калибровочную доску на картинке и видим, что на пересечении черной и белой сеток нет явной связи. Нет возможности сделать это, качество изображения камеры очень плохое. Итак, как решить эту проблему?
(4.2.2) Предварительная обработка изображения
Моей первой мыслью было уменьшить размер изображения до половины исходного размера. Увидите реальный эффект. Едва пригодный для использования.
Соответственно, исправляемое изображение также уменьшается в размере.
(4.2.3) Определение калибровочных параметров
Конкретное теоретическое содержание см. в двух других блогах.
«Калибровка камеры (калибровка камеры) и как использовать результаты калибровки»
«Второе обновление, основа калибровки параметров камеры: от изображения пинхола до калибровки одиночной и двойной цели»
Здесь я говорю только о конкретных шагах, а подробный код будет опубликован в главе 4.
(a) Прочитайте все калибровочные карты
Использовать метод cv2.imread(img_path) очень просто.
(b) Найдите углы
Чтобы найти углы, используйте cv2.drawChessboardCorners(), который также легко доступен. Вы можете взглянуть на мои результаты поиска в углу, которые прекрасны.
Возьмем картинку высокого разрешения.Неоспоримо, что некоторые углы оказываются смещенными.Однако в качестве эксперимента нас это не слишком беспокоит. Главное - процесс.
(c) Рассчитать матрицу параметров
Давайте посмотрим на процесс расчета с проблемой.
просить:Зачем нужно делать так много снимков, разве одного недостаточно?
Блогер также упомянул в двух других блогах, что в соответствии с методом калибровки Чжан Чжэнью матрица параметров может быть преобразована только путем запроса матрицы B и матрицы H. Решения матрицы B и матрицы H оптимизируются оценкой максимального правдоподобия. Для получения подробной информации см.:
https://www-users.cs.umn.edu/~hspark/CSci5980/zhang.pdf
Тогда процесс оптимизации должен требовать совместного действия нескольких изображений. В приведенной выше литературе автор привел, сколько изображений подходит, и не будет повторять их здесь.
Объединив все угловые точки, созданные на предыдущих шагах, в качестве входных данных функции, можно получить решение:
cv2.calibrateCamera()
Возвращаемый результат включает внутренние параметры и параметры искажения.
Кроме того, процесс калибровки фактически представляет собой процесс преобразования матричных отношений. Что это обозначает?
Например, в соответствии с фактическим внешним видом калибровочной пластины я предположил, что на компьютере воображаемое изображение калибровочной пластины, насколько длинное и широкое, и процесс калибровки заключается в том, что все калибровочные пластины на захваченных изображениях должны быть в предполагаемом мною направлении. тарелка по. Если оно не совпадает, то существует связь по коэффициенту, а связь по коэффициенту — это параметр, который мы хотим откалибровать.
Это понимание отражено и в программе.
(4.3) Исправление захваченного изображения
Используем параметры искажения, полученные в (4.2), для коррекции проблемного изображения и получаем следующие результаты.
Эффект еще возможен.
(4.4) Отчет секретарю сельского комитета.
Увидев вышеописанный эффект, я могу доложить секретарю деревенской партии. Завтра он приедет ко мне за результатом, мне надо туда спешить. Борьбу с эпидемией нельзя откладывать.
05 экспериментальный код
Код был загружен в публичный аккаунт, вы можете следить за загрузкой.
Для построения среды вы можете обратиться к другому блогу. Я работаю в среде тензорного потока.
"Полное руководство по глубокому обучению! (Последовательная установка шести UDA10.1+tensorflow+VS+anaconda3)"
06 Экспериментальные фотографии
При съемке я стараюсь, чтобы калибровочная плата точно фокусировалась. Но недостатком является то, что калибровочная плата занимает лишь небольшую часть изображения.
Блогер выложил все снимки в паблик-аккаунт. Вы можете скачать собственное экспериментальное исследование.
07 Результаты экспериментов
Судя по разной информации в интернете есть специальные инструкции по размещению калибровки, а есть инструкции по количеству сделанных фото.
Эксперимент блогера не предъявляет высоких требований к конечному результату, но эффект приемлем.
Поэтому в процессе калибровки все же приходится исходить из реальной ситуации.
Секретарь парткома поселка высоко оценил мою работу и сказал, что если в будущем такое случится, он также предоставит мне эту возможность бесплатно заниматься спортом.
Позже об этом узнал директор соседнего поселка и сказал, что имеет ко мне какое-то отношение. Я предполагаю, что это может быть связано с бинокулярным измерением, которое он недавно сделал.
В конце этой статьи обратите внимание на четвертое обновление, постановку двойной цели.