SlideShare a Scribd company logo
#msdevcon
Windows & More Personal Computing
Технологии компьютерного
зрения на платформе Windows
Дмитрий Андреев
Эксперт по стратегическим технологиям, Microsoft
OpenCV 3.0
https://github.com/Itseez/opencv
http://docs.opencv.org/
http://sourceforge.net/projects/opencvlibrary/files/
OpenCV 3.0 для Windows
• Классические приложения (desktop) – x86, x64
• Приложения Windows Store – x86, x64, ARM
• Windows 8.0
• Windows 8.1
• Windows Phone 8.0
• Windows Phone 8.1
• Windows 10 Universal Apps
http://docs.opencv.org/2.4/modules/calib3d/doc/camera
_calibration_and_3d_reconstruction.html
Матрица камеры
Калибрация камеры
http://docs.opencv.org/2.4/doc/tutorials/calib3d/camera_calibration/camera_calibration.html
Video Input/Output
Media Foundation
Значительно упрощено взаимодействие в W10 UWP
https://msdn.microsoft.com/en-us/windows/uwp/audio-video-
camera/get-a-preview-frame
RTSP
 Транспортный протокол, поддерживающий разные контейнеры
Инструментарий для сборки OpenCV 3.0
1. Visual Studio 2013, 2015
2. Git
3. Cmake
Установка переменных окружения VisualC++
Compile.bat
git clone https://github.com/Itseez/opencv.git
cd opencv
mkdir wp_arm
cd wp_arm
cmake.exe -DCMAKE_INSTALL_PREFIX=".install" -
DBUILD_WITH_STATIC_CRT=OFF -G "Visual Studio 12 2013 ARM"
-DBUILD_PERF_TESTS=OFF -DBUILD_STATIC_LIB=ON -
DBUILD_TESTS:BOOL=OFF -DBUILD_SHARED_LIBS=OFF -
DCMAKE_SYSTEM_NAME:String=WindowsStore -
DCMAKE_SYSTEM_VERSION:String="8.1" -
DCMAKE_VS_EFFECTIVE_PLATFORMS:String=ARM ..
msbuild INSTALL.vcxproj /p:Configuration=Release
/p:Platform="ARM"
-DCMAKE_INSTALL_PREFIX=".install"
Создание компонента обертки
WinRT компонент в дальнейшем может быть использован в Windows Store проектах C++, JavaScript, C#
include
lib
Unity3d
Windows 10
Интернет
вещей
Мини-
планшет
Настольный
компьютер
Смартфон
Планшет
Ноутбук
https://github.com/msopentech
https://github.com/microsoft
git clone https://github.com/Microsoft/opencv.git
test-vs2015
Visual Studio 14 2015
ARM
10.0
Хронология
 1943 год — Маккалок и Питтс формализуют понятие нейронной сети в фундаментальной
статье о логическом исчислении идей и нервной активности.
 1949 год — Хебб предлагает первый алгоритм обучения.
 В 1969 году Минский публикует формальное доказательство ограниченности
перцептрона и показывает, что он неспособен решать некоторые задачи, связанные с
инвариантностью представлений. Интерес к нейронным сетям резко спадает.
 1974 год — Пол Дж. Вербос, и А. И. Галушкин одновременно изобретают алгоритм
обратного распространения ошибки для обучения многослойных перцептронов.
Изобретение не привлекло особого внимания.
 1986 год — Дэвидом И. Румельхартом, Дж. Е. Хинтоном и Рональдом Дж. Вильямсом и
независимо и одновременно С. И. Барцевым и В. А. Охониным (Красноярская группа)
переоткрыт и существенно развит метод обратного распространения ошибки. Начался
взрыв интереса к обучаемым нейронным сетям.
Нейронные сети
Нейронные сети — лишь одна из моделей машинного
обучения.
Обладающая тем недостатком, что построенные
модели невозможно интерпретировать.
Нейронные сети — математический аппарат
https://basegroup.ru/community/articles/math
Функция активации
Обратное распространение ошибки
Фактически – «подгонка под результат», подбор нужных
коэффициентов w[n]
ошибка распространяется от выходного слоя к
входному
Универсальная теорема аппроксимации
http://neuralnetworksanddeeplearning.com/chap4.html
Обучение
Supervised
 Training/Validation/Test наборы данных.
 60% 20% 20%
