SlideShare a Scribd company logo
Copyright © 2015 Itseez 1
Yury Gorbachev
12-May-2015
OpenCV for Embedded:
Lessons Learned
Copyright © 2015 Itseez 2
• Open-source Computer Vision library (>2500 algos)
• De-facto standard in CV, BSD license
• Written in C++, C interface is now deprecated
• Supports multiple platforms (Linux, Windows, OSX, Android, iOS, QNX)
• Used by Google, nVidia, Microsoft, Intel, Stanford, etc.
• Funding/contributions from Willow Garage, nVidia, GSoC, AMD, Intel
• Maintained by Itseez
What is OpenCV
Copyright © 2015 Itseez 3
• OpenCV provides extensive means to create an entire application
• Camera interface (for example, V4L2 interface on Linux)
• Video Reading interface (using ffmpeg)
• UI primitives (windows, keyboard/mouse input, etc.)
• Decent performance out of the box
• Scalar performance is already good enough
• Some algorithms are capable of working ~100 FPS on average desktops
• Extra optimization is not required in most of the cases
• Good and pretty stable acceleration possibilities
• Intel® TBB is sufficient for multi-core
• AVX, IPP, OpenCL, CUDA
Desktops are good and fast
Copyright © 2015 Itseez 4
• Mostly ARM platforms
• Exotic execution environments
• C++ is not default language (e.g. on Android)
• Different interfaces (Camera, UI, Log)
• Hard to troubleshoot
• Insufficient and unpredictable performance
• Mobile and Embedded are still behind Desktop
• Thermal protection, power saving and other tricky issues
• Zoo of acceleration possibilities
• SIMD, DSP, GPU offload, FPGA
• Multi-core systems, heterogeneous systems
Embedded changes a lot
Copyright © 2015 Itseez 5
OpenCV
OpenCV based algorithms are highly portable
Platform Agnostic Modules
core, imgproc, calib3d, video, ml,
objdetect, features2d, photo, …
Platform Dependent Modules
gpu, highgui, androidcamera
python and java bindings
Dependencies
JPEG, PNG, Jasper,
multimedia, OpenNI
Dependencies
CMake
• Algorithm modules are easy to migrate to new environment
• С++ and CMake are the only requirements!
• OpenCV accuracy tests
• Easily verify correctness of OpenCV on a new platform
• Some vendors use for regression tests during environment updates
Accelerations
TBB/GDC/Concurrency,
IPP, Eigen
Copyright © 2015 Itseez 6
Use desktop for algorithm development
Prototyping
(x86)
Porting
Profiling
Bottleneck
optimization
Fine Tuning
Productization
Regression
Tests
Performance Tests
• Video input, more debug possibilities, simple UI, higher speed
• Focus on algorithm, not environment!
Copyright © 2015 Itseez 7
• HW performance is always an issue for vision systems
• Heavy image processing requires significant memory bandwidth
• Usual bottleneck; multiple cores do not help
• Collocation of multiple algorithms on a single system (e.g. ADAS)
• Mobile platforms are even more complicated
• Thermal protection, power saving are hard to control and influence
• Hard to predict when/if we are consuming too much
• Unstable FPS impacts algorithm complexity (e.g. object tracking)
• Hardware selection is not easy
• Very hard to predict final application performance beforehand
• No valid benchmarks to emulate computer vision patterns
Consider embedded performance issues
Copyright © 2015 Itseez 8
• OpenCV was initially optimized for desktop where it works fast
• ARM optimizations are far behind
• Scalar code does not perform on ARM as good as on x86
• Optimization might help to some extent
It is normal if it’s slow without optimizations
150
100
50
5
SSE
IPP
NEON (OpenCV 3)
NEON
Number of optimized functions within OpenCV
Copyright © 2015 Itseez 9
• Algorithm optimization and only then hotspots
• Reduce search and track areas, use grayscale, reduce resolution
• Select proper HW if possible
• Compare development kit performance at least
• Try ARMv8, it is better in scalar performance
• Use OpenCV packages from HW vendors (NVIDIA, TI)
• Vendor specific packages yield out of the box improvements on
specific HW, very easy to try
• Not a cross-platform solution
• Optimize functions yourself
• NEON, DSP and other HW specific options
A few optimization hints
Copyright © 2015 Itseez 10
Itseez achievements
18.9
138
163.6
32.4
2.3 3.1 3.1 7.9
Filter 2D Adaptive
Threshold
Blur FAST
Processing on ARM v7A
OpenCV Itseez
• Note scalar difference ARM v7A vs. v8
30.8 30.1
27.1
23.2
2.5 1.4 0.6
5
Filter 2D Adaptive
Threshold
Blur FAST
Processing on ARM v8
OpenCV Itseez
Copyright © 2015 Itseez 11
• Itseez ADAS solution
• Traffic Sign Recognition
• Front Collision Warning
• Line Departure Warning
• Pedestrian Detection
• All algorithms are running real-time on off-the-shelf ARM device
• Designed and tested using OpenCV
• Product implements intelligent pipeline layer to reduce load
• Uses custom accelerated functions
Actual product example
Copyright © 2015 Itseez 12
• Intelligent pipeline
• Shares computation results between algorithms
• Complicated processing is performed only once, used by all
• Multiple frame sizes used where appropriate
• Custom NEON optimizations
• Heavily optimized using only NEON, no GPU, DSP
• Multiple processing functions are joined to reduce memory access
• E.g. demosaicing with conversion to grayscale & RGBA
• Some interesting statistics
• Algorithm optimizations accelerate by factor 2-3
• NEON accelerations give another 3-4x
Itseez ADAS - Some more details
Copyright © 2015 Itseez 13
• OpenVX standard by Khronos
• Hardware accelerated vision – easier life for everyone
• Currently being implemented by number of vendors
• OpenCV HAL (a part of OpenCV 3.x)
• Low level API beneath the standard OpenCV
• Open-source, but potentially can use proprietary components
• Generic multi-core scheduler (Planned feature)
• Make multi-core scheduler more intelligent on mobile architectures
• pthread-based backend in addition to existing options
• Vision benchmarks for hardware (Desired feature)
• Some performance tests are present in OpenCV already
• Not possible to use for benchmarking directly, some work is needed
• OpenCV Manager for Android could also contain benchmarking
What is missing? What is planned?
Copyright © 2015 Itseez 14
• Itseez Web: www.itseez.com
• OpenCV home: www.opencv.org
• OpenCV documentation: docs.opencv.org
• GitHub: https://github.com/Itseez/opencv
• OpenCV resources on Embedded Vision Alliance (plenty of info):
http://www.embedded-vision.com/opencv-resources
• OpenCV on TI: http://www.ti.com/lit/wp/spry175/spry175.pdf
• OpenCV on NVIDIA: https://developer.nvidia.com/opencv
• E-mail me: yury.gorbachev@itseez.com
Resources
Copyright © 2015 Itseez 15
Q & A

