SlideShare ist ein Scribd-Unternehmen logo
1 von 37
Downloaden Sie, um offline zu lesen
Практическое использование
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
Следующий этап -
получить стрим со
своей камеры
Необходимый
минимум
1. IP-камера (Hikvision в нашем случае).
2. Raspberry PI + модем.
3. Debian сервер с видеокартой Nvidia.
4. Nginx + rtmp модуль.
5. Изолента (синяя)
Более крутой вариант
заменить прошивку
камеры
Заменять прошивку на камерах мы можем, но не
будем.
Высокотехнологичный
сетап для подсчета
количества уходящих
на перекур
сотрудников.
Следующий шаг -
замена модели на yolo3
1. Увеличение FPS
2. Улучшение качества распознавания
3. Увеличение количества типов
объектов
Затем необходимо
реализовать слежение
за объектом
● FPS был всё еще недостаточно высок (около 6
кадров в секунду)
● Сложности с объектами стоящими на линии
● Есть очень крутые решения в OpenCV
Дальнейшие планы
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

Weitere ähnliche Inhalte

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

Developmentmanage1.0
Developmentmanage1.0Developmentmanage1.0
Developmentmanage1.0HighLoad2009
 
Developmentmanage3.0
Developmentmanage3.0Developmentmanage3.0
Developmentmanage3.0WRider
 
Python-технология которую легко продавать!
Python-технология которую легко продавать!Python-технология которую легко продавать!
Python-технология которую легко продавать!Aleksey Nakorenko
 
Евгений Жарков "Как быть хорошим фронтенд-разработчиком"
Евгений Жарков "Как быть хорошим фронтенд-разработчиком"Евгений Жарков "Как быть хорошим фронтенд-разработчиком"
Евгений Жарков "Как быть хорошим фронтенд-разработчиком"Fwdays
 
Выбор и тестирование Ngfw. Опыт Rambler
Выбор и тестирование Ngfw. Опыт RamblerВыбор и тестирование Ngfw. Опыт Rambler
Выбор и тестирование Ngfw. Опыт RamblerKonstantin Sverdlov
 
Олег Миколайченко "Как перестать хранить секреты в git и начать использовать ...
Олег Миколайченко "Как перестать хранить секреты в git и начать использовать ...Олег Миколайченко "Как перестать хранить секреты в git и начать использовать ...
Олег Миколайченко "Как перестать хранить секреты в git и начать использовать ...Fwdays
 
Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...
Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...
Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...SQALab
 
Ml and its bright future
Ml and its bright futureMl and its bright future
Ml and its bright futureSergey Melekhin
 
static - defcon russia 20
static  - defcon russia 20static  - defcon russia 20
static - defcon russia 20DefconRussia
 
Визуализация взломов в собственной сети
Визуализация взломов в собственной сетиВизуализация взломов в собственной сети
Визуализация взломов в собственной сетиDenis Batrankov, CISSP
 
Инструментарий Nvidia для deep learning
Инструментарий Nvidia для deep learningИнструментарий Nvidia для deep learning
Инструментарий Nvidia для deep learningSkolkovo Robotics Center
 
Технология программирования
Технология программированияТехнология программирования
Технология программированияYury Kupriyanov
 
Состояние Состояния / Алексей Охрименко (IPONWEB)
Состояние Состояния / Алексей Охрименко (IPONWEB)Состояние Состояния / Алексей Охрименко (IPONWEB)
Состояние Состояния / Алексей Охрименко (IPONWEB)Ontico
 
закон иерархических компенсаций седова и C++ core guidelines
закон иерархических компенсаций седова и C++ core guidelinesзакон иерархических компенсаций седова и C++ core guidelines
закон иерархических компенсаций седова и C++ core guidelinescorehard_by
 
закон иерархических компенсаций седова и C++ core guidelines
закон иерархических компенсаций седова и C++ core guidelinesзакон иерархических компенсаций седова и C++ core guidelines
закон иерархических компенсаций седова и C++ core guidelinesCOMAQA.BY
 
Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...
Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...
Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...Аліна Шепшелей
 
SE2016 Java Dmitriy Kouperman "Working with legacy systems. Stabilization, mo...
SE2016 Java Dmitriy Kouperman "Working with legacy systems. Stabilization, mo...SE2016 Java Dmitriy Kouperman "Working with legacy systems. Stabilization, mo...
SE2016 Java Dmitriy Kouperman "Working with legacy systems. Stabilization, mo...Inhacking
 
