Menggunakan Vision dengan framework Spring

Spring Cloud Google Cloud menawarkan library yang mudah digunakan untuk berinteraksi dengan Vision API dari aplikasi Spring. Library ini mencakup kelas Konfigurasi Otomatis and kelas tambahan, serta kelas Spring Boot Template agar developer dapat mulai menggunakan Vision API dengan cepat.

Jika Anda sudah terbiasa dengan Spring Framework, Spring Cloud Vision dapat mempermudah penggunaan Vision API dalam aplikasi Anda dan mengurangi jumlah kode yang perlu Anda tulis.

Halaman ini menjelaskan bagaimana cara menambahkan Spring Cloud Vision ke aplikasi Java. Untuk mengetahui informasi mendetail tentang modul ini, lihat referensi Spring Cloud Vision.

Penyiapan dependensi

Untuk mulai menggunakan library ini, tambahkan artefak spring-cloud-gcp-starter-vision ke project Anda.

Koordinat Maven, dengan menggunakan 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>

Anda juga harus membuat akun layanan dan menggunakan kunci akun layanan untuk melakukan autentikasi dengan Google Cloud.

Untuk mengetahui informasi selengkapnya, lihat petunjuk untuk menyiapkan lingkungan pengembangan Java. Anda tidak perlu menginstal Library Klien Google Cloud untuk Java karena starter Spring Boot akan menginstal library klien secara otomatis.

Analisis gambar

Setelah mengonfigurasi dependensi Spring Cloud Google Cloud Vision di classpath, Anda dapat segera mulai memproses gambar dengan mendapatkan instance CloudVisionTemplate menggunakan injeksi dependensi Spring.

@Autowired private CloudVisionTemplate cloudVisionTemplate;

CloudVisionTemplate adalah wrapper di sekitar Library Klien Vision API yang memungkinkan Anda memproses gambar dengan mudah melalui Vision API. Untuk mengetahui informasi selengkapnya tentang fitur CloudVisionTemplate, lihat halaman referensi template Cloud Vision.

Bagian berikut berisi contoh kode untuk kasus penggunaan umum CloudVisionTemplate. Semua cuplikan kode berasal dari aplikasi contoh Spring dan Cloud Vision.

Mendapatkan label klasifikasi untuk satu gambar

Kode di bawah ini mengekstrak label klasifikasi untuk satu gambar yang memberikan deskripsi umum tentang konten gambar.

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

Mengekstrak Teks dalam Gambar

Contoh kode di bawah ini menjelaskan operasi umum lainnya untuk mengekstrak teks dari suatu gambar.

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

Langkah selanjutnya