Автомобильная промышленность является пионером и крупнейшим потребителем технологий машинного зрения. По данным аналитиков, на долю автомобильной отрасли Германии приходится 23% рынка продуктов компьютерного зрения, а по оценкам VDMA для всей Европы этот показатель составляет 21%.
В связи с этим неудивительно, что алгоритмы машинного зрения всё чаще внедряются непосредственно в автомобили, а не только используются на этапах их производства. В настоящее время они применяются в системах автономного вождения и распознавания дорожной разметки.
В данной статье мы начнем рассматривать принципы работы систем “зрения” автомобилей, используя базовые алгоритмы и методы в качестве основы для серии публикаций на эту тему.
Видят препятствия
Современные автомобили, оснащенные системами датчиков и камер, способны идентифицировать окружающие объекты, такие как бордюры, деревья, столбы и припаркованные транспортные средства.
Расстояние до этих объектов определяется на основе принципа параллакса движения: при перемещении влево или вправо близлежащие предметы смещаются сильнее, чем удаленные. Анализ этого смещения позволяет вычислить расстояние до объекта.
Данный метод получил название “Structure from Motion”. На страницах Википедии можно найти различные инструменты для создания трехмерных моделей на основе видеозаписей или серии фотографий. Основной принцип работы этих инструментов основан на анализе стереопарных изображений.
Стереопара, заснятая двумя камерами / фото cobravictor / PD
Стереопара изображений позволяет идентифицировать пары сопряженных точек в пространстве, на основании которых строится карта расстояний. На этой карте расстояние до объекта обозначается различными оттенками серого: чем дальше объект, тем темнее оттенок. Примером такого изображения может служить работа Райнхарда Клетте из Оклендского технологического университета.
После построения карты производится анализ движения объектов, включающий определение их скорости и траектории. Это необходимо для прогнозирования потенциальных столкновений.
Анализ движения начинается с расчета оптического потока, который используется для вычисления карты смещений. Карта смещений позволяет отследить изменение положения точек на втором изображении стереопары. Данный метод широко применяется в системах слежения за объектами, обнаружения столкновений и дополненной реальности.
Среди простых методов определения сдвига выделяют метод фазовой корреляции, основанный на вычислении преобразования Фурье для обоих изображений и нахождении их свертки. Также используется поблочное сравнение, при котором определяется сдвиг, минимизирующий норму разности изображений в заданном окне.
Классическим подходом к вычислению оптического потока является алгоритм Лукаса-Канаде. Этот алгоритм основан на предположении о том, что значения пикселей переходят из одного кадра в следующий без изменений. Другими словами, предполагается, что пиксели, относящиеся к одному и тому же объекту, могут сместиться, но их значение останется неизменным.
Несмотря на то, что в реальных условиях освещенность постоянно меняется, данное допущение не оказывает существенного влияния на результат. Подробное описание теории работы алгоритма Лукаса-Канаде можно найти в соответствующей научной статье.
Данный метод хорошо определяет небольшие сдвиги, в рамках которых изображение близко к своей линейной аппроксимации. Существуют и другие подходы, такие как метод Гуннара Фарнебака, который рассчитывает поток для всего изображения сразу, и алгоритм Хорна-Шранка, основанный на гипотезе об ограничении изменения проекций векторов оптического потока.
Дополнительную информацию о построении карт смещений и расстояний можно найти в указанных источниках.
На основе полученных карт алгоритмы строят маршруты и оценивают траектории движения объектов, избегая столкновений и осуществляя маневрирование. Алгоритмы строят вероятностные модели для прогнозирования маршрутов объектов в окружающей среде.
При автопилотировании система выстраивает предварительный план маршрута до точки назначения и постоянно отслеживает окружающую обстановку. Транспортное средство определяет возможные направления движения, учитывая текущую скорость и угловое положение.
Затем отсеиваются маршруты, пересекающиеся с препятствиями или приближающиеся к ним слишком близко. Также оценивается безопасность маневра. Например, автомобиль, движущийся со скоростью 90 км/ч, не сможет резко повернуть направо через 5 метров.
После выбора оптимального пути контроллер автомобиля подает команды на управление акселератором, тормозами, рулевой системой и силовыми приводами.
Следует отметить, что существуют и другие способы определения расстояния до препятствий и избегания столкновений. Их появление и реализация станут возможными с развитием интернета вещей. Эти алгоритмы работают на основе принципиально иного подхода и предлагают использовать не камеры, а системы связи “автомобиль-автомобиль” и “автомобиль-инфраструктура”.
DRCA-алгоритм
Алгоритм “Decentralized Reactive Collision Avoidance” предусматривает, что при значительном удалении друг от друга транспортные средства движутся по заданным траекториям. В случае приближения автомобилей система автоматически осуществляет маневр для предотвращения столкновения. Структурная схема алгоритма представлена далее.

