是否可以从 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(飞行时间)传感器读取数据?的主要内容,如果未能解决你的问题,请参考以下文章