В моем приложении я хочу использовать распознавание лиц для UIImage, поэтому я использую CoreImage build in Library (я знаю, что Vision Library также является новейшей библиотекой для распознавания лиц. Но она поддерживает только для ios 11.0 и выше). Библиотека работает нормально, пока я не заметил кое-что, что любое изображение с круглой поверхностью будет распознаваться как лицо, даже если это не так.
Вот мой код:
func checkFaceDetection(image: UIImage) -> Bool {
var isFace = false
let personciImage = CIImage(image: image)
let accuracy = [CIDetectorAccuracy: CIDetectorAccuracyHigh]
let faceDetector = CIDetector(ofType: CIDetectorTypeFace, context: nil, options: accuracy)
let faces = faceDetector?.features(in: personciImage!)
if let face = faces?.first as? CIFaceFeature {
print("Found face at \(face.bounds)")
if face.hasLeftEyePosition && face.hasRightEyePosition && face.hasMouthPosition && face.hasFaceAngle{
isFace = true
}else{
isFace = false
}
}
return isFace
}
Даже если я отфильтрую это изображение левым глазом, правым глазом, ртом и лицом, он все еще не может решить мою проблему.