Распознавание дорожных знаков основывается на анализе изображений, полученных с камер, установленных на автомобиле. Эффективность работы такой системы зависит от корректной предварительной обработки изображений, в частности – от точного выделения области, содержащей дорожный знак. Основой этой процедуры выступает цветовая сегментация, поскольку большинство дорожных знаков обладают характерной цветовой окраской (например, красный, синий, жёлтый), позволяющей отличить их от фона.
На практике задача сегментации усложняется различиями в освещении, погодных условиях, наличием теней, бликов, а также загрязнением камеры. Это делает использование стандартного цветового пространства RGB неэффективным, поскольку оно неразрывно связано с яркостью. В связи с этим актуальной становится задача выбора более устойчивого цветового пространства – например, HSV, LAB или IHLS – для выделения дорожных знаков при помощи цветовой сегментации [1].
1. Цветовая сегментация с использованием HSV
HSV (Hue – оттенок, Saturation – насыщенность, Value – яркость) является одним из часто используемых цветовых пространств для цветовой сегментации, которая позволяет выделять объекты на основе их цветовых характеристик, в нашем случае дорожные знаки, как правило, обладают отчетливыми цветами, в основном такими как красный, желтый и синий [1].
Это пространство представлено в полярной системе координат, где оттенок определяет угол, насыщенность и яркость – радиус и высоту соответственно (рисунок 1). В данном пространстве оттенок позволяет различать цвета, насыщенность определяет их интенсивность, а яркость регулирует уровень освещения [3].

Для сегментации потенциального объекта интереса создаются бинарные маски – изображения, полученные путем пороговой обработки. Данные маски позволяют изолировать объекты, такие как дорожные знаки, от основного фона, что помогает сосредоточиться на важных областях изображения в процессе распознавания.
Для наглядности представления цветового пространства HSV преобразуем изображение из RGB в данное цветовое пространство (рисунок 2):

На основе полученного изображения, выполняется пороговая сегментация, в которой используются заранее заданные минимальные и максимальные значения для каждого из компонентов HSV. Для выделения конкретных цветов на изображении используется формула (1).
В результате выполнения пороговой обработки с параметрам:
Получим следующую маску и отсегментированное изображение (рисунок 3):

На основе этих же параметров произведем сегментацию на следующих изображениях (рисунок 4-5):


Как можно заметить, полученные результаты отличаются своей точностью, поскольку для каждого сцены необходимо выполнять пороговую сегментацию на основе разных граничных значений. Кроме этого, на полученных изображениях видно, что некоторые области, не относящиеся к дорожному знаку, также отображаются на маске с максимальными значениями.
Среднее время выполнения преобразования трех изображений из RGB в HSV и их сегментации представлено в таблице.
Номер изображения |
Разрешение |
Время выполнения |
1 |
1024x675 |
0.012000 с |
2 |
2048x1536 |
0.055000 с |
3 |
1322x800 |
0.017000 с |
2. Цветовая сегментация с использованием LAB
Пороговая сегментация в цветовом пространстве LAB также эффективна для выделения объектов по цвету, но она отличается от HSV тем, что учитывает яркость и оттенки независимо друг от друга.
Данное цветовое пространство представляется в декартовой системе координат (рисунок 6) и состоит из 3-х компонентов: светлота (Lightness), оттенок между красным и зеленым (RedGreen Axis) и оттенок между желтым и синим (Yellow-Blue Axis).

Для наглядности представления цветового пространства LAB преобразуем изображение из RGB в данное цветовое пространство (рисунок 7):

На основе полученного изображения, выполняется пороговая сегментация, таким же образом, как и с использованием HSV. Для этого используется формула (2).
В результате выполнения пороговой обработки с параметрами:
Получим следующую маску и отсегментированное изображение (рисунок 8):

На основе этих же параметров произведем сегментацию на других изображениях (рисунок 9-10):