Информационная безопасность на базе open source: есть ли смысл?
Информационная безопасность на базе open source: есть ли смысл?Информационная безопасность на базе open source: есть ли смысл?
Информационная безопасность на базе open source: есть ли смысл?Aleksey Lukatskiy
 
Олег Антонян
Олег АнтонянОлег Антонян
Олег АнтонянForkConf
 

Ähnlich wie Практическое использование Tensorflow (20)

Developmentmanage1.0
Developmentmanage1.0Developmentmanage1.0
Developmentmanage1.0
 
Developmentmanage3.0
Developmentmanage3.0Developmentmanage3.0
Developmentmanage3.0
 
Python-технология которую легко продавать!
Python-технология которую легко продавать!Python-технология которую легко продавать!
Python-технология которую легко продавать!
 
Евгений Жарков "Как быть хорошим фронтенд-разработчиком"
Евгений Жарков "Как быть хорошим фронтенд-разработчиком"Евгений Жарков "Как быть хорошим фронтенд-разработчиком"
Евгений Жарков "Как быть хорошим фронтенд-разработчиком"
 
Qt tool evaluation
Qt tool evaluationQt tool evaluation
Qt tool evaluation
 
Выбор и тестирование Ngfw. Опыт Rambler
Выбор и тестирование Ngfw. Опыт RamblerВыбор и тестирование Ngfw. Опыт Rambler
Выбор и тестирование Ngfw. Опыт Rambler
 
Олег Миколайченко "Как перестать хранить секреты в git и начать использовать ...
Олег Миколайченко "Как перестать хранить секреты в git и начать использовать ...Олег Миколайченко "Как перестать хранить секреты в git и начать использовать ...
Олег Миколайченко "Как перестать хранить секреты в git и начать использовать ...
 
Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...
Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...
Threads & LinkedClone. Как сократить время на развертывание продукта и подгот...
 
Ml and its bright future
Ml and its bright futureMl and its bright future
Ml and its bright future
 
static - defcon russia 20
static  - defcon russia 20static  - defcon russia 20
static - defcon russia 20
 
Визуализация взломов в собственной сети
Визуализация взломов в собственной сетиВизуализация взломов в собственной сети
Визуализация взломов в собственной сети
 
Инструментарий Nvidia для deep learning
Инструментарий Nvidia для deep learningИнструментарий Nvidia для deep learning
Инструментарий Nvidia для deep learning
 
Технология программирования
Технология программированияТехнология программирования
Технология программирования
 
Состояние Состояния / Алексей Охрименко (IPONWEB)
Состояние Состояния / Алексей Охрименко (IPONWEB)Состояние Состояния / Алексей Охрименко (IPONWEB)
Состояние Состояния / Алексей Охрименко (IPONWEB)
 
закон иерархических компенсаций седова и C++ core guidelines
закон иерархических компенсаций седова и C++ core guidelinesзакон иерархических компенсаций седова и C++ core guidelines
закон иерархических компенсаций седова и C++ core guidelines
 
закон иерархических компенсаций седова и C++ core guidelines
закон иерархических компенсаций седова и C++ core guidelinesзакон иерархических компенсаций седова и C++ core guidelines
закон иерархических компенсаций седова и C++ core guidelines
 
Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...
Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...
Dmitriy Kouperman Working with legacy systems. stabilization, monitoring, man...
 
SE2016 Java Dmitriy Kouperman "Working with legacy systems. Stabilization, mo...
SE2016 Java Dmitriy Kouperman "Working with legacy systems. Stabilization, mo...SE2016 Java Dmitriy Kouperman "Working with legacy systems. Stabilization, mo...
SE2016 Java Dmitriy Kouperman "Working with legacy systems. Stabilization, mo...
 
Информационная безопасность на базе open source: есть ли смысл?
Информационная безопасность на базе open source: есть ли смысл?Информационная безопасность на базе open source: есть ли смысл?
Информационная безопасность на базе open source: есть ли смысл?
 
Олег Антонян
Олег АнтонянОлег Антонян
Олег Антонян
 

Mehr von Mad Devs

Держите одеяло у себя: как общаться с кандидатом и узнавать все, что вам инте...
Держите одеяло у себя: как общаться с кандидатом и узнавать все, что вам инте...Держите одеяло у себя: как общаться с кандидатом и узнавать все, что вам инте...
Держите одеяло у себя: как общаться с кандидатом и узнавать все, что вам инте...Mad Devs
 
