שימוש ב-Vision עם Spring framework

Spring Cloud Google Cloud מציע ספריות נוחות ליצירת ממשק עם Vision API מאפליקציית Spring. הספריות האלה כוללות הגדרה אוטומטית ומחלקות עזר ומחלקות תבניות של Spring Boot, כדי לאפשר למפתחים להתחיל להשתמש ב-Vision API במהירות.

אם אתם כבר מכירים את Spring Framework, ‏ Spring Cloud Vision יכול להקל עליכם את העבודה עם Vision API באפליקציה שלכם ולצמצם את כמות הקוד שתצטרכו לכתוב.

בדף הזה מוסבר איך להוסיף את Spring Cloud Vision לאפליקציית Java. למידע מפורט על המודול, אפשר לעיין בהפניה ל-Spring Cloud Vision.

הגדרת תלות

כדי להתחיל להשתמש בספרייה הזו, מוסיפים את ארטיפקט spring-cloud-gcp-starter-vision לפרויקט.

קואורדינטות של Maven, באמצעות 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>

מידע נוסף זמין בהוראות להגדרת סביבת פיתוח בשפת Java. אין צורך להתקין את Google Cloud ספריית הלקוח ל-Java, כי Spring Boot starter מתקין את ספריית הלקוח באופן אוטומטי.

ניתוח תמונות

אחרי שמגדירים את התלות של Spring Cloud Google Cloud Vision בנתיב המחלקה, אפשר להתחיל לעבד את התמונות באופן מיידי על ידי קבלת מופע של CloudVisionTemplate באמצעות הזרקת תלות של Spring.

@Autowired private CloudVisionTemplate cloudVisionTemplate;

CloudVisionTemplate הוא wrapper של ספריות הלקוח של Vision API, והוא מאפשר לכם לעבד תמונות בקלות באמצעות Vision API. מידע נוסף על התכונות של CloudVisionTemplate זמין בדף העזר בנושא תבניות של Cloud Vision.

בקטעים הבאים מופיעות דוגמאות קוד לתרחישי שימוש נפוצים ב-CloudVisionTemplate. כל קטעי הקוד מגיעים מאפליקציית הדוגמה של Spring ו-Cloud Vision.

קבלת תוויות הסיווג של תמונה

בדוגמה הבאה אפשר לראות איך מחלצים את תוויות הסיווג של תמונה, כדי לקבל תיאורים כלליים של תוכן התמונה.

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

חילוץ הטקסט בתמונה

בדוגמת הקוד שלמטה מתוארת פעולה נפוצה נוספת של חילוץ הטקסט מתמונה.

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

המאמרים הבאים