Como usar o Cloud Vision com o framework Spring

v1-rev71-1.25.0 https://googleapis.dev/java/google-cloud-clients/latest/com/google/cloud/spanner/ 1.2.0 https://cloud.spring.io/spring-cloud-static/spring-cloud-gcp/.RELEASE/ 1.2.0 https://cloud.spring.io/spring-cloud-static/spring-cloud-gcp/.RELEASE/reference/html/

O Spring Cloud GCP (em inglês) oferece bibliotecas práticas para estabelecer interface com o Cloud Vision de um aplicativo Spring. Essas bibliotecas incluem classes de configuração automática e auxiliares (em inglês) e de Spring Boot Template para permitir que os desenvolvedores deem os primeiros passos com o Cloud Vision rapidamente.

Se você já estiver familiarizado com o Spring Framework (em inglês), o Spring Cloud Vision poderá facilitar o trabalho com a API Vision no seu aplicativo e reduzir a quantidade de código que você precisa escrever.

Nesta página, explicamos como adicionar o Spring Cloud Vision a um aplicativo Java. Para informações detalhadas sobre o módulo, consulte a referência do Spring Cloud Vision.

Configuração de dependência

Para começar a usar essa biblioteca, adicione o artefato spring-cloud-gcp-starter-vision ao seu projeto.

Coordenadas do Maven usando a BOM do Spring Cloud GCP:

<dependencyManagement>
      <dependencies>
        <dependency>
          <groupId>org.springframework.cloud</groupId>
          <artifactId>spring-cloud-gcp-dependencies</artifactId>
          <version>1.2.1.RELEASE</version>
          <type>pom</type>
          <scope>import</scope>
        </dependency>
      </dependencies>
    </dependencyManagement>
<dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-gcp-starter-vision</artifactId>
    </dependency>

Também é necessário criar uma conta de serviço e usar a chave dela para autenticação no Google Cloud.

Para mais informações, consulte as instruções sobre como configurar um ambiente de desenvolvimento Java. Você não precisa instalar a biblioteca de cliente do Google Cloud para Java, o iniciador do Spring Boot faz isso automaticamente.

Análise de imagem

Depois de configurar as dependências do Spring Cloud GCP Vision no classpath, é possível começar imediatamente a processar suas imagens conseguindo uma instância de CloudVisionTemplate usando a injeção de dependência do Spring (em inglês).

@Autowired
    private CloudVisionTemplate cloudVisionTemplate;

O CloudVisionTemplate é um wrapper das bibliotecas de cliente do Cloud Vision que permite processar imagens facilmente por meio da API Cloud Vision. Para mais informações sobre os recursos CloudVisionTemplate, consulte a página de referência do modelo do Cloud Vision.

As seções a seguir contêm amostras de código para casos de uso comuns de CloudVisionTemplate. Todos os snippets de código vêm do aplicativo de amostra Spring e Cloud Vision (em inglês).

Como conseguir os rótulos de classificação de uma imagem

O código abaixo extrai os rótulos de classificação de uma imagem, fornecendo descrições gerais do conteúdo da imagem.

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

Como extrair o texto de uma imagem

A amostra de código abaixo descreve outra operação comum de extração do texto de uma imagem.

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

A seguir