More Related Content

What's hot

Виктор Ерухимов Open VX mixar moscow sept'15
Виктор Ерухимов Open VX  mixar moscow sept'15 Виктор Ерухимов Open VX  mixar moscow sept'15
Виктор Ерухимов Open VX mixar moscow sept'15
mixARConference
 
A practical introduction to observability
A practical introduction to observabilityA practical introduction to observability
A practical introduction to observability
Nikolay Stoitsev
 
ScilabTEC 2015 - Noesis Solutions
ScilabTEC 2015 - Noesis SolutionsScilabTEC 2015 - Noesis Solutions
ScilabTEC 2015 - Noesis Solutions
Scilab
 
PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...
PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...
PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...
AMD Developer Central
 
CC-4006, Deliver Hardware Accelerated Applications Using RemoteFX vGPU with W...
CC-4006, Deliver Hardware Accelerated Applications Using RemoteFX vGPU with W...CC-4006, Deliver Hardware Accelerated Applications Using RemoteFX vGPU with W...
CC-4006, Deliver Hardware Accelerated Applications Using RemoteFX vGPU with W...
AMD Developer Central
 
OpenCL - The Open Standard for Heterogeneous Parallel Programming
OpenCL - The Open Standard for Heterogeneous Parallel ProgrammingOpenCL - The Open Standard for Heterogeneous Parallel Programming
OpenCL - The Open Standard for Heterogeneous Parallel Programming
Andreas Schreiber
 
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla MahGS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
AMD Developer Central
 
PT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon Selley
PT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon SelleyPT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon Selley
PT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon Selley
AMD Developer Central
 
MM-4092, Optimizing FFMPEG and Handbrake Using OpenCL and Other AMD HW Capabi...
MM-4092, Optimizing FFMPEG and Handbrake Using OpenCL and Other AMD HW Capabi...MM-4092, Optimizing FFMPEG and Handbrake Using OpenCL and Other AMD HW Capabi...
MM-4092, Optimizing FFMPEG and Handbrake Using OpenCL and Other AMD HW Capabi...
AMD Developer Central
 
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor MillerPL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
AMD Developer Central
 
"APIs for Accelerating Vision and Inferencing: An Industry Overview of Option...
"APIs for Accelerating Vision and Inferencing: An Industry Overview of Option..."APIs for Accelerating Vision and Inferencing: An Industry Overview of Option...
"APIs for Accelerating Vision and Inferencing: An Industry Overview of Option...
Edge AI and Vision Alliance
 
HSA-4123, HSA Memory Model, by Ben Gaster
HSA-4123, HSA Memory Model, by Ben GasterHSA-4123, HSA Memory Model, by Ben Gaster
HSA-4123, HSA Memory Model, by Ben Gaster
AMD Developer Central
 
MM-4105, Realtime 4K HDR Decoding with GPU ACES, by Gary Demos
MM-4105, Realtime 4K HDR Decoding with GPU ACES, by Gary DemosMM-4105, Realtime 4K HDR Decoding with GPU ACES, by Gary Demos
MM-4105, Realtime 4K HDR Decoding with GPU ACES, by Gary Demos
AMD Developer Central
 