Дружелюбнй онбординг: как с увеличением количества не потерять качество
Дружелюбнй онбординг: как с увеличением количества не потерять качество Дружелюбнй онбординг: как с увеличением количества не потерять качество
Дружелюбнй онбординг: как с увеличением количества не потерять качество Mad Devs
 
Mad Stream: Software Architecture 101.
Mad Stream: Software Architecture 101. Mad Stream: Software Architecture 101.
Mad Stream: Software Architecture 101. Mad Devs
 
Mad Stream: Соло-прокачка мобильного разработчика. Спикер - Айбек Ногоев.
Mad Stream: Соло-прокачка мобильного разработчика. Спикер - Айбек Ногоев.Mad Stream: Соло-прокачка мобильного разработчика. Спикер - Айбек Ногоев.
Mad Stream: Соло-прокачка мобильного разработчика. Спикер - Айбек Ногоев.Mad Devs
 
Mad Stream - 7 habits of highly awesome developers. Speaker - Anatoliy Fedorenko
Mad Stream - 7 habits of highly awesome developers. Speaker - Anatoliy FedorenkoMad Stream - 7 habits of highly awesome developers. Speaker - Anatoliy Fedorenko
Mad Stream - 7 habits of highly awesome developers. Speaker - Anatoliy FedorenkoMad Devs
 
Mad Stream: "Что можно напечатать на 3d принтере, помимо еще одного 3d принте...
Mad Stream: "Что можно напечатать на 3d принтере, помимо еще одного 3d принте...Mad Stream: "Что можно напечатать на 3d принтере, помимо еще одного 3d принте...
Mad Stream: "Что можно напечатать на 3d принтере, помимо еще одного 3d принте...Mad Devs
 
Maв Stream: "Факт карты на службек у ПМа", спикер – Дмитрий Кононенко
Maв Stream: "Факт карты на службек у ПМа", спикер – Дмитрий КононенкоMaв Stream: "Факт карты на службек у ПМа", спикер – Дмитрий Кононенко
Maв Stream: "Факт карты на службек у ПМа", спикер – Дмитрий КононенкоMad Devs
 
Лайфхаки менеджмента на удаленке от Дмитрия Кононенко
Лайфхаки менеджмента на удаленке от Дмитрия КононенкоЛайфхаки менеджмента на удаленке от Дмитрия Кононенко
Лайфхаки менеджмента на удаленке от Дмитрия КононенкоMad Devs
 
Mad Talks. Astashov_splitbrain
Mad Talks. Astashov_splitbrainMad Talks. Astashov_splitbrain
Mad Talks. Astashov_splitbrainMad Devs
 
Flutter vs Native App Development
Flutter vs Native App DevelopmentFlutter vs Native App Development
Flutter vs Native App DevelopmentMad Devs
 
Mad Talks. Marketing tips for tech companies
Mad Talks. Marketing tips for tech companiesMad Talks. Marketing tips for tech companies
Mad Talks. Marketing tips for tech companiesMad Devs
 
The paradox of choice in design
The paradox of choice in designThe paradox of choice in design
The paradox of choice in designMad Devs
 
Git and Github for Beginners
Git and Github for Beginners Git and Github for Beginners
Git and Github for Beginners Mad Devs
 
How to hire freelancers
How to hire freelancersHow to hire freelancers
How to hire freelancersMad Devs
 
Ethereum blockchain
Ethereum blockchainEthereum blockchain
Ethereum blockchainMad Devs
 
"Outside In". Web application testing.
"Outside In". Web application testing."Outside In". Web application testing.
"Outside In". Web application testing.Mad Devs
 
Asynchrony in python exists and why should you use it
Asynchrony in python exists and why should you use itAsynchrony in python exists and why should you use it
Asynchrony in python exists and why should you use itMad Devs
 
Ethereum: аспекты разработки смарт-контрактов
Ethereum: аспекты разработки смарт-контрактовEthereum: аспекты разработки смарт-контрактов
Ethereum: аспекты разработки смарт-контрактовMad Devs
 
Why we sleep. Michael Ivashenko
Why we sleep. Michael IvashenkoWhy we sleep. Michael Ivashenko
Why we sleep. Michael IvashenkoMad Devs
 
Удаленное управление приложением и его аналитика
Удаленное управление приложением и его аналитикаУдаленное управление приложением и его аналитика
Удаленное управление приложением и его аналитикаMad Devs
 

Mehr von Mad Devs (20)

