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

时间:2019-07-25 13:54:02

标签: java face-detection firebase-mlkit

我在这个https://developers.google.com/vision/android/detect-faces-tutorial库中读到某个地方,它只能检测图片中一张脸的轮廓。而不是我升级了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 个答案:

答案 0 :(得分:0)

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