Swift: CoreImage Face Detection обнаружит каждый круглый объект как лицо - PullRequest
0 голосов
/ 05 сентября 2018

В моем приложении я хочу использовать распознавание лиц для 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
    }

Даже если я отфильтрую это изображение левым глазом, правым глазом, ртом и лицом, он все еще не может решить мою проблему.

1 Ответ

0 голосов
/ 02 октября 2018

Вместо этого вы можете изменить CIDetectorAccuracyHigh на Low. это было бы более полезным

...