Медленное обнаружение лица Firebase MLKit - PullRequest
0 голосов
/ 21 мая 2018

Начал играть с детекторами лиц MLKit с фронтальной камерой, но очень медленно обрабатывает лица

func captureOutput(_ output: AVCaptureOutput, didOutput sampleBuffer: CMSampleBuffer, from connection: AVCaptureConnection) {

    print("Picture at ", Date())


    let visionImage = VisionImage(buffer: sampleBuffer)
    visionImage.metadata = metadata


    faceDetector?.detect(in: visionImage) { (faces, error) in
        guard error == nil, let faces = faces, !faces.isEmpty else {
            // Error. You should also check the console for error messages.
            let errorString = error?.localizedDescription
            print("Face detection failed with error: \(errorString)")
            return
        }

  }

Где я ошибаюсь?

1 Ответ

0 голосов
/ 22 мая 2018

Есть несколько способов ускорить обнаружение:

  1. Создайте свое приложение в режиме выпуска (оптимизированном), а не в режиме отладки.

  2. При создании вашего faceDetector убедитесь, что вы используете VisionFaceDetectorOptions и установите для его isTrackingEnabled значение true.

  3. При настройке AVCaptureVideoDataOutput добавьте следующеепара ключ-значение для его videoSettings:

ключ: kCVPixelBufferPixelFormatTypeKey

значение: kCVPixelFormatType_32BGRA

...