Product-Wise Computer
 Vision Development
Agenda
• Common CV Development Process
• Pitfalls
• Why this happens
• Suggested Computer Vision Process
• Future CV Development
• About me
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
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
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
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
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
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
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
Future Development
       with OpenVX
• Khronos compliant
    SoC will conform to a
    unified “OpenCV-Like”
    API

• Enables easy porting
    to all supporting
    platforms



•
Yossi Cohen - About Me
• Android & Video Lecturer
• Video Architect & Developer
• Computer Vision Consultant
• Android Native Developer

                                Yossi Cohen

                                +972545313092

                                yossicohen19@gmail.com

Product wise computer vision development

  • 1.
  • 2.
    Agenda • Common CVDevelopment 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 withit • 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 withit 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 commonCV 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 commonCV 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 Visiondevelopment • 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