2. Agenda
• Common CV Development Process
• Pitfalls
• Why this happens
• Suggested Computer Vision Process
• Future CV Development
• About me
3. Common CV Development
Initial
Develop algorithm on Matlab
Demo
PC Demo Realtime Demo
PC Product PC Product
Port Algorithm Port Algorithm Mobile
to Platform1 to Platform2 Product
4. What’s wrong with it
• Matlab code is written as Develop algorithm
“demo”/PoC
on Matlab
• Fast, Dirty
• written with low
development resource
• use proprietary
algorithms
5. What’s wrong with it
Port Algorithm
• This step sometime includes: to Platform1
• understanding mobile requirements
• Optimization to platform’s SIMD
• Memory optimization
• sometime full re-written of the
algorithm since its too
computationally intensive for mobile
6. Contributing factors to
common CV Project Process
• Matlab stage
• As a university or a garage SU, developers
have low development resources
• PC Stage
• NIH - Developers prefer their proprietary
version over popular algorithms.
• at this stage (PoC/Demo) developers
doesn't think on mobile optimization
7. Contributing factors to
common CV Project Process
• Platform Stage
• Optimization starts from high memory
and CP resource demanding PC code
• A considerable portion of the code doesn’t
use standard OpenCV functions and
requires hand made SIMD optimization
• Sometimes companies discover that the
algorithm is too resource demanding and
re-writes the algorithm for the mobile
platform
8. Product-wise Computer
Vision Development
Initial
Develop initial PoC with OpenCV
Demo
PC Product PC
RT Demo Product
Platform
fixed-point ported non-OpenCV
agnostic
Algorithms Minimize Memory
requirements Optimized
code
Use platform-X optimized OpenCV for Platform
product (FastCV, TADP, CEVA-CV) Optimized
9. Product-wise Computer
Vision development
• Product wise CV development is guided by
the vision of a multi-platform product. This
leads to:
• Relay on a common CV library->OpenCV
• minimization of non-OpenCV functions
(saves platform specific SIMD
optimization)
• Separate between PC Product and
optimized C code used as base for porting
to mobile / embedded platforms
10. Future Development
with OpenVX
• Khronos compliant
SoC will conform to a
unified “OpenCV-Like”
API
• Enables easy porting
to all supporting
platforms
•
11. Yossi Cohen - About Me
• Android & Video Lecturer
• Video Architect & Developer
• Computer Vision Consultant
• Android Native Developer
Yossi Cohen
+972545313092
yossicohen19@gmail.com