SlideShare a Scribd company logo
SIGGRAPH 2019 | LOS ANGLES | 28 JULY - 1 AUGUST
Charlie Wang, Peng Tu, Mikhail Nikolsky, Jerry Dong
Building a Deep Learning Video Analytics
Framework for Intel AI Platforms
SIGGRAPH 2019 | LOS ANGLES | 28 JULY - 1 AUGUST
Speakers
• Charlie Wang
• Principal Engineer, VTT
• Peng Tu
• Principal Engineer, CPDP
• Mikhail Nikolsky
• Sr. Staff Engineer, CPDP
3
Intel Architecture Graphics Software (IAGS)
Agenda
▪ Video Analytics Usages
▪ Build a Video Analytics Framework for all Intel HWs
▪ FFMPEG Filter Implementation
▪ GStreamer Plugin Implementation
▪ Video Analytics as REST Service
▪ Demo
▪ Resources
Intelligence on Video Data
Retailanalytics Industrialinspection Content filtering Parking management
Super Resolution Autonomous driving Action recognitionEncode Quality Control
Intel Video Analytics HW
6
Intel® CPU
Client and server
Intel® Vision
AcceleratorDesign
with Intel® Movidius™
Vision Processing
Units (VPU)
Intel® GPU
Integrated and
discrete
Intel® Vision
AcceleratorDesign
with an Intel® Arria 10
FPGA (preview)
Scalar Vector Matrix Spatial
Typical Video Analytics Flow
Decode
Scale
/csc
Inference
Object
tracking
Post processing
+ Encode
720p
1080p
4K
(AVC, HEVC)
Object
Detection
Image
Segmentation
ObjectTracking
• LKT
• IOU
Crop/scale
Bounding box
720P
1080p
(AVC, HEVC)
Output:
224x224
RGBP
Objects
Recognition
Image
Classification
Action
Recognition
Crop
scale
Inference
Inference
Map to Intel Hardwares
Decode
Scale
/csc
Inference
Object
tracking
Post processing
+ Encode
Crop
scale
Inference
Inference
CPU
Media FF
CPU
GPU
VPU
FPGA
CPU
GPU
Programmable
CPU
Media FF
GPU
CPU
Media FF
GPU
CPU
GPU
VPU
FPGA
Video analyticsrequire heavy video and compute interaction
Agenda
▪ Video Analytics Usages
▪ Build a Video Analytics Framework for all Intel HWs
▪ FFMPEG Filter Implementation
▪ GStreamer Plugin Implementation
▪ Video Analytics as REST Service
▪ Demo
▪ Resources
Popular video Processing software
frameworks
Video and audio demux, decode, processing, encoding, rendering, and muxing, also
allow customizedplugin/filter
Intel Video software Offering
11
CPU GPU Media FF FPGA
VAAPI/DXVA
Next Gen Media Library
SW codec
App
FFMPEG GStreamer
App App
Customized
Framework
FPGA driver
Intel GPU media FF support video decode/encode and video processing
Intel Computer VISION Software Offering
Deep Learning for Computer Vision
Accelerate and deploy convolutional neuralnetworks
(CNN) on Intel® platforms with the Deep Learning
DeploymentToolkit includedOpenVINO
Traditional Computer Vision
Develop and optimize classic computer vision applications
built with the OpenCV library or OpenVX API.
OpenVINO for Inference
13
CPU GPU VPU
MKLDNN
GPU PluginCPU Plugin
DL Inference Engine API
FPGA
MVNC
VPU Plugin
DLA
FPGA Plugin
Heterogeneous Execution Engine
CLDNN
Inference App
Single interface supports all platforms, no SW change.
Library designed for CNN inference accelerationon Intel HW
Inference Engine
This execution engine uses a common API to deliver inference
solutionson the platform of your choice: CPU, GPU, VPU, or
FPGA.
Model Optimizer
This Python*-based command line tool imports trained
models from popular deep learning frameworks such as
Caffe*, TensorFlow*, and Apache MXNet*, and Open
Neural Network Exchange (ONNX).
Intel Deep Learning Deployment Toolkit
Now let’s build the video
analytics framework
Write-once, Deploy on All HWs
Video Analytics Framework
Video Analytics Application
CPU GPU VPU FPGA
VAAPI
Media Driver
MKLDNN
ComputeDriver
Next Gen Media Library OpenVINO
CLDNN DLA
CPU codec
FFMPEG Plugin
Video Analytics Application
Gstreamer Plugin
Video Analytics Application
Your own framework
NV12
The framework supports load balanceamong devices
Media & Compute interoperability
• Media and Compute/Inferenceuse differentcolor format
Tiled NV12
Surface
Decode
Linear RGBP
SurfaceScaling/csc Meta dataInference
A copy is required if we don’t
handlebuffer sharing
correctly
Common media format – YUV
with padding, pitch, etc.
Inference format – tensor array
Media format as a compute/Inference
Format
Decode
NV12
SurfaceScaling Meta dataInferenceC
Y channel
Layer1 (csc+convolution)
weight1
weight2
weight3
bias
csc
R
G
B
UV
channel
Inference time reduced by 3% to 20% depends on resolution
Model Resolution Time reduction
GoogleNetV1 224x224 3.6%
YoloTinyV1 448x448 9.3%
Mtcnn 1280x720 20.9%
Video Analytics e2e flow
Trained
Model
OfflineModel
Opt
Model
IR
DLDT
Inference Engine API
Application
Inference Engine
DLDT
MSDK Library
GSTVA
DEC/ENC/VPP API
MSDK
DEC/ENC/VPP/INF API
FFMPEG-VA/GST-VA
VA Pipeline DesignVideo
sources
VA Pipeline Implementation
Agenda
▪ Video Analytics Usages
▪ Build a Video Analytics Framework for all Intel HWs
▪ FFMPEG Filter Implementation
▪ GStreamer Plugin Implementation
▪ Video Analytics as REST Service
▪ Demo
▪ Resources
21
FFMPEG componentsCommands
(console)
ffmpeg ffplay ffprobe ffserver
Libraries
libavdevice
libavformat
libavcodec
libavfilter
libavutil
libpostproc
libavresample
libswresamplemux / demux
Libraryfora/vfilters which to implement
all kind ofeffects,such as scale, crop, frc,
etc
Commandtoolto do
transcoding
Simple playerwith SDL
usingffmpeg
demux/decoder
Tool to extract the
informationofmulti-
media stream
Real-time stream
server to broadcast
multi-mediastream
A Library to implement mostofA/Vcodec,
and used bymost ofpopular codectools
Common tool library
We are adding inference as
filters
22
Tensorflow
ffmpeg or ffplay
CPU GPU FPGAVPU
DNN INTERFACEDNNModel DNNModel
Tensorflow
Backend
Inference Engine
Backend
InferenceEngine(OpenVINO)
MKLD
NN
clDNN Movidius DLA
SR Filter Classify FilterDetect Filter
APP
LIBAVFILTER
3RD
LIBRARIESHW
Kafka
produce
r
Meta
data
muxer
LIBAVFORMAT
Librdkafka
FFmpeg Filter VA Architecture new
FFmpeg
hardware
3rd party
…
23
• Face detection + emotion&age_gender recognition:
ffmpeg -i clip.mp4 -vf “
detect=model=$DETECT_MODEL1:model_proc=$MODEL1-JSON:device=$CPU,
classify=model=$EMOTION_MODEL2:model_proc=&MODEL2-JSON:device=$CPU,
classify=model=$AGE_GENDER_MODEL3:model_proc=$MODEL3-JSON:device=$CPU”
-an -y -f iemetadata metadata.json
The pipelines look like ...
23
input decoder face emotion age-gender convert send to
detection recognition recognition to JSON kafka server
stream detect classify classify iemetadata Kafkadecode
Agenda
▪ Video Analytics Usages
▪ Build a Video Analytics Framework for all Intel HWs
▪ FFMPEG Filter Implementation
▪ GStreamer Plugin Implementation
▪ Video Analytics as REST Service
▪ Demo
▪ Resources
WHY AddING VA to Gstreamer
• Multiplatform:Linux, Windows, Mac OS X, Android, …
• Comprehensivecore:graph-based multi-threadedpipeline, lightweightdata
passing
• Broad coverageof media technologies: file and streamingpacket i/o, codecs,
metadata,video and audio
• Extensivedevelopmenttools: gst-launch, Python, C++ API
• Easy to extend and reusethrough plugins and metadata
25
GStreamer Plugins Architecture
26
GStreamer API
Application
MetadataPer-plugin params/API
pipeline control pipeline events inference plugins configuration inference res ults
zero-copy,multi-channel inference
OpenVINO Inference Engine
MKLDNN
plugin
clDNN
plugin
MDK
plugin
iGPU/
dGPU
CPU
KMB/
HDDL
VAAPI
libav/
ffmpeg
VAAPI SVT
GPU
i/d/VSI
CPU
GPU
i/d/VSI
CPU
RTSP,
WebRTC,
Render,
File IO,
…
V4L2
Media HW acceleration
ImageInference API
Kafka
MQTT
Video
sources
gvainference
Video Analytics plugins (GVA*)Media plugins
HW
decode
SW
decode
HW
encode
SW
encode
Other plugins
200+
plugins
gvadetect gvaclassify gvaidentify
Meta
convert
publish
decodebin
GVA Inference Plugins Architecture
27
Inference Shared Instance
OpenVINO IEOpenVINO IE
GvaDetect
Thread
sink
padDMABuf
or RGBx
(any
resolution)
Attach GstMeta
to GstBuffer
source
pad
Output Layer
Post-Processing
GstBuffer + GstMeta’s
VASurface or RGBx
VAAPI
original GstBuffer
queueInput Layer
Pre-Processing
Inference queue
per device
DownScale
NV12→RGBP
GStreamer pipeline example
input HW/SW face age/gender emotion landmark re-identify face convert overlay
decode detection classification recognition points inference recognition to JSON result
28
filesrc decodebin gvaclassify gvaclassify gvaclassifygvadetect gvaidentify gvametaconvert gvawatermark
Video Analytics pipeline in Ad Insertion demo – facedetection plus age, gender, person recognition
gvaclassify
gst-launch-1.0 filesrc location=${FILE} !
decodebin ! 
gvadetect model=face-detection-adas-0001.xml model-proc=face-detection-adas-0001.json ! queue ! 
gvaclassify device=CPU model=age-gender-recognition.xml model-proc=age-gender-recognition.json ! queue ! 
gvaclassify device=GPU model=emotions-recognition.xml model-proc=emotions-recognition.json ! queue ! 
gvaclassify device=CPU,GPU model=landmarks-regression.xml model-proc=landmarks-regression.json ! queue ! 
gvaclassify model=face-reidentification.xml model-proc=face-reidentification.json ! queue ! 
gvaidentify gallery=face_gallery.json ! queue ! 
gvawatermark ! videoconvert ! fpsdisplaysink sync=false
Platform specific tuning: gvaclassify device={CPU|CPU,GPU} cpu-streams=15 nireq=16 …
Multiple Programming language
BINDINGS• Easily build pipeline from C/C++, Python in addition to the gst-launch command
29
GStreamer Video Analytics Plugins List
30
GST element Description INPUT OUTPUT
gvainference Generic inference GstBuffer INPUT+ GvaTensorMeta
gvadetect Objectdetection GstBuffer INPUT+ GstVideoRegionOfInterestMeta
gvaclassify Objectclassification GstBuffer +
GstVideoRegionOfInterestMeta
INPUT+ GstVideoRegionOfInterestMeta
gvaidentify Objectidentification/
recognition
GstBuffer +
GstVideoRegionOfInterestMeta
INPUT+ GstVideoRegionOfInterestMeta
gvametaconvert Metadata conversion GstBuffer +GvaTensorMeta/
GstVideoRegionOfInterestMeta
INPUT+ GvaJSONMeta
gvawatermark Overlay GstBuffer +GvaDetectionMeta + {
GvaTensorMeta }
INPUT(with modified image)
gvametapublish Messagebus (Kafka,
MQTT)
GstBuffer +GvaJSONMeta -
Agenda
▪ Video Analytics Usages
▪ Build a Video Analytics Framework for all Intel HWs
▪ FFMPEG Filter Implementation
▪ GStreamer Plugin Implementation
▪ Video Analytics as REST Service
▪ Demo
▪ Resources
Video Analytics API levels
• Low-level (per frame processing)
▪ VAAPI, OpenVINO, OpenCL, OpenCV
• Pipeline level
▪ GStreamer, FFMPEG, MediaFoundation, …
• Video Analytics as Service
▪ REST/gRPC multi-node service
32
Video Analytics REST Service
33
• Provide RESTfulinterfacesfor executing
and monitoringpipeline status
• Interface agnostic to underlying
implementation(GStreamer,FFMPEG,
Custom backend)
• Supportscaling through container
deploymentand orchestration frameworks
• Load balancing
Video Analytics Pipeline Service
GStreamer / FFMPEG
REST / gRPC / Message Bus
VAAPI / MSDKHW
Acceleration
Pipeline
Support
Video Analytics
Normalization
Edge / Cloud
Integration
Open VINO
PipelineA PipelineB …
Pipeline Manager Model Manager
Model A Model B…
CPU GPU VPU
Video Analytics Service Developer
Workflow
34
HW / OS
Optimized
Docker Files
Pipelines
Configuration
json files
Docker
Build
Model
Configuration
json files
HW/ OS
Optimized
Libraries
VA Pipeline Developer creates
pipeline templates with
customizable parameters and
models
VA Pipeline Developer builds
Docker image
Developer / System Integrator
deploys containers to Cloud or Edge
and integrates into application
HTTP request
1 2 3
Application 2
Scheduler
Application 1
Worker
HTTP request
Worker
…
…
CloudEdge
End2end DISTRIBUTED VIDEO analytics
examplePOST/pipelines/vehicles/1
{
"source": "rtsp://10.43.38.158",
"destination": {
“type": “Kafka",
“hosts": [10.43.38.150:9299]
}
}
Video Analytics
REST Service
REST
RTSP
{
"camera_id" : “173207954”,
"label": "vehicle",
"object_id": 3,
"bounding_box": [0.13958, 0.33766, 0.42094, 0.06687],
"confidence": 0.83
}
NVR
storage
RTSP
Database
web dashboard
Analytics
algorithm
Video Analytics Service is part of Open
Visual Cloud
36
https://01.org/openvisualcloud
The Open Visual Cloud is an open source project that offers a set of pre-defined reference
pipelines for various target visual cloud use cases.
Agenda
▪ Video Analytics Usages
▪ Build a Video Analytics Framework for all Intel HWs
▪ FFMPEG Filter Implementation
▪ Gstreamer Plugin Implementation
▪ Video Analytics as REST Service
▪ Demo
▪ Resources
Demo
• 4 channel face detection
• Smart city, edge to cloud
38
Summary
• We presented Intel video analytics e2e pipeline in GStreamer
and FFMPEG
• It supports multiple Intel HWs with same SW pipeline/API
• It provides optimized flow between media and DL inference, zero
copy, inference on NV12 image
• It provides scalable deployment cross edge/cloud
• Call to Action
• Try it out and let us know your feedback
Resources
▪ OpenVINO - https://github.com/opencv/dldt
▪ MediaSDK - https://github.com/Intel-Media-SDK
▪ GStreamer Plugin - https://github.com/opencv/gst-video-analytics
▪ Open Visual Cloud
▪ Smart City sample
https://github.com/OpenVisualCloud/Smart-City-Sample
▪ Ad Insertion sample
https://github.com/OpenVisualCloud/Ad-Insertion-Sample
▪ Docker files including FFMPEG Video Analytics Filters
https://github.com/OpenVisualCloud/Dockerfiles
40
Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Sessions
Ad

