Приложение Lidar Camera Calibrator позволяет вам в интерактивном режиме оценить твердое преобразование между датчиком лидара и камерой.
Эта тема показывает вам рабочий процесс приложения Lidar Camera Calibrator, а также функции, которые можно использовать, чтобы анализировать и улучшить результаты. Первая, и самая важная, часть калибровочного процесса должна получить точные и полезные данные. Для инструкций и советов для того, чтобы собрать данные, см. Калибровочные Инструкции и Процедуру.
Открыть приложение Lidar Camera Calibrator, в MATLAB® командная строка, введите эту команду.
lidarCameraCalibrator
В качестве альтернативы можно открыть приложение от вкладки Apps под Image Processing and Computer Vision.
Приложение открывается к пустому сеансу. Приложение считывает данные об облаке точек в PLY и форматах данных об облаке точек (PCD), и отображает в любом формате, поддержанном imformats
. Если ваши данные хранятся в rosbag файле, смотрите Данные о Лидаре и Камере Чтения из примера по Файлу Rosbag, чтобы преобразовать их соответственно.
Загрузите калибровочные данные в приложение.
На панели инструментов приложения выберите Import> Import Data, открыв диалоговое окно Import Data.
В поле Folder for images введите путь к папке, которая содержит файлы изображений, которые вы хотите загрузить. В качестве альтернативы нажмите кнопку Browse рядом с полем, перейдите к папке, содержащей изображения, и нажмите Select Folder.
В поле Folder for point clouds введите путь к папке, которая содержит последовательность PCD или файлов PLY, которые вы хотите загрузить. В качестве альтернативы нажмите кнопку Browse рядом с полем, перейдите к папке, содержащей файлы, и нажмите Select Folder.
В разделе Checkerboard Settings введите калибровочные параметры шахматной доски. Задайте для каждого квадрата шахматной доски в поле Square Size и выберите единицы измерения из списка рядом с полем..
В поле Padding введите дополнительные значения для шахматной доски. Для получения дополнительной информации о дополнении смотрите, что Шахматная доска Дополняет. Нажмите OK, чтобы импортировать ваши данные.
Чтобы добавить больше изображений и облаков точек к сеансу в любой точке на сеансе, выберите Import> Add Data to Session.
Загрузки приложения данные об изображении и облаке точек и выполняют автоматическое выявление признаков, передают их с помощью заданных параметров шахматной доски. Интерфейс приложения отображает прогрессию и результаты этой операции.
Панель Accepted Data отображает изображение и пары облака точек, которые приложение принимает для калибровки. Приложение принимает изображение или облако точек, если это обнаруживает функции шахматной доски в них обоих. Приложение использует имена файлов для парных данных, сравнивая изображения с соответствующими облаками точек с тем же именем. Панель Rejected Data отображает пары данных, которых приложение не могло обнаружить функции в изображении, облаке точек или обоих.
Отображения приложения данные в области визуализации как отдельные панели для изображения и данных об облаке точек. Каждая панель имеет вкладки с изображением или именем файла данных облака точек. Можно выбрать пару данных из Accepted Data или панели Rejected Data, чтобы визуализировать его в этой области. То, когда вы выбираете пару данных, выбрано, приложение подсвечивает его в синем. Чтобы удалить выбранную пару данных, нажмите Backspace (PC) или delete (Mac). Для большего количества горячих клавиш для браузера данных смотрите Браузер Данных.
Панель отображения изображений показывает изображение от выбранной пары и обнаруженных углов шахматной доски. Чтобы обнаружить углы шахматной доски, приложение использует estimateCheckerboardCorners3d
функция. Приложение вычисляет внутренние параметры камеры, чтобы выполнить выявление признаков. Если у вас есть внутренние ценности камеры, можно загрузить их в приложение, в разделе Camera Intrinsics, путем выбора Use Fixed Intrinsics. В диалоговом окне, которое открывает, обзор к вашему файлу внутренних параметров камеры и загружает его в приложение. После загрузки, в разделе Feature Detection, выбирают Detect, чтобы обнаружить функции с новыми внутренними параметрами.
Панель отображения облака точек показывает облако точек от выбранной пары с обнаруженной плоскостью шахматной доски, представленной в белом. Чтобы обнаружить плоскость, приложение использует detectRectangularPlanePoints
функция.
Используйте различные параметры отображения для облаков точек в приложении, чтобы улучшить визуализацию и обнаружение.
Выберите Snap To ROI, чтобы визуализировать конкретную видимую область (ROI) в облаке точек. Приложение устанавливает значение по умолчанию для ROI, но можно установить пользовательский ROI с помощью инструмента Edit ROI. Этот инструмент позволяет вам вручную точно определить область облака точек, где шахматная доска присутствует. Определение ROI может уменьшать отклонения данных и улучшать производительность путем фокусировки выявления признаков на определенной области.
Выберите Edit ROI, который открывает вкладку Edit ROI. Вкладка содержит тот же Accepted Data и панели Rejected Data как the Calibration вкладка, но панель отображения облака точек поднимает остальную часть окна.
Выберите пару данных, которую приложение подсвечивает в синем. Можно выбрать отклоненную пару данных, чтобы настроить ROI.
Очистите кнопку Snap To ROI, чтобы просмотреть облако самого главного.
ROI подсвечен в желтом. Укажите на ROI, и курсор превращается в ручной символ.
Нажмите на любую сторону ROI и перетащите его, чтобы переключить размер. Можно выбрать Snap To ROI, чтобы просмотреть содержимое ROI и изменить размер соответственно.
Выберите Apply, чтобы сохранить ваши изменения или Cancel, чтобы отбросить их.
Поскольку приложение применяет новый ROI на все системы координат облака точек, необходимо задать ROI, который покрывает все области, в которые вы поместили шахматную доску. Очистите кнопку Snap To ROI, чтобы просмотреть облако самого главного и выбрать Hide ROI Cuboid, чтобы удалить выделение ROI. Выберите Detect, чтобы обнаружить функции в выбранном ROI. В качестве альтернативы t вы может использовать горячие клавиши, чтобы выполнить эти задачи. Для получения дополнительной информации смотрите ROI Редактирования.
Чтобы далее настроить обнаружения, можно использовать функцию Select Checkerboard, чтобы вручную выбрать точки шахматной доски в любой системе координат облака точек.
На панели инструментов приложения выберите Select Checkerboard. Приложение открывает вкладку Select Checkerboard. Эта вкладка содержит тот же Accepted Data и панели Rejected Data как вкладка Calibration, но панель отображения облака точек поднимает остальную часть окна.
Выберите пару данных, которую приложение подсвечивает в синем. Можно выбрать отклоненную пару данных и найти шахматную доску в облаке точек.
Используйте изменение масштаба и вращайте опции на панели инструментов осей отображения облака точек, чтобы определить местоположение шахматной доски.
Выберите Select Checkerboard. Курсор изменяется в перекрестие.
Перетащите курсор по шахматной доске. Прямоугольник выбора появляется с точками в подсвеченном в красном. В качестве альтернативы можно также выбрать Brush/Select Data на панели инструментов осей.
После выбора точек вращайте облако точек, чтобы проверять, были ли какие-либо фоновые точки выбраны. Если ваш выбор содержит нежелательные точки, выберите Clear Selection, чтобы запуститься.
Выберите Apply, чтобы сохранить выбранные точки или Cancel, чтобы отбросить их.
Этот выбор шахматной доски применяется только к облаку текущей точки. Выберите Detect, чтобы обнаружить функции с помощью вручную выбранной шахматной доски.
Приложение обеспечивает эти настройки выявления признаков, в которых вы можете настройки параметров.
Remove Ground — Удалите наземные точки из облака точек. Приложение использует pcfitplane
функционируйте, чтобы оценить наземную плоскость. Опция Remove Ground активирована по умолчанию. Выберите Remove Ground, чтобы очистить его.
Cluster Threshold — Кластеризация порога для двух смежных точек в облаке точек, заданном в метрах. Процесс кластеризации основан на Евклидовом расстоянии между смежными точками. Если расстояние между двумя смежными точками меньше кластеризирующегося порога, обе точки принадлежат тому же кластеру. Датчики лидара с низкой разрешающей способностью требуют более высокого Cluster Threshold, в то время как датчики лидара с высоким разрешением извлекают выгоду из более низкого Cluster Threshold.
Dimension Tolerance — Допуск по причине неопределенности в прямоугольных плоских размерностях, заданных в области значений [0,1]. Более высокий Dimension Tolerance указывает на более терпимую область значений для прямоугольных плоских размерностей.
Выберите Detect, чтобы обнаружить функции с помощью новых параметров.
Когда вы удовлетворены результатами обнаружения, нажимаете кнопку Calibrate, чтобы калибровать датчики. Если у вас есть предполагаемая матрица преобразования, выберите Initial Transform, чтобы загрузить матрицу преобразования из файла или рабочей области. Приложение принимает, что угол поворота между датчиком лидара и камерой находится в области значений [–45], в градусах, вдоль каждой оси. Для угла поворота вне этой области значений используйте Initial Transform, чтобы задать начальное преобразование, чтобы улучшить калибровочную точность.
После калибровки интерфейс приложения отображает изображение с точками шахматной доски от облака точек, спроектированного на него. Приложение использует projectLidarPointsOnImage
функционируйте, чтобы спроектировать точки лидара на изображение. Информация о цвете изображений сплавлена с данными об облаке точек с помощью fuseCameraToLidar
функция.
Приложение также обеспечивает метрики погрешности для матрицы преобразования с помощью диаграмм погрешностей. Графики задают эти ошибки в каждой паре данных:
Translation Errors — Различие между центроидными координатами плоскостей шахматной доски в облаках точек и тех в соответствующих изображениях. Приложение возвращает ошибочные значения в метрах.
Rotation Errors — Различие между нормальными углами, заданными плоскостями шахматной доски в облаках точек и теми в соответствующих изображениях. Приложение оценивает плоскость в изображении с помощью угловых координат шахматной доски. Приложение возвращает ошибочные значения в градусах.
Reprojection Error — Различие между спроектированными (преобразованными) центроидными координатами плоскостей шахматной доски от облаков точек и тех в соответствующих изображениях. Приложение возвращает ошибочные значения в пикселях.
Когда вы выбираете пару данных в браузере данных, соответствующие панели в диаграмме погрешностей подсвечены в темно-синем. Можно настроить калибровочные результаты путем удаления выбросов. Перетащите красную линию вертикально, чтобы установить пределы погрешности. Пары данных с ошибочным значением, больше, чем предел погрешности как выбросы и подсветки значение погрешности и их соответствующие пары данных в браузере данных синего цвета. Щелкните правой кнопкой по любой из выбранных пар данных на браузере данных и выберите Remove and Recalibrate, чтобы удалить выбросы и перекалибровать датчики. Удаление выбросов может улучшить калибровочную точность. Для списка горячих клавиш, чтобы использовать с диаграммами погрешностей, смотрите Диаграммы погрешностей.
Можно экспортировать метрики матрицы преобразования и ошибки, как переменные, в рабочую область или MAT-файл. Можно сгенерировать скрипт MATLAB рабочего процесса законченного приложения, чтобы использовать в проектах.
Примечание
На платформах Macintosh используйте ключ Command (⌘) вместо Ctrl.
Используйте горячие клавиши и действия мыши, чтобы повысить производительность при использовании приложения Lidar Camera Calibrator.
Задача | Действие |
---|---|
Перейдите через пары данных в панели Rejected Data или Accepted Data | Или стрелка вниз |
Выберите несколько пар данных выше или ниже в настоящее время выбранной пары данных. | Содержите Shift и нажмите стрелку вверх или стрелку вниз |
Выберите несколько пар данных. Примечание Отмена выбора выбранной пары данных в настоящее время не поддерживается с помощью того же ярлыка.
| Содержите Ctrl и нажмите на пары данных |
Удалите выбранную пару данных из браузера данных. |
Диалоговое окно появляется к удалению. |
Выберите данные pairN выше в настоящее время выбранной пары данных. N является количеством пар данных, полностью отображенных в браузере данных в текущее время. |
|
Выберите данные pairN ниже в настоящее время выбранной пары данных. N является количеством пар данных, полностью отображенных в браузере данных в текущее время. |
|
Выберите пару First Data в браузере данных. |
|
Выберите последнюю пару данных в браузере данных. |
|
Используйте эти ярлыки на диаграммах погрешностей, чтобы анализировать данные. Операции на любой из этих трех диаграмм погрешностей влияют на соответствующее значение погрешности на всех трех графиках.
Задача | Действие |
---|---|
Выберите значение погрешности, оставленное в настоящее время выбранного значения погрешности. | Стрелка влево |
Выберите право значения погрешности на в настоящее время выбранное значение погрешности. | \Rightarrow |
Выберите право значения погрешности или оставленный в настоящее время выбранного значения погрешности, в дополнение к в настоящее время выбранному значению погрешности. | Содержите Shift и нажмите стрелку влево или стрелку вправо |
Выберите несколько значения погрешности. Примечание Отмена выбора выбранного значения погрешности в настоящее время не поддерживается с помощью того же ярлыка.
| Содержите значение погрешности нажатия кнопки и Ctrl |
Удалите выбранное значение погрешности и соответствующую пару данных от браузера данных. Приложение затем перекалибрует датчики. |
Диалоговое окно, кажется, подтверждает удаление. |
Ярлыки, чтобы использовать на вкладке Edit ROI.
Задача | Действие |
---|---|
Отмените изменение размера ROI. Примечание Приложение хранит только последние три размера ROI, таким образом, вы не можете отменить больше чем три раза подряд. | Ctrl+Z |
Восстановите изменение размера ROI. | Ctrl+Y |
Очистите выбор ROI | Esc |
Приложение Lidar Camera Calibrator имеет эти ограничения:
Инструменты осей облака точек не оптимизированы для Linux® машины, поэтому полная скорость отклика может быть медленной.
Скрипт сгенерировал от Export>, Generate MATLAB Script не включает областей шахматной доски, вручную выбрал использование функции Select Checkerboard. В скрипте область шахматной доски обнаруживается в заданном ROI.
После ручного выбора областей шахматной доски, использующих функцию Select Checkerboard, когда вы возвращаетесь к вкладке Calibration, вы видите выбранные точки (подсвеченный в красном) только при просмотре облака самого главного (когда SnapToROI очищен).
Lidar Camera Calibrator | estimateCheckerboardCorners3d
| estimateLidarCameraTransform
| projectLidarPointsOnImage
| fuseCameraToLidar
| bboxCameraToLidar