Utiliser Vision avec le framework Spring

Spring Cloud Google Cloud propose des bibliothèques pratiques pour l'interface avec l'API Cloud Vision à partir d'une application Spring. Ces bibliothèques incluent des classes de configuration automatique et d'assistance, ainsi que des classes Spring Boot Template pour permettre aux développeurs de se lancer rapidement avec l'API Vision.

Si vous connaissez déjà le framework Spring, Spring Cloud Vision peut faciliter l'utilisation de l'API Cloud Vision dans votre application et réduire la quantité de code à écrire.

Cette page explique comment ajouter Spring Cloud Vision à une application Java. Pour obtenir des informations détaillées sur le module, consultez la documentation de référence sur Spring Cloud Vision.

Configuration des dépendances

Pour commencer à utiliser cette bibliothèque, ajoutez l'artefact spring-cloud-gcp-starter-vision à votre projet.

Coordonnées Maven, en utilisant le BOM Spring Cloud Google :

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-gcp-dependencies</artifactId>
      <version>1.2.8.RELEASE</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-dependencies</artifactId>
      <version>${spring.version}</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-gcp-starter-vision</artifactId>
</dependency>

Pour plus d'informations, consultez les instructions sur la configuration d'un environnement de développement Java. Vous n'avez pas besoin d'installer la bibliothèque cliente Google Cloud pour Java, Spring Boot s'en charge automatiquement au démarrage.

Analyse d'images

Après avoir configuré les dépendances Spring Cloud Google Cloud Vision sur votre chemin d'accès aux classes, vous pouvez immédiatement commencer à traiter vos images en obtenant une instance à partir de CloudVisionTemplate en utilisant l'injection de dépendances Spring.

@Autowired private CloudVisionTemplate cloudVisionTemplate;

Le CloudVisionTemplate est un wrapper autour des bibliothèques clientes de l'API Cloud Vision et vous permet de traiter facilement des images via l'API Vision. Pour plus d'informations sur les fonctionnalités CloudVisionTemplate, consultez la page de référence du modèle Cloud Vision.

Les sections suivantes contiennent des exemples de code pour les cas d'utilisation courants de CloudVisionTemplate. Tous les extraits de code proviennent de l'exemple d'application Spring et Cloud Vision.

Obtenir des libellés de classification pour une image

Le code ci-dessous extrait les étiquettes de classification d'une image et fournit des descriptions générales du contenu de l'image.

AnnotateImageResponse response =
    this.cloudVisionTemplate.analyzeImage(
        this.resourceLoader.getResource(imageUrl), Type.LABEL_DETECTION);

Map<String, Float> imageLabels =
    response.getLabelAnnotationsList().stream()
        .collect(
            Collectors.toMap(
                EntityAnnotation::getDescription,
                EntityAnnotation::getScore,
                (u, v) -> {
                  throw new IllegalStateException(String.format("Duplicate key %s", u));
                },
                LinkedHashMap::new));

Extraire le texte d'une image

L'exemple de code ci-dessous décrit une autre opération courante consistant à extraire le texte d'une image.

String textFromImage =
    this.cloudVisionTemplate.extractTextFromImage(this.resourceLoader.getResource(imageUrl));
return "Text from image: " + textFromImage;

Étape suivante