際際滷

際際滷Share a Scribd company logo
MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL
Integrating new Camera* hardware
with mobile OEM
MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL
How does Android look like in 3D ?
Mantis and Android
Whats so special about 3D cameras?
What about the future to come?
MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL
So how does
Android look
like in 3D ?
MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL
Mantis Vision developed state-of-the-art 3D enabling technology (MV4DTM), with unprecedented
accuracy (static and dynamic scenes), for the use in mobile devices and 3D scanners.
Our Mission: To become the platform of choice for accurate capturing of depth and motion in a
way that best portrays reality.
Company Introduction
MANTIS VISION PROPRIETARY & CONFIDENTIAL
TIME
PERFORMACE
High Quality 3D Depth
Sensing is a NEW Technology
S-Curve
Imaging Disruptive Technologies
Real High Quality 3D is a disruptive technology!
1963
2015
1996
2006
3DHTC One M8
MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL
Our technology - Triangulation
Triangulation is the process of determining the location of a point by measuring angle to it from known points at
either end of a fixed baseline, rather than measuring distances to the point directly.
The point can then be fixed as the third point of a triangle with one known side and two known angles.
PRINCIPLES OF OPERATION
 Baseline
 Correspondence
 Localization
MANTIS VISION PROPRIETARY & CONFIDENTIAL
MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL
Our Technology  Epipolar Coding
Our unique code (patented-US8208719) allows a smaller footprint to
uniquely identify many more points than in standard methods (i.e.: any
desired point-resolution could be provided by using a more robust
coded-pattern due to a smaller footprint)
This unique technology provide a higher resolution & accuracy for lower
MOS (minimal object size)
MANTIS VISION PROPRIETARY & CONFIDENTIAL
Endless Integration Options
MANTIS VISION PROPRIETARY & CONFIDENTIAL
Instant User Generated
High-Quality 3D Content
MANTIS VISION PROPRIETARY & CONFIDENTIAL
Parametric 3D Imaging & Dynamic registration
MANTIS VISION PROPRIETARY & CONFIDENTIAL
Enhanced 3D Communication
MANTIS VISION PROPRIETARY & CONFIDENTIAL
MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL
Mantis and Android
MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL
Android Dev in MV
MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL
So whats so special
about 3D camera?
(That we havent work with till now)
MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL
 Structured light flash projector
 Hardware projector driver circuit
 Camera modules
 Processing algorithms
NIR Camera
(C)
REAR COLOR
CAMERA
STROBE
LIGHT
FLASH
PROJECTOR (F)
System Overview
System Diagram
MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL
System Overview
System Diagram
 Structured light flash projector
 Hardware projector driver circuit
 Camera modules
 Processing algorithms
MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL
New controlled target  Depth Flash Projector
Raw data (monochrome, no ISP, full bit-depth)
Unique sensors  RGB-IR
Simultaneous Dual Camera (2 surfaces at once)
Low level sensors tweaking (e.g. Manual exposure, PLL, unique FPS, etc)
Timing!
Unordinary Tasks
MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL
Device Abstraction
MV4D SDK API
DataFlow
OSDepth Camera Driver
Camera Control
AGCDecoderRecorder
Projector Control
Mantis Vision (MV) SDK
Projector DriverColor Camera Driver
MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL
MV SDK requires for the Projector Driver operating system software support.
Driver interface should provide access to the laser driver hardware through I2C protocol
and should comply to the standard operating system permissions mechanism.
Design shall include pre implemented I2C projector communication service.
 In order to control the operating system need to control the Laser Drive via I2C.
 This can* be done by adding I2C kernel module and a HAL service that will provide access via
the standard android permissions mechanism for applications.
 Service should be formed in order to obtain connection by the SDK.
Mantis Vision (MV) SDK
Projector Driver Interface
MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL
Experience with different OEMs:
OEM System Service
 In most cases it is the OEM that implement System Service according to given request.
 Sometimes might come in a different forms of APIs  effects the generic code.
 OEM/Vendor might not expose everything
Projector Device Driver
 Might be good only as root adb
 Might be changed under different permissions
