
🇪🇺🚫🏳️🌈Hungary just became the first EU country to ban Pride events in Viktor Orbán's latest anti-LGBTQ crackdown, allowing facial recognition to identify and punish disobedient attendees. Liberal opposition MPs (Momentum party) protested inside parliament by using smoke grenades. pic.twitter.com/dU9aLYm9r6
— Szabolcs Panyi (@panyiszabolcs) March 18, 2025
Les développeurs informatiques derrière de telles initiatives mettent à contribution des outils comme Libfacedetection, Openface ou encore Facenet
Libfacedetection permet de détecter jusqu’à 1562 images au format 128 pixels par 96 pixels, ce, en une seconde. Sur des formats plus imposants (640 pixels par 480 pixels), la vitesse de détection est de 60 images par seconde.
Le code de la lib peut générer un exécutable qui s’appuie sur des jeux d’instructions vectoriels. Pour le moment, l’auteur cite AVX2 pour les processeurs Intel et NEON pour les CPU ARM comme les choix disponibles pour les utilisateurs. C’est d’ailleurs dans ces conditions que la bibliothèque a permis d’atteindre ces performances qui, d’avis de certains internautes, « demeurent impressionnantes. »
« Il s'agit d'une bibliothèque open source pour la détection des visages sur des images à partir de réseaux de neurones à convolution. On s'est appuyé sur des variables statiques pour la conversion du modèle de réseau de neurones au sein des fichiers source en langage C. Le code source ne dépend d'aucune autre bibliothèque. Tout ce dont vous avez besoin c’est un compilateur C++. Vous pouvez compiler le code source sous Windows, Linux, ARM et toute autre plateforme avec un compilateur C++ », indique l’éditeur. La prise en main de la bibliothèque ne devrait pas poser de problème au lecteur à même d’exploiter l’exemple mis à disposition par l’auteur.
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 | /* By downloading, copying, installing or using the software you agree to this license. If you do not agree to this license, do not download, install, copy or use the software. License Agreement For libfacedetection (3-clause BSD License) Copyright (c) 2018-2020, Shiqi Yu, all rights reserved. shiqi.yu@gmail.com Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. * Neither the names of the copyright holders nor the names of the contributors may be used to endorse or promote products derived from this software without specific prior written permission. This software is provided by the copyright holders and contributors "as is" and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. In no event shall copyright holders or contributors be liable for any direct, indirect, incidental, special, exemplary, or consequential damages (including, but not limited to, procurement of substitute goods or services; loss of use, data, or profits; or business interruption) however caused and on any theory of liability, whether in contract, strict liability, or tort (including negligence or otherwise) arising in any way out of the use of this software, even if advised of the possibility of such damage. */ #include <stdio.h> #include <opencv2/opencv.hpp> #include "facedetectcnn.h" //define the buffer size. Do not change the size! //0x9000 = 1024 * (16 * 2 + 4), detect 1024 face at most #define DETECT_BUFFER_SIZE 0x9000 using namespace cv; using namespace std; int main(int argc, char* argv[]) { if(argc != 2) { printf("Usage: %s <image_file_name>\n", argv[0]); return -1; } //load an image and convert it to gray (single-channel) Mat image = imread(argv[1]); if(image.empty()) { fprintf(stderr, "Can not load the image file %s.\n", argv[1]); return -1; } int * pResults = NULL; //pBuffer is used in the detection functions. //If you call functions in multiple threads, please create one buffer for each thread! unsigned char * pBuffer = (unsigned char *)malloc(DETECT_BUFFER_SIZE); if(!pBuffer) { fprintf(stderr, "Can not alloc buffer.\n"); return -1; } /////////////////////////////////////////// // CNN face detection // Best detection rate ////////////////////////////////////////// //!!! The input image must be a BGR one (three-channel) instead of RGB //!!! DO NOT RELEASE pResults !!! TickMeter cvtm; cvtm.start(); pResults = facedetect_cnn(pBuffer, (unsigned char*)(image.ptr(0)), image.cols, image.rows, (int)image.step); cvtm.stop(); printf("time = %gms\n", cvtm.getTimeMilli()); printf("%d faces detected.\n", (pResults ? *pResults : 0)); Mat result_image = image.clone(); //print the detection results for(int i = 0; i < (pResults ? *pResults : 0); i++) { short * p = ((short*)(pResults + 1)) + 16*i; int confidence = p[0]; int x = p[1]; int y = p[2]; int w = p[3]; int h = p[4]; //show the score of the face. Its range is [0-100] char sScore[256]; snprintf(sScore, 256, "%d", confidence); cv::putText(result_image, sScore, cv::Point(x, y-3), cv::FONT_HERSHEY_SIMPLEX, 0.5, cv::Scalar(0, 255, 0), 1); //draw face rectangle rectangle(result_image, Rect(x, y, w, h), Scalar(0, 255, 0), 2); //draw five face landmarks in different colors cv::circle(result_image, cv::Point(p[5], p[5 + 1]), 1, cv::Scalar(255, 0, 0), 2); cv::circle(result_image, cv::Point(p[5 + 2], p[5 + 3]), 1, cv::Scalar(0, 0, 255), 2); cv::circle(result_image, cv::Point(p[5 + 4], p[5 + 5]), 1, cv::Scalar(0, 255, 0), 2); cv::circle(result_image, cv::Point(p[5 + 6], p[5 + 7]), 1, cv::Scalar(255, 0, 255), 2); cv::circle(result_image, cv::Point(p[5 + 8], p[5 + 9]), 1, cv::Scalar(0, 255, 255), 2); //print the result printf("face %d: confidence=%d, [%d, %d, %d, %d] (%d,%d) (%d,%d) (%d,%d) (%d,%d) (%d,%d)\n", i, confidence, x, y, w, h, p[5], p[6], p[7], p[8], p[9], p[10], p[11], p[12], p[13],p[14]); } imshow("result", result_image); waitKey(); //release the buffer free(pBuffer); return 0; } |
A new anti-LGBTQ+ law banning Pride events and allowing authorities to use facial recognition software to identify those attending the festivities was passed in Hungary on Tuesday.
— The Associated Press (@AP) March 19, 2025
It led to a large demonstration on the streets of Budapest, the country's capital. pic.twitter.com/7sfJGEc2aY
La mise à contribution de ces outils ravive le débat sur les avantages et les inconvénients de l’utilisation de cette technologie
Primo, la technologie acquiert de manière intrusive certaines des données les plus intimes des internautes. Étant donné que nos données nous appartiennent (conformément au règlement général sur la protection des données, par exemple), nous avons le droit de savoir quand des informations personnelles sont obtenues à notre sujet et dans quel but.
Deuxio, les données biométriques comportent leur propre risque en matière de sécurité. Contrairement à un mot de passe, les données biométriques ne peuvent pas être modifiées. Si des empreintes digitales sont divulguées, l’on ne peut pas les réinitialiser comme un mot de passe. En sus, un visage peut être scanné à tout moment et en tout lieu, sans le consentement de l’individu concerné. Cela signifie que les données biométriques peuvent en fait être stockées dans une série de bases de données, dont les mesures de sécurité peuvent être inadéquates.
La technologie de reconnaissance faciale est également connue pour fonctionner relativement bien sur les visages blancs et masculins, alors qu'elle présente un taux élevé d'inexactitude sur les personnes de couleur, en particulier si elles sont de sexe féminin. Cela signifie...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.