Lanes Finding with Computer Vision
Использование компьютерного зрения для обнаружения дорог обычно включает 6 частей: калибровка камеры, коррекция искажения изображения, пороговое значение цвета/градиента, преобразование перспективы, определение линии дороги (обнаружение линий полосы), измерение кривизны дороги (определение кривизны полосы движения)
Калибровка
Сначала измерьте степень искажения, а затем неискажайте в соответствии с результатом измерения
Искажение искажения изображения
Теоретически, пока это не камера-обскура, в основном будет проблема искажения изображения (изображение объектива быстрее, а камера-обскура несравнима)
Искажения, вызванные объективом, в основном два:
-
Радиальное искажение
Причина в том, что отклонение, возникающее при прохождении света через края линзы, больше, чем отклонение при прохождении света через центр. -
Тангенциальное искажение
Причина в том, что свет не падает вертикально на плоскость изображения после прохождения через линзу.
ROI (Region of Interest)
Для обнаружения дороги сначала получите информацию о дороге с точки зрения камеры, а затем выберитеROI (область интереса), включая выбор цвета и область выбора.
Выбор цвета ближе к интуиции, а линии на дороге бывают только двух цветов, либо белые, либо желтые. Белая линия лучше
Однако если используется желтая линия, исходное изображение нельзя использовать напрямую. Сначала разделите исходное изображение на слои RGB.
И желтая линия не видна на синем слое
Область выбора — это проблема, которую можно решить напрямую с помощью CV.
Глядя вперед с передней части автомобиля, большинство пикселей бесполезны. Особенно часть неба. Для автоматического вождения это почти эквивалентно сигналу помех, который в принципе можно отфильтровать напрямую.
Цветовое пространство
В цветовом пространстве RGB (в RGB устанавливается трехмерное пространство) белый цвет состоит из максимального значения трех цветов: красного, зеленого и синего.
Но в этом случае информация желтой строки будет утеряна. Общий метод обработки заключается в использовании других цветовых пространств, таких как HSV, HLS, LUV...
HLS (hue, saturation, lightness)
Также называется HSL, а тем более HSL.
Canny Edge Detection
Следующим шагом является использование алгоритмов обнаружения краев для поиска краев. Если мы посмотрим на вид как на изображение в градациях серого, то каждый край фактически находится в положении, где чередуются светлые и темные блоки.
На самом деле, прежде чем выполнять алгоритм Кэнни, сделайтеСглаживание по Гауссу / Размытие по Гауссу, чтобы удалить шум и ложные точки градиента
(не по теме) Оператор Собеля
Во-первых, почему в сверточной нейронной сети есть операция свертки...
Прочитав оператор Собеля, я наконец понял, что операция свертки связана с суперпозицией сигналов. По сравнению с обнаружением границ Canny, обнаружение границ Sobel на самом деле проще для понимания (однако Canny работает лучше).
Преобразование Хафа
Преобразование Хафа — это классический алгоритм изменения изображения, который в основном используется для поиска набора признаков на изображении, грубо говоря, для обнаружения линий, окружностей и эллипсов.
Подвести итог:
Исходное изображение -> Изображение в градациях серого -> Обнаружение краев -> Обнаружение линий -> Отфильтровать прямые линии со слишком низким наклоном -> Наложить окончательный результат обратно на исходное изображение
Perspective Transform
Из-за существования перспективы 2D-изображения имеют феномен почти большого и очень маленького размера.
Lane Curvature
Решить проблему кривизны полосы движения на самом деле сложнее. Сначала исправьте исходное изображение по очереди
Раздвижные окна
В процессе обнаружения дуг сначала выберите небольшой участок внизу изображения и сделайте гистограмму в вертикальном направлении
Получение квадратичной функции дороги не помогает, с точки зрения вождения, что действительно необходимо, так это текущая дуга поворота. Следовательно, необходимо найти радиус кривизны группы изображений и вычислить соответствующий радиус кривизны в реальности.
Наконец
Также есть некоторые мелкие детали, в том числе Offset, Sanity Check, Look-Ahead Filter и т. д. Лень рассказывать
Обнаружение автомобиля
существуетCNN (Сверточные нейронные сети)До широкого использования для обнаружения транспортных средств использовались условные случайные поля или SVM (машины опорных векторов). Операция разделена на два этапа: сначала из изображения извлекаются признаки, а затем на их основе создается модель для определения положения транспортного средства.
соответствие шаблону
Для каждого цвета на изображении рассчитайте расстояние от фонового изображения.
Еще более хардкорный способ: напрямую сохранять все возможные изображения транспортных средств, а затем сравнивать их с изображениями с точки зрения камеры.
Эти решения в совокупности называютсяtemplate matching
Color Histogram
Очевидны и дефекты сопоставления с шаблонами, для шаблонов, которые не были предварительно сохранены, идентифицировать их, естественно, невозможно. Следовательно, схема цветовой гистограммы
HOG
Гистограмма ориентированных градиентов, функция HOG более надежна, чем предыдущие функции, и игнорирует влияние цвета.
При работе сначала зафиксируйте информацию о контуре и текстуре изображения.
Features Combination
Во-первых, это предварительная обработка данных, где в основном выполняется комбинация признаков.
Например, функция HOG предназначена дляинформация о градиентефункции, функции HSV предназначены дляинформация о цветеХарактеристики
Sliding Windows
Обнаружение транспортных средств с помощью раздвижных окон, некоторая изобретательность в этом сценарии
Прежде всего, ROI, транспортное средство будет отображаться только в нижней половине изображения.
Multiple Detection
Наконец, множественное обнаружение для одного и того же автомобиля
Build Model & Tracking
Клонирование поведения
Теоретическая основа использования нейронных сетей для беспилотного вождения основана на имитационном обучении. Поведенческое клонирование — это разновидность имитационного обучения. Идея очень проста: собрать все данные о вождении человека в качестве базовых данных, а затем позволить нейронной сети подобрать эти данные. В настоящее время Tesla в основном использует клонирование поведения.
Такое сквозное решение в основном представляет собой способ, преимущества: простота и эффективность, недостатки: ограниченность собранными данными. Поскольку обучающая выборка всегда ограничена, если есть данные, которые нейросеть раньше не видела, она будет работать плохо.
Более классическим условием является погода.Дорожное покрытие в дождливые дни отличается от дорожного покрытия в солнечные дни.Видимость дороги в туманную погоду также будет иметь большое влияние на данные, собираемые камерой.