Recommended

Power_780+(9179-MHD)표준제안서
Power_780+(9179-MHD)표준제안서
기한 김
 
FAQ on Dedupe NetApp
FAQ on Dedupe NetApp
Ashwin Pawar
 
TensorFlow and Keras: An Overview
TensorFlow and Keras: An Overview
Poo Kuan Hoong
 
LF_DPDK17_Serverless DPDK - How SmartNIC resident DPDK Accelerates Packet Pro...
LF_DPDK17_Serverless DPDK - How SmartNIC resident DPDK Accelerates Packet Pro...
LF_DPDK
 
MLflow: Infrastructure for a Complete Machine Learning Life Cycle
MLflow: Infrastructure for a Complete Machine Learning Life Cycle
Databricks
 
Introduction of CCE and DevCloud
Introduction of CCE and DevCloud
Opsta
 
OpenVG 1.1 Reference Card
OpenVG 1.1 Reference Card
The Khronos Group Inc.
 
Net App Unified Storage Architecture
Net App Unified Storage Architecture
nburgett
 
Oracle Data Integrator
Oracle Data Integrator
IT Help Desk Inc
 
Netapp Storage
Netapp Storage
Prime Infoserv
 
Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on Kubernetes
Bruno Borges
 
Skia & Freetype - Android 2D Graphics Essentials
Skia & Freetype - Android 2D Graphics Essentials
Kyungmin Lee
 