Как можно заметить, полученные результаты также не удовлетворяют своей точностью, поскольку для каждого изображения также необходимо выполнять пороговую сегментацию на основе разных граничных значений. Помимо этого, не все дорожные знаки сегментируются, но на втором изображении нам удалось избавиться от травы и деревьев.
Среднее время выполнения преобразования трех изображений из RGB в LAB и их сегментации представлено в таблице. В данном случае алгоритм был ускорен путем использования Look Up Table (LUT) для значений гаммы.
Номер изображения |
Разрешение |
Время выполнения |
1 |
1024x675 |
0.023000 с |
2 |
2048x1536 |
0.098000 с |
3 |
1322x800 |
0.036000 с |
3. Цветовая сегментация с использованием LAB и HSV
Поскольку при сегментации в цветовом пространстве LAB удаляются области, которые остаются при сегментации в HSV, можно комбинировать полученные маски, используя морфологические преобразования – граничную дилатацию – и побитовую операцию «И» [2]. В результате объединения получим границы объектов интереса, которые можно использовать для выделения знака на исходном изображении (рисунок 11).



По полученным результатам видно, что данный способ адаптирован для изображений с переменным освещением и удаляет ненужные области. Кроме этого, данный способ сегментации определяет знаки более точно, чем сегментация в цветовом пространстве HSV или LAB. Похожий метод был использован для сегментации знаков в статье [1]. Результат работы описанной системы представлен на рисунке 12.

Среднее время выполнения преобразования трех изображений из RGB в LAB, HSV и их сегментации представлено в таблице.
Номер изображения |
Разрешение |
Время выполнения |
1 |
1024x675 |
0.058000 с |
2 |
2048x1536 |
0.251000 с |
3 |
1322x800 |
0.087000 с |
4. Адаптивная цветовая сегментация с использованием IHLS
На основе полученных результатов вышеописанных способов сегментации можно сделать вывод, что использование цветового пространства HSV обеспечивает быструю обработку, но не всегда позволяет выделить все интересующие объекты. Сегментация в LAB позволяет избавиться от ненужных областей, но иногда ошибается, не выделяя дорожные знаки. Комбинированное применение HSV и LAB требует больше вычислительных ресурсов, однако позволяет достичь наибольшей точности при выделении объектов интереса.
Однако существует более быстрый и точный способ, использующий одно цветовое пространство, – адаптивную сегментацию в IHLS. Этот метод позволяет эффективно учитывать локальные особенности изображения в RGB и изменять пороги сегментации во время преобразования из RGB в IHLS в зависимости от условий освещения [5].
IHLS (Improved Hue, Lightness, Saturation) — это улучшенная версия традиционного цветового пространства HLS (рисунок 13), которая устраняет проблемы, связанные с зависимостью параметров насыщенности и светлость, возникающие из-за нормализации [1], что позволяет более точно сегментировать изображения в различных условиях освещения [6].

Для наглядности представления цветового пространства IHLS преобразуем изображения из RGB в данное цветовое пространство (рисунок 14):

Реализация данного метода включает в себя следующие шаги:
1. Определение распределения яркости пикселей на исходном изображении в RGB путем анализа гистограмм для каждого из его компонентов.
2. Выполнение преобразования исходного изображения из RGB в IHLS с использованием пороговых значений, определенных на основе анализа гистограмм в пункте 1. Это позволит избавиться от ненужных объектов, таких как небо, деревья или трава, до этапа сегментации в пространстве IHLS.
3. Выполнение цветовой сегментации на полученном изображении IHLS.
4.1. Анализ гистограмм исходного изображения
Анализ гистограмм позволяет динамически подстраивать пороговые значения для цветовых каналов RGB, учитывая локальные особенности распределения яркости в различных областях изображения [5]. Этот метод основан на разбиении гистограммы на три зоны, что позволяет выявить освещённость сцены:
1. Левая зона – соответствует темным областям изображения, включая тени и недостаточное освещение. Такая зона распределения яркости характерна для сцен, снятых в ночных условиях.
2. Средняя зона – охватывает области с умеренной освещённостью, представляя собой баланс между тёмными и светлыми участками сцены. Чаще всего такая зона преобладает в изображениях, сделанных в условиях дождя или тумана.
3. Правая зона – соответствует ярким и светлым участкам изображения. В данном случае, такая зона будет соответствовать изображениям, сделанным при дневном освещении.
Данные распределения яркости для описанных сцен представлены на рисунке 14.

