Connexion
S'inscrire
Actualités
Quoi de neuf
Activités générales
Auteurs
Forums
Nouveaux messages
Rechercher un forum
Quoi de neuf
Nouveaux messages
Nouveaux messages de profil
Activités générales
Membres
Membres inscrits
Visiteurs actuels
Nouveaux messages de profil
Rechercher dans les messages des profils
Teams
Créé ton équipe
Quoi de neuf ?
Nouveaux messages
Rechercher un forum
Menu
Connexion
S'inscrire
Install the app
Install
Forums
Forums généraux
Informatique
Développement
C# | Logiciel de reconnaissance facial
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
Vous utilisez un navigateur non à jour ou ancien. Il ne peut pas afficher ce site ou d'autres sites correctement.
Vous devez le mettre à jour ou utiliser un
navigateur alternatif
.
Répondre à la discussion
Message
<blockquote data-quote="Paradise'" data-source="post: 7115779" data-attributes="member: 300598"><p style="text-align: center">[ATTACH=full]107072[/ATTACH]</p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px">Sommaire</span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px"></span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px">I - Introduction & prérequis</span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px">II - Préparation du projet</span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px">III - Codage</span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px"></span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px">[ATTACH=full]107075[/ATTACH]</span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px"></span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px">Durant ce tutoriel vous allez apprendre à utiliser Face API en C Sharp proposé par l'entreprise Microsoft [FA]fa-windows[/FA] .</span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px">Cette API est payante mais une version gratuite est disponible qui permet d'effectué 30.000 requêtes par mois, ce qui je pense est quand même pas mal.</span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px"></span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px">En premier il faudra allez obtenir notre clef au près de Microsoft [FA]fa-windows[/FA], pour cela il faudra se rendre ici <a href="https://www.microsoft.com/cognitive-services/" target="_blank">https://www.microsoft.com/cognitive-services/</a> puis se connecter avec un compte ( compte Microsoft ).</span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px">Ensuite il faudra allez prendre l'accès gratuit de Face, ensuite on obtiendra deux clefs.</span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px"></span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px"><a href="https://www.virustotal.com/fr/file/06dbda49761a13a1cdb16a1b4113bef981527be77ec0018e56d5061f2abe536c/analysis/1493104105/" target="_blank">Virus Scan de la source</a></span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px"><a href="https://mega.nz/#!QIRywbDZ!nu0m_I4I89pq_im-Ma0xZbSvjomg2u5jjS2IuHIGL6Y" target="_blank">Code source</a></span></span></p> <p style="text-align: center"></p> <p style="text-align: center">[ATTACH=full]107077[/ATTACH]</p> <p style="text-align: center"></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px">Donc dans notre application on aura juste deux outils à mettre :</span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px">- 1 PictureBox | Nom : FacePhoto</span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px">- 1 Bouton | Nom : BrowseButton</span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px"></span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px">Ensuite on va allez installer le Package proposé par Microsoft pour ce faire :</span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px">Projet > Gérer les packages NuGet...</span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px">On va dans Parcourir et on cherche Microsoft.ProjectOxford.Face et on l'installe.</span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px"></span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px">Puis on ajoute au projet la bibliothèque : PresentationCore</span></span></p> <p style="text-align: center"></p> <p style="text-align: center">[ATTACH=full]107078[/ATTACH]</p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px">Tout d'abord on déclare l'utilisation de certaines bibliothèque, en ajoutant aussi la Bibliothèque WindowsBase.</span></span></p> <p style="text-align: center"></p><p>[CODE]</p><p>using System.IO;</p><p>using Microsoft.ProjectOxford.Face;</p><p>using Microsoft.ProjectOxford.Face.Contract;</p><p>using System.Windows.Media;</p><p>using System.Windows.Media.Imaging;</p><p>using System.Windows;</p><p>[/CODE]</p><p></p><p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px">Ensuite on va mettre notre clef obtenue précédemment</span></span></p> <p style="text-align: center"></p><p>[CODE]</p><p> private readonly IFaceServiceClient faceServiceClient = new FaceServiceClient("VOTRE CLEF");</p><p>[/CODE]</p><p></p><p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px">Par la suite on déclare la méthode fournie par Microsoft :</span></span></p> <p style="text-align: center"></p><p>[CODE]</p><p> private async Task<FaceRectangle[]> UploadAndDetectFaces(string imageFilePath)</p><p> {</p><p> try</p><p> {</p><p> using (Stream imageFileStream = File.OpenRead(imageFilePath))</p><p> {</p><p> var faces = await faceServiceClient.DetectAsync(imageFileStream);</p><p> var faceRects = faces.Select(face => face.FaceRectangle);</p><p> return faceRects.ToArray();</p><p> }</p><p> }</p><p> catch (Exception)</p><p> {</p><p> return new FaceRectangle[0];</p><p> }</p><p> }</p><p>[/CODE]</p><p></p><p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px">Pour finir voici le code de notre bouton :</span></span></p><p></p><p>[CODE]</p><p> private async void BrowseButton_Click(object sender, EventArgs e)</p><p> {</p><p> OpenFileDialog dialog = new OpenFileDialog();</p><p> dialog.Filter = "JPEG|*.jpg";</p><p> if (dialog.ShowDialog() == DialogResult.OK)</p><p> {</p><p> Image image = Image.FromFile(dialog.FileName);</p><p> }</p><p> string filePath = dialog.FileName;</p><p> Uri fileUri = new Uri(filePath);</p><p> BitmapImage bitmapSource = new BitmapImage();</p><p> bitmapSource.BeginInit();</p><p> bitmapSource.CacheOption = BitmapCacheOption.None;</p><p> bitmapSource.UriSource = fileUri;</p><p> bitmapSource.EndInit();</p><p> FacePhoto.ImageLocation = bitmapSource.ToString();</p><p> Form1.ActiveForm.Text = "Detection...";</p><p> FaceRectangle[] faceRects = await UploadAndDetectFaces(filePath);</p><p> Form1.ActiveForm.Text = String.Format("Detection terminée. " + faceRects.Length + " visage(s) détécté");</p><p> if (faceRects.Length > 0)</p><p> {</p><p> DrawingVisual visual = new DrawingVisual();</p><p> DrawingContext drawingContext = visual.RenderOpen();</p><p> drawingContext.DrawImage(bitmapSource,</p><p> new Rect(0, 0, bitmapSource.Width, bitmapSource.Height));</p><p> double dpi = bitmapSource.DpiX;</p><p> double resizeFactor = 96 / dpi;</p><p> foreach (var faceRect in faceRects)</p><p> {</p><p> drawingContext.DrawRectangle(</p><p> System.Windows.Media.Brushes.Transparent,</p><p> new System.Windows.Media.Pen(System.Windows.Media.Brushes.Red, 2),</p><p> new Rect(</p><p> faceRect.Left * resizeFactor,</p><p> faceRect.Top * resizeFactor,</p><p> faceRect.Width * resizeFactor,</p><p> faceRect.Height * resizeFactor</p><p> )</p><p> );</p><p> }</p><p> drawingContext.Close();</p><p> RenderTargetBitmap faceWithRectBitmap = new RenderTargetBitmap(</p><p> (int)(bitmapSource.PixelWidth * resizeFactor),</p><p> (int)(bitmapSource.PixelHeight * resizeFactor),</p><p> 96,</p><p> 96,</p><p> PixelFormats.Pbgra32);</p><p> faceWithRectBitmap.Render(visual);</p><p> System.Drawing.Bitmap bitmap;</p><p> using (MemoryStream outStream = new MemoryStream())</p><p> {</p><p> BitmapEncoder enc = new BmpBitmapEncoder();</p><p> enc.Frames.Add(BitmapFrame.Create(faceWithRectBitmap));</p><p> enc.Save(outStream);</p><p> bitmap = new System.Drawing.Bitmap(outStream);</p><p> }</p><p> FacePhoto.Image = bitmap;</p><p> }</p><p> }</p><p>[/CODE]</p><p></p><p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px">Faites attention comme vous avez pu le voir le terme async a été ajouté avant le private pour le bouton.</span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px"></span></span></p> <p style="text-align: center"><span style="font-family: 'MyriadPro'"><span style="font-size: 15px">Voici le rendu final du logiciel :</span></span></p> <p style="text-align: center"><span style="font-family: 'Fira Sans'"><img src="https://sc-cdn.scaleengine.net/i/aafe4f84e975796641ed9b05e8f43d361.png" alt="" class="fr-fic fr-dii fr-draggable " style="" /></span></p></blockquote><p></p>
[QUOTE="Paradise', post: 7115779, member: 300598"] [CENTER][ATTACH=full]107072[/ATTACH] [FONT=MyriadPro][SIZE=4]Sommaire I - Introduction & prérequis II - Préparation du projet III - Codage [ATTACH=full]107075[/ATTACH] Durant ce tutoriel vous allez apprendre à utiliser Face API en C Sharp proposé par l'entreprise Microsoft [FA]fa-windows[/FA] . Cette API est payante mais une version gratuite est disponible qui permet d'effectué 30.000 requêtes par mois, ce qui je pense est quand même pas mal. En premier il faudra allez obtenir notre clef au près de Microsoft [FA]fa-windows[/FA], pour cela il faudra se rendre ici [URL]https://www.microsoft.com/cognitive-services/[/URL] puis se connecter avec un compte ( compte Microsoft ). Ensuite il faudra allez prendre l'accès gratuit de Face, ensuite on obtiendra deux clefs. [URL='https://www.virustotal.com/fr/file/06dbda49761a13a1cdb16a1b4113bef981527be77ec0018e56d5061f2abe536c/analysis/1493104105/']Virus Scan de la source[/URL] [URL='https://mega.nz/#!QIRywbDZ!nu0m_I4I89pq_im-Ma0xZbSvjomg2u5jjS2IuHIGL6Y']Code source[/URL][/SIZE][/FONT] [ATTACH=full]107077[/ATTACH] [FONT=MyriadPro][SIZE=4]Donc dans notre application on aura juste deux outils à mettre : - 1 PictureBox | Nom : FacePhoto - 1 Bouton | Nom : BrowseButton Ensuite on va allez installer le Package proposé par Microsoft pour ce faire : Projet > Gérer les packages NuGet... On va dans Parcourir et on cherche Microsoft.ProjectOxford.Face et on l'installe. Puis on ajoute au projet la bibliothèque : PresentationCore[/SIZE][/FONT] [ATTACH=full]107078[/ATTACH] [FONT=MyriadPro][SIZE=4]Tout d'abord on déclare l'utilisation de certaines bibliothèque, en ajoutant aussi la Bibliothèque WindowsBase.[/SIZE][/FONT] [/CENTER] [CODE] using System.IO; using Microsoft.ProjectOxford.Face; using Microsoft.ProjectOxford.Face.Contract; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows; [/CODE] [CENTER][FONT=MyriadPro][SIZE=4]Ensuite on va mettre notre clef obtenue précédemment[/SIZE][/FONT] [/CENTER] [CODE] private readonly IFaceServiceClient faceServiceClient = new FaceServiceClient("VOTRE CLEF"); [/CODE] [CENTER][FONT=MyriadPro][SIZE=4]Par la suite on déclare la méthode fournie par Microsoft :[/SIZE][/FONT] [/CENTER] [CODE] private async Task<FaceRectangle[]> UploadAndDetectFaces(string imageFilePath) { try { using (Stream imageFileStream = File.OpenRead(imageFilePath)) { var faces = await faceServiceClient.DetectAsync(imageFileStream); var faceRects = faces.Select(face => face.FaceRectangle); return faceRects.ToArray(); } } catch (Exception) { return new FaceRectangle[0]; } } [/CODE] [CENTER][FONT=MyriadPro][SIZE=4]Pour finir voici le code de notre bouton :[/SIZE][/FONT][/CENTER] [CODE] private async void BrowseButton_Click(object sender, EventArgs e) { OpenFileDialog dialog = new OpenFileDialog(); dialog.Filter = "JPEG|*.jpg"; if (dialog.ShowDialog() == DialogResult.OK) { Image image = Image.FromFile(dialog.FileName); } string filePath = dialog.FileName; Uri fileUri = new Uri(filePath); BitmapImage bitmapSource = new BitmapImage(); bitmapSource.BeginInit(); bitmapSource.CacheOption = BitmapCacheOption.None; bitmapSource.UriSource = fileUri; bitmapSource.EndInit(); FacePhoto.ImageLocation = bitmapSource.ToString(); Form1.ActiveForm.Text = "Detection..."; FaceRectangle[] faceRects = await UploadAndDetectFaces(filePath); Form1.ActiveForm.Text = String.Format("Detection terminée. " + faceRects.Length + " visage(s) détécté"); if (faceRects.Length > 0) { DrawingVisual visual = new DrawingVisual(); DrawingContext drawingContext = visual.RenderOpen(); drawingContext.DrawImage(bitmapSource, new Rect(0, 0, bitmapSource.Width, bitmapSource.Height)); double dpi = bitmapSource.DpiX; double resizeFactor = 96 / dpi; foreach (var faceRect in faceRects) { drawingContext.DrawRectangle( System.Windows.Media.Brushes.Transparent, new System.Windows.Media.Pen(System.Windows.Media.Brushes.Red, 2), new Rect( faceRect.Left * resizeFactor, faceRect.Top * resizeFactor, faceRect.Width * resizeFactor, faceRect.Height * resizeFactor ) ); } drawingContext.Close(); RenderTargetBitmap faceWithRectBitmap = new RenderTargetBitmap( (int)(bitmapSource.PixelWidth * resizeFactor), (int)(bitmapSource.PixelHeight * resizeFactor), 96, 96, PixelFormats.Pbgra32); faceWithRectBitmap.Render(visual); System.Drawing.Bitmap bitmap; using (MemoryStream outStream = new MemoryStream()) { BitmapEncoder enc = new BmpBitmapEncoder(); enc.Frames.Add(BitmapFrame.Create(faceWithRectBitmap)); enc.Save(outStream); bitmap = new System.Drawing.Bitmap(outStream); } FacePhoto.Image = bitmap; } } [/CODE] [CENTER][FONT=MyriadPro][SIZE=4]Faites attention comme vous avez pu le voir le terme async a été ajouté avant le private pour le bouton. Voici le rendu final du logiciel :[/SIZE][/FONT] [FONT=Fira Sans][IMG]https://sc-cdn.scaleengine.net/i/aafe4f84e975796641ed9b05e8f43d361.png[/IMG][/FONT][/CENTER] [/QUOTE]
Insérer les citations…
Vérification
Publier la réponse
Forums
Forums généraux
Informatique
Développement
C# | Logiciel de reconnaissance facial
Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
Acceptez
En savoir plus.…
Haut