首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用firebase MLKit运行多个图像处理器

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

Stack Overflow用户
提问于 2020-05-01 06:44:00
回答 1查看 685关注 0票数 2

我试着用火源MLKit在安卓的实时摄像头上检测对象和文本。有特定的识别器(FirebaseVisionTextRecognizerFirebaseVisionObjectDetector)来处理图像。如果我一个一个地使用这些识别器,它就能很好地工作,我就能得到欲望的反应。

但是,我想同时检测对象和文本,使用与Google应用程序相同的摄像头馈送。为了实现这一点,首先,我尝试将两个识别器一起运行,但由于都是按顺序运行,所以延迟时间更长(执行特定帧所需的时间),因此只有文本检测工作,而不是对象检测。这意味着对象检测没有结果。

然后,我尝试并行地执行两个识别器,延迟会减少,但不足以使检测API返回响应。当相机馈送中没有文本时,目标检测工作良好,但当摄像机馈送中有文本时,延迟会增加,因此没有跟踪对象。

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

守则中很少有提纲:

  1. 使用模式enableMultipleObjects=falseenableClassification=false进行对象检测
  2. 在构建FirebaseVisionImageMetadata.IMAGE_FORMAT_NV21时使用FirebaseVisionImageMetadata格式
  3. 根据Google定义的最佳实践,如果检测正在进行中,则删除最新帧。
  4. 使用OnDeviceObjectDetector进行对象检测
  5. 对于文本检测,我使用OnDeviceTextRecognizer

我需要帮助,以了解如何谷歌镜头应用程序一起执行多个识别器,但不是在我的应用程序。我能做些什么使多个识别器在同一个镜头上?

EN

回答 1

Stack Overflow用户

发布于 2020-05-01 18:14:58

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

...as都是按顺序运行的,因此只有文本检测有效,而对象检测则不行。

带有ObjectDetection的STREAM_MODE特性期望两个图像帧之间的延迟很小,比如<300 is。如果在中间运行文本识别,延迟时间可能太长,因此ObjectDetection功能无法正常工作。您可以将STREAM_MODE更改为SINGLE_IMAGE_MODE以获得设置的结果,但是延迟会更高。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61538013

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档