2016-11-16 4 views
0

CoreImage CIFeatureを、ネイティブAPIである顔の感情を検出するために使用しようとしています。サンプルビューコントローラプロジェクトを作成し、関連するコードを更新しました。このiOSアプリケーションを起動すると、カメラが開きます。カメラを見て笑顔感情を見せたら、以下のサンプルコードはうまく検出されます。 私はまた、サプライズ、悲しい、怒っている感情のような他の感情を見つける必要があります。私は、CoreImage CIFeatureにはこれらの他の感情に直接的なAPIがないことを理解しています。しかし、利用可能なAPI(hasSmile、leftEyeClosed、rightEyeClosedなど)を操作して、iOSプログラムを通じてSurprise、Sad、Angryなどの他の感情を検出することは可能ですか?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 VisonIBM Watson Cloud iOS SDKMicrosoft Cognitive Services

+0

ご意見ありがとうございます。私は完全にオープンソースが利用可能であるかどうかを見ています。もっと読むことができます。 – Stella

関連する問題