Ceph Tech Talk: Ceph at DigitalOcean
Ceph Tech Talk: Ceph at DigitalOcean
Ceph Community
 
Paul Angus – Backup & Recovery in CloudStack
Paul Angus – Backup & Recovery in CloudStack
ShapeBlue
 
The Transformer in Vision | Xavier Giro | Master in Computer Vision Barcelona...
The Transformer in Vision | Xavier Giro | Master in Computer Vision Barcelona...
Universitat Politècnica de Catalunya
 
Seamless MLOps with Seldon and MLflow
Seamless MLOps with Seldon and MLflow
Databricks
 
Productionizing Machine Learning with a Microservices Architecture
Productionizing Machine Learning with a Microservices Architecture
Databricks
 
Scaling Data and ML with Apache Spark and Feast
Scaling Data and ML with Apache Spark and Feast
Databricks
 
Niagara In UE4
Niagara In UE4
Dae Hyek KIM
 
Object storage의 이해와 활용
Object storage의 이해와 활용
Seoro Kim
 
Hyperledger Fabric & Composer
Hyperledger Fabric & Composer
Dr. Ketan Parmar
 
Advancements in-tiled-rendering
Advancements in-tiled-rendering
mistercteam
 
Knime
Knime
Amal Targhi
 
Azure Synapse Analytics Overview (r2)
Azure Synapse Analytics Overview (r2)
James Serra
 
Diving Through The Layers: Investigating runc, containerd, and the Docker eng...
Diving Through The Layers: Investigating runc, containerd, and the Docker eng...
Phil Estes
 
Docker containers
Docker containers
Pau López
 
NetApp & Storage fundamentals
NetApp & Storage fundamentals
Shashidhar Basavaraju
 
Efficient Neural Architecture Search via Parameter Sharing
Efficient Neural Architecture Search via Parameter Sharing
Jinwon Lee
 
Enabling Cross-platform Deep Learning Applications with Intel OpenVINO™
Enabling Cross-platform Deep Learning Applications with Intel OpenVINO™
Yury Gorbachev
 
