Ce message a été rendu public dans le cadre de la Blogathon sur la science des données.
introduction

Applications
- Accréditation faciale – Les caméras du téléphone utilisent un badge facial pour déverrouiller le téléphone. Des systèmes d'accréditation faciale pourraient être mis en place aux portes d'entrée des immeubles de bureaux.
- Classification des images – Utilisé pour distinguer plusieurs ensembles d'images. Des secteurs comme l'automobile, vendre au détail, les jeux, etc. ils l'utilisent à des fins multiples.
- Accréditation d'image – Les entreprises de sécurité utilisent l'accréditation d'image pour détecter diverses choses dans les valises dans les aéroports, scanners d'images, etc.
Étapes pour créer l'application
- Obtenez les données
- Préparation des données
- La modélisation des données
- Concevoir l'interface utilisateur
- Intégrer l'interface utilisateur et la modélisation
Obtenez les données
Les données seraient sous forme d'images, En d'autres termes, Photographies. Les images sont un tableau de pixels. Des images en plus grand nombre seraient nécessaires pour construire l'ensemble de l'application de bout en bout. Les données seront disponibles au sein de l'organisation elle-même ou doivent être obtenues à partir de l'Internet ouvert. Selon le type d'application, le type de données requises variera. S'il s'agit d'une demande d'accréditation faciale, Nous pouvons même créer des données grâce à la collecte d'images de différentes personnes. Si les images doivent être obtenues à partir de l'Internet ouvert, nous pouvons gratter les images du web.
Les images capturées doivent être de haute qualité résolutionLa "résolution" fait référence à la capacité de prendre des décisions fermes et d’atteindre les objectifs fixés.. Dans des contextes personnels et professionnels, Il s’agit de définir des objectifs clairs et d’élaborer un plan d’action pour les atteindre. La résolution est essentielle à la croissance personnelle et à la réussite dans divers domaines de la vie, car cela vous permet de surmonter les obstacles et de rester concentré sur ce qui compte vraiment.... et peuvent être légèrement déformées. Il peut y avoir une certaine quantité de bruit dans les images afin que l'algorithme puisse catégoriser correctement les images.
Exemple de grattage Web d'images sur une page Web –
à partir du pilote Web d'importation de sélénium
options = webdriver.ChromeOptions()
options.add_argument('--ignore-certificate-errors')
options.add_argument("--type de test")
options.binary_location = "/usr/bin/chrome"
pilote = webdriver.Chrome(chrome_options=options)
pilote.get('https://imgur.com/')
images = driver.find_elements_by_tag_name('img')
pour l'image dans les images:
imprimer(image.get_attribute('src'))
chauffeur.fermer()
Préparation des données
- Les images doivent être redimensionnées pour que toutes les images soient de la même taille
- Les images peuvent être nettes avec une haute résolution, ainsi qu'un peu flou et bruyant.
- Opérations de transformation comme traduction, la rotation et la mise à l'échelle doivent être appliquées de manière à ce que les images capturées soient présentes sous tous les angles.
- Les images peuvent être déformées ou coupées pour bien généraliser.
- Introduire du bruit dans les images s'il n'est pas présent
- Une répartition uniforme du nombre d'images doit être présentée dans chacune des classes.
– Auteur de Sapiens
Code pour redimensionner une image
img = cv2.imread('/home/img/python.png', cv2.IMREAD_UNCHANGED)
imprimer('Dimensions originales : ',img.forme)
scale_percent = 60
largeur = entier(img.forme[1] * échelle_pourcentage / 100)
hauteur = entier(img.forme[0] * échelle_pourcentage / 100)
faible = (largeur, la taille)
# redimensionner l'image
redimensionné = cv2.resize(img, faible, interpolation = cv2.INTER_AREA)
La modélisation des données
Une fois toutes les images obtenues, placez-les dans le dossier approprié pour chacune des classes. Assurez-vous qu'il y ait une distribution adéquate des images pour le entraînementLa formation est un processus systématique conçu pour améliorer les compétences, connaissances ou aptitudes physiques. Il est appliqué dans divers domaines, Comme le sport, Éducation et développement professionnel. Un programme d’entraînement efficace comprend la planification des objectifs, Pratique régulière et évaluation des progrès. L’adaptation aux besoins individuels et la motivation sont des facteurs clés pour obtenir des résultats réussis et durables dans toutes les disciplines...., ensembles de données de validation et de test. Pour la classification et l'accréditation des images, nous devrons utiliser des réseaux de neurones. L'architecture de convolucional neuronal rougeRéseaux de neurones convolutifs (CNN) sont un type d’architecture de réseau neuronal conçu spécialement pour le traitement de données avec une structure en grille, comme images. Ils utilisent des couches de convolution pour extraire des caractéristiques hiérarchiques, Ce qui les rend particulièrement efficaces dans les tâches de reconnaissance et de classification des formes. Grâce à sa capacité à apprendre à partir de grands volumes de données, Les CNN ont révolutionné des domaines tels que la vision par ordinateur.. s'adapte mieux aux images lorsqu'on travaille avec des matrices.
Les réseaux de neurones convolutifs ont différentes couches qui aident dans les opérations mathématiques effectuées sur les images. Les couches incluent la couche de convolution, calque de regroupement, la couche de standardisationLa normalisation est un processus fondamental dans diverses disciplines, qui vise à établir des normes et des critères uniformes afin d’améliorer la qualité et l’efficacité. Dans des contextes tels que l’ingénierie, Formation et administration, La standardisation facilite la comparaison, Interopérabilité et compréhension mutuelle. Lors de la mise en œuvre des normes, La cohésion est favorisée et les ressources sont optimisées, qui contribue au développement durable et à l’amélioration continue des processus.... par lot, fonctions de déclenchement et couches entièrement connectées. L'apprentissage direct vous donne la possibilité d'utiliser des architectures de modèle de réseau pré-entraînées qui fonctionnent bien avec des images de jeux de données standard. Alors commencez par écrire votre propre réseau, mais vous constaterez que les réseaux pré-entraînés vous donneront de bien meilleures performances.
Commencez avec certains des modèles de base pré-entraînés comme:
- VGG16
- Début
- Xception
- MobileNet
- ResNet50
Vous pouvez utiliser les bibliothèques Tensorflow ou Keras pour utiliser ces modèles qui présentent leurs implémentations dans la bibliothèque. Cela facilitera la modification des paramètresLes "paramètres" sont des variables ou des critères qui sont utilisés pour définir, mesurer ou évaluer un phénomène ou un système. Dans divers domaines tels que les statistiques, Informatique et recherche scientifique, Les paramètres sont essentiels à l’établissement de normes et de standards qui guident l’analyse et l’interprétation des données. Leur sélection et leur manipulation correctes sont cruciales pour obtenir des résultats précis et pertinents dans toute étude ou projet.... des différentes couches de l'architecture. Vous pouvez éviter le réglage des hyperparamètres pour améliorer les performances. Pendant la formation des modèles, veillez à enregistrer les valeurs des coefficients ou les poids du modèle. Ces valeurs que vous enregistrez peuvent être utilisées pour prédire les futures images que vous fournirez à votre application.
Code modèle VGG16
taille_image=224
à partir de keras.applications importer VGG16
à partir de modèles d'importation de keras
à partir de keras importer des calques
des optimiseurs d'importation keras
#Charger le modèle VGG
vgg_conv = VGG16(poids="imagenet", include_top=Faux, input_shape=(224, 224, 3))
pour la couche dans vgg_conv.layers[:-4]:
layer.trainable = False
pour la couche dans vgg_conv.layers:
imprimer(couche, couche.trainable)
modèle = modèles.Séquentiel()
# Ajouter le modèle de base convolutif vgg
model.ajouter(vgg_conv)
# Ajouter de nouvelles couches
model.ajouter(couches.Aplatir())
model.ajouter(couches.Dense(1024, activation='relu'))
model.ajouter(calques.Abandon(0.5))
model.ajouter(couches.Dense(29, activation='softmax'))
# Afficher un résumé du modèle. Vérifier le nombre de paramètres pouvant être entraînés
modèle.résumé()
La bibliothèque Keras vous permet d'enregistrer facilement les coefficients du modèle à l'aide de:
model.save('filename.h5')
Concevoir l'interface utilisateur
Une fois le modèle prêt à l'emploi, devrait fonctionner dans l'interface utilisateur. Si vous concevez une application Android, vous pouvez concevoir l'interface utilisateur à l'aide de Kotlin ou Flutter. L'interface utilisateur doit être facile à lire et à interpréter. Il doit être conçu de manière à répondre à l'objectif principal de l'application.
Si vous concevez une application Web, Flask ou Django pourraient être utilisés dans le même but. L'interface graphique pourrait être conçue à l'aide de bibliothèques Python comme Tkinter, etc.
Intégrer l'interface utilisateur et la modélisation
Pour les applications Android, Flutter vous permet d'intégrer vos modèles de classification à l'aide d'une bibliothèque appelée Tensorflow Lite. L'implémentation tensorflow lite n'a besoin que de deux fichiers pour la classification des images, En d'autres termes, le fichier texte des étiquettes de classe et le fichier des poids ou coefficients du modèle. Une fois ces deux fichiers placés dans la structure des dossiers, l'application Android sera complète et prête à être testée. Le widget appareil photo créé avec Flutter peut être utilisé pour prendre l'image d'entrée.
Code pour inclure les deux fichiers –
loadModel() asynchrone {
attendre Tflite.loadModel(
maquette: "assets/model_unquant.tflite",
Étiquettes: "actifs/étiquettes.txt",
);
}
Ici, le fichier .tflite est le fichier de coefficients qui est créé à partir du modèle et tags.txt sont les noms des classes d'images séparés par une nouvelle ligne. Intégrez ceci dans la structure Android.
Pour les applications Web, Flask vous permet d'intégrer la bibliothèque Tensorflow et vous permet d'utiliser les poids du modèle pour faire le bon type de prédiction sur l'image d'entrée.
Suite à cette procédure, pas à pas, vous pouvez créer votre propre modèle de classification tout de suite.



