通过 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 文档,如果您将setCountourMode
到ALL_CONTOURS
,则只能检测到图像中最突出的人脸。
如果要检测多个人脸,可以setContourMode
到NO_CONTOURS
。
【讨论】:
以上是关于通过 Firebase ML Kit 人脸检测检测多张人脸的轮廓的主要内容,如果未能解决你的问题,请参考以下文章
如何避免在 firebase ML Kit 的人脸检测 API 中捕获模糊图像
如何在 Firebase ML kit Android 中正确绘制检测到的人脸边界框?
我可以使用 ML kit 人脸检测来判断照片是不是包含人脸吗?