Similar presentations:
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