Mantis Vision (MV) SDK
Projector Driver Interface  Cont.
MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL
Connecting to Color and IR camera is implemented through Android Standard HAL.
For the IR camera, RDI callback being used*.
CameraListener will be the interface to connect to both cameras (connect(x) will connect
to the IR camera, connect(y) will connect to the Color camera). Both camera instances
must be functional at the same time.
The callback need to expose real frame timestamp. (This is currently unsolved)
Mantis Vision (MV) SDK
Camera S/W Interface
MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL
Experience with different OEMs:
Different platforms required different interfaces:
 CameraListner, CpuConsumerListner, ProCamera
Some requires very specific headers to be
included in compilation, and might be vulnerable
to OEM changes
Mantis Vision (MV) SDK
Camera S/W Interface  Cont.
MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL
APPMV SDK
Camera HAL v3 posed new challenges
On one hand new advanced HAL included extended features never (or partially)
supported before (e.g. RAW), but simple callback connection were changed or dropped.
One of our current solutions -
Mantis Vision (MV) SDK
Camera S/W Interface  Cont.
JAVA SDK (.jar)
NATIVE SDK (.so)
JAVA
c/c++
jni
MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL
Android HAL bridges the gap between hardware and software.
It allows the Android application/framework to communicate with the hardware specific
device drivers.
For Android application, HAL provides APIs through which service can place a request to
device.
And HAL uses functions provided by the lower layer Linux system to service the request
from the android framework.
HAL is a c/c++ layer which is a vendor specific implementation.
About HAL
MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL
There are two different types of Android HAL architecture:
 First one is the legacy Android HAL which looks similar to library implementation.
 Second one gives the complete abstraction and control over the device vendor.
Android HAL implementation looks similar to a Linux device driver.
Most of the Vendor specific implementations can be done in Android HAL rather than the
driver. So that license difference between the driver (Open source license GPL) and the
HAL (Apache License) will give more level of abstraction to vendor.
HAL has structures which specify the HAL type, Module type, version detail, and a set of
function callbacks (methods) which are registered to android framework layer.
 For example if a service from android framework needs data from a sensor device, the service
will make a call to corresponding function in sensor HAL which in turn will talks directly with
Linux device driver.
 The driver will trigger the sensor driver and deliver the data back to the HAL so it can be
passed back to Android application.
The HAL module is compiled into a shared object that is dynamically loaded at runtime
when needed.
HAL Architecture
MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL
Device Driver
 Linux has predefined system calls which can be used by the user space application to perform
the operation on hardware.
Android kernel Patches
 There are limitation in the Linux kernel, that required patches to make it more powerful for
android.
 Some patches can be found in security, networking, IPC, Power management.
Android Device Drivers
 Device drivers written for Android hardware platforms can not get merged into the main kernel
tree because they have dependencies on code that only lives in Googles kernel tree, causing it
to fail to build in the kernel.org tree.
 Linux device drivers will also work on android but it will lack some functionality which is specific
to android.
Android Specific Device Drivers
 Device drivers related to android which are integrated with Linux staging folder (e.g. Low
Memory Killer)
 Some of the device drivers which are specific to android are not merged with linux (e.g. Binder)
Device Drivers
MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL
And what about the
future to come?
MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL
developing a unified service that should run on any targeted Arm platform (Projector
driver service)
Allow RAW camera processing without being constrained to use color ISP (RDI).
Been able to access the hardware correctly without being limited by OEM open API
(Google Tango API not allowing us to trigger our laser and get RAW data).
Ability to secure CPUGPU affinity as will be required when other developers will run their
code as well in parallel.
Expose some configuration parameters of the depth decoding process without "opening"
the complete parameters to everybody (our use of encrypted config + the additional cfg
parameters that are not encrypted).
How to synchronize 3D camera with other host sensors (e.g. IMU & Temperature
sensors)
Challenges
MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL
And if you are having a good
understanding how to cope with these
kind of challenges 
we are looking for you...
MANTIS VISION PROPRIETARY & CONFIDENTIAL
Thank You
Tomer Kimhi, VP R&D
TomerK@mantis-vision.com
(Time for Demos)

