人脸检测在 FirebaseMLVision 中无法正常工作 iPhone X 肖像?

Posted

技术标签:

【中文标题】人脸检测在 FirebaseMLVision 中无法正常工作 iPhone X 肖像?【英文标题】:Face Detection is Not Working iPhone X Portrait in FirebaseMLVision? 【发布时间】:2019-09-11 05:29:48 【问题描述】:

我已经使用 google api 进行人脸检测。所以我已经通过 firebase 集成,也从 firebase 安装了框架。

当设备处于横向时,人脸检测在 iPhonex 中工作正常 模式。

但是当设备处于纵向模式时,它就不起作用了。

我已经调试,发现在FirebaseMLVision.frameworkprocessImage 传递图像的方法,但是当设备处于纵向时,结果总是空白。

方法 FirebaseMLVision.framework

- (void)processImage:(FIRVisionImage *)image
          completion:(FIRVisionFaceDetectionCallback)completion
    NS_SWIFT_NAME(process(_:completion:));

我如下调用:

[_faceRecognizer
     processImage:image
     completion:^(NSArray<FIRVisionFace *> *faces, NSError *error) 
         if (error != nil || faces == nil) 
             completed(emptyResult);
          else 
             completed([self processFaces:faces]);
         
     ];

请帮我看看有什么问题。

谢谢。

【问题讨论】:

如果您认为 SDK 运行不正常,请向 Firebase 支持提交错误报告。 support.google.com/firebase/contact/support @DougStevenson 好的,发送报告。 【参考方案1】:

您是否试用过快速入门 mlvision 示例应用程序?它的人脸检测在 iPhone X 纵向模式下应该可以正常工作。

【讨论】:

这里是快速入门 mlvision 示例应用程序的链接:github.com/firebase/quickstart-ios/tree/master/mlvision【参考方案2】:

我也遇到了同样的问题,但是已经解决了。 如果垂直长度超过 1280,则似乎无法检测到传递给 MLKit 的图像。

如果您使用的是AVCaptureSession,请尝试更改sessionPreset 的值。

let captureSession = AVCaptureSession()
captureSession.sessionPreset = .hd1280x720

通过将输出图像的分辨率固定为720x1280,可以正常检测到人脸。

如果您没有使用 AVCaptureSession,请尝试更改图像分辨率。

【讨论】:

以上是关于人脸检测在 FirebaseMLVision 中无法正常工作 iPhone X 肖像?的主要内容,如果未能解决你的问题,请参考以下文章

人脸识别中的活体检测是啥?

人脸检测实战:使用opencv加载深度学习模型实现人脸检测

谷歌人脸检测在转换为图像并尝试检测人脸时崩溃

深度学习在人脸检测中的应用 | CSDN 博文精选

在实时人脸检测 IOS 中检测弱光条件和人脸旋转角度 [关闭]

数码相机中的人脸检测有啥作用?使用人脸对焦的技巧和方法是啥?