首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于Firebase的MLKit Firebase检测速度慢于安卓

基于Firebase的MLKit Firebase检测速度慢于安卓
EN

Stack Overflow用户
提问于 2019-08-19 06:15:51
回答 4查看 2.1K关注 0票数 3

我想从图片库图像(位图)中检测人脸。

问题

  1. 我注意到Firebase MLKIT在图片库图像位图上的表现非常缓慢。
  2. 我还能用移动视觉api来检测图像中的人脸吗?(我只想检测人脸,不要眼睛,鼻子等等)。
  3. 我应该做些什么来提高使用Firebase MLKIT检测人脸的性能。
  4. 我使用了Firebase图像标记。火焰图像标记速度较快,而人脸检测速度相对较慢。

我尝试了移动视觉Api,并成功地检测到了脸。在移动视觉api的网站上,他们提到了Firebase MLKIT。我也尝试了firebase ML试剂盒,并成功地检测到了面部。我按照下面的链接进行演示:[https://github.com/hitanshu-dhawan/FirebaseMLKit]

库版本:

代码语言:javascript
复制
implementation 'com.google.firebase:firebase-core:17.0.1'
implementation 'com.google.firebase:firebase-ml-vision:22.0.0'
implementation 'com.google.firebase:firebase-ml-vision-face-model:18.0.0'
implementation 'com.google.firebase:firebase-ml-vision-image-label-model:18.0.0' 
代码语言:javascript
复制
    FirebaseVisionFaceDetectorOptions option =
     new FirebaseVisionFaceDetectorOptions.Builder()
    .setPerformanceMode(FirebaseVisionFaceDetectorOptions.ACCURATE)
    .setLandmarkMode(FirebaseVisionFaceDetectorOptions.ALL_LANDMARKS)
    .setClassificationMode(FirebaseVisionFaceDetectorOptions.ALL_CLASSIFICATIONS)
    .build();

    FirebaseVisionFaceDetector detector = FirebaseVision.getInstance()
                .getVisionFaceDetector(option);

        detector.detectInImage(image).addOnSuccessListener(
                new OnSuccessListener<List<FirebaseVisionFace>>() {
                    @Override
                    public void onSuccess(List<FirebaseVisionFace> faces) {
    }

我是不是做错什么了?

EN

回答 4

Stack Overflow用户

发布于 2019-11-15 06:52:42

我想你可以把.setPerformanceMode(FirebaseVisionFaceDetectorOptions.ACCURATE)改为.setPerformanceMode(FirebaseVisionFaceDetectorOptions.FAST)

可能会提高检测的速度。

票数 1
EN

Stack Overflow用户

发布于 2019-10-24 07:56:07

我也有同样的问题,但是通过文本识别,在安卓系统上速度非常慢,每秒大约1张图像(华为Y6 2018年),但在iOS上却非常快,在iPhone 6s上可以轻松地每秒运行10帧。我已经尝试过Firebase支持的所有图像格式,在测试中最快的varian是ByteBuffer,所以我在开始识别之前将位图转换为ByteBuffer。

票数 0
EN

Stack Overflow用户

发布于 2020-03-27 18:34:33

如果您直接从位图实例化您的,则Firebase脸检测器是非常慢的,如下所示:

代码语言:javascript
复制
FirebaseVisionImage visionImage = FirebaseVisionImage.fromBitmap(bitmap);

一种解决方案是将位图转换为字节数组(byte[]),并使用其他构造函数创建FirebaseVisionImage

代码语言:javascript
复制
FirebaseVisionImage visionImage = FirebaseVisionImage.fromByteArray(byteArray, metadata);

这一事实似乎没有被记录在案。我在对这个GitHub问题的评论中发现了它,并使用了该技术,使人脸检测时间缩短了6倍。同样在该链接中,有一个来自GitHub用户jllarraz的代码片段,用于将位图转换为nv21字节数组。

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

https://stackoverflow.com/questions/57551321

复制
相关文章

相似问题

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