"Vision for All?," a Presentation from Intel
"Vision for All?," a Presentation from Intel
Edge AI and Vision Alliance
 

More Related Content

What's hot (20)

Oracle Data Integrator
Oracle Data Integrator
IT Help Desk Inc
 
Netapp Storage
Netapp Storage
Prime Infoserv
 
Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on Kubernetes
Bruno Borges
 
Skia & Freetype - Android 2D Graphics Essentials
Skia & Freetype - Android 2D Graphics Essentials
Kyungmin Lee
 
Ceph Tech Talk: Ceph at DigitalOcean
Ceph Tech Talk: Ceph at DigitalOcean
Ceph Community
 
Paul Angus – Backup & Recovery in CloudStack
Paul Angus – Backup & Recovery in CloudStack
ShapeBlue
 
The Transformer in Vision | Xavier Giro | Master in Computer Vision Barcelona...
The Transformer in Vision | Xavier Giro | Master in Computer Vision Barcelona...
Universitat Politècnica de Catalunya
 
Seamless MLOps with Seldon and MLflow
Seamless MLOps with Seldon and MLflow
Databricks
 
Productionizing Machine Learning with a Microservices Architecture
Productionizing Machine Learning with a Microservices Architecture
Databricks
 
Scaling Data and ML with Apache Spark and Feast
Scaling Data and ML with Apache Spark and Feast
Databricks
 
Niagara In UE4
Niagara In UE4
Dae Hyek KIM
 
Object storage의 이해와 활용
Object storage의 이해와 활용
Seoro Kim
 
Hyperledger Fabric & Composer
Hyperledger Fabric & Composer
Dr. Ketan Parmar
 
Advancements in-tiled-rendering
Advancements in-tiled-rendering
mistercteam
 
Knime
Knime
Amal Targhi
 
Azure Synapse Analytics Overview (r2)
Azure Synapse Analytics Overview (r2)
James Serra
 
Diving Through The Layers: Investigating runc, containerd, and the Docker eng...
Diving Through The Layers: Investigating runc, containerd, and the Docker eng...
Phil Estes
 
Docker containers
Docker containers
Pau López
 
NetApp & Storage fundamentals
NetApp & Storage fundamentals
Shashidhar Basavaraju
 
Efficient Neural Architecture Search via Parameter Sharing
Efficient Neural Architecture Search via Parameter Sharing
Jinwon Lee
 
Secrets of Performance Tuning Java on Kubernetes
Secrets of Performance Tuning Java on Kubernetes
Bruno Borges
 
Skia & Freetype - Android 2D Graphics Essentials
Skia & Freetype - Android 2D Graphics Essentials
Kyungmin Lee
 
Ceph Tech Talk: Ceph at DigitalOcean
Ceph Tech Talk: Ceph at DigitalOcean
Ceph Community
 
Paul Angus – Backup & Recovery in CloudStack
Paul Angus – Backup & Recovery in CloudStack
ShapeBlue
 
The Transformer in Vision | Xavier Giro | Master in Computer Vision Barcelona...
The Transformer in Vision | Xavier Giro | Master in Computer Vision Barcelona...
Universitat Politècnica de Catalunya
 
Seamless MLOps with Seldon and MLflow
Seamless MLOps with Seldon and MLflow
Databricks
 
Productionizing Machine Learning with a Microservices Architecture
Productionizing Machine Learning with a Microservices Architecture
Databricks
 
Scaling Data and ML with Apache Spark and Feast
Scaling Data and ML with Apache Spark and Feast
Databricks
 
Object storage의 이해와 활용
Object storage의 이해와 활용
Seoro Kim
 
Hyperledger Fabric & Composer
Hyperledger Fabric & Composer
Dr. Ketan Parmar
 
Advancements in-tiled-rendering
Advancements in-tiled-rendering
mistercteam
 
Azure Synapse Analytics Overview (r2)
Azure Synapse Analytics Overview (r2)
James Serra
 
Diving Through The Layers: Investigating runc, containerd, and the Docker eng...
Diving Through The Layers: Investigating runc, containerd, and the Docker eng...
Phil Estes
 
Docker containers
Docker containers
Pau López
 
Efficient Neural Architecture Search via Parameter Sharing
Efficient Neural Architecture Search via Parameter Sharing
Jinwon Lee
 

Similar to Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Sessions (20)

Enabling Cross-platform Deep Learning Applications with Intel OpenVINO™
Enabling Cross-platform Deep Learning Applications with Intel OpenVINO™
Yury Gorbachev
 
"Vision for All?," a Presentation from Intel
"Vision for All?," a Presentation from Intel
Edge AI and Vision Alliance
 
OpenVINO introduction
OpenVINO introduction
Yury Gorbachev
 
How to Get the Best Deep Learning performance with OpenVINO Toolkit
How to Get the Best Deep Learning performance with OpenVINO Toolkit
Yury Gorbachev
 
"How to Get the Best Deep Learning Performance with the OpenVINO Toolkit," a ...
"How to Get the Best Deep Learning Performance with the OpenVINO Toolkit," a ...
Edge AI and Vision Alliance
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
tdc-globalcode
 
REAL-TIME VIDEO BASED VIOLENCE DETECTION SYSTEM IN PUBLIC AREA USING NEURAL N...
REAL-TIME VIDEO BASED VIOLENCE DETECTION SYSTEM IN PUBLIC AREA USING NEURAL N...
vineethrao4
 
AIDC Summit LA- Hands-on Training
AIDC Summit LA- Hands-on Training
Intel® Software
 
Simplifying and accelerating converged media with Open Visual Cloud
Simplifying and accelerating converged media with Open Visual Cloud
Liz Warner
 
Develop and optimize CV/DL applications with Intel OpenVINO toolkit
Develop and optimize CV/DL applications with Intel OpenVINO toolkit
Yury Gorbachev
 
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
AMD Developer Central
 
Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019
Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019
Codemotion
 
Intel® AI: AI Lab at Intel
Intel® AI: AI Lab at Intel
Intel® Software
 
FPGA Hardware Accelerator for Machine Learning
FPGA Hardware Accelerator for Machine Learning
Dr. Swaminathan Kathirvel
 
Imaging automotive 2015 addfor v002
Imaging automotive 2015 addfor v002
Enrico Busto
 
Imaging automotive 2015 addfor v002
Imaging automotive 2015 addfor v002
Enrico Busto
 
