Я новичок в быстром программировании, так что извините за мой язык
Я хотел запустить два метода в одном методе main
Один для использования ARKit
для создания приложения measure
, а под ним - модуль распознавания объектов COREML
. При запуске оба работают нормально, однако распознавание объектов работает на одном снимке (я хочу, чтобы это было видео в реальном времени). Когда поток останавливается, модуль обнаружения объектов работает с RT-видео, однако ARKit
не работает.
См. Пример кода ниже
override func viewDidLoad() {
super.viewDidLoad()
// Set the view's delegate
sceneView.delegate = self
// Show statistics such as fps and timing information
sceneView.showsStatistics = true
//Background
measurementLabel.frame = CGRect(x:0 , y:0, width: view.frame.size.width, height:100)
measurementLabel.backgroundColor = .white
measurementLabel.text = "0 inches"
measurementLabel.textAlignment = .center
sceneView.addSubview(measurementLabel)
// Sets the amount of taps needed to trigger the handler
let tapRecognizer = UITapGestureRecognizer(target: self, action: #selector(handleTap))
tapRecognizer.numberOfTapsRequired = 1
// Adds the handler to the scene view
sceneView.addGestureRecognizer(tapRecognizer)
//Lock taps after 4 inputs and save to array
//COREML integration
//Setting up the camera permissions
let captureSession = AVCaptureSession()
// captureSession.sessionPreset = .photo
guard let captureDevice = AVCaptureDevice.default(for: .video) else {return}
guard let input = try? AVCaptureDeviceInput(device: captureDevice) else {return}
captureSession.addInput(input)
captureSession.startRunning()
//Vision processing layer
let previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
view.layer.addSublayer(previewLayer)
previewLayer.frame = view.frame
let dataOutput = AVCaptureVideoDataOutput()
dataOutput.setSampleBufferDelegate(self, queue: DispatchQueue(label: "videoQueue"))
captureSession.addOutput(dataOutput)
//VNImageRequestHandler(cgImage: , options: [:]).perform(<#T##requests: [VNRequest]##[VNRequest]#>)
setupIdentifierConfidenceLabel()
}
Мой вопрос к вам в том, что моя ошибка в том, чтобы запустить их оба параллельно. Я знаю, что это очень маленький случай, но я не могу понять это