VNDetectFaceRectanglesRequest не вызывает завершениеHandler - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь определить лицо. Он не может обнаружить, потому что handleFaces не вызывается. Я хотел бы знать, почему это не называется и как я могу решить, если я хотел бы обнаружить лицо.

faceDetectionRequest = VNDetectFaceRectanglesRequest(completionHandler: self.handleFaces)

func handleFaces(request: VNRequest, error: Error?) {
    DispatchQueue.main.async {
        //perform all the UI updates on the main queue
        guard let results = request.results as? [VNFaceObservation] else { return }
        self.myView.removeMask()
        for face in results {
            self.myView.drawFaceboundingBox(face: face)
        }
    }
}

Пожалуйста, помогите мне решить эту проблему.

1 Ответ

0 голосов
/ 14 августа 2018

Я думаю, что вы должны вызвать execute для обработчика с запросами в качестве параметра, чтобы выполнить обнаружение. Если у вас есть статичное изображение, я думаю, что это может сработать:

import UIKit
import Vision

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        let faceDetectionRequest = VNDetectFaceRectanglesRequest(completionHandler: self.handleFaces)
        guard let image = UIImage(named: "sample") else { return }
        guard let cgImage = image.cgImage else { return }
        let handler = VNImageRequestHandler(cgImage: cgImage, options: [:])
        do {
            try handler.perform([faceDetectionRequest])
        } catch let reqErr {
            print("Failed to perform request:", reqErr)
        }
    }

    func handleFaces(request: VNRequest, error: Error?) {
        DispatchQueue.main.async {
            //perform all the UI updates on the main queue
            guard let results = request.results as? [VNFaceObservation] else { return }
            self.myView.removeMask()
            for face in results {
                self.myView.drawFaceboundingBox(face: face)
            }
        }
    }
}

Я должен отдать должное Брайану Вонгу из Let's Build That App за код: https://www.letsbuildthatapp.com/course_video?id=1572.

...