Распределение яркости пикселей по зонам гистограммы определяется формулой (3):
Где– количество пикселей с яркостью
(значение гистограммы для каждого оттенка);
– диапазоны значений яркости, соответствующие левой, средней, правым зонам соответственно;
– максимальное количество пикселей среди всех уровней яркости;
– нормированное количество пикселей в каждой зоне.
На основе полученных для каждого канала определяются пороговые значения –
и
, которые необходимы для отсеивания ненужных объектов, таких как трава, деревья и небо, при преобразовании исходного изображения из RGB в IHLS. Это достигается путем нахождения максимального значения
для каждого канала по формуле (4), где n – зона, соответствующая максимальному количеству пикселей, распределённых в данной области:
где и
– это максимальные значения
для красного, зеленого, синего канала соответственно.
Используя найденные максимальные значения, можно установить соответствующие пороговые значения – и
по формуле (5):

4.2. Пороговое преобразование исходного изображения в IHLS
На основе полученных пороговых значений можно выполнить преобразование в необходимое нам цветовое пространство (рисунок 15) с избавлением не интересующих объектов по формуле (6):

где – значение пикселя в пространстве IHLS в позиции
;
– значения цветовых каналов RGB;
– стандартная функция преобразования пикселя в IHLS.

4.3. Цветовая сегментация с использованием IHLS
Выполним пороговую сегментацию в IHLS используя пороговые значения по формуле (7), а также морфологические преобразования – дилатацию [2]. В результате отсегментированные знаки (рисунок 16).

где – значение пикселя в бинарной маске в позиции
– значения цветовых компонентов цветового пространства IHLS.


Среднее время выполнения сегментации трех первых изображений представлено в таблице.
Номер изображения |
Разрешение |
Время выполнения |
1 |
1024x675 |
0.045000 с |
2 |
2048x1536 |
0.198000 с |
3 |
1322x800 |
0.064000 с |
5. Сравнение методов по времени и точности
В результате анализа времени сегментации для каждого из методов видно, что самым быстрым является способ сегментации с использованием пространства HSV. Метод IHLS, хотя и немного медленнее, но показывает хорошие результаты по времени по сравнению с подходом HSV + LAB, достигая оптимального соотношения скорости обработки и точности результатов (рисунок 17).

Анализ точности методов сегментации показывает, что метод IHLS продемонстрировал наименьшее количество промахов и шума, что подтверждает его высокую эффективность в задачи сегментации дорожных знаков (рисунок 18).

