我正在使用CIDetector进行面部检测(与YOLO身体检测框架配合使用)。
在设置videoCapture时,我使用videoOutput.connection(withMediaType: AVMediaTypeVideo).videoOrientation = .portrait
以便YOLO框架可以正常工作,但这会立即打破面部检测,因为它返回的坐标只是疯狂。
我知道faceDetector有一个CIDetectorImageOrientation选项,即:
let imageOptions: NSDictionary = [CIDetectorImageOrientation: NSNumber(value: exifOrientation), CIDetectorSmile: false, CIDetectorEyeBlink: false]
faces = faceDetector.features(in: ciImage, options: imageOptions as? [String : Any])
我已将CIDetectorImageOrientation
的所有8个枚举值与videoOutput.connection(withMediaType: AVMediaTypeVideo).videoOrientation = .portrait
结合使用,并且面部检测器仍然只吐出最疯狂的坐标。
为了澄清,当videoOutput.connection(withMediaType: AVMediaTypeVideo).videoOrientation
保留为默认值时,面部检测工作正常(我认为它的风景是左图?)。
似乎CIDetector
和videoOutput.connection(withMediaType: AVMediaTypeVideo).videoOrientation = .portrait
无法和谐相处。
我的问题是,是否有一些我错过的会让CIDetector与videoOutput.connection(withMediaType: AVMediaTypeVideo).videoOrientation = .portrait
一起使用?