对象检测 ARKit 与 CoreML

Posted

技术标签:

【中文标题】对象检测 ARKit 与 CoreML【英文标题】:Object detection ARKit vs CoreML 【发布时间】:2019-03-15 15:49:24 【问题描述】:

我正在为 iPhone 构建ARKit 应用程序。我需要检测特定的香水瓶并根据检测到的内容显示内容。我使用 developer.apple.com 的演示应用程序来扫描真实世界的对象并导出我可以在资产中使用的 .arobject 文件。它工作正常,尽管由于瓶子来自玻璃检测非常差。它仅在 2-30 秒范围内进行扫描或根本不检测的位置进行检测。合并扫描并不能改善情况,这会使情况变得更糟。合并的结果可能有奇怪的方向。

我能做些什么来解决这个问题?

如果没有,CoreML 会帮助我吗?我可以拍很多照片和教模型。如果我要检查每一帧是否与这个模型匹配呢?这种方法有机会吗?

【问题讨论】:

【参考方案1】:

由于玻璃折射现象和不同的照明条件,香水瓶的对象识别过程(在 ARKit 和 CoreML 中)是最复杂的过程。

看下图——三个玻璃球在不同的位置:

这些玻璃球具有不同的菲涅耳 IOR(折射率)、环境、相机的视角、尺寸和照明条件。但它们具有相同的形状、材料和颜色。

因此,加快识别过程的最佳方法是使用相同的背景/环境(例如单色浅灰色纸 BG)、相同的照明条件(光的位置、强度、颜色和方向),良好的形状可读性(由于镜面高光)和相机的相同 POV。

我知道,有时无法遵循这些提示,但这些提示很有效。

【讨论】:

以上是关于对象检测 ARKit 与 CoreML的主要内容,如果未能解决你的问题,请参考以下文章

是否可以使用 CoreML 模型检测对象并找到该对象的测量值?

使用 ARKit 和 CoreML 从远距离检测物体

ARKit 和视觉框架——检测墙壁边缘

如何使用对象检测模型改进 CoreML 图像分类器模型?

结合 CoreML 和 ARKit

带有 ARkit 和 CoreML 的视觉框架