57.22K

2_5273930298562750704

1.

ПРЕЗЕНТАЦИЯ
ПО ПРОЕКТУ
Алгоритм распознавания цветных
объектов
с исключением области кожи
Python • OpenCV • NumPy
Выполнил: ____________________
Группа: _______________________
Руководитель: _________________
Ключевая идея
Кадр
Маска
кожи
Маски
цветов
Контур
Рамка +
подпис
ь
Программа ищет цветной объект,
исключает кожу из поиска,
а затем выбирает лучший контур
и показывает результат на
изображении.
1

2.

1. Актуальность и цель проекта
Зачем нужен проект
Основные задачи
Подобные алгоритмы применяются в системах компьютерного зрения,
робототехнике, интерактивных интерфейсах и учебных
демонстраторах.
Для практических задач важно не только найти цветовой объект, но и
снизить число ложных срабатываний.
• задать набор цветовых диапазонов HSV;
• выделить маску кожи по двум моделям — YCrCb и HSV;
• исключить области кожи из всех цветовых масок;
• выбрать крупнейший устойчивый контур;
• отрисовать рамку, подпись и режим отладки;
• проверить работу на типовых сценах.
Цель
Разработать простой и быстрый алгоритм обнаружения цветного
объекта
на изображении с исключением области кожи и отображением
результата
в реальном времени.
2

3.

2. Инструменты и структура программы
Используемые библиотеки
NumPy — массивы и операции с масками.
OpenCV — цветовые преобразования,
фильтрация,
морфология, поиск контуров и вывод
результата.
COLORS
32 цветовых профиля
build_skin_mask()
маска кожи
Логика модуля
1) Захват кадра с камеры или из файла.
2) Построение маски кожи.
3) Построение масок для каждого цвета.
4) Фильтрация ложных областей.
5) Поиск лучшего контура и вывод результата.
build_mask()
HSV-маска цвета
best_contour()
выбор контура
draw_box_with_label()
визуализация
3

4.

3. Цветовые диапазоны и палитра
В коде задано 32 цветовых класса. Для части цветов используется несколько диапазонов HSV,
чтобы корректно покрывать переход через границу оттенка и разнообразие условий освещения.
Красные
Оранжев
ые
Жёлтые
Зелёные
Бирюзов
ые
Синие
Фиолетов
ые
Розовые
Коричнев
ые
Нейтраль
ные
Почему HSV
HSV удобен для выделения цвета независимо от яркости кадра.
Это особенно полезно в учебных и прикладных сценариях, где освещение меняется от кадра к кадру.
4

5.

4. Исключение области кожи
BGR кадр
YCrCb
диапазон кожи
HSV
диапазон кожи
Объединение
масок
CLOSE +
DILATE
skin mask
Почему это важно
Реализация
Область кожи может совпадать по цвету с целевой меткой.
Если её не исключать, алгоритм будет часто ошибаться при появлении
рук или лица в кадре.
Маска строится в двух цветовых пространствах.
Затем производится логическое объединение и
морфологическая
очистка, после чего skin mask вычитается из каждой цветовой
маски.
5

6.

5. Алгоритм обнаружения объекта
1. Захват кадра
2. Перевод в HSV
3. Построение
масок цвета
frame -> hsv
skin = build_skin_mask(frame)
mask = build_mask(hsv, ranges, skin)
mask = morphology(mask)
contour = best_contour(mask)
if contour: draw_box_with_label(...)
4. Исключение
кожи
5. Морфология и
контуры
6. Выбор лучшего
объекта
Ключевой смысл
Сначала программа формирует максимально чистую бинарную
карту
объекта, а затем уже принимает решение о наличии цели по
площади
и устойчивости контура.
6

7.

6. Критерии выбора лучшего контура
best_contour()
mean_saturation()
• маска предварительно расширяется
дилатацией;
• ищутся все контуры;
• учитывается порог площади (min_area =
500);
• берётся самый крупный устойчивый контур.
Если найдено несколько объектов,
дополнительно оценивается средняя
насыщенность S-канала.
Это помогает выбрать наиболее яркий и
«правильный» вариант.
Сравнение кандидатов
Контур A
площадь 420
Контур B
площадь
1260
Контур C
площадь 980
Итог: выбирается B
7

8.

7. Визуализация и режим отладки
Отрисовка результата
На изображение наносится рамка с угловыми метками,
полупрозрачная
подложка и подпись с названием цвета. Такой вывод удобен для
демонстрации
и для быстрого анализа работы алгоритма.
Видеокадр: целевой объект, маска кожи
целевой
объект
маска кожи
draw_skin_debug()
Режим S подсвечивает исключённые участки красным цветом.
Это помогает быстро настроить пороги и проверить, не попадает ли
целевой объект в маску кожи.
Orange | score: high
8

9.

8. Испытания и результаты
Хорошее освещение
Переменное освещение
Стабильное выделение цвета и минимальное число ошибок.
HSV показывает себя лучше, чем обычный RGB-порог.
Рука в кадре
Несколько объектов
Маска кожи убирает ложные срабатывания.
Выбирается крупнейший и наиболее насыщенный контур.
Что подтверждают тесты: алгоритм работает быстро, устойчиво реагирует на цветовой объект и
заметно снижает
ложные срабатывания за счёт отдельного исключения кожи.
9

10.

9. Достоинства, ограничения и улучшения
Достоинства
Ограничения
Что можно улучшить
• простая логика и высокая скорость;
• работает без обучения модели;
• легко расширяется новыми цветами;
• имеет режим визуальной диагностики;
• хорошо подходит для учебных проектов.
• чувствительность к освещению;
• зависимость от камеры и баланса белого;
• возможны ошибки при похожих оттенках;
• ручная настройка HSV-диапазонов.
• добавить автоподбор порогов;
• внедрить трекинг по времени;
• учитывать форму и движение объекта;
• сделать веб-интерфейс управления.
10

11.

10. Выводы
Итог
В ходе работы был создан алгоритм обнаружения цветных объектов на изображении.
Реализованы цветовые маски, исключение области кожи, поиск устойчивого контура,
выбор наиболее подходящего объекта и визуализация результата.
Решение получилось простым, наглядным и пригодным для дальнейшего развития.
Спасибо за внимание!
11
English     Русский Rules