Utilizzo di Vision con il framework Spring

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

Se hai già familiarità con Spring Framework, allora Spring Cloud Vision può semplificare l'utilizzo dell'API Vision nella tua applicazione e ridurre la quantità di codice che devi scrivere.

Questa pagina spiega come aggiungere Spring Cloud Vision a un'applicazione Java. Per informazioni dettagliate sul modulo, consulta il riferimento 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 Spring Cloud Google Cloud BOM:

<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 configurare un ambiente di sviluppo Java. Non è necessario installare la libreria client Google Cloud per Java; lo starter Spring Boot installa automaticamente la libreria client.

Analisi delle immagini

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

@Autowired private CloudVisionTemplate cloudVisionTemplate;

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

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

Recupero delle etichette di classificazione per un'immagine

Il codice riportato di seguito estrae le etichette di classificazione per un'immagine, fornendoti descrizioni generali dei contenuti dell'immagine.

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

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