Créa-blog

Ressources pour développeur web

Reconnaissance d’Image par l’IA et PHP : l’API Google Vision

Accueil PHP 8 Reconnaissance d’Image par l’IA et PHP : l’API Google Vision

La reconnaissance d’image grâce à l’intelligence artificielle (IA) est devenue l’une des technologies les plus révolutionnaires de notre époque. Elle trouve des applications dans divers domaines tels que la sécurité, la santé, l’e-commerce et bien plus encore. Ici, nous allons découvrir comment mettre en œuvre la reconnaissance d’image en utilisant l’IA et PHP avec l’API Google Vision.

Qu’est-ce que la reconnaissance d’image et l’IA ?

La reconnaissance d’image est la capacité d’un système informatique à identifier et à interpréter les caractéristiques d’une image. L’intelligence artificielle joue un rôle crucial dans ce processus, en permettant aux machines d’apprendre à reconnaître des motifs et des caractéristiques dans les images de manière autonome.

Google Cloud Vision API est l’un des services d’IA les plus populaires pour la reconnaissance d’image. Il utilise des algorithmes d’apprentissage automatique avancés pour détecter et identifier des objets, des visages, des textes et bien d’autres éléments dans les images.

Implémentation en PHP

PHP est un langage de programmation populaire pour le développement web, et bien qu’il ne soit pas traditionnellement associé à l’intelligence artificielle, il est tout à fait possible d’intégrer des fonctionnalités de reconnaissance d’image basées sur l’IA et PHP en utilisant des API comme Google Cloud Vision.

Que faire avec l’API google vision en php ?

  • Détection d’objets : L’API peut détecter et identifier différents objets dans une image, tels que des voitures, des animaux, des meubles…
  • Reconnaissance de texte : Google Vision peut extraire le texte présent dans une image, qu’il s’agisse de panneaux de signalisation, de documents, ou d’autres éléments textuels. Cela peut être utile pour la numérisation de documents, la traduction automatique, ou la lecture de textes sur des images.
  • Détection de visages : L’API peut détecter les visages dans une image, ainsi que leurs caractéristiques telles que les yeux, le nez, la bouche, etc. Vous pouvez utiliser cette fonctionnalité pour créer des applications de reconnaissance faciale, d’analyse d’émotions, ou de vérification d’identité.
  • Analyse de contenu inapproprié : Google Vision peut identifier le contenu inapproprié ou offensant dans une image, comme des images à caractère violent, sexuel, ou haineux. Cela peut être utilisé pour filtrer le contenu indésirable sur les plateformes en ligne.
  • Analyse de la qualité de l’image : L’API peut évaluer la qualité globale d’une image, en identifiant des problèmes tels que le flou, le contraste insuffisant, ou la luminosité incorrecte…
  • Reconnaissance de Logo et de Marque : Vous pouvez utiliser l’API pour détecter les logos et les marques présents dans une image.
  • Analyse de produits : Si vous gérez un site d’e-commerce, vous pouvez utiliser l’API pour analyser les images de produits et extraire automatiquement des informations telles que le type de produit, la couleur, la marque…

Reconnaissance d’Image par l’IA et PHP : l’API Google Vision

Niveau Gratuit : Google offre un quota gratuit d’utilisation de l’API Cloud Vision chaque mois. Ce quota gratuit vous permet d’effectuer un certain nombre de requêtes gratuites, généralement limitées 1000 par mois. Cela vous permet d’explorer et de tester l’API sans engager de frais.

Configuration de Google Cloud Vision

1. Créer un Compte Google Cloud Platform (GCP) : Rendez-vous sur le site web de Google Cloud Platform : cloud.google.com. Si vous n’avez pas déjà un compte, créez-en un en suivant les instructions fournies.

2. Créer un Projet : Une fois connecté à votre compte GCP, accédez à la console Google Cloud : console.cloud.google.com. Cliquez sur le sélecteur de projet et sélectionnez Nouveau projet. Donnez un nom à votre projet, puis cliquez sur Créer.

3. Activer l’API Cloud Vision : Dans la console Google Cloud, assurez-vous que le projet que vous venez de créer est sélectionné. Dans le panneau de navigation à gauche, cliquez sur API et Services > Bibliothèque. Recherchez Vision API à l’aide de la barre de recherche. Cliquez sur Vision API lorsque vous le trouvez. Cliquez sur le bouton Activer pour activer l’API pour votre projet.

4. Configurer les Autorisations d’Accès : Dans la console Google Cloud, toujours dans votre projet, accédez à API et Services > Identifiants. Cliquez sur Créer des identifiants puis sélectionnez Clé API. Une fois la clé API créée, vous pouvez la restreindre en fonction de vos besoins de sécurité. Par exemple, vous pouvez la restreindre par adresse IP pour limiter l’accès uniquement à certaines adresses IP. Notez la clé API générée, car vous en aurez besoin pour authentifier vos requêtes à l’API Cloud Vision.

Intégrer l’API Google Cloud Vision dans une application PHP

