Je veux développer les filters en direct comme MSQRD / Snapchat filters en direct, mais je n'ai pas réussi à savoir comment dois-je procéder si j'utilise framework Augmented Reality et détecter le visage OU utiliser l'image de base pour détecter le visage et traiter en conséquence. S'il vous plaît laissez-moi savoir si quelqu'un a l'idée comment mettre en œuvre la même chose?
Je recommand d'aller avec Core Image
et CIDetector . https://developer.apple.com/library/ios/documentation/GraphicsImaging/Conceptual/CoreImaging/ci_detect_faces/ci_detect_faces.html Il est disponible depuis iOS 5 et dispose d'une excellente documentation.
Création d'un exemple de détecteur de visage:
CIContext *context = [CIContext contextWithOptions:nil]; // 1 NSDictionary *opts = @{ CIDetectorAccuracy : CIDetectorAccuracyHigh }; // 2 CIDetector *detector = [CIDetector detectorOfType:CIDetectorTypeFace context:context options:opts]; // 3 opts = @{ CIDetectorImageOrientation : [[myImage properties] valueForKey:kCGImagePropertyOrientation] }; // 4 NSArray *features = [detector featuresInImage:myImage options:opts]; // 5
Voici ce que fait le code:
1.- Crée un context; dans cet exemple, un context pour iOS. Vous pouvez utiliser n'importe laquelle des fonctions de création de context décrites dans Traitement des images.) Vous avez également la possibilité de fournir nil au lieu d'un context lorsque vous créez le détecteur.
2.- Crée un dictionary d'options pour spécifier la précision du détecteur. Vous pouvez spécifier une précision faible ou élevée. Faible précision (CIDetectorAccuracyLow) est rapide; une grande précision, montrée dans cet exemple, est complète mais plus lente.
3.- Crée un détecteur pour les visages. Le seul type de détecteur que vous pouvez créer est un pour les visages humains.
4.- Configure un dictionary d'options pour find des visages. Il est important que Core Image connaisse l'orientation de l'image pour que le détecteur sache où find les visages droits. La plupart du time, vous allez lire l'orientation de l'image à partir de l'image elle-même, puis fournir cette valeur au dictionary des options.
5.- Utilise le détecteur pour find des caractéristiques dans une image. L'image que vous fournissez doit être un object CIImage. Core Image renvoie un tableau d'objects CIFeature, chacun représentant un visage dans l'image.
Voici quelques projets ouverts qui pourraient vous aider à démarrer avec CoreImage
ou d'autres technologies comme GPUImage
ou OpenCV
1 https://github.com/aaronabentheuer/AAFaceDetection (CIDetector – Swift)
2 https://github.com/BradLarson/GPUImage (Objective-C)
3 https://github.com/jeroentrappers/FaceDetectionPOC (Objective-C: il a déprécié le code pour iOS9)
4 https://github.com/kairosinc/Kairos-SDK-iOS (Objective-C)
5 https://github.com/macmade/FaceDetect (OpenCV)
vous pouvez get une reference à partir de ce lien
Ici vous obtiendrez un SDK Luxand payant
Je développe le même genre d'application. J'ai utilisé la bibliothèque OFxfacetracker d'OpenFramework pour cela. Il fournit une maille qui contient les yeux, la bouche, la bordure du visage, la position du nez et les points (sumts).
Vous pouvez l'utiliser.
Je teste en utilisant Unity + OpenCV pour l'unité. Maintenant va essayer comment ofxfacetracker fait le suivi des gestes. Les filters peuvent être faits en unités, il y a aussi beaucoup de plugins dans le magasin de ressources qui aident dans le rendu en time réel dont vous avez besoin.