我正在编写一个android相机应用程序,并且正在使用MLKit设备上的API进行人脸检测。关于此API的好处是,它非常容易启动和运行,并且有一个sample app显示了如何执行此操作,但是感觉您只能用它做些什么。
我的问题是我收到了太多的误报(低精度),而且似乎无法控制。我可以设置的唯一选项是将modeType
设置为FAST_MODE
或ACCURATE_MODE
。但是我真正需要的是一些可以调整的旋钮,以达到所需的精度和召回率组合。
有人知道我是否可以使用API来获得对最终结果的额外控制吗?
答案 0 :(得分:0)
我认为您需要了解使用面部检测时可以使用的选项。
/** Libary Options */
val options = FirebaseVisionFaceDetectorOptions.Builder()
.setModeType(FirebaseVisionFaceDetectorOptions.ACCURATE_MODE) // used to state whether the recognition process should favour either speed or accuracy, can be set to either ACCURATE_MODE or FAST_MODE. This defaults to FAST_MODE.
.setLandmarkType(FirebaseVisionFaceDetectorOptions.ALL_LANDMARKS) // used to declare whether the recognition process should recognise facial landmarks such as the nose, eyes, mouth etc. This defaults to NO_LANDMARKS.
.setClassificationType(FirebaseVisionFaceDetectorOptions.ALL_CLASSIFICATIONS) // used to declare whether the recognition process should classify facial features such as whether the face is smiling or the eyes are open. This defaults to NO_CLASSIFICATIONS.
.setMinFaceSize(0.15f) //used to define the minimum size of a face (relative to the given image) for it to be detected. This value defaults to 0.1f.
.setTrackingEnabled(true) // used to declare whether or not an ID should be assigned to faces, for tracking faces between images. This defaults to false.
.build()
我举一个例子,但是使用西班牙语,或者如果您想了解有关此图书馆的更多信息,请阅读此中篇文章。 https://medium.com/google-developer-experts/exploring-firebase-mlkit-on-android-face-detection-part-two-de7e307c52e0
答案 1 :(得分:0)
我有类似的问题。 Google似乎没有公开面部质量得分,因此我通过计算自己的面部得分解决了这个问题。我使用Face对象的Landmark属性创建了自己的指标,例如:
我发现使用这些头角,地标数量等有效地滤除了假正脸。