我试着用火源MLKit在安卓的实时摄像头上检测对象和文本。有特定的识别器(FirebaseVisionTextRecognizer,FirebaseVisionObjectDetector)来处理图像。如果我一个一个地使用这些识别器,它就能很好地工作,我就能得到欲望的反应。
但是,我想同时检测对象和文本,使用与Google应用程序相同的摄像头馈送。为了实现这一点,首先,我尝试将两个识别器一起运行,但由于都是按顺序运行,所以延迟时间更长(执行特定帧所需的时间),因此只有文本检测工作,而不是对象检测。这意味着对象检测没有结果。
然后,我尝试并行地执行两个识别器,延迟会减少,但不足以使检测API返回响应。当相机馈送中没有文本时,目标检测工作良好,但当摄像机馈送中有文本时,延迟会增加,因此没有跟踪对象。
注意:我检查了后检测函数调用(在检测对象之后执行的代码)的延迟,它不需要太多时间。在并行执行的情况下,识别器需要更多的时间来处理图像。我正在三星Galaxy S30s手机上进行测试,我想它的处理器也没那么差。
守则中很少有提纲:
FirebaseVisionImageMetadata.IMAGE_FORMAT_NV21时使用FirebaseVisionImageMetadata格式我需要帮助,以了解如何谷歌镜头应用程序一起执行多个识别器,但不是在我的应用程序。我能做些什么使多个识别器在同一个镜头上?
发布于 2020-05-01 18:14:58
现在,在同一图像帧上运行多个检测器的方法是按顺序运行它们,因为我们在一个线程中内部运行它们。我们正在积极增加对并行运行不同检测器的支持。
...as都是按顺序运行的,因此只有文本检测有效,而对象检测则不行。
带有ObjectDetection的STREAM_MODE特性期望两个图像帧之间的延迟很小,比如<300 is。如果在中间运行文本识别,延迟时间可能太长,因此ObjectDetection功能无法正常工作。您可以将STREAM_MODE更改为SINGLE_IMAGE_MODE以获得设置的结果,但是延迟会更高。
https://stackoverflow.com/questions/61538013
复制相似问题