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