Intégrer l’API Google Cloud Vision dans une application PHP implique plusieurs étapes, notamment l’installation d’une bibliothèque cliente, l’authentification avec Google Cloud Platform, et l’appel des services Vision de manière appropriée dans votre code PHP :

Installation de la Bibliothèque Cliente PHP de Google Cloud Vision

Google fournit une bibliothèque cliente PHP officielle qui facilite l’intégration de l’API Cloud Vision dans vos projets PHP. Vous pouvez l’installer à l’aide de Composer, le gestionnaire de dépendances PHP. Exécutez la commande suivante dans votre terminal à la racine de votre projet PHP :

composer require google/cloud-vision

Cela téléchargera et installera la bibliothèque cliente de Google Cloud Vision dans votre projet PHP.

Configuration de l’Authentification

Pour utiliser l’API Cloud Vision, vous devez authentifier vos requêtes avec Google Cloud Platform. Vous pouvez le faire en fournissant des informations d’identification appropriées à la bibliothèque cliente. Google prend en charge plusieurs méthodes d’authentification, notamment l’utilisation de clés d’API ou de fichiers de clés de service JSON. Vous pouvez choisir la méthode qui convient le mieux à votre cas d’utilisation.

  1. Accédez à la console Google Cloud : https://console.cloud.google.com/.
  2. Assurez-vous que vous êtes connecté au compte Google associé à votre projet Google Cloud.
  3. Sélectionnez votre projet ou créez-en un nouveau.
  4. Dans le panneau de navigation, accédez à IAM & admin > Service accounts (ou Gestion des API > Comptes de service dans la version française).
  5. Cliquez sur Create Service Account pour créer un nouveau compte de service.
  6. Donnez un nom à votre compte de service, puis cliquez sur Create.
  7. Sur la page Service account permissions (ou Autorisations du compte de service), vous pouvez ajouter les autorisations nécessaires à ce compte de service, en fonction des fonctionnalités que vous souhaitez utiliser.
  8. Cliquez sur Continue puis sur Done pour terminer la création du compte de service.
  9. Recherchez le compte de service que vous venez de créer dans la liste, puis cliquez sur les trois points dans la colonne Actions.
  10. Sélectionnez Create key (ou Créer une clé) dans le menu déroulant.
  11. Choisissez le format de la clé (JSON est recommandé), puis cliquez sur Create pour télécharger le fichier JSON contenant votre clé de service.

Il vous faudra placer le fichier JSON téléchargé à la racine du dossier de votre projet.

<?php
require 'vendor/autoload.php';

use Google\Cloud\Vision\V1\ImageAnnotatorClient;

// Spécifier le chemin vers le fichier de clé de service JSON
$credentialsPath = '/chemin/vers/votre/fichier/credentials.json';

// Créer un client de l'API Cloud Vision avec le fichier de clé de service JSON
$imageAnnotator = new ImageAnnotatorClient(['credentials' => $credentialsPath]);

// Votre code pour appeler l'API Cloud Vision ici

// Libérer les ressources
$imageAnnotator->close();
?>

Maintenant que la mise en place est terminée, nous allons pouvoir travailler sur des images.

Utiliser l’API Google Cloud Vision dans une application PHP.

Pour pouvoir utiliser les services Google Cloud, même pour un période d’essai, il vous faudra mettre à jour votre mode de paiement pour qu’aucun message d’erreur n’apparaisse.

Une fois la facturation activée pour votre projet, vous devriez être en mesure d’utiliser l’API Cloud Vision sans rencontrer d’erreur. Assurez-vous de surveiller vos coûts d’utilisation de l’API Cloud Vision pour éviter les frais imprévus, même si vous êtes dans la phase gratuite.

Exemple 1 : Détection d’objets dans une image

<?php
require 'vendor/autoload.php';

use Google\Cloud\Vision\V1\ImageAnnotatorClient;

// Spécifier le chemin vers le fichier de clé de service JSON
$credentialsPath = '/chemin/vers/votre/fichier/credentials.json';

// Créer un client de l'API Cloud Vision avec le fichier de clé de service JSON
$imageAnnotator = new ImageAnnotatorClient(['credentials' => $credentialsPath]);

// Charger l'image depuis un fichier local
$image = file_get_contents('chemin/vers/votre/image.jpg');

// Demander une annotation pour la détection d'objets dans l'image
$response = $imageAnnotator->objectLocalization($image);
$objects = $response->getLocalizedObjectAnnotations();

// Afficher les objets détectés
if ($objects) {
    echo "Objets détectés :\n";
    foreach ($objects as $object) {
        echo $object->getName() . "\n";
    }
} else {
    echo 'Aucun objet détecté dans l\'image.';
}

// Libérer les ressources
$imageAnnotator->close();
?>

Les lignes de code ajoutées comment utiliser l’API Google Cloud Vision pour détecter les objets présents dans une image et afficher les résultats :