Take a Look at Akka+Java (English version)
Take a Look at Akka+Java (English version)Take a Look at Akka+Java (English version)
Take a Look at Akka+Java (English version)
GlobalLogic Ukraine
 
Newbie’s guide to_the_gpgpu_universe
Newbie’s guide to_the_gpgpu_universeNewbie’s guide to_the_gpgpu_universe
Newbie’s guide to_the_gpgpu_universe
Ofer Rosenberg
 
"An Update on Open Standard APIs for Vision Processing," a Presentation from ...
"An Update on Open Standard APIs for Vision Processing," a Presentation from ..."An Update on Open Standard APIs for Vision Processing," a Presentation from ...
"An Update on Open Standard APIs for Vision Processing," a Presentation from ...
Edge AI and Vision Alliance
 
The GPGPU Continuum
The GPGPU ContinuumThe GPGPU Continuum
The GPGPU Continuum
Ofer Rosenberg
 
PL-4044, OpenACC on AMD APUs and GPUs with the PGI Accelerator Compilers, by ...
PL-4044, OpenACC on AMD APUs and GPUs with the PGI Accelerator Compilers, by ...PL-4044, OpenACC on AMD APUs and GPUs with the PGI Accelerator Compilers, by ...
PL-4044, OpenACC on AMD APUs and GPUs with the PGI Accelerator Compilers, by ...
AMD Developer Central
 
Optimizing Total War*: WARHAMMER II
Optimizing Total War*: WARHAMMER IIOptimizing Total War*: WARHAMMER II
Optimizing Total War*: WARHAMMER II
Intel® Software
 
ONNX - The Lingua Franca of Deep Learning
ONNX - The Lingua Franca of Deep LearningONNX - The Lingua Franca of Deep Learning
ONNX - The Lingua Franca of Deep Learning
Hagay Lupesko
 

What's hot (20)

Виктор Ерухимов Open VX mixar moscow sept'15
Виктор Ерухимов Open VX  mixar moscow sept'15 Виктор Ерухимов Open VX  mixar moscow sept'15
Виктор Ерухимов Open VX mixar moscow sept'15
 
A practical introduction to observability
A practical introduction to observabilityA practical introduction to observability
A practical introduction to observability
 
ScilabTEC 2015 - Noesis Solutions
ScilabTEC 2015 - Noesis SolutionsScilabTEC 2015 - Noesis Solutions
ScilabTEC 2015 - Noesis Solutions
 
PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...
PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...
PT-4058, Measuring and Optimizing Performance of Cluster and Private Cloud Ap...
 
CC-4006, Deliver Hardware Accelerated Applications Using RemoteFX vGPU with W...
CC-4006, Deliver Hardware Accelerated Applications Using RemoteFX vGPU with W...CC-4006, Deliver Hardware Accelerated Applications Using RemoteFX vGPU with W...
CC-4006, Deliver Hardware Accelerated Applications Using RemoteFX vGPU with W...
 
OpenCL - The Open Standard for Heterogeneous Parallel Programming
OpenCL - The Open Standard for Heterogeneous Parallel ProgrammingOpenCL - The Open Standard for Heterogeneous Parallel Programming
OpenCL - The Open Standard for Heterogeneous Parallel Programming
 
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla MahGS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
GS-4106 The AMD GCN Architecture - A Crash Course, by Layla Mah
 
PT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon Selley
PT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon SelleyPT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon Selley
PT-4052, Introduction to AMD Developer Tools, by Yaki Tebeka and Gordon Selley
 
MM-4092, Optimizing FFMPEG and Handbrake Using OpenCL and Other AMD HW Capabi...
MM-4092, Optimizing FFMPEG and Handbrake Using OpenCL and Other AMD HW Capabi...MM-4092, Optimizing FFMPEG and Handbrake Using OpenCL and Other AMD HW Capabi...
MM-4092, Optimizing FFMPEG and Handbrake Using OpenCL and Other AMD HW Capabi...
 
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor MillerPL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
PL-4043, Accelerating OpenVL for Heterogeneous Platforms, by Gregor Miller
 
"APIs for Accelerating Vision and Inferencing: An Industry Overview of Option...
"APIs for Accelerating Vision and Inferencing: An Industry Overview of Option..."APIs for Accelerating Vision and Inferencing: An Industry Overview of Option...
"APIs for Accelerating Vision and Inferencing: An Industry Overview of Option...
 
HSA-4123, HSA Memory Model, by Ben Gaster
HSA-4123, HSA Memory Model, by Ben GasterHSA-4123, HSA Memory Model, by Ben Gaster
HSA-4123, HSA Memory Model, by Ben Gaster
 
MM-4105, Realtime 4K HDR Decoding with GPU ACES, by Gary Demos
MM-4105, Realtime 4K HDR Decoding with GPU ACES, by Gary DemosMM-4105, Realtime 4K HDR Decoding with GPU ACES, by Gary Demos
MM-4105, Realtime 4K HDR Decoding with GPU ACES, by Gary Demos
 