Во время исследования рассматривались четыре метода цветовой сегментации изображения, применяемые для предобработки и дальнейшего распознавания и классификации дорожных знаков. Среди них метод, основанный на адаптивной сегментации с использованием цветового пространства IHLS [6], показал наиболее эффективные результаты, поскольку он оказался быстрым, что является важным аспектом для реализации системы ADAS, работающей в условиях реального дорожного движения.
Ссылки:
1. Лапин К.П. Распознавание дорожных знаков в реальном времени на основе обработки видеопотока и нейронных сетей // Межвузовский сборник научных трудов «Методы и средства обработки и хранения информации». – Рязань: Рязанский государственный радиотехнический университет имени В.Ф. Уткина, 2025. – 287 с. – ISBN 978-5-907811-88-1.
2. Гонсалес Р. К., Вудс Р. Е. Цифровая обработка изображений / Р. К. Гонсалес, Р. Е. Вудс. – 3-е изд., испр. и доп. – Москва: Техносфера, 2012. – 1104 с. – ISBN 978-5-94836-331-8.
3. Vipul. RGB to HSV Conversion for Image Processing // International Journal of Computer Applications. 2018. Vol. 180, No. 22. URL: https://www.ijcaonline.org/archives/volume180/number22/vipul-2018-ijca-916507.pdf (дата обращения: 10.04.2025).
4. Measure Colour. CIE Lab Color Scale [Электронный ресурс] / Measure Colour. – 2019. – URL: https://measurecolour.com.my/wp-content/uploads/2019/02/CIE-Lab-Color-Scale-an07_96a.pdf (дата обращения: 10.11.2025).
5. Youssef A., Albani D., Nardi D., Bloisi D.D. Fast Traffic Sign Recognition Using Color Segmentation and Deep Convolutional Networks // Lecture Notes in Computer Science. – 2016. – DOI: 10.1007/978-3-319-48680-2_19.
6. Hanbury A., Serra J. Colour Image Analysis in 3D-Polar Coordinates // Lecture Notes in Computer Science. – 2003. – DOI: 10.1007/978-3-540-45243-0_17.
Комментарии (9)
dom1n1k
17.06.2025 14:45А где-то можно подробнее почитать про IHSL, кроме вашей собственной статьи издательства рязанского госуниверситета, которая не гуглится?
kirilllapi Автор
17.06.2025 14:45Ссылка на статью:
Hanbury A., Serra J. Colour Image Analysis in 3D-Polar Coordinates // Lecture Notes in Computer Science. – 2003. – DOI: 10.1007/978-3-540-45243-0_17.
Электронный вариант:
https://www.researchgate.net/publication/221114392_Colour_Image_Analysis_in_3D-Polar_Coordinatesdom1n1k
17.06.2025 14:45А. Там авторы используют наименование IHLS, а я искал IHSL, как написано в данной статье, и не находил.
kirilllapi Автор
17.06.2025 14:45Прикреплю код на C, который использовался для преобразования RGB в IHSL.
uint32_t ZETTA; uint32_t GAMMA; typedef enum { cn_grayscale = 1, cn_rgb = 3 } channel; typedef struct image_mat_structure { unsigned char *data; unsigned int width; unsigned int height; channel cn; } *image_mat; void rgb_to_ihsl_mask(const image_mat image_src, image_mat image_dst) { uint32_t size_mat = image_src->height * image_src->width; // Объявление переменных uint8_t H, S, L; uint8_t R, G, B; // Угол в цветовом пространстве HSL; double theta; double denominator; double argument; // Максимально и минимальное значение пикселей в каналах uint8_t max, min; for (uint32_t i = 0; i < size_mat; i++) { R = (image_src->data)[i * 3]; G = (image_src->data)[i * 3 + 1]; B = (image_src->data)[i * 3 + 2]; denominator = sqrt((double)R*R + (double)G*G + (double)B*B - (double)R*G - (double)R*B - (double)G*B); argument = ((double)R - (double)G / 2.0 - (double)B / 2.0) / denominator; if (argument < -1.0) argument = -1.0; if (argument > 1.0) argument = 1.0; // Нахождение угла theta = acos(argument); // Находждение Hue if (B <= G) { H = (uint8_t) theta * (180.0 / M_PI_MY); } else { H = (uint8_t) (360 - theta * (180.0 / M_PI_MY)); } if (argument < -1.0) argument = -1.0; if (argument > 1.0) argument = 1.0; // Нахождение максимального значения пикселя из 3-х каналов max = (R > G ? (R > B ? R : B) : (G > B ? G : B)); min = (R < G ? (R < B ? R : B) : (G < B ? G : B)); // Нахождение Saturation S = max - min; // Нахождение Luminance L = (uint8_t)(0.212 * R + 0.715 * G + 0.072 * B); if (max == G || ((abs(R - G) < ZETTA) && (abs(B - G) < GAMMA))) { // (image_dst->data)[i * 3] = 0; // (image_dst->data)[i * 3 + 1] = 0; // (image_dst->data)[i * 3 + 2] = 0; (image_dst->data)[i] = 0; } else { if ((61 <= H && H <= 150 && S >= 20 && L >= 0) || // Зеленые (150 <= H && H <= 250 && S >= 20 && L >= 10) || // Синие (30 <= H && H <= 60 && S >= 90 && S <= 255 && L >= 80)) // Желтые { //Сохраняем значения в HSL // (image_dst->data)[i * 3] = H; // (image_dst->data)[i * 3 + 1] = S; // (image_dst->data)[i * 3 + 2] = L; (image_dst->data)[i] = 255; } // Сохраняем значения в RGB // (image_dst->data)[i] = 255; } } }
saege5b
17.06.2025 14:45"Дорожникам" давно пора держать актуальными открытые карты дорожной ситуации/обстановки/режимов.
U235a
Результаты сегментации запрещающих (красных) знаков будут лучше, если в HSV добавить дополнительно участок значений цветового тона от, скажем, 340 до 360.
kirilllapi Автор
Возможно это и будет работать, но есть вероятность появление шума и выделения не только знаков, но и не нужных объектов. Степень ошибок сегментации будет варьироваться в зависимости от яркости изображения и других факторов.
P.S.: В данном случае подбиралось значение HSV для представленных изображений, что позволило получить более менее нормальный результат.
U235a
Каких ненужных объектов? У вас знаки - красные, других ярких красных объектов нет. Понимаете, красные оттенки имеют разрыв в HSB из-за цикличности компоненты цветового тона H -от 0 до 360 градусов. Оттенки с H=359 и H=1 - весьма близкие.