Блок-схема DRCA-алгоритма
Для определения того, столкнутся ли автомобили, DRCA использует концепцию «конуса столкновения» (collision cone), описываемого векторами скорости. Если угол β между вектором относительного положения r⌄ij и вектором относительной скорости v⌄ij больше или равен α — углу между вектором относительного положения и концом конуса столкновения — то конфликта маршрутов нет.

Конус столкновения — это угол между пунктирными линиями. Если вектор v оказывается в этой зоне, то автомобили «конфликтуют»
Алгоритм помогает объехать и статичные объекты, однако не годится, если транспортные средства двигаются в формации. DRCA предложит автомобилям набрать безопасное расстояние относительно друг друга и «разобьёт» строй.
Метод искусственных силовых полей
Данная технология может быть использована в сочетании с DRCA (системой динамического управления потоком). Она основана на моделировании искусственных силовых полей. В данной модели автомобили представляются как заряженные частицы, которые отталкиваются при одинаковом заряде и притягиваются при противоположном. Автомобилям присваивается отрицательный заряд, а их желаемым маршрутам – положительный. На основании этих зарядов вычисляются векторы силы, которые затем используются для определения направления движения.
Существуют различные методы оценки векторов силы притяжения. Один из них, предложенный Yunior I. Cruz из Вашингтонского университета, также применяется для планирования маршрутов самолетов с неизменной геометрией крыла. Вокруг транспортного средства формируется овальная “зона безопасности”, за пределами которой влияние зарядов других транспортных средств становится незначительным. Сила притяжения к точке назначения считается постоянной. Это позволяет оценить силу, действующую на автомобили, и корректировать их маршрут на основе полученных данных.
Распознают полосы
Современные автомобили всё чаще оснащаются системами компьютерного зрения для определения границ дорожной полосы. Эти системы способны не только предупреждать водителя о несанкционированном выезде за пределы полосы, но и автоматически корректировать траекторию движения.
Существует два основных подхода к реализации этой функции. Первый предполагает использование “умной” дорожной инфраструктуры, оснащенной специальными маячками, которые передают информацию о разметке автомобилям. Однако этот метод сопряжён с высокими затратами на модернизацию дорожного покрытия. Второй подход основан на автономном анализе изображения с камер, установленных на автомобиле.
Системы, работающие по второму принципу, используют алгоритмы обработки изображений для выделения характерных признаков разметки. На первом этапе система обнаруживает линии, расположенные под определённым углом к оптической оси камеры. Затем, с помощью троичного поиска, выделяются крайние пиксели этих линий.
Важно отметить, что подобные системы могут выявлять не только линии разметки, но и другие линейные объекты на дороге, такие как трещины в асфальте. Для решения этой проблемы компании-разработчики используют различные методы. Например, компания Suzuki применяет проективное преобразование изображения, отфильтровывая линии, не параллельные заданным направлениям.
Другой подход, получивший название “Птичий глаз”, описан в книге “Mathematical Morphology and Its Application to Signal and Image Processing”. Он основан на преобразовании изображения в ортографическую проекцию, что позволяет более точно определить положение линий разметки.
Некоторые алгоритмы полагаются на обнаружение участков изображения, где цвет меняется с чёрного на белый. Однако этот метод не всегда эффективен, поскольку качество нанесения разметки может варьироваться. Поэтому исследователи рекомендуют комбинировать различные подходы для достижения более точных результатов.
Алгоритм распознавания с построением бинарных изображений и кодом смотрите здесь: GitHub. Представленный проект является частью программы Udacity Self-Driving Car Nanodegree. Пример с частью кода из библиотеки алгоритмов OpenCV вы можете найти здесь.
Автор: Алина Тестова @alinatestova
Источник: https://habr.com/