【发布时间】:2017-03-31 06:54:55
【问题描述】:
我正在尝试使用 CoreImage CIFeature 来检测面部情绪,因为它们是本机 API。我创建了一个示例视图控制器项目并更新了相关代码。当我启动这个 iOS 应用程序时,它会打开相机。当我抬起相机并表现出微笑的情绪时,下面的示例代码检测良好。 我还需要找到其他情绪,例如惊喜、悲伤和愤怒的情绪。我知道 CoreImage CIFeature 没有针对这些其他情绪的直接 API。但是,是否可以通过 iOS 程序尝试操纵可用的 API(例如 hasSmile、leftEyeClosed、rightEyeClosed 等)来检测其他情绪,例如惊喜、悲伤和愤怒?
任何人都可以使用此 API、场景并解决此问题,请提出建议并分享您的想法。
func captureOutput(_ captureOutput: AVCaptureOutput!, didOutputSampleBuffer sampleBuffer: CMSampleBuffer!, from connection: AVCaptureConnection!) {
let imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)
let opaqueBuffer = Unmanaged<CVImageBuffer>.passUnretained(imageBuffer!).toOpaque()
let pixelBuffer = Unmanaged<CVPixelBuffer>.fromOpaque(opaqueBuffer).takeUnretainedValue()
let sourceImage = CIImage(cvPixelBuffer: pixelBuffer, options: nil)
options = [CIDetectorSmile : true as AnyObject, CIDetectorEyeBlink: true as AnyObject, CIDetectorImageOrientation : 6 as AnyObject]
let features = self.faceDetector!.features(in: sourceImage, options: options)
for feature in features as! [CIFaceFeature] {
if (feature.hasSmile) {
DispatchQueue.main.async {
self.updateSmileEmotion()
}
}
else {
DispatchQueue.main.async {
self.resetEmotionLabel()
}
}
}
func updateSmileEmotion () {
self.emtionLabel.text = " "
self.emtionLabel.text = "HAPPY"
}
func resetEmotionLabel () {
self.emtionLabel.text = " "
}
【问题讨论】:
-
你有没有找到解决你问题的方法,请告诉我我也有要求
标签: ios swift core-image