Implementing AI: Running AI at the Edge: ClickCV – Providing high-performance...
Implementing AI: Running AI at the Edge: ClickCV – Providing high-performance...
KTN
 
"The OpenVX Computer Vision and Neural Network Inference Library Standard for...
"The OpenVX Computer Vision and Neural Network Inference Library Standard for...
Edge AI and Vision Alliance
 
Microsoft Build 2019- Intel AI Workshop
Microsoft Build 2019- Intel AI Workshop
Intel® Software
 
【視覺進化論】AI智慧視覺運算技術論壇_2_ChungYeh
【視覺進化論】AI智慧視覺運算技術論壇_2_ChungYeh
MAKERPRO.cc
 
Enabling Cross-platform Deep Learning Applications with Intel OpenVINO™
Enabling Cross-platform Deep Learning Applications with Intel OpenVINO™
Yury Gorbachev
 
How to Get the Best Deep Learning performance with OpenVINO Toolkit
How to Get the Best Deep Learning performance with OpenVINO Toolkit
Yury Gorbachev
 
"How to Get the Best Deep Learning Performance with the OpenVINO Toolkit," a ...
"How to Get the Best Deep Learning Performance with the OpenVINO Toolkit," a ...
Edge AI and Vision Alliance
 
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
TDC2019 Intel Software Day - Tecnicas de Programacao Paralela em Machine Lear...
tdc-globalcode
 
REAL-TIME VIDEO BASED VIOLENCE DETECTION SYSTEM IN PUBLIC AREA USING NEURAL N...
REAL-TIME VIDEO BASED VIOLENCE DETECTION SYSTEM IN PUBLIC AREA USING NEURAL N...
vineethrao4
 
AIDC Summit LA- Hands-on Training
AIDC Summit LA- Hands-on Training
Intel® Software
 
Simplifying and accelerating converged media with Open Visual Cloud
Simplifying and accelerating converged media with Open Visual Cloud
Liz Warner
 
Develop and optimize CV/DL applications with Intel OpenVINO toolkit
Develop and optimize CV/DL applications with Intel OpenVINO toolkit
Yury Gorbachev
 
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
AMD Developer Central
 
Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019
Matteo Valoriani, Antimo Musone - The Future of Factory - Codemotion Rome 2019
Codemotion
 
Intel® AI: AI Lab at Intel
Intel® AI: AI Lab at Intel
Intel® Software
 
FPGA Hardware Accelerator for Machine Learning
FPGA Hardware Accelerator for Machine Learning
Dr. Swaminathan Kathirvel
 
Imaging automotive 2015 addfor v002
Imaging automotive 2015 addfor v002
Enrico Busto
 
Imaging automotive 2015 addfor v002
Imaging automotive 2015 addfor v002
Enrico Busto
 
Implementing AI: Running AI at the Edge: ClickCV – Providing high-performance...
Implementing AI: Running AI at the Edge: ClickCV – Providing high-performance...
KTN
 
"The OpenVX Computer Vision and Neural Network Inference Library Standard for...
"The OpenVX Computer Vision and Neural Network Inference Library Standard for...
Edge AI and Vision Alliance
 
Microsoft Build 2019- Intel AI Workshop
Microsoft Build 2019- Intel AI Workshop
Intel® Software
 
【視覺進化論】AI智慧視覺運算技術論壇_2_ChungYeh
【視覺進化論】AI智慧視覺運算技術論壇_2_ChungYeh
MAKERPRO.cc
 
Ad

More from Intel® Software (20)

AI for All: Biology is eating the world & AI is eating Biology
AI for All: Biology is eating the world & AI is eating Biology
Intel® Software
 
Python Data Science and Machine Learning at Scale with Intel and Anaconda
Python Data Science and Machine Learning at Scale with Intel and Anaconda
Intel® Software
 
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSci
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSci
Intel® Software
 
AI for good: Scaling AI in science, healthcare, and more.
AI for good: Scaling AI in science, healthcare, and more.
Intel® Software
 
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
Intel® Software
 
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...
Intel® Software
 
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
Intel® Software
 
AWS & Intel Webinar Series - Accelerating AI Research
AWS & Intel Webinar Series - Accelerating AI Research
Intel® Software
 
Intel Developer Program
Intel Developer Program
Intel® Software
 
Intel AIDC Houston Summit - Overview Slides
Intel AIDC Houston Summit - Overview Slides
Intel® Software
 
AIDC NY: BODO AI Presentation - 09.19.2019
AIDC NY: BODO AI Presentation - 09.19.2019
Intel® Software
 
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019
Intel® Software
 
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
Intel® Software
 
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...
Intel® Software
 
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...
Intel® Software
 
AIDC India - AI on IA
AIDC India - AI on IA
Intel® Software
 
AIDC India - Intel Movidius / Open Vino Slides
AIDC India - Intel Movidius / Open Vino Slides
Intel® Software
 
AIDC India - AI Vision Slides
AIDC India - AI Vision Slides
Intel® Software
 
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
Intel® Software
 
Intel® Open Image Denoise: Optimized CPU Denoising | SIGGRAPH 2019 Technical ...
Intel® Open Image Denoise: Optimized CPU Denoising | SIGGRAPH 2019 Technical ...
Intel® Software
 
AI for All: Biology is eating the world & AI is eating Biology
AI for All: Biology is eating the world & AI is eating Biology
Intel® Software
 
Python Data Science and Machine Learning at Scale with Intel and Anaconda
Python Data Science and Machine Learning at Scale with Intel and Anaconda
Intel® Software
 
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSci
Streamline End-to-End AI Pipelines with Intel, Databricks, and OmniSci
Intel® Software
 
AI for good: Scaling AI in science, healthcare, and more.
AI for good: Scaling AI in science, healthcare, and more.
Intel® Software
 
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
Software AI Accelerators: The Next Frontier | Software for AI Optimization Su...
Intel® Software
 
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...
Advanced Techniques to Accelerate Model Tuning | Software for AI Optimization...
Intel® Software
 
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
Reducing Deep Learning Integration Costs and Maximizing Compute Efficiency| S...
Intel® Software
 
AWS & Intel Webinar Series - Accelerating AI Research
AWS & Intel Webinar Series - Accelerating AI Research
Intel® Software
 
Intel AIDC Houston Summit - Overview Slides
Intel AIDC Houston Summit - Overview Slides
Intel® Software
 
