通过 Firebase ML Kit 人脸检测检测多张人脸的轮廓

Posted

技术标签:

【中文标题】通过 Firebase ML Kit 人脸检测检测多张人脸的轮廓【英文标题】:Detecting contours of multiple faces via Firebase ML Kit face detection 【发布时间】:2019-12-03 19:59:26 【问题描述】:

我在某处读到这个https://developers.google.com/vision/android/detect-faces-tutorial lib,它只能检测图片中一张脸的轮廓。比我为 Firebase ML Kit 升级,希望他们能解决这个问题,但我的代码只让我得到图片中一张脸的轮廓。有没有办法通过 ML Kit 人脸检测来检测所有轮廓?如果没有,是否有解决方法可以做到这一点?我什至不认为我需要所有的轮廓。我只需要椭圆形的轮廓,所以我知道整张脸在哪里。

            FirebaseVisionFace face = myFaces.get(i);
            FirebaseVisionFaceContour contour;
            int k = 0;

            contour = face.getContour(FirebaseVisionFaceContour.FACE);
            List<FirebaseVisionPoint> points = contour.getPoints();
            for (int j = 0; j < points.size(); j++) 
                if (j < contour.getPoints().size() - 2) 
                    canvas.drawLine(contour.getPoints().get(j).getX(), contour.getPoints().get(j).getY(), contour.getPoints().get(j + 1).getX(), contour.getPoints().get(j + 1).getY(), mPaint);

                 else if (j == contour.getPoints().size()-1) 
                    canvas.drawLine(contour.getPoints().get(j).getX(), contour.getPoints().get(j).getY(), contour.getPoints().get(0).getX(), contour.getPoints().get(0).getY(), mPaint);
                
            
        
        ((ImageView) findViewById(R.id.image_view)).setImageBitmap(finalProduct);```

【问题讨论】:

嗨有什么想法吗? 面临同样的问题...任何解决方案??? 【参考方案1】:

根据this 文档,如果您将setCountourModeALL_CONTOURS,则只能检测到图像中最突出的人脸。 如果要检测多个人脸,可以setContourModeNO_CONTOURS

【讨论】:

以上是关于通过 Firebase ML Kit 人脸检测检测多张人脸的轮廓的主要内容,如果未能解决你的问题,请参考以下文章

如何避免在 firebase ML Kit 的人脸检测 API 中捕获模糊图像

如何在 Firebase ML kit Android 中正确绘制检测到的人脸边界框?

我可以使用 ML kit 人脸检测来判断照片是不是包含人脸吗?

转载超简单集成HMS ML Kit 人脸检测实现可爱2D贴纸

无法使用 firebase ML 套件检测眨眼事件

用于 android 的 ML-Kit 人脸检测是不是支持 GPU 加速?