ݺߣ

ݺߣShare a Scribd company logo
Практическое использование
tensorflow: Поиск и подсчет
пешеходов в потоке с камер
видеонаблюдения.
Олег Катков
Олег Катков
Dipl. Engineer
Mad Devs, Kyrgyzstan
Опыт разработки проектов различной
сложности более 10 лет.
Основные направления: системное
программирование, встраиваемые
системы(AVR, ARM, IAR), обработка
сигналов.
Зачем считать людей?
1. Безопасность
Зачем считать людей?
1. Безопасность
2. Анализ эффективности торговли
Зачем считать людей?
1. Безопасность
2. Анализ эффективности торговли
3. Оптимизация расписания для персонала
Зачем считать людей?
1. Безопасность
2. Анализ эффективности торговли
3. Оптимизация расписания для персонала
4. Контроль персонала
Зачем считать людей?
1. Безопасность
2. Анализ эффективности торговли
3. Оптимизация расписания для персонала
4. Контроль персонала
5. Планирование служебных мероприятий
Есть несколько
вариантов решения
задачи подсчета людей
Хардварный
1. Лазер + фоторезистор
2. Ультразвуковой
дальномер
3. Инфракрасные лучи
Лазер + фоторезист
Ультразвуковой дальномер
1. Не очень большое
расстояние
(400см.)
2. Невысокая
точность.
3. Чувствительность
к среде.
Инфракрасные лучи
Плюсы и минусы этих решений
1. Невозможность
отличить человека
от пакета
2. Большая
погрешность
3. Чувствительность
к среде
1. Дешевизна
2. Простота сборки и
установки
3. Высокая точность
в узких проходах
Алгоритмические
1. Признаки Хаара ● Состоит из смежных
прямоугольных
областей
● Работает очень быстро
● Выдает неплохой
результат
Алгоритмические
2. Нейронные сети ● Сложная
математическая модель
● Требует высоких
вычислительных
мощностей.
Автор: Dake, Mysid - Vectorized by Mysid in CorelDraw on an image by Dake.,
CC BY 1.0, https://commons.wikimedia.org/w/index.php?curid=1412126
OpenCV и каскады
Хаара в задаче
подсчета людей
OpenCV - Open source
computer vision library
Автор: Adi Shavit - http://opencv.willowgarage.com/wiki/OpenCVLogo,
Общественное достояние, https://commons.wikimedia.org/w/index.php?curid=26547749
Каскады Хаара из примеров OpenCV дают вот такой результат!
Tensorflow
сложная
технология,
которую
легко
использовать
DistBelief - 2011г. Закрытая система для внутренних проектов Google.
В 2013 присоединился Джефф Дин и Джеффри Хинтон (метод обобщенного
обратного распространения ошибки).
DistBelief - 2011г. Закрытая система для внутренних проектов Google.
В 2013 присоединился Джефф Дин и Джеффри Хинтон (метод обобщенного
обратного распространения ошибки).
TensorFlow - 2015г . Логическое развитие DistBelief. Возможность параллельного
выполнения на нескольких процессорах или GPU.
DistBelief - 2011г. Закрытая система для внутренних проектов Google.
В 2013 присоединился Джефф Дин и Джеффри Хинтон (метод обобщенного
обратного распространения ошибки).
TensorFlow - 2015г . Логическое развитие DistBelief. Возможность параллельного
выполнения на нескольких процессорах или GPU.
Тензорный процессор (TPU) - 2016г
Нужен для использования, а не обучения. Похож на видеокарту без модулей
растеризации и текстур.
Установка tensorflow требует
некоторой внимательности.
1. Есть docker контейнеры, которые по документации должны сразу и без
проблем запускаться. Это не так для tensorflow-gpu. Необходимо
поставить/скомпиллировать правильную версию CUDA.
2. Можно поставить с помощью pip (для python)
3. Можно собрать из исходников. Это самый классный вариант, который
позволит собрать API не только для python
 Практическое использование Tensorflow
Следующий этап -
получить стрим со
своей камеры
Необходимый
минимум
1. IP-камера (Hikvision в нашем случае).
2. Raspberry PI + модем.
3. Debian сервер с видеокартой Nvidia.
4. Nginx + rtmp модуль.
5. Изолента (синяя)
Более крутой вариант
заменить прошивку
камеры
Заменять прошивку на камерах мы можем, но не
будем.
Высокотехнологичный
сетап для подсчета
количества уходящих
на перекур
сотрудников.
 Практическое использование Tensorflow
 Практическое использование Tensorflow
Следующий шаг -
замена модели на yolo3
1. Увеличение FPS
2. Улучшение качества распознавания
3. Увеличение количества типов
объектов
 Практическое использование Tensorflow
Затем необходимо
реализовать слежение
за объектом
● FPS был всё еще недостаточно высок (около 6
кадров в секунду)
● Сложности с объектами стоящими на линии
● Есть очень крутые решения в OpenCV
 Практическое использование Tensorflow
 Практическое использование Tensorflow
Дальнейшие планы
1. Переписать на C++
2. Собрать tensorflow с использованием intel
compiler collection и math kernel library
3. Испробовать TPU
Контакты
Олег Катков
● Email: lezh1k.vohrer@gmail.com
● Telegram: @o_katkov
● Статьи Medium:
https://medium.com/@lezh1k.vohrer

More Related Content

Практическое использование Tensorflow