Utilizzo di Vision con il framework Spring

Spring Cloud Google Cloud offre comode librerie per interagire con l'API Vision da un'applicazione Spring. Queste librerie includono classi di autoconfigurazione e di assistenza e classi di modello Spring Boot per consentire agli sviluppatori di iniziare rapidamente a utilizzare l'API Vision.

Se hai già dimestichezza con il Spring Framework, then Spring Cloud Vision può semplificare l'utilizzo dell'API Vision nella tua applicazione e ridurre la quantità di codice da scrivere.

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

Configurazione delle dipendenze

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

Coordinate Maven, utilizzando il file BOM di Google Cloud di 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 Google Cloud per Java; lo starter Spring Boot installa automaticamente la libreria client.

Analisi delle immagini

Dopo aver configurato le dipendenze di Google Cloud Vision di Spring Cloud nel percorso di classe, puoi iniziare immediatamente a elaborare le immagini recuperando un'istanza di CloudVisionTemplate utilizzando l'iniezione di dipendenze di Spring.

@Autowired private CloudVisionTemplate cloudVisionTemplate;

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

Le seguenti sezioni contengono esempi di codice per i 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, fornendoti 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 da 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