Take a Look at Akka+Java (English version)
Take a Look at Akka+Java (English version)Take a Look at Akka+Java (English version)
Take a Look at Akka+Java (English version)
 
Newbie’s guide to_the_gpgpu_universe
Newbie’s guide to_the_gpgpu_universeNewbie’s guide to_the_gpgpu_universe
Newbie’s guide to_the_gpgpu_universe
 
"An Update on Open Standard APIs for Vision Processing," a Presentation from ...
"An Update on Open Standard APIs for Vision Processing," a Presentation from ..."An Update on Open Standard APIs for Vision Processing," a Presentation from ...
"An Update on Open Standard APIs for Vision Processing," a Presentation from ...
 
The GPGPU Continuum
The GPGPU ContinuumThe GPGPU Continuum
The GPGPU Continuum
 
PL-4044, OpenACC on AMD APUs and GPUs with the PGI Accelerator Compilers, by ...
PL-4044, OpenACC on AMD APUs and GPUs with the PGI Accelerator Compilers, by ...PL-4044, OpenACC on AMD APUs and GPUs with the PGI Accelerator Compilers, by ...
PL-4044, OpenACC on AMD APUs and GPUs with the PGI Accelerator Compilers, by ...
 
Optimizing Total War*: WARHAMMER II
Optimizing Total War*: WARHAMMER IIOptimizing Total War*: WARHAMMER II
Optimizing Total War*: WARHAMMER II
 
ONNX - The Lingua Franca of Deep Learning
ONNX - The Lingua Franca of Deep LearningONNX - The Lingua Franca of Deep Learning
ONNX - The Lingua Franca of Deep Learning
 

Viewers also liked

"The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres...
"The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres..."The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres...
"The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres...
Edge AI and Vision Alliance
 
C言語演習(2) - OpenCV
C言語演習(2) - OpenCV C言語演習(2) - OpenCV
C言語演習(2) - OpenCV
Kosei Moriyama
 
Deep Convnets for Video Processing (Master in Computer Vision Barcelona, 2016)
Deep Convnets for Video Processing (Master in Computer Vision Barcelona, 2016)Deep Convnets for Video Processing (Master in Computer Vision Barcelona, 2016)
Deep Convnets for Video Processing (Master in Computer Vision Barcelona, 2016)
Universitat Politècnica de Catalunya
 
Gpgpu
GpgpuGpgpu
Gpgpu
Su Yan-Jen
 
Open CL For Haifa Linux Club
Open CL For Haifa Linux ClubOpen CL For Haifa Linux Club
Open CL For Haifa Linux ClubOfer Rosenberg
 
"The OpenCV Open Source Computer Vision Library: What’s New and What’s Coming...
"The OpenCV Open Source Computer Vision Library: What’s New and What’s Coming..."The OpenCV Open Source Computer Vision Library: What’s New and What’s Coming...
"The OpenCV Open Source Computer Vision Library: What’s New and What’s Coming...
Edge AI and Vision Alliance
 
IoT & Machine Learning
IoT & Machine LearningIoT & Machine Learning
IoT & Machine Learning
신동 강
 
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
marsee101
 
Machine Learning and Internet of Things
Machine Learning and Internet of ThingsMachine Learning and Internet of Things
Machine Learning and Internet of Things
Sofian Hadiwijaya
 
Image Processing with OpenCV
Image Processing with OpenCVImage Processing with OpenCV
Image Processing with OpenCV
debayanin
 
OpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみたOpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみた徹 上野山
 
Glossary
GlossaryGlossary
Glossary
candyclouds
 
3 d pie chart circular puzzle with hole in center process stages 11 style 3 p...
3 d pie chart circular puzzle with hole in center process stages 11 style 3 p...3 d pie chart circular puzzle with hole in center process stages 11 style 3 p...
3 d pie chart circular puzzle with hole in center process stages 11 style 3 p...SlideTeam.net
 
横手版地方発信のソーシャルメディア
横手版地方発信のソーシャルメディア横手版地方発信のソーシャルメディア
横手版地方発信のソーシャルメディアSkunkWork.Co.,Ltd
 
Event Report - Salesforce Dreamforce 2016 - Einstein is show, platform progre...
Event Report - Salesforce Dreamforce 2016 - Einstein is show, platform progre...Event Report - Salesforce Dreamforce 2016 - Einstein is show, platform progre...
Event Report - Salesforce Dreamforce 2016 - Einstein is show, platform progre...
Holger Mueller
 
Brecha tecnológica y discapacidad.
Brecha tecnológica y discapacidad.Brecha tecnológica y discapacidad.
Brecha tecnológica y discapacidad.
José María
 
Comic analysis powerpoint
Comic analysis powerpointComic analysis powerpoint
Comic analysis powerpoint
Westminster MassComm
 
20140905 AWS Night in ITHD LT2
20140905 AWS Night in ITHD LT220140905 AWS Night in ITHD LT2
20140905 AWS Night in ITHD LT2
Nobuyuki Matsui
 