AIDC NY: BODO AI Presentation - 09.19.2019
AIDC NY: BODO AI Presentation - 09.19.2019
Intel® Software
 
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019
AIDC NY: Applications of Intel AI by QuEST Global - 09.19.2019
Intel® Software
 
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
Advanced Single Instruction Multiple Data (SIMD) Programming with Intel® Impl...
Intel® Software
 
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...
Bring Intelligent Motion Using Reinforcement Learning Engines | SIGGRAPH 2019...
Intel® Software
 
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...
RenderMan*: The Role of Open Shading Language (OSL) with Intel® Advanced Vect...
Intel® Software
 
AIDC India - Intel Movidius / Open Vino Slides
AIDC India - Intel Movidius / Open Vino Slides
Intel® Software
 
AIDC India - AI Vision Slides
AIDC India - AI Vision Slides
Intel® Software
 
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
Enhance and Accelerate Your AI and Machine Learning Solution | SIGGRAPH 2019 ...
Intel® Software
 
Intel® Open Image Denoise: Optimized CPU Denoising | SIGGRAPH 2019 Technical ...
Intel® Open Image Denoise: Optimized CPU Denoising | SIGGRAPH 2019 Technical ...
Intel® Software
 
Ad

Recently uploaded (20)

Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Safe Software
 
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Alliance
 
The Future of Data, AI, and AR: Innovation Inspired by You.pdf
The Future of Data, AI, and AR: Innovation Inspired by You.pdf
Safe Software
 
Crypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdf
Stephen Perrenod
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
OpenPOWER Foundation & Open-Source Core Innovations
OpenPOWER Foundation & Open-Source Core Innovations
IBM
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
PyCon SG 25 - Firecracker Made Easy with Python.pdf
PyCon SG 25 - Firecracker Made Easy with Python.pdf
Muhammad Yuga Nugraha
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Impelsys Inc.
 
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
biswajitbanerjee38
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
 
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Alliance
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
MuleSoft for AgentForce : Topic Center and API Catalog
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
Lessons Learned from Developing Secure AI Workflows.pdf
Lessons Learned from Developing Secure AI Workflows.pdf
Priyanka Aash
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Powering Multi-Page Web Applications Using Flow Apps and FME Data Streaming
Safe Software
 
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Seminar: Perspectives on Passkeys & Consumer Adoption.pptx
FIDO Alliance
 
The Future of Data, AI, and AR: Innovation Inspired by You.pdf
The Future of Data, AI, and AR: Innovation Inspired by You.pdf
Safe Software
 
Crypto Super 500 - 14th Report - June2025.pdf
Crypto Super 500 - 14th Report - June2025.pdf
Stephen Perrenod
 
"Database isolation: how we deal with hundreds of direct connections to the d...
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
OpenPOWER Foundation & Open-Source Core Innovations
OpenPOWER Foundation & Open-Source Core Innovations
IBM
 
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Wenn alles versagt - IBM Tape schützt, was zählt! Und besonders mit dem neust...
Josef Weingand
 
PyCon SG 25 - Firecracker Made Easy with Python.pdf
PyCon SG 25 - Firecracker Made Easy with Python.pdf
Muhammad Yuga Nugraha
 
Securing AI - There Is No Try, Only Do!.pdf
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Creating Inclusive Digital Learning with AI: A Smarter, Fairer Future
Impelsys Inc.
 
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
War_And_Cyber_3_Years_Of_Struggle_And_Lessons_For_Global_Security.pdf
biswajitbanerjee38
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
Securing Account Lifecycles in the Age of Deepfakes.pptx
Securing Account Lifecycles in the Age of Deepfakes.pptx
FIDO Alliance
 
The Future of Technology: 2025-2125 by Saikat Basu.pdf
The Future of Technology: 2025-2125 by Saikat Basu.pdf
Saikat Basu
 
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Seminar: Evolving Landscape of Post-Quantum Cryptography.pptx
FIDO Alliance
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
MuleSoft for AgentForce : Topic Center and API Catalog
MuleSoft for AgentForce : Topic Center and API Catalog
shyamraj55
 
You are not excused! How to avoid security blind spots on the way to production
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 

