SlideShare ist ein Scribd-Unternehmen logo
1 von 15
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

Weitere ähnliche Inhalte

Was ist angesagt?

Виктор Ерухимов 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 observabilityNikolay Stoitsev
 
ScilabTEC 2015 - Noesis Solutions
ScilabTEC 2015 - Noesis SolutionsScilabTEC 2015 - Noesis Solutions
ScilabTEC 2015 - Noesis SolutionsScilab
 
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 ProgrammingAndreas 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 MahAMD 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 SelleyAMD 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 MillerAMD 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 GasterAMD 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 DemosAMD 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_universeOfer 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
 
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 IIIntel® 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 LearningHagay Lupesko
 

Was ist angesagt? (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
 

Andere mochten auch

"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
 
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 ThingsSofian Hadiwijaya
 
Image Processing with OpenCV
Image Processing with OpenCVImage Processing with OpenCV
Image Processing with OpenCVdebayanin
 
OpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみたOpenCVをAndroidで動かしてみた
OpenCVをAndroidで動かしてみた徹 上野山
 
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
 
20140905 AWS Night in ITHD LT2
20140905 AWS Night in ITHD LT220140905 AWS Night in ITHD LT2
20140905 AWS Night in ITHD LT2Nobuyuki 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 RetirementExperian_US
 

Andere mochten auch (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
 

Ähnlich wie 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 toolkitYury 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 IntelEdge 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 everyoneDomusDotNet
 
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 javaVishwas N
 
OpenStack - JobShop @Iași, 2016
OpenStack - JobShop @Iași, 2016OpenStack - JobShop @Iași, 2016
OpenStack - JobShop @Iași, 2016Alexandru 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 WorkbenchHoward 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 reimaginedAlex Thissen
 
LCU14 310- Cisco ODP v2
LCU14 310- Cisco ODP v2LCU14 310- Cisco ODP v2
LCU14 310- Cisco ODP v2Linaro
 
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 CoprocessorIntel IT Center
 
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
 
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 seamlessRogue Wave Software
 
Include os @ flossuk 2018
Include os @ flossuk 2018Include os @ flossuk 2018
Include os @ flossuk 2018Per Buer
 

Ähnlich wie 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
 

Kürzlich hochgeladen

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...masabamasaba
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfonteinmasabamasaba
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park masabamasaba
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastPapp Krisztián
 
tonesoftg
tonesoftgtonesoftg
tonesoftglanshi9
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 

Kürzlich hochgeladen (20)

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
Abortion Pill Prices Tembisa [(+27832195400*)] 🏥 Women's Abortion Clinic in T...
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park %in kempton park+277-882-255-28 abortion pills for sale in kempton park
%in kempton park+277-882-255-28 abortion pills for sale in kempton park
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 

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