Firebase MLKit 眼睛轮廓 getPoints

Posted

技术标签:

【中文标题】Firebase MLKit 眼睛轮廓 getPoints【英文标题】:Firebase MLKit Eye Contour getPoints 【发布时间】:2020-10-07 21:46:14 【问题描述】:

我正在尝试使用 Firebase ML 套件从每个眼睛检测中获取点列表。

我已经成功获得了每只眼睛的眼睛位置(X,Y),

但是当我尝试调用检索所有点时,它会返回一个空数组。我正在使用的代码如下,我从 FirebaseVisionFaceContour 尝试了左右眼的不同版本。

for (FirebaseVisionFace face : faces)
                
                    leftEye = face.getLandmark(FirebaseVisionFaceLandmark.LEFT_EYE);
                    if (leftEye != null) 
                        leftEyePos = leftEye.getPosition();
                        Log.d(TAG, "Left eye position: " + leftEyePos);

                    

                    rightEye = face.getLandmark(FirebaseVisionFaceLandmark.RIGHT_EYE);
                    if (rightEye != null) 
                        rightEyePos = rightEye.getPosition();
                        Log.d(TAG, "Right eye position: " + rightEyePos);

                    
                    leftEyeContour = face.getContour(FirebaseVisionFaceContour.LEFT_EYE).getPoints();
                    Log.d(TAG, "Left eye contour: " + Arrays.toString(leftEyeContour));

                    rightEyeContour = face.getContour(FirebaseVisionFaceContour.RIGHT_EYE).getPoints();

                    for (int i=0; i<rightEyeContour.size(); i++)
                        Log.d(TAG, "Right eye contour: " + rightEyeContour.get(i).getX().toString());
                        Log.d(TAG, "Right eye contour: " + rightEyeContour.get(i).getY().toString());   
                    
                

你知道如何解决它并获得眼部轮廓的所有点吗?

【问题讨论】:

【参考方案1】:

要获取所有面部轮廓点,您必须在选项中启用 ALL_CONTOURS。

【讨论】:

我已在选项中启用它们。我的问题是我得到了一个空的点数组。 图片中有人脸吗?面部轮廓为全部或为空,这意味着它将返回所有轮廓点或不返回任何内容。所以请确保整张脸都出现在图像中

以上是关于Firebase MLKit 眼睛轮廓 getPoints的主要内容,如果未能解决你的问题,请参考以下文章

如何为 MLkit 面部检测实现 CMSampleBuffer?

react-native-firebase-mlkit textRecognizerProcessImage 不是函数

Firebase ML Kit 无法检测到人脸

MLKit Firebase android - 如何将 FirebaseVisionFace 转换为图像对象(如位图)?

MLKit 旋转面部图像使其笔直(iOS 和 Android)

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