Build a Deep Learning Video Analytics Framework | SIGGRAPH 2019 Technical Sessions

  • 1. SIGGRAPH 2019 | LOS ANGLES | 28 JULY - 1 AUGUST
  • 2. Charlie Wang, Peng Tu, Mikhail Nikolsky, Jerry Dong Building a Deep Learning Video Analytics Framework for Intel AI Platforms SIGGRAPH 2019 | LOS ANGLES | 28 JULY - 1 AUGUST
  • 3. Speakers • Charlie Wang • Principal Engineer, VTT • Peng Tu • Principal Engineer, CPDP • Mikhail Nikolsky • Sr. Staff Engineer, CPDP 3 Intel Architecture Graphics Software (IAGS)
  • 4. Agenda ▪ Video Analytics Usages ▪ Build a Video Analytics Framework for all Intel HWs ▪ FFMPEG Filter Implementation ▪ GStreamer Plugin Implementation ▪ Video Analytics as REST Service ▪ Demo ▪ Resources
  • 5. Intelligence on Video Data Retailanalytics Industrialinspection Content filtering Parking management Super Resolution Autonomous driving Action recognitionEncode Quality Control
  • 6. Intel Video Analytics HW 6 Intel® CPU Client and server Intel® Vision AcceleratorDesign with Intel® Movidius™ Vision Processing Units (VPU) Intel® GPU Integrated and discrete Intel® Vision AcceleratorDesign with an Intel® Arria 10 FPGA (preview) Scalar Vector Matrix Spatial
  • 7. Typical Video Analytics Flow Decode Scale /csc Inference Object tracking Post processing + Encode 720p 1080p 4K (AVC, HEVC) Object Detection Image Segmentation ObjectTracking • LKT • IOU Crop/scale Bounding box 720P 1080p (AVC, HEVC) Output: 224x224 RGBP Objects Recognition Image Classification Action Recognition Crop scale Inference Inference
  • 8. Map to Intel Hardwares Decode Scale /csc Inference Object tracking Post processing + Encode Crop scale Inference Inference CPU Media FF CPU GPU VPU FPGA CPU GPU Programmable CPU Media FF GPU CPU Media FF GPU CPU GPU VPU FPGA Video analyticsrequire heavy video and compute interaction
  • 9. Agenda ▪ Video Analytics Usages ▪ Build a Video Analytics Framework for all Intel HWs ▪ FFMPEG Filter Implementation ▪ GStreamer Plugin Implementation ▪ Video Analytics as REST Service ▪ Demo ▪ Resources
  • 10. Popular video Processing software frameworks Video and audio demux, decode, processing, encoding, rendering, and muxing, also allow customizedplugin/filter
  • 11. Intel Video software Offering 11 CPU GPU Media FF FPGA VAAPI/DXVA Next Gen Media Library SW codec App FFMPEG GStreamer App App Customized Framework FPGA driver Intel GPU media FF support video decode/encode and video processing
  • 12. Intel Computer VISION Software Offering Deep Learning for Computer Vision Accelerate and deploy convolutional neuralnetworks (CNN) on Intel® platforms with the Deep Learning DeploymentToolkit includedOpenVINO Traditional Computer Vision Develop and optimize classic computer vision applications built with the OpenCV library or OpenVX API.
  • 13. OpenVINO for Inference 13 CPU GPU VPU MKLDNN GPU PluginCPU Plugin DL Inference Engine API FPGA MVNC VPU Plugin DLA FPGA Plugin Heterogeneous Execution Engine CLDNN Inference App Single interface supports all platforms, no SW change. Library designed for CNN inference accelerationon Intel HW
  • 14. Inference Engine This execution engine uses a common API to deliver inference solutionson the platform of your choice: CPU, GPU, VPU, or FPGA. Model Optimizer This Python*-based command line tool imports trained models from popular deep learning frameworks such as Caffe*, TensorFlow*, and Apache MXNet*, and Open Neural Network Exchange (ONNX). Intel Deep Learning Deployment Toolkit
  • 15. Now let’s build the video analytics framework Write-once, Deploy on All HWs
  • 16. Video Analytics Framework Video Analytics Application CPU GPU VPU FPGA VAAPI Media Driver MKLDNN ComputeDriver Next Gen Media Library OpenVINO CLDNN DLA CPU codec FFMPEG Plugin Video Analytics Application Gstreamer Plugin Video Analytics Application Your own framework NV12 The framework supports load balanceamong devices
  • 17. Media & Compute interoperability • Media and Compute/Inferenceuse differentcolor format Tiled NV12 Surface Decode Linear RGBP SurfaceScaling/csc Meta dataInference A copy is required if we don’t handlebuffer sharing correctly Common media format – YUV with padding, pitch, etc. Inference format – tensor array
  • 18. Media format as a compute/Inference Format Decode NV12 SurfaceScaling Meta dataInferenceC Y channel Layer1 (csc+convolution) weight1 weight2 weight3 bias csc R G B UV channel Inference time reduced by 3% to 20% depends on resolution Model Resolution Time reduction GoogleNetV1 224x224 3.6% YoloTinyV1 448x448 9.3% Mtcnn 1280x720 20.9%
  • 19. Video Analytics e2e flow Trained Model OfflineModel Opt Model IR DLDT Inference Engine API Application Inference Engine DLDT MSDK Library GSTVA DEC/ENC/VPP API MSDK DEC/ENC/VPP/INF API FFMPEG-VA/GST-VA VA Pipeline DesignVideo sources VA Pipeline Implementation
  • 20. Agenda ▪ Video Analytics Usages ▪ Build a Video Analytics Framework for all Intel HWs ▪ FFMPEG Filter Implementation ▪ GStreamer Plugin Implementation ▪ Video Analytics as REST Service ▪ Demo ▪ Resources
  • 21. 21 FFMPEG componentsCommands (console) ffmpeg ffplay ffprobe ffserver Libraries libavdevice libavformat libavcodec libavfilter libavutil libpostproc libavresample libswresamplemux / demux Libraryfora/vfilters which to implement all kind ofeffects,such as scale, crop, frc, etc Commandtoolto do transcoding Simple playerwith SDL usingffmpeg demux/decoder Tool to extract the informationofmulti- media stream Real-time stream server to broadcast multi-mediastream A Library to implement mostofA/Vcodec, and used bymost ofpopular codectools Common tool library We are adding inference as filters
  • 22. 22 Tensorflow ffmpeg or ffplay CPU GPU FPGAVPU DNN INTERFACEDNNModel DNNModel Tensorflow Backend Inference Engine Backend InferenceEngine(OpenVINO) MKLD NN clDNN Movidius DLA SR Filter Classify FilterDetect Filter APP LIBAVFILTER 3RD LIBRARIESHW Kafka produce r Meta data muxer LIBAVFORMAT Librdkafka FFmpeg Filter VA Architecture new FFmpeg hardware 3rd party …
  • 23. 23 • Face detection + emotion&age_gender recognition: ffmpeg -i clip.mp4 -vf “ detect=model=$DETECT_MODEL1:model_proc=$MODEL1-JSON:device=$CPU, classify=model=$EMOTION_MODEL2:model_proc=&MODEL2-JSON:device=$CPU, classify=model=$AGE_GENDER_MODEL3:model_proc=$MODEL3-JSON:device=$CPU” -an -y -f iemetadata metadata.json The pipelines look like ... 23 input decoder face emotion age-gender convert send to detection recognition recognition to JSON kafka server stream detect classify classify iemetadata Kafkadecode
  • 24. Agenda ▪ Video Analytics Usages ▪ Build a Video Analytics Framework for all Intel HWs ▪ FFMPEG Filter Implementation ▪ GStreamer Plugin Implementation ▪ Video Analytics as REST Service ▪ Demo ▪ Resources
  • 25. WHY AddING VA to Gstreamer • Multiplatform:Linux, Windows, Mac OS X, Android, … • Comprehensivecore:graph-based multi-threadedpipeline, lightweightdata passing • Broad coverageof media technologies: file and streamingpacket i/o, codecs, metadata,video and audio • Extensivedevelopmenttools: gst-launch, Python, C++ API • Easy to extend and reusethrough plugins and metadata 25
  • 26. GStreamer Plugins Architecture 26 GStreamer API Application MetadataPer-plugin params/API pipeline control pipeline events inference plugins configuration inference res ults zero-copy,multi-channel inference OpenVINO Inference Engine MKLDNN plugin clDNN plugin MDK plugin iGPU/ dGPU CPU KMB/ HDDL VAAPI libav/ ffmpeg VAAPI SVT GPU i/d/VSI CPU GPU i/d/VSI CPU RTSP, WebRTC, Render, File IO, … V4L2 Media HW acceleration ImageInference API Kafka MQTT Video sources gvainference Video Analytics plugins (GVA*)Media plugins HW decode SW decode HW encode SW encode Other plugins 200+ plugins gvadetect gvaclassify gvaidentify Meta convert publish decodebin
  • 27. GVA Inference Plugins Architecture 27 Inference Shared Instance OpenVINO IEOpenVINO IE GvaDetect Thread sink padDMABuf or RGBx (any resolution) Attach GstMeta to GstBuffer source pad Output Layer Post-Processing GstBuffer + GstMeta’s VASurface or RGBx VAAPI original GstBuffer queueInput Layer Pre-Processing Inference queue per device DownScale NV12→RGBP
  • 28. GStreamer pipeline example input HW/SW face age/gender emotion landmark re-identify face convert overlay decode detection classification recognition points inference recognition to JSON result 28 filesrc decodebin gvaclassify gvaclassify gvaclassifygvadetect gvaidentify gvametaconvert gvawatermark Video Analytics pipeline in Ad Insertion demo – facedetection plus age, gender, person recognition gvaclassify gst-launch-1.0 filesrc location=${FILE} ! decodebin ! gvadetect model=face-detection-adas-0001.xml model-proc=face-detection-adas-0001.json ! queue ! gvaclassify device=CPU model=age-gender-recognition.xml model-proc=age-gender-recognition.json ! queue ! gvaclassify device=GPU model=emotions-recognition.xml model-proc=emotions-recognition.json ! queue ! gvaclassify device=CPU,GPU model=landmarks-regression.xml model-proc=landmarks-regression.json ! queue ! gvaclassify model=face-reidentification.xml model-proc=face-reidentification.json ! queue ! gvaidentify gallery=face_gallery.json ! queue ! gvawatermark ! videoconvert ! fpsdisplaysink sync=false Platform specific tuning: gvaclassify device={CPU|CPU,GPU} cpu-streams=15 nireq=16 …
  • 29. Multiple Programming language BINDINGS• Easily build pipeline from C/C++, Python in addition to the gst-launch command 29
  • 30. GStreamer Video Analytics Plugins List 30 GST element Description INPUT OUTPUT gvainference Generic inference GstBuffer INPUT+ GvaTensorMeta gvadetect Objectdetection GstBuffer INPUT+ GstVideoRegionOfInterestMeta gvaclassify Objectclassification GstBuffer + GstVideoRegionOfInterestMeta INPUT+ GstVideoRegionOfInterestMeta gvaidentify Objectidentification/ recognition GstBuffer + GstVideoRegionOfInterestMeta INPUT+ GstVideoRegionOfInterestMeta gvametaconvert Metadata conversion GstBuffer +GvaTensorMeta/ GstVideoRegionOfInterestMeta INPUT+ GvaJSONMeta gvawatermark Overlay GstBuffer +GvaDetectionMeta + { GvaTensorMeta } INPUT(with modified image) gvametapublish Messagebus (Kafka, MQTT) GstBuffer +GvaJSONMeta -
  • 31. Agenda ▪ Video Analytics Usages ▪ Build a Video Analytics Framework for all Intel HWs ▪ FFMPEG Filter Implementation ▪ GStreamer Plugin Implementation ▪ Video Analytics as REST Service ▪ Demo ▪ Resources
  • 32. Video Analytics API levels • Low-level (per frame processing) ▪ VAAPI, OpenVINO, OpenCL, OpenCV • Pipeline level ▪ GStreamer, FFMPEG, MediaFoundation, … • Video Analytics as Service ▪ REST/gRPC multi-node service 32
  • 33. Video Analytics REST Service 33 • Provide RESTfulinterfacesfor executing and monitoringpipeline status • Interface agnostic to underlying implementation(GStreamer,FFMPEG, Custom backend) • Supportscaling through container deploymentand orchestration frameworks • Load balancing Video Analytics Pipeline Service GStreamer / FFMPEG REST / gRPC / Message Bus VAAPI / MSDKHW Acceleration Pipeline Support Video Analytics Normalization Edge / Cloud Integration Open VINO PipelineA PipelineB … Pipeline Manager Model Manager Model A Model B… CPU GPU VPU
  • 34. Video Analytics Service Developer Workflow 34 HW / OS Optimized Docker Files Pipelines Configuration json files Docker Build Model Configuration json files HW/ OS Optimized Libraries VA Pipeline Developer creates pipeline templates with customizable parameters and models VA Pipeline Developer builds Docker image Developer / System Integrator deploys containers to Cloud or Edge and integrates into application HTTP request 1 2 3 Application 2 Scheduler Application 1 Worker HTTP request Worker … …
  • 35. CloudEdge End2end DISTRIBUTED VIDEO analytics examplePOST/pipelines/vehicles/1 { "source": "rtsp://10.43.38.158", "destination": { “type": “Kafka", “hosts": [10.43.38.150:9299] } } Video Analytics REST Service REST RTSP { "camera_id" : “173207954”, "label": "vehicle", "object_id": 3, "bounding_box": [0.13958, 0.33766, 0.42094, 0.06687], "confidence": 0.83 } NVR storage RTSP Database web dashboard Analytics algorithm
  • 36. Video Analytics Service is part of Open Visual Cloud 36 https://01.org/openvisualcloud The Open Visual Cloud is an open source project that offers a set of pre-defined reference pipelines for various target visual cloud use cases.
  • 37. Agenda ▪ Video Analytics Usages ▪ Build a Video Analytics Framework for all Intel HWs ▪ FFMPEG Filter Implementation ▪ Gstreamer Plugin Implementation ▪ Video Analytics as REST Service ▪ Demo ▪ Resources
  • 38. Demo • 4 channel face detection • Smart city, edge to cloud 38
  • 39. Summary • We presented Intel video analytics e2e pipeline in GStreamer and FFMPEG • It supports multiple Intel HWs with same SW pipeline/API • It provides optimized flow between media and DL inference, zero copy, inference on NV12 image • It provides scalable deployment cross edge/cloud • Call to Action • Try it out and let us know your feedback
  • 40. Resources ▪ OpenVINO - https://github.com/opencv/dldt ▪ MediaSDK - https://github.com/Intel-Media-SDK ▪ GStreamer Plugin - https://github.com/opencv/gst-video-analytics ▪ Open Visual Cloud ▪ Smart City sample https://github.com/OpenVisualCloud/Smart-City-Sample ▪ Ad Insertion sample https://github.com/OpenVisualCloud/Ad-Insertion-Sample ▪ Docker files including FFMPEG Video Analytics Filters https://github.com/OpenVisualCloud/Dockerfiles 40