Investing 101: How to Prepare for Retirement
Investing 101: How to Prepare for RetirementInvesting 101: How to Prepare for Retirement
Investing 101: How to Prepare for Retirement
Experian_US
 

Viewers also liked (20)

"The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres...
"The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres..."The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres...
"The OpenCV Open Source Computer Vision Library: Latest Developments," a Pres...
 
C言語演習(2) - OpenCV
C言語演習(2) - OpenCV C言語演習(2) - OpenCV
C言語演習(2) - OpenCV
 
Deep Convnets for Video Processing (Master in Computer Vision Barcelona, 2016)
Deep Convnets for Video Processing (Master in Computer Vision Barcelona, 2016)Deep Convnets for Video Processing (Master in Computer Vision Barcelona, 2016)
Deep Convnets for Video Processing (Master in Computer Vision Barcelona, 2016)
 
Gpgpu
GpgpuGpgpu
Gpgpu
 
Open CL For Haifa Linux Club
Open CL For Haifa Linux ClubOpen CL For Haifa Linux Club
Open CL For Haifa Linux Club
 
"The OpenCV Open Source Computer Vision Library: What’s New and What’s Coming...
"The OpenCV Open Source Computer Vision Library: What’s New and What’s Coming..."The OpenCV Open Source Computer Vision Library: What’s New and What’s Coming...
"The OpenCV Open Source Computer Vision Library: What’s New and What’s Coming...
 
IoT & Machine Learning
IoT & Machine LearningIoT & Machine Learning
IoT & Machine Learning
 
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
Ubuntuをインストールしたzyboボードにカメラを付けてopen cvで顔認識
 
Machine Learning and Internet of Things
Machine Learning and Internet of ThingsMachine Learning and Internet of Things
Machine Learning and Internet of Things
 
Image Processing with OpenCV
Image Processing with OpenCVImage Processing with OpenCV
Image Processing with OpenCV
 
OpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみたOpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみた
 
Glossary
GlossaryGlossary
Glossary
 
3 d pie chart circular puzzle with hole in center process stages 11 style 3 p...
3 d pie chart circular puzzle with hole in center process stages 11 style 3 p...3 d pie chart circular puzzle with hole in center process stages 11 style 3 p...
3 d pie chart circular puzzle with hole in center process stages 11 style 3 p...
 
横手版地方発信のソーシャルメディア
横手版地方発信のソーシャルメディア横手版地方発信のソーシャルメディア
横手版地方発信のソーシャルメディア
 
Event Report - Salesforce Dreamforce 2016 - Einstein is show, platform progre...
Event Report - Salesforce Dreamforce 2016 - Einstein is show, platform progre...Event Report - Salesforce Dreamforce 2016 - Einstein is show, platform progre...
Event Report - Salesforce Dreamforce 2016 - Einstein is show, platform progre...
 
Brecha tecnológica y discapacidad.
Brecha tecnológica y discapacidad.Brecha tecnológica y discapacidad.
Brecha tecnológica y discapacidad.
 
Comic analysis powerpoint
Comic analysis powerpointComic analysis powerpoint
Comic analysis powerpoint
 
Logo
LogoLogo
Logo
 
20140905 AWS Night in ITHD LT2
20140905 AWS Night in ITHD LT220140905 AWS Night in ITHD LT2
20140905 AWS Night in ITHD LT2
 
Investing 101: How to Prepare for Retirement
Investing 101: How to Prepare for RetirementInvesting 101: How to Prepare for Retirement
Investing 101: How to Prepare for Retirement
 

Similar to OpenCV for Embedded: Lessons Learned

Develop and optimize CV/DL applications with Intel OpenVINO toolkit
Develop and optimize CV/DL applications with Intel OpenVINO toolkitDevelop and optimize CV/DL applications with Intel OpenVINO toolkit
Develop and optimize CV/DL applications with Intel OpenVINO toolkit
Yury Gorbachev
 
High-Performance Computing with C++
High-Performance Computing with C++High-Performance Computing with C++
High-Performance Computing with C++
JetBrains
 
Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community
 
"Making OpenCV Code Run Fast," a Presentation from Intel
"Making OpenCV Code Run Fast," a Presentation from Intel"Making OpenCV Code Run Fast," a Presentation from Intel
"Making OpenCV Code Run Fast," a Presentation from Intel
Edge AI and Vision Alliance
 
ALM@Work - Lab management for everyone
ALM@Work - Lab management for everyoneALM@Work - Lab management for everyone
ALM@Work - Lab management for everyone
DomusDotNet
 
OpenVINO introduction
OpenVINO introductionOpenVINO introduction
OpenVINO introduction
Yury Gorbachev
 
Debugging Numerical Simulations on Accelerated Architectures - TotalView fo...
 Debugging Numerical Simulations on Accelerated Architectures  - TotalView fo... Debugging Numerical Simulations on Accelerated Architectures  - TotalView fo...
