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 = " "
}
ご意見ありがとうございます。私は完全にオープンソースが利用可能であるかどうかを見ています。もっと読むことができます。 – Stella