Utilizzo di Vision con il framework Spring

Spring Cloud Google Cloud offre pratiche librerie per interfacciarsi con l'API Vision da un'applicazione Spring. Queste librerie includono classi helper e configurazione automatica e classi dei modelli Spring Boot per consentire agli sviluppatori di iniziare a utilizzare rapidamente l'API Vision.

Se conosci già il framework Spring, Spring Cloud Vision può semplificare l'utilizzo dell'API Vision nella tua applicazione e ridurre la quantità di codice necessaria per scrivere.

Questa pagina spiega come aggiungere Spring Cloud Vision a un'applicazione Java. Per informazioni dettagliate sul modulo, consulta il riferimento di Spring Cloud Vision.

Configurazione delle dipendenze

Per iniziare a utilizzare questa libreria, aggiungi l'artefatto spring-cloud-gcp-starter-vision al tuo progetto.

Coordinate Maven utilizzando la distinta base di Google Cloud Spring Cloud:

<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>

Per ulteriori informazioni, consulta le istruzioni per la configurazione di un ambiente di sviluppo Java. Non è necessario installare la libreria client di Google Cloud per Java; il comando iniziale Spring Boot installa la libreria client automaticamente.

Analisi delle immagini

Dopo aver configurato le dipendenze Google Cloud Vision di Spring Cloud su classpath, puoi iniziare immediatamente a elaborare le immagini ottenendo un'istanza di CloudVisionTemplate utilizzando l'inserimento di dipendenze Spring.

@Autowired private CloudVisionTemplate cloudVisionTemplate;

CloudVisionTemplate è un wrapper che circonda le librerie client dell'API Vision e consente di elaborare facilmente le immagini tramite l'API Vision. Per maggiori informazioni sulle funzionalità di CloudVisionTemplate, consulta la pagina di riferimento del modello di Cloud Vision.

Le seguenti sezioni contengono esempi di codice per casi d'uso comuni di CloudVisionTemplate. Tutti gli snippet di codice provengono dall'applicazione di esempio Spring e Cloud Vision.

Ottenere le etichette di classificazione per un'immagine

Il codice riportato di seguito estrae le etichette di classificazione di un'immagine, fornendo descrizioni generali dei contenuti delle immagini.

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));

Estrazione del testo in un'immagine

L'esempio di codice riportato di seguito descrive un'altra operazione comune di estrazione del testo da un'immagine.

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

Passaggi successivi