2016-11-16 3 views
0

Я пытаюсь использовать CoreImage CIFeature для обнаружения эмоций лица, поскольку они являются родными API. Я создал проект контроллера образца и обновил соответствующий код. Когда я запускаю это приложение iOS, он открывает камеру. Когда я смотрю на камеру и проявляю эмоцию улыбки, этот примерный код обнаруживает штраф. Мне также нужно найти другие эмоции, такие как: «Сюрприз», «Сад» и «Злые эмоции». Я понимаю, что CoreImage CIFeature не имеет прямых API для этих других эмоций. Но возможно ли пытаться манипулировать доступными API (такими как hasSmile, leftEyeClosed, rightEyeClosed и т. Д.) Для обнаружения других эмоций, таких как Surprise, Sad and Angry через программу iOS?CoreImage CIFeature для обнаружения эмоций лица

Может ли кто-нибудь столкнуться с работой с этими 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 = " " 
} 

ответ

0

Существует множество библиотек, которые могут анализировать настроения на изображениях, и большинство из них полагаются на машинное обучение. Его очень маловероятно, что вы собираетесь получать такие же результаты, просто глядя на то, что дает CIFeature, потому что он довольно ограничен даже по сравнению с другими библиотеками распознавания лиц. См. Google Cloud Vison, IBM Watson Cloud iOS SDK, Microsoft Cognitive Services

+0

Спасибо за предложения. Я смотрю, доступен ли какой-либо полностью открытый источник, может читать и изменять больше. – Stella

Смежные вопросы