Debugging Numerical Simulations on Accelerated Architectures - TotalView fo...
Rogue Wave Software
 
Serverless java
Serverless   javaServerless   java
Serverless java
Vishwas N
 
OpenStack - JobShop @Iași, 2016
OpenStack - JobShop @Iași, 2016OpenStack - JobShop @Iași, 2016
OpenStack - JobShop @Iași, 2016
Alexandru Coman
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
Howard Greenberg
 
"Building Complete Embedded Vision Systems on Linux—From Camera to Display," ...
"Building Complete Embedded Vision Systems on Linux—From Camera to Display," ..."Building Complete Embedded Vision Systems on Linux—From Camera to Display," ...
"Building Complete Embedded Vision Systems on Linux—From Camera to Display," ...
Edge AI and Vision Alliance
 
Product wise computer vision development
Product wise computer vision developmentProduct wise computer vision development
Product wise computer vision developmentYoss Cohen
 
ASP.NET 5 - Microsoft's Web development platform reimagined
ASP.NET 5 - Microsoft's Web development platform reimaginedASP.NET 5 - Microsoft's Web development platform reimagined
ASP.NET 5 - Microsoft's Web development platform reimagined
Alex Thissen
 
LCU14 310- Cisco ODP v2
LCU14 310- Cisco ODP v2LCU14 310- Cisco ODP v2
LCU14 310- Cisco ODP v2
Linaro
 
Early Successes Debugging with TotalView on the Intel Xeon Phi Coprocessor
Early Successes Debugging with TotalView on the Intel Xeon Phi CoprocessorEarly Successes Debugging with TotalView on the Intel Xeon Phi Coprocessor
Early Successes Debugging with TotalView on the Intel Xeon Phi Coprocessor
Intel IT Center
 
Debugging CUDA applications
Debugging CUDA applicationsDebugging CUDA applications
Debugging CUDA applications
Rogue Wave Software
 
AWS re:Invent 2016: Deep Learning, 3D Content Rendering, and Massively Parall...
AWS re:Invent 2016: Deep Learning, 3D Content Rendering, and Massively Parall...AWS re:Invent 2016: Deep Learning, 3D Content Rendering, and Massively Parall...
AWS re:Invent 2016: Deep Learning, 3D Content Rendering, and Massively Parall...
Amazon Web Services
 
Værktøjer udviklet på AAU til analyse af SCJ programmer
Værktøjer udviklet på AAU til analyse af SCJ programmerVærktøjer udviklet på AAU til analyse af SCJ programmer
Værktøjer udviklet på AAU til analyse af SCJ programmer
InfinIT - Innovationsnetværket for it
 
Computer preemption and TotalView have made debugging Pascal much more seamless
Computer preemption and TotalView have made debugging Pascal much more seamlessComputer preemption and TotalView have made debugging Pascal much more seamless
Computer preemption and TotalView have made debugging Pascal much more seamless
Rogue Wave Software
 
Include os @ flossuk 2018
Include os @ flossuk 2018Include os @ flossuk 2018
Include os @ flossuk 2018
Per Buer
 

Similar to OpenCV for Embedded: Lessons Learned (20)

Develop and optimize CV/DL applications with Intel OpenVINO toolkit
Develop and optimize CV/DL applications with Intel OpenVINO toolkitDevelop and optimize CV/DL applications with Intel OpenVINO toolkit
Develop and optimize CV/DL applications with Intel OpenVINO toolkit
 
High-Performance Computing with C++
High-Performance Computing with C++High-Performance Computing with C++
High-Performance Computing with C++
 
Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph Ceph Community Talk on High-Performance Solid Sate Ceph
Ceph Community Talk on High-Performance Solid Sate Ceph
 
"Making OpenCV Code Run Fast," a Presentation from Intel
"Making OpenCV Code Run Fast," a Presentation from Intel"Making OpenCV Code Run Fast," a Presentation from Intel
"Making OpenCV Code Run Fast," a Presentation from Intel
 
ALM@Work - Lab management for everyone
ALM@Work - Lab management for everyoneALM@Work - Lab management for everyone
ALM@Work - Lab management for everyone
 
OpenVINO introduction
OpenVINO introductionOpenVINO introduction
OpenVINO introduction
 
Debugging Numerical Simulations on Accelerated Architectures - TotalView fo...
 Debugging Numerical Simulations on Accelerated Architectures  - TotalView fo... Debugging Numerical Simulations on Accelerated Architectures  - TotalView fo...
Debugging Numerical Simulations on Accelerated Architectures - TotalView fo...
 
Serverless java
Serverless   javaServerless   java
Serverless java
 
OpenStack - JobShop @Iași, 2016
OpenStack - JobShop @Iași, 2016OpenStack - JobShop @Iași, 2016
OpenStack - JobShop @Iași, 2016
 
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's WorkbenchAugust Webinar - Water Cooler Talks: A Look into a Developer's Workbench
August Webinar - Water Cooler Talks: A Look into a Developer's Workbench
 
