【问题标题】:Limit Detection Area in Vision APIVision API 中的限制检测区域
【发布时间】:2016-05-31 02:25:31
【问题描述】:

似乎我发现自己陷入了用于条形码扫描的 Google Vision API 的深草之中。在查看了各种替代库(ZBar、ZXing,甚至是一些收费的第三方实现)之后,我的头脑可能有点焦躁,但是我很难找到关于在哪里可以实现某种扫描的任何信息区域限制。

用例非常简单:如果我是一个用户,我将手机指向一个带有多个相同类型条形码的盒子(想想这里的运输标签),我想明确地指向一些小取景器或直线对齐 -屏幕上的边缘正好是我想要捕捉的东西,而不必担心感兴趣的区域之外的任何东西会给我一些我不想要的扫描结果。

上述情况在我见过的大多数其他 Android 库中都有处理,采用具有相对或绝对坐标的 Rect,这也是 iOS 的 AVCapture 元数据结果系统的一部分(它使用相对 CGRect,但真的是同一个概念)。

我已经深入研究了条形码阅读器的示例应用程序 here,但实现有点不透明,除了高级实现细节之外的任何内容。

如果成功检测到相机预览帧内任意位置的条码,对感兴趣区域之外的条码进行简单的无操作,这似乎是一个丑陋的补丁,因为设备仍在努力计算这些帧。

我是否错过了一些非常简单和明显的东西?有什么想法可以干净地实现这一点吗?

非常感谢您花时间阅读本文!

【问题讨论】:

    标签: android google-vision android-vision


    【解决方案1】:

    API 目前没有限制检测区域的选项。但是您可以在预览图像进入条形码检测器之前对其进行裁剪。有关如何使用您自己的类包装检测器的概述,请参见此处:

    Mobile Vision API - concatenate new detector object to continue frame processing

    您将实现“检测”方法以获取从相机接收到的帧,创建帧的裁剪版本,并将其传递给底层检测器。

    【讨论】:

    • Google Mobile Vision API 是免费的吗?我需要用它进行人脸检测。网站上没有定价信息,也没有直接联系支持的方法。
    • 感谢您对此的更新。听到没有直接的实现方法来解决这个问题很糟糕,但我接受了你的建议,并有一个裁剪扫描区域的功能版本。我也有两个版本 - 发送到检测客户端的位图的真实裁剪,以及简单的“矩形 X 是否包含扫描结果矩形 Y 的顶点?”在示例图形工厂的回调中。
    • @pm0733464 我正在开发 OCR 应用程序。我需要从 Rect(0, 306 - 720, 489) 区域捕获文本并忽略其余图像。我尝试在 ocr-reader 应用程序中修改框架,CameraSource 中的 mDetector.receiveFrame(f) 但未检测到文本。你能举一个工作的例子吗
    • @TikiMcFee 您可以在此处添加您裁剪的解决方案作为答案。我会帮你的。很多人喜欢我
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-27
    • 2016-10-01
    • 1970-01-01
    • 2020-06-20
    • 1970-01-01
    相关资源
    最近更新 更多