Unsupervised
Overfitting
Все это очень легко запрограммировать
И оптимизировать
https://channel9.msdn.com/Events/Build/2013/2-401
https://msdn.microsoft.com/en-us/magazine/jj190808.aspx
Cuda/CuDNN
 https://developer.nvidia.com/cudnn
https://nips.cc/Conferences/2015/Schedule
Softmax
https://en.wikipedia.org/wiki/Softmax_function
Пример из CNTK
label = 0.25*sin(2*pi*0.5*x) > y
Бинарная классификация
Больной/Здоровый
https://archive.ics.uci.edu/ml/datasets/Statlog+(Heart)
http://archive.ics.uci.edu/ml/datasets.html
Нормализация
Операция перевода данных в диапазон (-1 ; +1 )
3) Тип боли в груди - 4 значения, -1; -0,33; 0,33; +1
«Проклятие размерности»
С ростом количества измерений (параметров) растет
объем пространства
Данные становятся разреженными
Разреженность является проблемой в любом методе
требующем статистической значимости
Нужно больше^данных
https://en.wikipedia.org/wiki/Curse_of_dimensionality
Глубокое обучение (Deep Learning)
Производительные вычисления
Некоторые инструменты
http://deeplearning.net/software/theano/
https://www.tensorflow.org/
http://caffe.berkeleyvision.org/
http://torch.ch/
https://github.com/dmlc/mxnet
https://github.com/Microsoft/CNTK
http://www.vlfeat.org/matconvnet/
CNTK
http://research.microsoft.com/en-us/um/people/kahe/
https://habrahabr.ru/company/microsoft/blog/275959/
Анализ изображений
http://image-net.org/
http://mscoco.org/
http://image-
net.org/challenges/LSVRC/2
015/
http://journal.frontiersin.org/
article/10.3389/frobt.2015.00
036/full
Convolution Neural Networks (CNN)
http://yann.lecun.com/exdb/mnist/
http://scs.ryerson.ca/~aharley/vis/conv/
http://cs231n.github.io/convolutional-networks/
Convolution kernel
https://developer.apple.com/library/ios/documentation/Performance/Conceptual/vImage/ConvolutionOperations/ConvolutionOperations.html
Семантическая сегментация
https://www.youtube.com/watch?v=FroRjEejA30
ShapeNet
https://github.com/ShapeNet/RenderForCNN
https://github.com/suhangpro/mvcnn
http://shapenet.cs.stanford.edu/
Определение лица
https://www.youtube.com/watch?v=LZJOTRkjZA4
http://www.robots.ox.ac.uk/~vgg/software/vgg_face/
https://github.com/AlfredXiangWu/face_verification_experi
ment
https://github.com/cmusatyalab/openface
https://www.youtube.com/watch?v=byanSjglKeg
Увеличение разрешения
http://people.csail.mit.edu/celiu/FaceHallucination/
fh.html
https://www.youtube.com/watch?v=JMIHNiR3CP8
https://www.youtube.com/watch?v=I_8ZH1Ggjk0
Neural style
Deepart.io
https://github.com/jcjohnson/neural-style
https://www.youtube.com/watch?v=56CoHGxRg7c
http://gitxiv.com/posts/rCzAPjX5iCXT5E6cz/understanding
-deep-features-with-computer-generated-imagery
Автоматическое раскрашивание
http://tinyclouds.org/colorize/
Диабетическая ретинопатия
https://www.kaggle.com/c/diabetic-retinopathy-detection
Идентификация признаков заболевания
по изображениям сетчатки
Colon cancer
Using CUDA and
Machine Learning to
Detect Colon Cancer -
See more at:
https://news.developer.n
vidia.com/using-cuda-
and-machine-learning-
to-detect-colon-
cancer/#sthash.qspCAHf
0.dpuf
Детектирование аномалий в видео-потоке
https://www.youtube.com/watch?v=hHHmWmJG9Rw
Recurrent networks
http://jiwonkim.org/awesome-rnn/
Обработка языков/LSTM/RNN
 https://github.com/yandex/faster-rnnlm
 http://deeplearning.net/tutorial/rnnslu.html
 https://yandexdataschool.com/conference/program
 http://www.wildml.com/2015/12/