"Building Complete Embedded Vision Systems on Linux—From Camera to Display," ...
"Building Complete Embedded Vision Systems on Linux—From Camera to Display," ..."Building Complete Embedded Vision Systems on Linux—From Camera to Display," ...
"Building Complete Embedded Vision Systems on Linux—From Camera to Display," ...
 
Product wise computer vision development
Product wise computer vision developmentProduct wise computer vision development
Product wise computer vision development
 
ASP.NET 5 - Microsoft's Web development platform reimagined
ASP.NET 5 - Microsoft's Web development platform reimaginedASP.NET 5 - Microsoft's Web development platform reimagined
ASP.NET 5 - Microsoft's Web development platform reimagined
 
LCU14 310- Cisco ODP v2
LCU14 310- Cisco ODP v2LCU14 310- Cisco ODP v2
LCU14 310- Cisco ODP v2
 
Early Successes Debugging with TotalView on the Intel Xeon Phi Coprocessor
Early Successes Debugging with TotalView on the Intel Xeon Phi CoprocessorEarly Successes Debugging with TotalView on the Intel Xeon Phi Coprocessor
Early Successes Debugging with TotalView on the Intel Xeon Phi Coprocessor
 
Debugging CUDA applications
Debugging CUDA applicationsDebugging CUDA applications
Debugging CUDA applications
 
AWS re:Invent 2016: Deep Learning, 3D Content Rendering, and Massively Parall...
AWS re:Invent 2016: Deep Learning, 3D Content Rendering, and Massively Parall...AWS re:Invent 2016: Deep Learning, 3D Content Rendering, and Massively Parall...
AWS re:Invent 2016: Deep Learning, 3D Content Rendering, and Massively Parall...
 
Værktøjer udviklet på AAU til analyse af SCJ programmer
Værktøjer udviklet på AAU til analyse af SCJ programmerVærktøjer udviklet på AAU til analyse af SCJ programmer
Værktøjer udviklet på AAU til analyse af SCJ programmer
 
Computer preemption and TotalView have made debugging Pascal much more seamless
Computer preemption and TotalView have made debugging Pascal much more seamlessComputer preemption and TotalView have made debugging Pascal much more seamless
Computer preemption and TotalView have made debugging Pascal much more seamless
 
Include os @ flossuk 2018
Include os @ flossuk 2018Include os @ flossuk 2018
Include os @ flossuk 2018
 

Recently uploaded

Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
Ortus Solutions, Corp
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
Tendenci - The Open Source AMS (Association Management Software)
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
kalichargn70th171
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
Georgi Kodinov
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Globus
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 

Recently uploaded (20)

Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024BoxLang: Review our Visionary Licenses of 2024
BoxLang: Review our Visionary Licenses of 2024
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
Corporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMSCorporate Management | Session 3 of 3 | Tendenci AMS
Corporate Management | Session 3 of 3 | Tendenci AMS
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
A Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdfA Comprehensive Look at Generative AI in Retail App Testing.pdf
A Comprehensive Look at Generative AI in Retail App Testing.pdf
 
2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx2024 RoOUG Security model for the cloud.pptx
2024 RoOUG Security model for the cloud.pptx
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
Innovating Inference - Remote Triggering of Large Language Models on HPC Clus...
 
Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 

