277
УДК 681.3
Ю.А. Левчук, А.Г. Новиков, В.Г. Дзюба
Алгоритм нахождения линий дорожной разметки
Разработан алгоритм распознавания до­рожной разметки c использованием метода Осу, преобразования Хафа и отслеживания линий. Полученные результаты позволяют использовать алгоритм как основу для раз­работки эффективной интеллектуальной системы распознавания дорожной разметки.
The algorithm of road traffic lane detection was developed. During the development the Otsu method, Hough transformation and lane tracking method were used. Gained results al­low the usage of the algorithm as a basis for development of the intellectual lane detection system.
Введение
Современный мир компьютерных систем ши­роко использует технологии машинного, или ком­пьютерного, зрения. В частности популярность приобретают решения, предназначенные для ав­томобилей, снижающие вероятность аварий и всячески облегчающие жизнь водителю. Среди таковых стоит отметить разработки «EyeQ» и «Opel Eye», которые являются комплексным ре­шением по распознаванию разметки, дорожных знаков, пешеходов, машин и т. д.
Основной операцией в работе этих систем является распознавание дорожной разметки, по­скольку существует тенденция к учащению случа­ев выезда водителей за разметку, что приводит к возникновению ДТП.
Результатом интенсивной работы в данной области является множество научных исследова­ний [1-3], некоторые из которых запатентированы в разных странах мира.
Существование коммерческих, следователь­но, засекреченных вариантов решения данной проблемы и побудило авторов к разработке соб­ственного подхода к распознаванию линий до­рожной разметки.
Основными моментами в распознавании раз­метки являются задачи нахождения линий самой разметки на изображении и их отслеживания.
Целью данной работы является разработка нового алгоритма распознавания разметки, требующего минимальных машинных ресурсов и обеспечивающего приемлемое быстродейст­вие для работы в режиме реального времени. Для достижения данной цели выделены сле­дующие основные задачи: нахождение линий
разметки на изображении, их отслеживание; ис­следование характеристик системы на тестовых изображениях.
1. Предварительная обработка изображений
Исходное цветное изображение обычно представляется в формате, где каждый пиксель зашифрован тремя значениями базовых цветов (красный, зеленый, синий) от 0 до 255 (RGB формат). Для дальнейших действий с изобра­жением необходимо преобразовать его в фор­мат оттенков серого (intensity format). Такое преобразование выполняется по следующей формуле [4]:
/ = 0.229R + 0.587G + 0.114B, где / - интенсивность серого, R, G, В - красная, зеленая и синяя составляющие соответственно.
Необходимость линейной фильтрации обоснована наличием множества низкочастот­ных помех на изображении.
Механизм линейной пространственной фильтрации заключается в перемещении цен­тра фильтрующей маски т от точки к точке изображения. В каждой точке (х,у) откликом
фильтра является сумма произведений коэф­фициентов фильтра и соответствующих писке-лов окрестности, которые накрываются фильт­рующей маской. Для маски тхп предполага­ется, что т = 2а + 1 и п = 2Ь + 1, где а и b - не­отрицательные целые числа. Учитывая машин­ные затраты на наложение фильтра была по­добрана простая маска М , полностью удовле­творяющая поставленной задаче: M = [-1 0 1],
где М - фильтрующая маска
В области компьютерного распознавания образов и обработки изображения, метод Оцу используется для выполнения пороговой бина­ризации полутоновых изображений [5]. Алго­ритм предполагает наличие в изображении двух классов пикселей (значимые и фоновые) и ищет оптимальный порог, разделяющий эти два класса так, что бы их внутриклассовая диспер­сия была минимальна.
Метод Оцу ищет порог, уменьшающий де­виацию внутри класса, которая определяется как взвешенная сумма девиаций двух классов:
a2(f) = co1(f)a12(f) + co2(f)a|(f)
278               Электроника и связь. Тематический выпуск «Электроника и нанотехнологии», ч.2, 2009
Веса со, - это вероятности двух классов раз­деленных порогом t, а а2 - девиация этих
классов. Оцу показал, что минимизация девиа­ции внутри класса это то же самое, что и мак­симизация девиации между классами:
4 (0 = а2 - а2 (0 = Ю1 (0а>2 (О Ь (0 " Ц2 (О]2 ,
которая выражается в терминах вероятности со,
и среднее арифметическое класса ц,, которое в
свою очередь может обновляться итеративно.
На основании данного подхода разработан алгоритм бинаризации изображений:
1.   Вычислить гистограмму и вероятность для каждого уровня интенсивности.
2.  Вычислить значения для г, и ц,-.
3.  Для каждого значения порога от t = 1 до максимальной интенсивности:
1) обновляем со/ и ц/-
2) вычисляем a2(f);
3)  если а больше чем имеющееся, то запоминаем а и значение порога.
4.  Искомый порог соответствует максимуму
a2(f).
Оцу показал, что минимизация девиации внутри класса это тоже самое, что и максимиза­ция девиации между классами [4]:
4 (0 = с2 - а2 (0 = Ю1 (f)co2(ОЬИ (0 " ^2С)]2
2. Нахождение линий на изображении.
Один из подходов к выполнению подобных действий основан на преобразовании Хафа [А].
Имея некоторое множество точек изображе­ния (обычно двоичного), предположим, что тре­буется найти подмножества этих точек, которые лежат на прямых линиях. Один возможный под­ход заключается в построении всевозможных прямых, задаваемых парами этих точек, а по­том в обнаружении точек, которые расположены близко к конкретным прямым. Проблема реали­зации такой процедуры связана с необходимо­стью рассмотрения всех возможных прямых, а затем в выполнении операций сравнения всех точек с каждой из этих прямых. Вычислительная сложность такого решения позволяет применять его лишь в самых простых прикладных задачах.
Имея преобразование Хафа, возможен иной подход. В этом преобразовании используется параметрическое представление линий: р = xcos(8) + ysin(8)
Переменная р представляет собой рас­стояние от центра координат до линии вдоль вектора, перпендикулярного к линии. Параметр
8 представляет собой угол между осью х и этим вектором. Имея матрицу р и 8 можем
найти максимумы преобразования Хафа по сле­дующему алгоритму:
1)  найти ячейку преобразования Хафа, в ко­торой лежит наибольшая величина, и записать ее местоположение;
2)  обнулить ячейки в ближайшей окрестно­сти положения, найденного на шаге 1;
3)  повторять шаги 1 и 2 до тех пор, пока же­лаемое число максимумов не будет найдено или после достижения заданного порога.
Далее для каждого максимума следует най­ти положения всех ненулевых пикселов изо­бражения, которые лежат на соответствующих прямых. После упорядочивания пикселов в сег­менты линий оставить линии которые длиннее некоторой минимальной пороговой длинны a .
Опытным путем было установлено, что для целей распознавания дорожной разметки поро­говая длинна при размере изображения 640х480 не составляет более a = 5 .
Для использования метода Хафа, разобьем изображение на верхнюю и нижнюю части, пря­мые линии будем искать в нижней части изобра­жения, так как именно туда попали интересующие нас линии разметки. Результат нахожения линий методом Хафа в среде MATLAB показан на ри­сунке 1 (исходные размеры фреймов 360х240).
а
б
Рис 1. Нахождение линий:а – исходное изображе­ние (разрешение изображения: 320х240); б – би­нарное изображение с найденными линиями (разрешение изображения: 320х120)
Далее производится процедура первона­чального нахождения линий разметки: находят­ся две линии угол между которыми лежит в пределах от 25° до 50°и обе эти линии имеют угол пересечения с горизонталью от -25° до 25°.
Результат нахождения линий в среде MATLAB разметки представлен на рисунке 2.
Информационные системы и технологии
279
участок трассы Киев-Одесса протяженностью 50 км. В качестве аппаратной части использовался ноутбук Acer Aspire 6935g, который имеет сле­дующие технические характеристики:
-    процессор: Core 2 Duo T9400 2,53GHz;
-    оперативная память: 4Gb DDR3;
-    видеокарта: NVIDIA GeForce 9600M GT. Параметры входного сигнала были следую­щими:
-    размер фрейма 640х480 пикселей.
-    представление сигнала в формате RGB.
-    частота фреймов: 25 фреймов в секунду. В результате тестирования были получены
следующие результаты:
-    распознанных фреймов: 95%;
-    ошибка при идентификаций линий: 5%;
-    время на обработку одного фрейма: 0.25 секунды.
Вывод
В данной работе был разработан алгоритм распознавания дорожной разметки за счет ре­шения следующих задач: получение изображе­ния с внешнего источника и предварительная обработка, нахождение линий на изображении, отслеживание линий. Разработанный алгоритм требует для однозначного определения линии обработки не более 3 фреймов, что позволяет использовать его для распознавания в режиме реального времени. Было проведено тестиро­вание системы в среде MATLAB с использова­нием видеоматериала, отснятого в реальных условиях, которое подтвердило эффективность и точность предлагаемого алгоритма.
В целом разработанный алгоритм можно считать приемлемым для использования в сис­темах нахождения линий дорожной разметки.
Литература
1.    S. Beucher, X. Yu. Road recognition in com­plex traffic situations. – Addison Westley, 1991. – 76 p.
2.    Paetzold F., Franke U. Road recognition in ur­ban environment. – Academic Press, 1995. – 53 p.
3.    M. Foedisch, C. Schlenoff, R. Madhavan. Per­formance Analysis of Symbolic Road Recogni­tion for On-road Driving. – Academic Press, 1999. – 110 p.
4.    Р. Гонсалес, Р.Вудс. Цифровая обработка изображений // М.: Техносфера – 2005. – 1072с.
5.    N. Otsu. A threshold selection method from gray-level histograms. – Academic Press, 1975. – 153 p.
Рис. 2. Исходное изображение с найденными ли­ниями разметки (разрешение изображения: 320х240).
3. Отслеживание линий
Отслеживание линий разметки должно удовлетворять двум требованиям: четко опре­делять являются ли найденные линии в каждом фрейме линиями разметки; позволять работу р реальном режиме времени.
Был разработан следующий алгоритм от­слеживания линий:
1)  Все найденные линии на новом фрейме проверяются на сходство с линиями разметки на­ходящимися в «хранилище линий». «Хранилище линий» представляет собой координаты краев линий разметки на предыдущих фреймах. Схо­жими линиями будем считать те, расстояния ме­жду краями которых не превышают β пискелей:
где
координаты краев сравниваемых линий.
2) Если линия на новом фрейме схожа с ли­нией в «хранилище линий», ее координаты по­мещаются туда, если же нет координаты линии разметки остаются прежними и счетчик фрей­мов на которых не найдено линий увеличивает­ся на 1. Если счетчик достиг трех фреймов, «хранилище линий» обнуляется, и процедура первоначального нахождения линий повторяется.
При тестировании данного алгоритма в сре­де MATLAB был определен параметр β =15 для изображения размером 640х480.
4.   Экспериментальное исследование алго­ритма распознавания дорожных знаков
Исследование точности и быстродействия ал­горитма выполнялось в среде MATLAB 7.7 с ис­пользованием тестового видеоролика, на кото­ром был заснят камерой