implementing-a-cnn-for-text-classification-in-tensorflow/
 AN4 Dataset
 Kaldi Project
 TIMIT
 Sequence-to-sequence neural net models for grapheme to phoneme conversion.
 SPOKEN LANGUAGE UNDERSTANDING USING LONG SHORT-TERM MEMORY NEURAL NETWORKS.
Project Oxford
https://habrahabr.ru/post/276411/
aka.ms/mlproject
Microsoft Cognitive Services
https://www.microsoft.com/cognitive-services/computer-
vision-api
https://github.com/Microsoft/ProjectOxford-ClientSDK
Azure ML
https://azure.microsoft.com/ru-
ru/services/machine-
learning/?WT.srch=1&WT.mc_id
=SEM_an164K8p
Azure Machine Learning:
разработка сервисов
машинного обучения и их
использование в мобильном
приложении
 https://habrahabr.ru/company/microsof
t/blog/275475/
 https://habrahabr.ru/company/microsof
t/blog/236823/
© 2016 Microsoft Corporation. All rights reserved.

More Related Content

Similar to cv

Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
CodeFest
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5
Provectus
 
безопасность веб приложений сегодня. дмитрий евтеев. зал 4
безопасность веб приложений сегодня. дмитрий евтеев. зал 4безопасность веб приложений сегодня. дмитрий евтеев. зал 4
безопасность веб приложений сегодня. дмитрий евтеев. зал 4rit2011
 
Безопасность веб-приложений сегодня
Безопасность веб-приложений сегодняБезопасность веб-приложений сегодня
Безопасность веб-приложений сегодняDmitry Evteev
 
0480196 746 b8_lyasin_d_n_sankov_s_g_osnovy_programmirovaniya_v_srede_c_bui
0480196 746 b8_lyasin_d_n_sankov_s_g_osnovy_programmirovaniya_v_srede_c_bui0480196 746 b8_lyasin_d_n_sankov_s_g_osnovy_programmirovaniya_v_srede_c_bui
0480196 746 b8_lyasin_d_n_sankov_s_g_osnovy_programmirovaniya_v_srede_c_buiAnastasia Snegina
 
Машинное обучение на платформе .NET
Машинное обучение на платформе .NETМашинное обучение на платформе .NET
Машинное обучение на платформе .NET
DotNetConf
 
Непрерывная интеграция. Практическое применение
Непрерывная интеграция. Практическое применениеНепрерывная интеграция. Практическое применение
Непрерывная интеграция. Практическое применениеdevclub
 
МиСПИСиТ (введение)
МиСПИСиТ (введение)МиСПИСиТ (введение)
Эволюция BackDoor.Flashback
Эволюция BackDoor.FlashbackЭволюция BackDoor.Flashback
Эволюция BackDoor.Flashbackhexminer
 
Среда разработки. Путь от ПК к докеру
Среда разработки. Путь от ПК к докеруСреда разработки. Путь от ПК к докеру
Среда разработки. Путь от ПК к докеру
Dmitry Morozov
 
Переход от монолитной архитектуры к распределенной
Переход от монолитной архитектуры к распределеннойПереход от монолитной архитектуры к распределенной
Переход от монолитной архитектуры к распределенной
Alexander Byndyu
 
Web programming modern tendencies
Web programming modern tendenciesWeb programming modern tendencies
Web programming modern tendenciesDarkestMaster
 
Система анализа уязвимостей программных продуктов
Система анализа уязвимостей программных продуктовСистема анализа уязвимостей программных продуктов
Система анализа уязвимостей программных продуктов
UNETA
 
Модульное тестирование и TDD в .NET
Модульное тестирование и TDD в .NETМодульное тестирование и TDD в .NET
Модульное тестирование и TDD в .NET
Alexander Byndyu
 
WordPress как фреймворк для создания сложных систем
WordPress как фреймворк для создания сложных системWordPress как фреймворк для создания сложных систем
WordPress как фреймворк для создания сложных систем
Anatoly Yumashev
 
