Je souhaite développer les filtres de visage en direct sous la forme de filtres en direct MSQRD / Snapchat, mais je ne suis pas en mesure de savoir comment procéder. Devrais-je utiliser le cadre de réalité augmentée et détecter un visage OU utiliser une 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 de mettre en œuvre la même chose?
Réponses
Trop de publicités?Je vous recommande 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 a été disponible depuis iOS 5 et il a beaucoup de documentation.
Création d'une face détecteur exemple:
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 contexte; dans cet exemple, un contexte pour iOS. Vous pouvez utiliser le contexte de création des fonctions décrites dans le Traitement d'Images.) Vous avez également la possibilité de fournir néant à la place d'un contexte lorsque vous créez le détecteur.)
2.- Crée un dictionnaire de spécifier la précision du détecteur. Vous pouvez spécifier de basse ou de haute précision. Faible précision (CIDetectorAccuracyLow) est rapide, de haute précision, dans cet exemple, est complète mais plus lente.
3.- Crée un détecteur de visages. Le seul type de détecteur, vous pouvez créer est un pour les visages humains.
4.- Met en place un dictionnaire pour trouver des visages. Il est important de les laisser Core Image de connaître l'orientation d'image de sorte que le détecteur sait où on peut trouver à la verticale visages. La plupart du temps, vous aurez lu l'orientation d'image à partir de l'image elle-même, et de le proposer ensuite de la valeur pour les options de dictionnaire.
5.- Utilise le détecteur de trouver les caractéristiques d'une image. L'image que vous fournissez doit être un CIImage objet. Core Image renvoie un tableau de CIFeature objets, dont chacun représente un visage dans l'image.
Voici quelques projets qui pourraient vous aider à démarrer avec CoreImage
ou à d'autres technologies comme l' 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 est déconseillé de code pour iOS9)
4 https://github.com/kairosinc/Kairos-SDK-iOS (Objective-C)
5 https://github.com/macmade/FaceDetect (OpenCV)
Je teste en utilisant Unity + OpenCV pour l'unité. Nous allons maintenant essayer comment ofxfacetracker effectue le suivi des gestes. Les filtres peuvent être utilisés en désactivant les shaders disponibles dans l’unité. Il existe également de nombreux plug-ins dans le magasin d’actifs qui vous aident à rendre en temps réel le rendu dont vous avez besoin.