The Google Cloud Vision API allows users to leverage powerful machine learning algorithms for images such as: image classification, face detection, reading text within images, and others.
Spring Cloud GCP provides:
Maven coordinates, using Spring Cloud GCP BOM:
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-gcp-starter-vision</artifactId> </dependency>
Gradle coordinates:
dependencies { compile group: 'org.springframework.cloud', name: 'spring-cloud-gcp-starter-vision' }
The CloudVisionTemplate
offers a simple way to use the Cloud Vision APIs with Spring Resources.
After you add the spring-cloud-gcp-starter-vision
dependency to your project, you may @Autowire
an instance of CloudVisionTemplate
to use in your code.
The CloudVisionTemplate
offers the following method for interfacing with Cloud Vision:
public AnnotateImageResponse analyzeImage(Resource imageResource, Feature.Type… featureTypes)
Parameters:
Resource imageResource
refers to the Spring Resource of the image object you wish to analyze.
The Google Cloud Vision documentation provides a list of the image types that they support.Feature.Type… featureTypes
refers to a var-arg array of Cloud Vision Features to extract from the image.
A feature refers to a kind of image analysis one wishes to perform on an image, such as label detection, OCR recognition, facial detection, etc.
One may specify multiple features to analyze within one request.
A full list of Cloud Vision Features is provided in the Cloud Vision Feature docs.Returns:
AnnotateImageResponse
contains the results of all the feature analyses that were specified in the request.
For each feature type that you provide in the request, AnnotateImageResponse
provides a getter method to get the result of that feature analysis.
For example, if you analyzed an image using the LABEL_DETECTION
feature, then you would retrieve the results from the response using annotateImageResponse.getLabelAnnotationsList()
.
AnnotateImageResponse
is provided by the Google Cloud Vision libraries; you may consult the RPC reference or Javadoc as a reference.
Additionally, you may consult the Cloud Vision docs to familiarize yourself with the concepts and features of the API.
@Autowired private ResourceLoader resourceLoader; @Autowired private CloudVisionTemplate cloudVisionTemplate; public void processImage() { Resource imageResource = this.resourceLoader.getResource("my_image.jpg"); AnnotateImageResponse response = this.cloudVisionTemplate.analyzeImage( imageResource, Type.LABEL_DETECTION); System.out.println("Image Classification results: " + response.getLabelAnnotationsList()); }
A Sample Spring Boot Application is provided to show how to use the Cloud Vision starter and template.