2016-11-16 1 views
0

Ich versuche, CoreImage CIFeature zur Erkennung von Gesichtsgefühlen zu verwenden, da dies die nativen APIs sind. Ich habe ein Beispielansicht-Controller-Projekt erstellt und zugehörigen Code aktualisiert. Wenn ich diese iOS-Anwendung starte, öffne ich die Kamera. Wenn ich die Kamera nach oben schaue und Lächeln Emotion zeige, erkennt dieser unter Beispielcode gut. Ich muss auch andere Emotionen wie, Überraschung, Traurige und böse Emotionen finden. Ich verstehe, dass CoreImage CIFeature keine direkten APIs für diese anderen Emotionen hat. Aber, ist es möglich zu versuchen, die verfügbaren APIs (wie hasSmile, leftEyeClosed, rightEyeClosed usw.) zu manipulieren, um andere Emotionen wie Surprise, Sad und Angry durch iOS-Programm zu erkennen?CoreImage CIFeature zum Erkennen von Gesichtsgefühlen

Könnte jemand mit diesen APIs arbeiten, Szenario und dieses Problem lösen, bitte schlagen Sie vor und teilen Sie Ihre Ideen.

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 = " " 
} 

Antwort

0

Es gibt eine Vielzahl von Bibliotheken, die Sentiment-Analysen für Bilder durchführen können, und die meisten davon basieren auf maschinellem Lernen. Es ist sehr unwahrscheinlich, dass Sie die gleichen Ergebnisse erzielen werden, wenn Sie nur darauf schauen, was CIFeature Ihnen bietet, da es im Vergleich zu anderen Gesichtserkennungs-Bibliotheken ziemlich begrenzt ist. Siehe Google Cloud Vison, IBM Watson Cloud iOS SDK, Microsoft Cognitive Services

+0

Danke für die Vorschläge. Ich schaue mir an ob überhaupt eine komplett Open Source verfügbar ist, kann mehr lesen und modifizieren. – Stella

Verwandte Themen