Калибровка камеры, преобразование перспективы и коррекция искажений для разработки беспилотных автомобилей

Добро пожаловать в эту среднюю статью. Компьютерное зрение можно по существу разбить на трехэтапный цикл. Ощущение окружающего мира — первый шаг к самоуправляемому автомобилю. Основываясь на этом восприятии мира, беспилотный автомобиль решает, что делать. На последнем этапе автономный автомобиль выполняет действие, основанное на решении, принятом на предыдущем этапе. Это составляет целое компьютерное зрение, используемое самоуправляемым автомобилем.

Компьютерное зрение является основной частью этапа восприятия в этом цикле. 80% сложности при создании беспилотного автомобиля заключается в восприятии. Компьютерное зрение — это метод распознавания окружающего мира с помощью изображений или видео. Для самоуправляемых автомобилей или автономных транспортных средств компьютерное зрение выполняет наиболее важные шаги или процессы, такие как обнаружение разметки полосы движения, транспортных средств или пешеходов, а также других элементов, таких как дорожные знаки и т. д.

В беспилотных автомобилях используется набор сложных датчиков, но люди справляются с вождением всего двумя глазами и одним хорошим мозгом. На самом деле, мы можем сделать это даже с одним закрытым глазом. Действительно, можем. Итак, давайте подробнее рассмотрим, почему использование камер вместо других датчиков может быть преимуществом при разработке беспилотных автомобилей. Радар и лидар видят мир в 3D, что может быть большим преимуществом для понимания того, где мы находимся относительно окружающей среды. Мы знаем, что камера видит только двухмерный мир вокруг себя, но с гораздо более высоким пространственным разрешением, чем радар и лидар. Благодаря этому на самом деле можно вывести информацию о глубине из изображений с камеры. Однако большая разница сводится к стоимости, где камеры значительно дешевле.

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

Коррекция искажения

Коррекция искажений вступает в игру, когда мы хотим получить информацию, оставленную нашей камерой, расположенной на капоте автомобиля. Это связано с тем, что изображение, снятое камерой, искажается. Камера смотрит на 3D-объекты и преобразует их в 2D-изображение. Это преобразование не идеально. Например, вот изображение дороги и несколько изображений, снятых через разные объективы камер, которые слегка искажены.

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

Модель камеры-обскуры и типы искажений

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

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

Калибровка камеры с использованием изображений шахматной доски

Первым шагом будет чтение калибровочных изображений шахматной доски. Для выполнения калибровки должно быть не менее 20 изображений. Их следует снимать под разными углами и расстояниями. Каждая шахматная доска здесь имеет восемь на шесть углов для обнаружения. Я подробно расскажу о шагах калибровки для первого калибровочного изображения.

Кривизна дорожки

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

Как это работает для беспилотного автомобиля?

Автономные транспортные средства должны быть снабжены правильным углом поворота рулевого колеса, чтобы они могли поворачивать влево или вправо, и мы можем легко рассчитать этот угол.

Чтобы определить кривизну, мы выполним следующие шаги.

Во-первых, мы обнаружим линии дорожек, используя некоторые методы маскирования и определения порога.

Затем выполните преобразование перспективы, чтобы получить вид дорожки с высоты птичьего полета. Это позволяет нам подогнать полином к линиям дорожек. Что мы не могли сделать очень легко раньше.

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

Преобразование перспективы

В изображении перспектива — это явление, когда объект кажется меньше, чем дальше он находится от точки обзора, такой как камера, и кажется, что параллельные линии сходятся в точку. Это видно во всем, от изображений с камер до искусства. Многие художники используют перспективу, чтобы создать правильное впечатление о размере, глубине и положении объекта, если смотреть с определенной точки. И давайте посмотрим на перспективу на этом изображении дороги.

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

Выполняя перспективное преобразование и просматривая это же изображение сверху, мы видим, что полосы параллельны и обе изгибаются примерно на одинаковую величину вправо. Итак, преобразование перспективы позволяет нам изменить нашу перспективу, чтобы увидеть одну и ту же сцену с разных точек зрения и под разными углами. Это может быть просмотр сцены сбоку от камеры, снизу камеры или взгляд сверху на дорогу. Выполнение преобразования вида с высоты птичьего полета особенно полезно для изображений дорог, поскольку оно также позволяет нам сопоставлять местоположение автомобиля непосредственно с картой, поскольку на карте дороги и пейзажи отображаются с видом сверху вниз. Процесс применения преобразования перспективы будет чем-то похож на то, как мы применяли неискажение. Но на этот раз вместо сопоставления точек объекта с точками изображения мы хотим сопоставить точки на данном изображении с разными желаемыми точками изображения с новой перспективой.

использованная литература

  1. Основы компьютерного зрения — самоуправляемые автомобили (поиск полос движения)


2. Введение в нейронные сети для беспилотных автомобилей (основные понятия, часть — 1)



3. Введение в нейронные сети для беспилотных автомобилей (часть фундаментальных концепций — 2)



4. Введение в глубокое обучение для самоуправляемых автомобилей (часть — 1)



5. Введение в глубокое обучение для самоуправляемых автомобилей (часть 2)



6. Введение в сверточные нейронные сети для беспилотных автомобилей



7. Введение в Keras и трансферное обучение для самоуправляемых автомобилей



8. Усовершенствованные методы поиска полосы движения (беспилотные автомобили)



На этом мы подошли к концу этой статьи. Спасибо, что прочитали это и последовали за нами. Надеюсь, вам понравилось! Большое спасибо за прочтение!

Мое Портфолио и Linkedin :)