Présentation
En anglaisRÉSUMÉ
Les smartphones et tablettes sous Android intègrent aujourd’hui plusieurs capteurs photographiques. Créer des applications visuelles les exploitant nécessite de contrôler directement l'appareil photo du smartphone mais également d'avoir une bonne connaissance de l’interface de programmation disponible. Cet article explique comment récupérer les caractéristiques techniques d’un capteur photo et comment l’exploiter. Nous apprendrons comment afficher l’image provenant du capteur, comment la capturer et comment l’analyser grâce à différents modèles pré-entraînés. Pour terminer, nous créerons notre propre modèle d’analyse grâce à l’apprentissage machine.
Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.
Lire l’articleABSTRACT
Android smartphones and tablets today integrate several photographic sensors. Creating visual applications using them requires direct control of the smartphone camera but also having a good knowledge of the available programming interface. This article explains how to retrieve the technical characteristics of a photo sensor and how to use it. We will learn how to display the image coming from the sensor, how to capture it and how to analyze it using different pre-trained models. Finally, we will create our own analysis model using machine learning.
Auteur(s)
-
Frédéric LEMOINE : Docteur et Ingénieur en informatique - Chef de projet en développement d’applications Conservatoire national des Arts et Métiers (CNAM)
INTRODUCTION
Google Android™ est un système d’exploitation conçu pour les appareils mobiles (téléphones, tablettes, etc). En 2005, la société Google a racheté une petite startup appelée Android Inc. qui développait des applications pour téléphones mobiles. L’objectif de ce rachat était de créer une nouvelle plate-forme mobile concurrençant les principaux acteurs de l’époque : Symbian, Windows mobile, Palm OS, etc.
En 2007, le consortium OHA (Open Handset Alliance), bâti autour de ce système, a été créé. Il regroupait des opérateurs de téléphonie, des fabricants de semi-conducteurs, de téléphones, des éditeurs de logiciels et des distributeurs. Android™ a alors été officiellement annoncée comme nouvelle plate-forme pour dispositifs mobiles.
En 2008, la première version du kit de développement SDK (Software Development Kit), est sortie. Depuis, la part de marché d’Androïd™ a continué de croître et concurrence celle d’Apple (iPhone OS). Ses domaines d’application s’étendent de jour en jour, et ils concernent même maintenant la domotique ou les téléviseurs.
Android™ est fondé sur un noyau Linux. Son code est ouvert et disponible en Open source. Son langage de programmation est le Java.
Le succès d’Android™ tient beaucoup à l’amélioration de l’interactivité de l’utilisateur avec son appareil. Celle-ci s’est beaucoup perfectionnée grâce à l’arrivée de nouveaux types de capteurs.
Le capteur photo est l’un des nombreux capteurs présents sur tout smartphone Android™. C’est un composant électronique chargé de collecter la lumière issue de l’objectif et de la convertir en information électrique. Le processeur de traitement d’image convertit ensuite ce signal analogique en information numérique.
Cet article a pour but d’expliquer comment récupérer les caractéristiques de ce capteur, puis de montrer comment l’exploiter. Nous apprendrons notamment comment afficher l’image provenant du capteur, comment la capturer, et comment l’analyser, grâce à différents modèles pré-entraînés. Puis nous apprendrons à créer le nôtre grâce à l’apprentissage machine.
MOTS-CLÉS
informatique Programmation intelligence artificielle électronique Apprentissage machine réseau de neurones
KEYWORDS
computer science | programming | artificial intelligence | electronic | machine learning | neural network
DOI (Digital Object Identifier)
CET ARTICLE SE TROUVE ÉGALEMENT DANS :
Accueil > Ressources documentaires > Technologies de l'information > Le traitement du signal et ses applications > Gestion audio, images et vidéo numériques > Capture et analyse d’images sous Android > Aperçu et affichage du flux video provenant du capteur
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(239 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Présentation
2. Aperçu et affichage du flux video provenant du capteur
Nous nous fonderons sur la technologie Android CameraX. CameraX est un complément d’Android™ qui facilite l’ajout de fonctionnalités d’appareil photo à votre application. CameraX est pris en charge sur presque tous les appareils Android™ exécutant Android 5.0 (API niveau 21) et supérieur, garantissant que le même code fonctionne sur la plupart des appareils du marché. CameraX est utilisé pour s’interfacer avec la caméra via une abstraction appelée « cas d’utilisation ». Un « cas d’utilisation » permet de se concentrer sur la tâche que l’on doit accomplir au lieu de passer du temps à gérer les subtilités propres à l’appareil.
Les « cas d’utilisation » actuellement disponibles sont :
-
aperçu : pour obtenir une image sur l’écran ;
-
capture d’image : capture et enregistre des images de haute qualité ;
-
analyse d’image : fournit les images au processeur pour analyse, en utilisant, par exemple, les techniques d’intelligence artificielle.
Les cas d’utilisation peuvent être combinés et actifs simultanément. Par exemple, une application peut permettre à l’utilisateur de visualiser l’image provenant de la caméra (aperçu), de l’analyser pour déterminer si des personnes sourient et, en même temps, inclure un cas d’utilisation de capture d’image pour, éventuellement, sauvegarder une photo.
Nous allons ici afficher le flux vidéo provenant de la caméra.
Nous demandons d’abord un ProcessCameraProvider :
ListenableFuture<ProcessCameraProvider> cameraProviderFuture = ProcessCameraProvider.getInstance(this);
Nous vérifions que le CameraProvider est disponible :
cameraProviderFuture.addListener(() -> {
try {
ProcessCameraProvider cameraProvider = cameraProviderFuture.get();
bindPreview(cameraProvider);
} catch (ExecutionException | InterruptedException e) {
}
}, ContextCompat.getMainExecutor(this));
Le code principal sera ajouté dans la fonction bindPreview qui doit être créée :
void bindPreview(@NonNull ProcessCameraProvider cameraProvider)
2.1 Sélection de la caméra
Dans la fonction bindPreview, nous allons choisir la caméra que l’on souhaite utiliser.
- LENS_FACING_BACK : sélection de la caméra arrière
-...
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(239 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive
Aperçu et affichage du flux video provenant du capteur
BIBLIOGRAPHIE
-
(1) - - https://developer.android.com/reference/ android/hardware/camera2/Camera Characteristics
-
(2) - TURING (A.M.) - Computing Machinery and Intelligence. - Mind, LIX(236), p. 433-460 (1950).
-
(3) - MCCULLOCH (W.), PITTS (W.) - A logical calculus of the ideas immanent in nervous activity. - Bulletin of Mathematical Biology, 5, p. 115-133 (1943).
-
(4) - TURING (A.M.) - On Computable Numbers, with an application to the entscheidungproblem. - Proceedings of the London Mathematical Society, 1, p. 230-265 (1937).
-
(5) - ROSENBLATT (F.) - The perceptron: A probabilistic model for information storage and organization in the brain. - Psychological Review, 65(6), p. 386-408 (1958).
-
(6) - - https://www.cs.toronto.edu/~kriz/cifar.html
- ...
DANS NOS BASES DOCUMENTAIRES
ANNEXES
Android developers (page consultée le 14 juillet 2023). Site de référence pour la programmation sur la plateforme Android™. Ce site présente une importante base documentaire de référence ainsi que les outils nécessaires à la programmation https://developer.android.com/
Kit de développement pour la plateforme Android™ (page consultée le 14 juillet 2023). L’ensemble des outils nécessaires à installer pour développer des applications pour la plateforme Android™ https://developer.android.com/studio
Android™ (page consultée le 14 juillet 2023). Ce site officiel fournit des informations pour les utilisateurs, développeurs et partenaires. Il comprend des communiqués de presse, des vidéos, des copies d'écran et de nombreux téléchargements http://www.android.com/
Android™ Compatibility Program (page consultée le 14 juillet 2023). Site recensant les critères que doit respecter un constructeur pour certifier son matériel compatible avec la plate-forme Android™ http://source.android.com/compatibility/overview.html
The MNIST (Mixed National Institute of Standards and Technology) database of handwritten digits (page consultée le 17 juillet 2023). Site présentant la base de données MNIST de...
Cet article fait partie de l’offre
Technologies logicielles Architectures des systèmes
(239 articles en ce moment)
Cette offre vous donne accès à :
Une base complète d’articles
Actualisée et enrichie d’articles validés par nos comités scientifiques
Des services
Un ensemble d'outils exclusifs en complément des ressources
Un Parcours Pratique
Opérationnel et didactique, pour garantir l'acquisition des compétences transverses
Doc & Quiz
Des articles interactifs avec des quiz, pour une lecture constructive