More Related Content

Tomer kimhi mobmodcon-nov2015-integrating new camera hardware

  • 1. MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL Integrating new Camera* hardware with mobile OEM
  • 2. MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL How does Android look like in 3D ? Mantis and Android Whats so special about 3D cameras? What about the future to come?
  • 3. MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL So how does Android look like in 3D ?
  • 4. MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL Mantis Vision developed state-of-the-art 3D enabling technology (MV4DTM), with unprecedented accuracy (static and dynamic scenes), for the use in mobile devices and 3D scanners. Our Mission: To become the platform of choice for accurate capturing of depth and motion in a way that best portrays reality. Company Introduction
  • 5. MANTIS VISION PROPRIETARY & CONFIDENTIAL TIME PERFORMACE High Quality 3D Depth Sensing is a NEW Technology S-Curve Imaging Disruptive Technologies Real High Quality 3D is a disruptive technology! 1963 2015 1996 2006 3DHTC One M8
  • 6. MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL Our technology - Triangulation Triangulation is the process of determining the location of a point by measuring angle to it from known points at either end of a fixed baseline, rather than measuring distances to the point directly. The point can then be fixed as the third point of a triangle with one known side and two known angles. PRINCIPLES OF OPERATION Baseline Correspondence Localization MANTIS VISION PROPRIETARY & CONFIDENTIAL
  • 7. MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL Our Technology Epipolar Coding Our unique code (patented-US8208719) allows a smaller footprint to uniquely identify many more points than in standard methods (i.e.: any desired point-resolution could be provided by using a more robust coded-pattern due to a smaller footprint) This unique technology provide a higher resolution & accuracy for lower MOS (minimal object size)
  • 8. MANTIS VISION PROPRIETARY & CONFIDENTIAL Endless Integration Options
  • 9. MANTIS VISION PROPRIETARY & CONFIDENTIAL Instant User Generated High-Quality 3D Content
  • 10. MANTIS VISION PROPRIETARY & CONFIDENTIAL Parametric 3D Imaging & Dynamic registration
  • 11. MANTIS VISION PROPRIETARY & CONFIDENTIAL Enhanced 3D Communication
  • 12. MANTIS VISION PROPRIETARY & CONFIDENTIAL
  • 13. MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL Mantis and Android
  • 14. MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL Android Dev in MV
  • 15. MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL So whats so special about 3D camera? (That we havent work with till now)
  • 16. MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL Structured light flash projector Hardware projector driver circuit Camera modules Processing algorithms NIR Camera (C) REAR COLOR CAMERA STROBE LIGHT FLASH PROJECTOR (F) System Overview System Diagram
  • 17. MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL System Overview System Diagram Structured light flash projector Hardware projector driver circuit Camera modules Processing algorithms
  • 18. MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL New controlled target Depth Flash Projector Raw data (monochrome, no ISP, full bit-depth) Unique sensors RGB-IR Simultaneous Dual Camera (2 surfaces at once) Low level sensors tweaking (e.g. Manual exposure, PLL, unique FPS, etc) Timing! Unordinary Tasks
  • 19. MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL Device Abstraction MV4D SDK API DataFlow OSDepth Camera Driver Camera Control AGCDecoderRecorder Projector Control Mantis Vision (MV) SDK Projector DriverColor Camera Driver
  • 20. MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL MV SDK requires for the Projector Driver operating system software support. Driver interface should provide access to the laser driver hardware through I2C protocol and should comply to the standard operating system permissions mechanism. Design shall include pre implemented I2C projector communication service. In order to control the operating system need to control the Laser Drive via I2C. This can* be done by adding I2C kernel module and a HAL service that will provide access via the standard android permissions mechanism for applications. Service should be formed in order to obtain connection by the SDK. Mantis Vision (MV) SDK Projector Driver Interface
  • 21. MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL Experience with different OEMs: OEM System Service In most cases it is the OEM that implement System Service according to given request. Sometimes might come in a different forms of APIs effects the generic code. OEM/Vendor might not expose everything Projector Device Driver Might be good only as root adb Might be changed under different permissions Mantis Vision (MV) SDK Projector Driver Interface Cont.
  • 22. MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL Connecting to Color and IR camera is implemented through Android Standard HAL. For the IR camera, RDI callback being used*. CameraListener will be the interface to connect to both cameras (connect(x) will connect to the IR camera, connect(y) will connect to the Color camera). Both camera instances must be functional at the same time. The callback need to expose real frame timestamp. (This is currently unsolved) Mantis Vision (MV) SDK Camera S/W Interface
  • 23. MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL Experience with different OEMs: Different platforms required different interfaces: CameraListner, CpuConsumerListner, ProCamera Some requires very specific headers to be included in compilation, and might be vulnerable to OEM changes Mantis Vision (MV) SDK Camera S/W Interface Cont.
  • 24. MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL APPMV SDK Camera HAL v3 posed new challenges On one hand new advanced HAL included extended features never (or partially) supported before (e.g. RAW), but simple callback connection were changed or dropped. One of our current solutions - Mantis Vision (MV) SDK Camera S/W Interface Cont. JAVA SDK (.jar) NATIVE SDK (.so) JAVA c/c++ jni
  • 25. MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL Android HAL bridges the gap between hardware and software. It allows the Android application/framework to communicate with the hardware specific device drivers. For Android application, HAL provides APIs through which service can place a request to device. And HAL uses functions provided by the lower layer Linux system to service the request from the android framework. HAL is a c/c++ layer which is a vendor specific implementation. About HAL
  • 26. MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL There are two different types of Android HAL architecture: First one is the legacy Android HAL which looks similar to library implementation. Second one gives the complete abstraction and control over the device vendor. Android HAL implementation looks similar to a Linux device driver. Most of the Vendor specific implementations can be done in Android HAL rather than the driver. So that license difference between the driver (Open source license GPL) and the HAL (Apache License) will give more level of abstraction to vendor. HAL has structures which specify the HAL type, Module type, version detail, and a set of function callbacks (methods) which are registered to android framework layer. For example if a service from android framework needs data from a sensor device, the service will make a call to corresponding function in sensor HAL which in turn will talks directly with Linux device driver. The driver will trigger the sensor driver and deliver the data back to the HAL so it can be passed back to Android application. The HAL module is compiled into a shared object that is dynamically loaded at runtime when needed. HAL Architecture
  • 27. MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL Device Driver Linux has predefined system calls which can be used by the user space application to perform the operation on hardware. Android kernel Patches There are limitation in the Linux kernel, that required patches to make it more powerful for android. Some patches can be found in security, networking, IPC, Power management. Android Device Drivers Device drivers written for Android hardware platforms can not get merged into the main kernel tree because they have dependencies on code that only lives in Googles kernel tree, causing it to fail to build in the kernel.org tree. Linux device drivers will also work on android but it will lack some functionality which is specific to android. Android Specific Device Drivers Device drivers related to android which are integrated with Linux staging folder (e.g. Low Memory Killer) Some of the device drivers which are specific to android are not merged with linux (e.g. Binder) Device Drivers
  • 28. MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL And what about the future to come?
  • 29. MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL developing a unified service that should run on any targeted Arm platform (Projector driver service) Allow RAW camera processing without being constrained to use color ISP (RDI). Been able to access the hardware correctly without being limited by OEM open API (Google Tango API not allowing us to trigger our laser and get RAW data). Ability to secure CPUGPU affinity as will be required when other developers will run their code as well in parallel. Expose some configuration parameters of the depth decoding process without "opening" the complete parameters to everybody (our use of encrypted config + the additional cfg parameters that are not encrypted). How to synchronize 3D camera with other host sensors (e.g. IMU & Temperature sensors) Challenges
  • 30. MANTIS VISION PROPRIETARY & CONFIDENTIALMANTIS VISION PROPRIETARY & CONFIDENTIAL And if you are having a good understanding how to cope with these kind of challenges we are looking for you...
  • 31. MANTIS VISION PROPRIETARY & CONFIDENTIAL Thank You Tomer Kimhi, VP R&D TomerK@mantis-vision.com (Time for Demos)