Usar Vision con el marco de trabajo de Spring

Spring Cloud Google Cloud ofrece bibliotecas convenientes para interactuar con la API de Vision desde una aplicación de Spring. Estas bibliotecas incluyen clases de configuración automática y de ayuda y clases de plantilla de inicio de Spring para permitir que los desarrolladores comiencen a usar la API de Vision rápidamente.

Si ya estás familiarizado con el marco de trabajo de Spring, Spring Cloud Vision puede facilitarte el trabajo con la API de Vision en tu aplicación y reducir la cantidad de código que debes escribir.

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

Configuración de dependencias

Para comenzar a usar esta biblioteca, agrega el artefacto spring-cloud-gcp-starter-vision a tu proyecto.

Coordenadas de Maven, con la BOM de Google Cloud de 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>

También debes crear una cuenta de servicio y usar la clave de esa cuenta para autenticarte con Google Cloud.

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

Análisis de imágenes

Luego de configurar las dependencias de Spring Cloud Google Cloud en la ruta de clase, puedes comenzar a procesar tus imágenes de inmediato mediante la obtención de una instancia de CloudVisionTemplate con la inyección de dependencias de Spring.

@Autowired private CloudVisionTemplate cloudVisionTemplate;

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

Las siguientes secciones contienen muestras de código para casos prácticos comunes de CloudVisionTemplate. Todos los fragmentos de código provienen de la aplicación de muestra de Spring y Cloud Vision.

Obtén las etiquetas de clasificación para una imagen

El siguiente código extrae las etiquetas de clasificación para una imagen y 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));

Extrae el texto de una imagen

En la siguiente muestra de código, se describe otra operación común de extracción del texto de una imagen.

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

¿Qué sigue?