OpenCV for Embedded: Lessons Learned

  • 1. Copyright © 2015 Itseez 1 Yury Gorbachev 12-May-2015 OpenCV for Embedded: Lessons Learned
  • 2. Copyright © 2015 Itseez 2 • Open-source Computer Vision library (>2500 algos) • De-facto standard in CV, BSD license • Written in C++, C interface is now deprecated • Supports multiple platforms (Linux, Windows, OSX, Android, iOS, QNX) • Used by Google, nVidia, Microsoft, Intel, Stanford, etc. • Funding/contributions from Willow Garage, nVidia, GSoC, AMD, Intel • Maintained by Itseez What is OpenCV
  • 3. Copyright © 2015 Itseez 3 • OpenCV provides extensive means to create an entire application • Camera interface (for example, V4L2 interface on Linux) • Video Reading interface (using ffmpeg) • UI primitives (windows, keyboard/mouse input, etc.) • Decent performance out of the box • Scalar performance is already good enough • Some algorithms are capable of working ~100 FPS on average desktops • Extra optimization is not required in most of the cases • Good and pretty stable acceleration possibilities • Intel® TBB is sufficient for multi-core • AVX, IPP, OpenCL, CUDA Desktops are good and fast
  • 4. Copyright © 2015 Itseez 4 • Mostly ARM platforms • Exotic execution environments • C++ is not default language (e.g. on Android) • Different interfaces (Camera, UI, Log) • Hard to troubleshoot • Insufficient and unpredictable performance • Mobile and Embedded are still behind Desktop • Thermal protection, power saving and other tricky issues • Zoo of acceleration possibilities • SIMD, DSP, GPU offload, FPGA • Multi-core systems, heterogeneous systems Embedded changes a lot
  • 5. Copyright © 2015 Itseez 5 OpenCV OpenCV based algorithms are highly portable Platform Agnostic Modules core, imgproc, calib3d, video, ml, objdetect, features2d, photo, … Platform Dependent Modules gpu, highgui, androidcamera python and java bindings Dependencies JPEG, PNG, Jasper, multimedia, OpenNI Dependencies CMake • Algorithm modules are easy to migrate to new environment • С++ and CMake are the only requirements! • OpenCV accuracy tests • Easily verify correctness of OpenCV on a new platform • Some vendors use for regression tests during environment updates Accelerations TBB/GDC/Concurrency, IPP, Eigen
  • 6. Copyright © 2015 Itseez 6 Use desktop for algorithm development Prototyping (x86) Porting Profiling Bottleneck optimization Fine Tuning Productization Regression Tests Performance Tests • Video input, more debug possibilities, simple UI, higher speed • Focus on algorithm, not environment!
  • 7. Copyright © 2015 Itseez 7 • HW performance is always an issue for vision systems • Heavy image processing requires significant memory bandwidth • Usual bottleneck; multiple cores do not help • Collocation of multiple algorithms on a single system (e.g. ADAS) • Mobile platforms are even more complicated • Thermal protection, power saving are hard to control and influence • Hard to predict when/if we are consuming too much • Unstable FPS impacts algorithm complexity (e.g. object tracking) • Hardware selection is not easy • Very hard to predict final application performance beforehand • No valid benchmarks to emulate computer vision patterns Consider embedded performance issues
  • 8. Copyright © 2015 Itseez 8 • OpenCV was initially optimized for desktop where it works fast • ARM optimizations are far behind • Scalar code does not perform on ARM as good as on x86 • Optimization might help to some extent It is normal if it’s slow without optimizations 150 100 50 5 SSE IPP NEON (OpenCV 3) NEON Number of optimized functions within OpenCV
  • 9. Copyright © 2015 Itseez 9 • Algorithm optimization and only then hotspots • Reduce search and track areas, use grayscale, reduce resolution • Select proper HW if possible • Compare development kit performance at least • Try ARMv8, it is better in scalar performance • Use OpenCV packages from HW vendors (NVIDIA, TI) • Vendor specific packages yield out of the box improvements on specific HW, very easy to try • Not a cross-platform solution • Optimize functions yourself • NEON, DSP and other HW specific options A few optimization hints
  • 10. Copyright © 2015 Itseez 10 Itseez achievements 18.9 138 163.6 32.4 2.3 3.1 3.1 7.9 Filter 2D Adaptive Threshold Blur FAST Processing on ARM v7A OpenCV Itseez • Note scalar difference ARM v7A vs. v8 30.8 30.1 27.1 23.2 2.5 1.4 0.6 5 Filter 2D Adaptive Threshold Blur FAST Processing on ARM v8 OpenCV Itseez
  • 11. Copyright © 2015 Itseez 11 • Itseez ADAS solution • Traffic Sign Recognition • Front Collision Warning • Line Departure Warning • Pedestrian Detection • All algorithms are running real-time on off-the-shelf ARM device • Designed and tested using OpenCV • Product implements intelligent pipeline layer to reduce load • Uses custom accelerated functions Actual product example
  • 12. Copyright © 2015 Itseez 12 • Intelligent pipeline • Shares computation results between algorithms • Complicated processing is performed only once, used by all • Multiple frame sizes used where appropriate • Custom NEON optimizations • Heavily optimized using only NEON, no GPU, DSP • Multiple processing functions are joined to reduce memory access • E.g. demosaicing with conversion to grayscale & RGBA • Some interesting statistics • Algorithm optimizations accelerate by factor 2-3 • NEON accelerations give another 3-4x Itseez ADAS - Some more details
  • 13. Copyright © 2015 Itseez 13 • OpenVX standard by Khronos • Hardware accelerated vision – easier life for everyone • Currently being implemented by number of vendors • OpenCV HAL (a part of OpenCV 3.x) • Low level API beneath the standard OpenCV • Open-source, but potentially can use proprietary components • Generic multi-core scheduler (Planned feature) • Make multi-core scheduler more intelligent on mobile architectures • pthread-based backend in addition to existing options • Vision benchmarks for hardware (Desired feature) • Some performance tests are present in OpenCV already • Not possible to use for benchmarking directly, some work is needed • OpenCV Manager for Android could also contain benchmarking What is missing? What is planned?
  • 14. Copyright © 2015 Itseez 14 • Itseez Web: www.itseez.com • OpenCV home: www.opencv.org • OpenCV documentation: docs.opencv.org • GitHub: https://github.com/Itseez/opencv • OpenCV resources on Embedded Vision Alliance (plenty of info): http://www.embedded-vision.com/opencv-resources • OpenCV on TI: http://www.ti.com/lit/wp/spry175/spry175.pdf • OpenCV on NVIDIA: https://developer.nvidia.com/opencv • E-mail me: yury.gorbachev@itseez.com Resources
  • 15. Copyright © 2015 Itseez 15 Q & A