Usar o Vision com a framework Spring

O Spring Cloud Google Cloud oferece bibliotecas convenientes para interagir com a API Vision a partir de uma aplicação Spring. Estas bibliotecas incluem classes auxiliares e de configuração automática e classes de modelos do Spring Boot para permitir que os programadores comecem a usar a API Vision rapidamente.

Se já conhece o Spring Framework, o Spring Cloud Vision pode facilitar o trabalho com a API Vision na sua aplicação e reduzir a quantidade de código que tem de escrever.

Esta página explica como adicionar o Spring Cloud Vision a uma aplicação Java. Para ver informações detalhadas sobre o módulo, consulte a referência do Spring Cloud Vision.

Configuração de dependências

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

Coordenadas do Maven, usando o 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>

Para mais informações, consulte as instruções para configurar um ambiente de desenvolvimento Java. Não precisa de instalar a Google Cloud biblioteca cliente para Java. O iniciador do Spring Boot instala a biblioteca cliente automaticamente.

Análise de imagens

Depois de configurar as dependências do Spring Cloud Google Cloud Vision no seu classpath, pode começar imediatamente a processar as suas imagens obtendo uma instância de CloudVisionTemplate através da injeção de dependências do Spring.

@Autowired private CloudVisionTemplate cloudVisionTemplate;

O CloudVisionTemplate é um wrapper em torno das bibliotecas cliente da API Vision e permite-lhe processar imagens facilmente através da API Vision. Para mais informações sobre as funcionalidades do CloudVisionTemplate, consulte a página de referência do modelo do Cloud Vision.

As secções seguintes contêm exemplos de código para exemplos de utilização comuns da API Google Maps Services para Python.CloudVisionTemplate Todos os fragmentos de código são provenientes da aplicação de exemplo do Spring e do Cloud Vision.

Obter as etiquetas de classificação de uma imagem

O código abaixo extrai as etiquetas de classificação de uma imagem, fornecendo-lhe 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));

Extrair o texto de uma imagem

O exemplo 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;

O que se segue?