Держите одеяло у себя: как общаться с кандидатом и узнавать все, что вам инте...
Держите одеяло у себя: как общаться с кандидатом и узнавать все, что вам инте...Держите одеяло у себя: как общаться с кандидатом и узнавать все, что вам инте...
Держите одеяло у себя: как общаться с кандидатом и узнавать все, что вам инте...
 
Дружелюбнй онбординг: как с увеличением количества не потерять качество
Дружелюбнй онбординг: как с увеличением количества не потерять качество Дружелюбнй онбординг: как с увеличением количества не потерять качество
Дружелюбнй онбординг: как с увеличением количества не потерять качество
 
Mad Stream: Software Architecture 101.
Mad Stream: Software Architecture 101. Mad Stream: Software Architecture 101.
Mad Stream: Software Architecture 101.
 
Mad Stream: Соло-прокачка мобильного разработчика. Спикер - Айбек Ногоев.
Mad Stream: Соло-прокачка мобильного разработчика. Спикер - Айбек Ногоев.Mad Stream: Соло-прокачка мобильного разработчика. Спикер - Айбек Ногоев.
Mad Stream: Соло-прокачка мобильного разработчика. Спикер - Айбек Ногоев.
 
Mad Stream - 7 habits of highly awesome developers. Speaker - Anatoliy Fedorenko
Mad Stream - 7 habits of highly awesome developers. Speaker - Anatoliy FedorenkoMad Stream - 7 habits of highly awesome developers. Speaker - Anatoliy Fedorenko
Mad Stream - 7 habits of highly awesome developers. Speaker - Anatoliy Fedorenko
 
Mad Stream: "Что можно напечатать на 3d принтере, помимо еще одного 3d принте...
Mad Stream: "Что можно напечатать на 3d принтере, помимо еще одного 3d принте...Mad Stream: "Что можно напечатать на 3d принтере, помимо еще одного 3d принте...
Mad Stream: "Что можно напечатать на 3d принтере, помимо еще одного 3d принте...
 
Maв Stream: "Факт карты на службек у ПМа", спикер – Дмитрий Кононенко
Maв Stream: "Факт карты на службек у ПМа", спикер – Дмитрий КононенкоMaв Stream: "Факт карты на службек у ПМа", спикер – Дмитрий Кононенко
Maв Stream: "Факт карты на службек у ПМа", спикер – Дмитрий Кононенко
 
Лайфхаки менеджмента на удаленке от Дмитрия Кононенко
Лайфхаки менеджмента на удаленке от Дмитрия КононенкоЛайфхаки менеджмента на удаленке от Дмитрия Кононенко
Лайфхаки менеджмента на удаленке от Дмитрия Кононенко
 
Mad Talks. Astashov_splitbrain
Mad Talks. Astashov_splitbrainMad Talks. Astashov_splitbrain
Mad Talks. Astashov_splitbrain
 
Flutter vs Native App Development
Flutter vs Native App DevelopmentFlutter vs Native App Development
Flutter vs Native App Development
 
Mad Talks. Marketing tips for tech companies
Mad Talks. Marketing tips for tech companiesMad Talks. Marketing tips for tech companies
Mad Talks. Marketing tips for tech companies
 
The paradox of choice in design
The paradox of choice in designThe paradox of choice in design
The paradox of choice in design
 
Git and Github for Beginners
Git and Github for Beginners Git and Github for Beginners
Git and Github for Beginners
 
How to hire freelancers
How to hire freelancersHow to hire freelancers
How to hire freelancers
 
Ethereum blockchain
Ethereum blockchainEthereum blockchain
Ethereum blockchain
 
"Outside In". Web application testing.
"Outside In". Web application testing."Outside In". Web application testing.
"Outside In". Web application testing.
 
Asynchrony in python exists and why should you use it
Asynchrony in python exists and why should you use itAsynchrony in python exists and why should you use it
Asynchrony in python exists and why should you use it
 
Ethereum: аспекты разработки смарт-контрактов
Ethereum: аспекты разработки смарт-контрактовEthereum: аспекты разработки смарт-контрактов
Ethereum: аспекты разработки смарт-контрактов
 
Why we sleep. Michael Ivashenko
Why we sleep. Michael IvashenkoWhy we sleep. Michael Ivashenko
Why we sleep. Michael Ivashenko
 
Удаленное управление приложением и его аналитика
Удаленное управление приложением и его аналитикаУдаленное управление приложением и его аналитика
Удаленное управление приложением и его аналитика
 

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