Webinar: Обзор новых возможностей в RAD Studio XE8 (Delphi, C++Builder)
Webinar: Обзор новых возможностей в RAD Studio XE8 (Delphi, C++Builder)Webinar: Обзор новых возможностей в RAD Studio XE8 (Delphi, C++Builder)
Webinar: Обзор новых возможностей в RAD Studio XE8 (Delphi, C++Builder)
Denis Vasilyev
 
Анализ защищенности интернет-проектов
Анализ защищенности интернет-проектовАнализ защищенности интернет-проектов
Анализ защищенности интернет-проектовDmitry Evteev
 
антивирусные программы [восстановлен]
антивирусные программы [восстановлен]антивирусные программы [восстановлен]
антивирусные программы [восстановлен]KBeglova
 
Тестирование ПО: баг не пройдет!
Тестирование ПО: баг не пройдет!Тестирование ПО: баг не пройдет!
Тестирование ПО: баг не пройдет!
CUSTIS
 

Similar to cv (20)

Frontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиковFrontend: Путешествие в мир модульных загрузчиков
Frontend: Путешествие в мир модульных загрузчиков
 
Desktop app based on node js and html5
Desktop app based on node js and html5Desktop app based on node js and html5
Desktop app based on node js and html5
 
безопасность веб приложений сегодня. дмитрий евтеев. зал 4
безопасность веб приложений сегодня. дмитрий евтеев. зал 4безопасность веб приложений сегодня. дмитрий евтеев. зал 4
безопасность веб приложений сегодня. дмитрий евтеев. зал 4
 
Безопасность веб-приложений сегодня
Безопасность веб-приложений сегодняБезопасность веб-приложений сегодня
Безопасность веб-приложений сегодня
 
0480196 746 b8_lyasin_d_n_sankov_s_g_osnovy_programmirovaniya_v_srede_c_bui
0480196 746 b8_lyasin_d_n_sankov_s_g_osnovy_programmirovaniya_v_srede_c_bui0480196 746 b8_lyasin_d_n_sankov_s_g_osnovy_programmirovaniya_v_srede_c_bui
0480196 746 b8_lyasin_d_n_sankov_s_g_osnovy_programmirovaniya_v_srede_c_bui
 
Машинное обучение на платформе .NET
Машинное обучение на платформе .NETМашинное обучение на платформе .NET
Машинное обучение на платформе .NET
 
Непрерывная интеграция. Практическое применение
Непрерывная интеграция. Практическое применениеНепрерывная интеграция. Практическое применение
Непрерывная интеграция. Практическое применение
 
Практика
ПрактикаПрактика
Практика
 
МиСПИСиТ (введение)
МиСПИСиТ (введение)МиСПИСиТ (введение)
МиСПИСиТ (введение)
 
Эволюция BackDoor.Flashback
Эволюция BackDoor.FlashbackЭволюция BackDoor.Flashback
Эволюция BackDoor.Flashback
 
Среда разработки. Путь от ПК к докеру
Среда разработки. Путь от ПК к докеруСреда разработки. Путь от ПК к докеру
Среда разработки. Путь от ПК к докеру
 
Переход от монолитной архитектуры к распределенной
Переход от монолитной архитектуры к распределеннойПереход от монолитной архитектуры к распределенной
Переход от монолитной архитектуры к распределенной
 
Web programming modern tendencies
Web programming modern tendenciesWeb programming modern tendencies
Web programming modern tendencies
 
Система анализа уязвимостей программных продуктов
Система анализа уязвимостей программных продуктовСистема анализа уязвимостей программных продуктов
Система анализа уязвимостей программных продуктов
 
Модульное тестирование и TDD в .NET
Модульное тестирование и TDD в .NETМодульное тестирование и TDD в .NET
Модульное тестирование и TDD в .NET
 
WordPress как фреймворк для создания сложных систем
WordPress как фреймворк для создания сложных системWordPress как фреймворк для создания сложных систем
WordPress как фреймворк для создания сложных систем
 
Webinar: Обзор новых возможностей в RAD Studio XE8 (Delphi, C++Builder)
Webinar: Обзор новых возможностей в RAD Studio XE8 (Delphi, C++Builder)Webinar: Обзор новых возможностей в RAD Studio XE8 (Delphi, C++Builder)
Webinar: Обзор новых возможностей в RAD Studio XE8 (Delphi, C++Builder)
 
