如何 运行 独立地使用两个 FirebaseVisionFaceDetector?
How to run two FirebaseVisionFaceDetector independently?
我有两个 FirebaseVisionFaceDetector 实例,它们来自不同的 FirebaseApps。
正在应用中初始化 FirebaseApps class:
FirebaseApp.initializeApp(this, FirebaseOptions.fromResource(this)!!, "accurate")
FirebaseApp.initializeApp(this, FirebaseOptions.fromResource(this)!!, "fast")
获取检测器:
private val detector = FirebaseVision.getInstance(FirebaseApp.getInstance("accurate"))
.getVisionFaceDetector(optOpts)
private val detector2 = FirebaseVision.getInstance(FirebaseApp.getInstance("fast"))
.getVisionFaceDetector(optOpts2)
然而,当我调用 Tasks.await(detector.detectInImage(image)) 和 Tasks.await(detector2.detectInImage(image)) 在不同的线程中,一个调用会阻塞另一个调用,因此它们的性能始终如一。
我认为检测器在后台使用相同的对象,所以我不能异步调用此方法。有人知道如何解决这个问题吗?
我已经联系了支持团队,他们告诉我目前所有 firebase 应用实例都在使用同一个线程,因此无法并行。
此外,他们告诉我他们已经创建了一个功能请求,因此它将在 MLKit 的未来版本中得到修复。
我有两个 FirebaseVisionFaceDetector 实例,它们来自不同的 FirebaseApps。
正在应用中初始化 FirebaseApps class:
FirebaseApp.initializeApp(this, FirebaseOptions.fromResource(this)!!, "accurate")
FirebaseApp.initializeApp(this, FirebaseOptions.fromResource(this)!!, "fast")
获取检测器:
private val detector = FirebaseVision.getInstance(FirebaseApp.getInstance("accurate"))
.getVisionFaceDetector(optOpts)
private val detector2 = FirebaseVision.getInstance(FirebaseApp.getInstance("fast"))
.getVisionFaceDetector(optOpts2)
然而,当我调用 Tasks.await(detector.detectInImage(image)) 和 Tasks.await(detector2.detectInImage(image)) 在不同的线程中,一个调用会阻塞另一个调用,因此它们的性能始终如一。
我认为检测器在后台使用相同的对象,所以我不能异步调用此方法。有人知道如何解决这个问题吗?
我已经联系了支持团队,他们告诉我目前所有 firebase 应用实例都在使用同一个线程,因此无法并行。
此外,他们告诉我他们已经创建了一个功能请求,因此它将在 MLKit 的未来版本中得到修复。