Utilizar Vision con el framework Spring

Spring Cloud Google Cloud ofrece bibliotecas prácticas para interactuar con la API Vision desde una aplicación Spring. Estas bibliotecas incluyen clases de configuración automática y auxiliares y clases de plantillas de Spring Boot para que los desarrolladores puedan empezar a usar la API Vision rápidamente.

Si ya conoces Spring Framework, Spring Cloud Vision puede facilitarte el trabajo con la API Vision en tu aplicación y reducir la cantidad de código que tienes que escribir.

En esta página se explica cómo añadir Spring Cloud Vision a una aplicación Java. Para obtener información detallada sobre el módulo, consulta la referencia de Spring Cloud Vision.

Configuración de dependencias

Para empezar a usar esta biblioteca, añade el artefacto spring-cloud-gcp-starter-vision a tu proyecto.

Coordenadas de Maven con la lista de materiales de Spring Cloud: Google 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>

Para obtener más información, consulta las instrucciones para configurar un entorno de desarrollo de Java. No es necesario que instales la biblioteca de cliente Google Cloud para Java, ya que el starter de Spring Boot la instala automáticamente.

Análisis de imágenes

Después de configurar las dependencias de Spring Cloud Google Cloud Vision en tu classpath, puedes empezar a procesar tus imágenes inmediatamente. Para ello, obtén una instancia de CloudVisionTemplate mediante la inyección de dependencias de Spring.

@Autowired private CloudVisionTemplate cloudVisionTemplate;

La CloudVisionTemplate es un envoltorio de las bibliotecas de cliente de la API Vision que te permite procesar imágenes fácilmente a través de la API Vision. Para obtener más información sobre las funciones de CloudVisionTemplate, consulta la página de referencia de la plantilla Cloud Vision.

En las siguientes secciones se incluyen ejemplos de código para casos prácticos habituales de CloudVisionTemplate. Todos los fragmentos de código proceden de la aplicación de ejemplo Spring y Cloud Vision.

Obtener las etiquetas de clasificación de una imagen

El código que se muestra a continuación extrae las etiquetas de clasificación de una imagen y te proporciona descripciones generales del contenido de la imagen.

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

Extraer el texto de una imagen

En el siguiente ejemplo de código se describe otra operación habitual: extraer el texto de una imagen.

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

Siguientes pasos