Во время работы ARKit на iPhone XS (с iOS 12.1.2 и Xcode 10.1) я получаю ошибки и сбои / зависания при запуске кода Vision для обнаружения границ лица.
Я получаю следующие ошибки:
2019-01-04 03:03:03.155867-0800 ARKit Vision Demo[12969:3307770] Execution of the command buffer was aborted due to an error during execution. Caused GPU Timeout Error (IOAF code 2)
2019-01-04 03:03:03.155786-0800 ARKit Vision Demo[12969:3307850] Execution of the command buffer was aborted due to an error during execution. Discarded (victim of GPU error/recovery) (IOAF code 5)
[SceneKit] Error: display link thread seems stuck
Это происходит на iPhone XS при выполнении следующего контрольного кода концепции для воспроизведения ошибки (всегда происходит в течение нескольких секунд после запуска приложения) - https://github.com/xta/ARKit-Vision-Demo
Соответствующий ViewController.swift содержит проблемные методы:
func classifyCurrentImage() {
guard let buffer = currentBuffer else { return }
let image = CIImage(cvPixelBuffer: buffer)
let options: [VNImageOption: Any] = [:]
let imageRequestHandler = VNImageRequestHandler(ciImage: image, orientation: self.imageOrientation, options: options)
do {
try imageRequestHandler.perform(self.requests)
} catch {
print(error)
}
}
func handleFaces(request: VNRequest, error: Error?) {
DispatchQueue.main.async {
guard let results = request.results as? [VNFaceObservation] else { return }
// TODO - something here with results
print(results)
self.currentBuffer = nil
}
}
Как правильно использовать Apple ARKit + Vision с VNDetectFaceRectanglesRequest
? Неправильное получение таинственных ошибок кода IOAF.
В идеале я также хотел бы использовать VNTrackObjectRequest и VNSequenceRequestHandler для отслеживания запросов.
Приличная онлайн-документация для использования VNDetectFaceRectanglesRequest с Vision (и без ARKit). У Apple есть страница здесь (https://developer.apple.com/documentation/arkit/using_vision_in_real_time_with_arkit), за которой я следовал, но я все еще получаю ошибки / сбои.