$image = file_get_contents(‘chemin/vers/votre/image.jpg’); : Cette ligne charge le contenu de l’image spécifiée dans la variable $image. La fonction file_get_contents() lit le contenu d’un fichier et le retourne sous forme de chaîne de caractères. Vous devez remplacer ‘chemin/vers/votre/image.jpg’ par le chemin vers votre propre image que vous souhaitez analyser.

$response = $imageAnnotator->objectLocalization($image); : Cette ligne envoie la requête à l’API Cloud Vision pour détecter les objets dans l’image. La méthode objectLocalization() est utilisée pour effectuer cette tâche. Elle prend en paramètre le contenu de l’image à analyser. Le résultat de la détection est stocké dans la variable $response.

$objects = $response->getLocalizedObjectAnnotations(); : Cette ligne récupère les annotations d’objets détectées dans la réponse de l’API Cloud Vision. La méthode getLocalizedObjectAnnotations() est utilisée pour extraire les annotations d’objets de la réponse. Les résultats sont stockés dans la variable $objects.

La structure de contrôle if-else est utilisée pour vérifier s’il y a des objets détectés dans l’image ou non :

  • Si des objets sont détectés (if ($objects)), une boucle foreach est utilisée pour parcourir chaque objet détecté et afficher son nom avec echo $object->getName(). Le nom de l’objet est obtenu à partir de l’annotation de l’objet retournée par l’API Cloud Vision.
  • Si aucun objet n’est détecté else, un message indiquant qu’aucun objet n’a été détecté dans l’image est affiché.

Le résultat :

Api Google vision IA en PHP

Cela affichera :
Objets détectés : Wheel Wheel Tire Tire Car

Exemple 2 : Reconnaissance de texte dans une image :

<?php
require 'vendor/autoload.php';

use Google\Cloud\Vision\V1\ImageAnnotatorClient;

// Spécifier le chemin vers le fichier de clé de service JSON
$credentialsPath = '/chemin/vers/votre/fichier/credentials.json';

// Créer un client de l'API Cloud Vision avec le fichier de clé de service JSON
$imageAnnotator = new ImageAnnotatorClient(['credentials' => $credentialsPath]);

// Charger l'image depuis un fichier local
$image = file_get_contents('chemin/vers/votre/image.jpg');

// Demander une annotation pour la reconnaissance de texte dans l'image
$response = $imageAnnotator->textDetection($image);
$texts = $response->getTextAnnotations();

// Afficher le texte détecté
if ($texts) {
    echo "Texte détecté :\n";
    foreach ($texts as $text) {
        echo $text->getDescription() . "\n";
    }
} else {
    echo 'Aucun texte détecté dans l\'image.';
}

// Libérer les ressources
$imageAnnotator->close();
?>

Ces lignes de code montrent comment utiliser l’API Google Cloud Vision pour détecter le texte présent dans une image et afficher les résultats.

$image = file_get_contents(‘chemin/vers/votre/image.jpg’); : Cette ligne charge le contenu de l’image spécifiée dans la variable $image. La fonction file_get_contents() est utilisée pour lire le contenu de l’image depuis un fichier. Vous devez remplacer ‘chemin/vers/votre/image.jpg’ par le chemin absolu vers l’image que vous souhaitez analyser.

$response = $imageAnnotator->textDetection($image); : Cette ligne envoie la requête à l’API Cloud Vision pour détecter le texte dans l’image. La méthode textDetection() est utilisée pour effectuer cette tâche. Elle prend en paramètre le contenu de l’image à analyser. Le résultat de la détection est stocké dans la variable $response.

$texts = $response->getTextAnnotations(); : Cette ligne récupère les annotations de texte détectées dans la réponse de l’API Cloud Vision. La méthode getTextAnnotations() est utilisée pour extraire les annotations de texte de la réponse. Les résultats sont stockés dans la variable $texts.

La structure de contrôle if-else est utilisée pour vérifier s’il y a du texte détecté dans l’image ou non.

  • Si du texte est détecté if ($texts), une boucle foreach est utilisée pour parcourir chaque annotation de texte détectée et afficher son contenu avec echo $text->getDescription().
  • Si aucun texte n’est détecté else, un message indiquant qu’aucun texte n’a été détecté dans l’image est affiché.

Le résultat :

Api Google vision en PHP

Cela affichera :
Objets détectés : Happy Birthday

Vous pouvez également traiter les résultats de manière plus avancée en fonction de leur structure et des informations que vous souhaitez extraire. Par exemple, vous pouvez les enregistrer dans une base de données, les utiliser pour prendre des décisions dans votre application, ou les afficher de manière plus interactive dans une interface utilisateur. La manière dont vous analysez et utilisez les résultats dépend de la logique métier de votre application.

Ces exemples ne sont qu’un aperçu des fonctionnalités offertes par l’API Google Cloud Vision en PHP. En combinant ces fonctionnalités avec votre application PHP, vous pouvez créer des expériences utilisateur plus riches et plus interactives, ainsi que des workflows automatisés pour diverses tâches de traitement d’image.