Анализ защищенности интернет-проектов
Анализ защищенности интернет-проектовАнализ защищенности интернет-проектов
Анализ защищенности интернет-проектов
 
антивирусные программы [восстановлен]
антивирусные программы [восстановлен]антивирусные программы [восстановлен]
антивирусные программы [восстановлен]
 
Тестирование ПО: баг не пройдет!
Тестирование ПО: баг не пройдет!Тестирование ПО: баг не пройдет!
Тестирование ПО: баг не пройдет!
 

More from Dmitry Andreev

Проактивное управление проектами в среде Microsoft Visual Studio 2010
Проактивное управление проектами в среде Microsoft Visual Studio 2010Проактивное управление проектами в среде Microsoft Visual Studio 2010
Проактивное управление проектами в среде Microsoft Visual Studio 2010
Dmitry Andreev
 
Как оценивать состояние проекта по разработке с помощью формальных метрик и о...
Как оценивать состояние проекта по разработке с помощью формальных метрик и о...Как оценивать состояние проекта по разработке с помощью формальных метрик и о...
Как оценивать состояние проекта по разработке с помощью формальных метрик и о...
Dmitry Andreev
 
Разработка, тестирование и развертывание баз данных в Visual Studio Team Syst...
Разработка, тестирование и развертывание баз данных в Visual Studio Team Syst...Разработка, тестирование и развертывание баз данных в Visual Studio Team Syst...
Разработка, тестирование и развертывание баз данных в Visual Studio Team Syst...
Dmitry Andreev
 
Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?
Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?
Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?
Dmitry Andreev
 
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...
Dmitry Andreev
 

More from Dmitry Andreev (6)

directx
directxdirectx
directx
 
Проактивное управление проектами в среде Microsoft Visual Studio 2010
Проактивное управление проектами в среде Microsoft Visual Studio 2010Проактивное управление проектами в среде Microsoft Visual Studio 2010
Проактивное управление проектами в среде Microsoft Visual Studio 2010
 
Как оценивать состояние проекта по разработке с помощью формальных метрик и о...
Как оценивать состояние проекта по разработке с помощью формальных метрик и о...Как оценивать состояние проекта по разработке с помощью формальных метрик и о...
Как оценивать состояние проекта по разработке с помощью формальных метрик и о...
 
Разработка, тестирование и развертывание баз данных в Visual Studio Team Syst...
Разработка, тестирование и развертывание баз данных в Visual Studio Team Syst...Разработка, тестирование и развертывание баз данных в Visual Studio Team Syst...
Разработка, тестирование и развертывание баз данных в Visual Studio Team Syst...
 
Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?
Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?
Автоматизация процессов разработки. Нужно ли это, почему и какими средствами?
 
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...
 

cv

Editor's Notes

  1. Trials as of 23 may 2016 Product NameDescription Bing Autosuggest – Preview 10,000 transactions per month, 10 per second. Bing Search – Preview Across all Bing Search APIs (Web, Image, Video, News): 1,000 transactions per month, 5 per second. Bing Spell Check – Preview 5,000 transactions per month, 7 per minute. Academic - Preview 10,000 transactions per month, 3 per second for interpret, 1 per second for evaluate, 6 per minute for calcHistogram. Computer Vision - Preview 5,000 transactions per month, 20 per minute. Emotion - Preview 30,000 transactions per month, 20 per minute. Entity Linking - Preview 1000 transactions per day, 10KB text limit. Face - Preview 30,000 transactions per month, 20 per minute. Linguistic Analysis - Preview 5,000 transactions per month, 2 per second. Speaker Recognition - Preview 10,000 transactions per month, 20 per minute. Speech - Preview 5,000 transactions per month, 20 per minute for each feature for a total of 60 per minute. Video - Preview getResult: 1,200 transactions per month, 1 per minute. getOperation: 12,000 transactions per month, 5 per minute Each feature has 100MB file limit; 300 transactions per month per feature, 1 per minute. WebLM - Preview 100,000 transactions per month, 1,000 per minute. Recommendations - Preview 10,000 transactions per month. Text Analytics - Preview 5,000 transactions per month.