是否可以从 Android 上的 TOF(飞行时间)传感器读取数据?

Posted

技术标签:

【中文标题】是否可以从 Android 上的 TOF(飞行时间)传感器读取数据?【英文标题】:Is it possible to read data from TOF (time-of-flight) sensor on Android? 【发布时间】:2019-08-18 06:26:49 【问题描述】:

最新型号的 android 手机(Honor View 20、华为 P30 Pro、三星 Galaxy 10 5g)配备了 TOF(飞行时间)传感器。是否可以通过一些API或厂商SDK读取?

【问题讨论】:

【参考方案1】:

Android 确实包含用于与非传统视觉相机交互的操作系统级 API。以三星 S10 5G 为例,您可以使用 Camera2 API 访问相机并直接获取 DEPTH16 帧。这是一个示例:https://medium.com/swlh/working-with-the-3d-camera-on-the-samsung-s10-5g-4782336783c 这适用于所有三星设备,但该示例仅使用 S10 5G 上的前置 ToF 摄像头。 S10 和 Note 10+ 5G 也都有后置 ToF 摄像头。

我不知道华为或一加是否符合相同的 API(理论上应该,其他答案表明它们在一定程度上符合)。

【讨论】:

【参考方案2】:

华为可以使用 AR Engine SDK

https://developer.huawei.com/consumer/en/ar

SDK文档AREnginesdk-sample-2.0.0.6\HUAWEI AR Engine Function Manual.doc摘录

4.13 场景网格 华为AR Engine提供实时输出场景网格 能力。输出包括手机在 空间。当前相机视图的 3D 网格仅支持 指定可获取深度的华为机型(荣耀V20、P30Pro) 信息,支持的扫描场景是静态的。

SDK文档AREnginesdk-sample-2.0.0.6\java\HUAWEI AR Engine SDK Interface Manual.docx摘录

2.2.1.18.   ARSceneMesh
•   Description: The class used to return the tracking result when the environment Mesh is tracked. The result includes the Mesh vertex coordinates, the triangle subscript, and so on.
•   Methods: 
public ShortBuffer getSceneDepth()
        // Get the depth image of current frame(optimized).
public int getSceneDepthHeight()
        // Get the height of the depth image.
public int getSceneDepthWidth()
        // Get the width of the depth image.

可以在华为上使用 camera2 API

https://github.com/google-ar/arcore-android-sdk/issues/120#issuecomment-535413944

ARCore 中的这个 issue 包含很多信息!

在 S10 5G 上似乎也可以,但目前在 Note 10+ 上不行

摘自Night Vision / ToF Viewer app description:

此应用目前仅适用于华为 P30 Pro、Honor View 20 和三星 S10 5G。更多设备将通过未来的设备开始工作 软件更新。

新功能

增加了对三星 S10 5G 的兼容性(可能还适用于其他设备) 分辨率对话框已删除 已移除对正面的支持

注意:对三星 Note10+ 的支持做了很大的研究, 但是此设备似乎不支持 3rd 方应用的 ToF。

另一个有趣的应用:

使用华为 ToF 传感器的 3D 扫描仪应用 https://play.google.com/store/apps/details?id=com.lvonasek.arcore3dscannerpro

【讨论】:

【参考方案3】:

目前不可能。 由于 Android 尚未在官方最新的 SDK 中包含任何此类 API。

像华为、三星和一加这样的制造商也在使用他们定制的操作系统资源,我认为他们还没有公开。

我正在寻找相同的东西,我在三星社区遇到了这个帖子, https://developer.samsung.com/forum/board/thread/view.do?boardName=SDK&messageId=371359&listLines=40&startId=zzzzz~&searchType=ALL&searchText=tof

【讨论】:

以上是关于是否可以从 Android 上的 TOF(飞行时间)传感器读取数据?的主要内容,如果未能解决你的问题,请参考以下文章

Q-TOF中TOF的作用分别是啥

TOF测距功能的原理及使用方法

微型三维图像传感器采用飞行时间技术

TOF摄像机可以替代Flash激光雷达吗?

TOF摄像机可以替代Flash激光雷达吗?

3D相机技术调研(飞行时间+双目+结构光)