Vision mit Spring-Framework verwenden

Spring Cloud Google Cloud bietet praktische Bibliotheken für die Kommunikation mit der Vision API über eine Spring-Anwendung. Zu diesen Bibliotheken gehören Autokonfigurations- und Hilfsklassen sowie Spring Boot Template-Klassen, damit Entwickler schnell mit der Vision API starten können.

Wenn Sie bereits mit dem Spring Framework vertraut sind, erleichtert Ihnen Spring Cloud Vision die Arbeit mit der Vision API in Ihrer Anwendung und reduziert die Menge an Code, den Sie schreiben müssen.

Auf dieser Seite wird beschrieben, wie Sie Spring Cloud Vision einer Java-Anwendung hinzufügen. Ausführliche Informationen zum Modul finden Sie in der Referenz zu Spring Cloud Vision.

Abhängigkeitseinrichtung

Zum Verwenden dieser Bibliothek fügen Sie Ihrem Projekt das Artefakt spring-cloud-gcp-starter-vision hinzu.

Maven-Koordinaten mithilfe der 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>

Außerdem müssen Sie ein Dienstkonto erstellen und den Dienstkontoschlüssel zum Authentifizieren bei Google Cloud verwenden.

Weitere Informationen finden Sie in der Anleitung zum Einrichten einer Java-Entwicklungsumgebung. Sie müssen die Google Cloud-Clientbibliothek für Java nicht installieren. Der Spring Boot-Starter installiert die Clientbibliothek automatisch.

Bildanalyse

Nachdem Sie die Spring Cloud Google Cloud Vision-Abhängigkeiten für Ihren Klassenpfad konfiguriert haben, können Sie sofort mit der Verarbeitung Ihrer Bilder beginnen. Rufen Sie dazu eine Instanz von CloudVisionTemplate mithilfe der Injektion der Spring-Abhängigkeit auf.

@Autowired private CloudVisionTemplate cloudVisionTemplate;

Die CloudVisionTemplate ist ein Wrapper um die Vision API-Clientbibliotheken und ermöglicht die einfache Verarbeitung von Bildern über die Cloud Vision API. Weitere Informationen zu den CloudVisionTemplate-Features finden Sie auf der Referenzseite der Cloud Vision-Vorlage.

Die folgenden Abschnitte enthalten Codebeispiele für häufige Anwendungsfälle der Vorlage CloudVisionTemplate. Alle Code-Snippets stammen aus der Beispielanwendung von Spring und Cloud Vision.

Klassifizierungslabels für ein Bild abrufen

Der nachfolgende Code extrahiert die Klassifizierungslabels für ein Bild und liefert Ihnen allgemeine Beschreibungen des Bildinhalts.

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

Text in einem Bild extrahieren

Im nachfolgenden Codebeispiel wird ein weiterer gängiger Vorgang zum Extrahieren von Text aus einem Bild beschrieben.

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

Nächste Schritte