【问题标题】:how to display text recognition bounding box on screen of a ARFrame captured image? (iOS)如何在 ARFrame 捕获的图像的屏幕上显示文本识别边界框? (iOS)
【发布时间】:2021-03-24 15:48:48
【问题描述】:

我看过 ARKit 官方教程 RealtimeNumberReader,它使用 AVCaptureSession 和一个特定的函数 layerRectConverted,它只适用于 AVCaptureSession 将坐标从边界框转换为屏幕坐标。

let rect = layer.layerRectConverted(fromMetadataOutputRect: box.applying(self.visionToAVFTransform))

现在我想识别 ARFrame 的 capturedImage 上的文本,然后在屏幕上显示绑定框。有可能吗?

我知道如何从官方tutorial 识别单个图像上的文本,我的问题是如何将标准化的框坐标转换为视口坐标。

请帮忙,非常感谢!!!

【问题讨论】:

    标签: ios swift arkit avcapturesession text-recognition


    【解决方案1】:

    根据@Banane42 的回答,我找到了ARkit 和VNRecognizeTextRequest 背后的理论

    1. ARKit Sceneview 的capturedImage 比你看到的要宽。检查下面的图片。我做了一个小应用程序,有一个imageView来显示整个图像,背景图像是场景视图区域。
    1. 场景视图或图像的坐标来自top left角,x-axis->向右,y-axis->向下。但是VNRequest返回的boundingBox的坐标是从bottom left角和x-axis->到右边和y-axis->到顶部。

    2. 如果您使用request.regionOfInterest,则此 ROI 应该是相对于整个图像的归一化坐标。返回的VNRequest boundingBox 是相对于 ROI 框的归一化坐标。

    终于让我的应用程序正常运行了。这是非常复杂的。所以要小心!

    【讨论】:

      【解决方案2】:

      Try looking at this git repo.我自己搞砸了,它不是性能最好的,但这应该给你一个开始。

      【讨论】:

      • 非常感谢!根据您的示例,我终于找到了解决方案。我会再做一个答案,为其他可能需要的人解释一下。
      猜你喜欢
      • 1970-01-01
      • 2019-10-18
      • 2015-12-18
      • 2017-07-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-02
      • 1970-01-01
      相关资源
      最近更新 更多