gpt4 book ai didi

android - 使用 firebase MLKit 运行多个图像处理器

转载 作者:行者123 更新时间:2023-12-04 10:06:58 25 4
gpt4 key购买 nike

我正在尝试使用 firebase MLKit 检测对象和文本在 android 中的实时相机提要上。有特定的识别器( FirebaseVisionTextRecognizerFirebaseVisionObjectDetector )来处理图像。如果我一个一个地使用这些识别器,它就可以正常工作,我能够得到想要的响应。

但是,我想使用与 Google Lens 应用程序相同的相机源同时检测对象和文本。为了实现这一点,首先,我尝试同时运行两个识别器,但由于两个识别器都按顺序运行,因此延迟更多(执行特定帧需要时间),因此只有文本检测有效,而对象检测无效。这意味着对象检测没有结果。

然后,我尝试并行执行两个识别器,延迟减少但不足以让检测 API 返回响应。当摄像机源中没有文本时,对象检测效果很好,但是当摄像机源中有文本时,延迟会增加,因此没有跟踪对象。

注意:我检查了检测后函数调用的延迟(检测到对象后执行的代码)并且不需要太多时间。在并行执行的情况下,识别器需要更多时间来处理图像。我正在三星 Galaxy S30s 手机上进行测试,我猜它的处理器并没有那么差。

代码中的几个大纲:

  • 使用 FirebaseVisionObjectDetectorOptions.STREAM_MODE , enableMultipleObjects=falseenableClassification=false用于物体检测
  • 使用 FirebaseVisionImageMetadata.IMAGE_FORMAT_NV21构建 FirebaseVisionImageMetadata 时的格式
  • 根据 Google 定义的最佳实践,如果检测正在进行,则丢弃最新的帧
  • 使用 OnDeviceObjectDetector 进行对象检测
  • 对于文本检测,我使用 OnDeviceTextRecognizer

  • 我需要帮助来了解 Google Lens 应用程序如何一起执行多个识别器,但不是在我的应用程序中。我可以做些什么来在同一个相机框架上启用多个识别器?

    最佳答案

    目前,在同一图像帧上运行多个检测器的方法是按顺序运行它们,因为我们内部在单个线程中运行它们。我们正在积极添加对并行运行不同检测器的支持。

    ...as both runs sequentially and hence only text detection was working but not the Object detection.



    带有 STREAM_MODE 的 ObjectDetection 功能预计两个图像帧之间的延迟很小,比如 < 300ms。如果您在两者之间运行文本识别,则延迟可能太长,以至于 ObjectDetection 功能无法正常运行。您可以更改 STREAM_MODESINGLE_IMAGE_MODE在您的设置中获得结果,但延迟会更高。

    关于android - 使用 firebase MLKit 运行多个图像处理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61538013/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com