Class CloudVision.AnnotateImagesFromBytesWithContext

java.lang.Object
org.apache.beam.sdk.transforms.PTransform<PCollection<KV<ByteString,com.google.cloud.vision.v1.ImageContext>>,PCollection<List<com.google.cloud.vision.v1.AnnotateImageResponse>>>
org.apache.beam.sdk.extensions.ml.CloudVision.AnnotateImagesFromBytesWithContext
All Implemented Interfaces:
Serializable, HasDisplayData
Enclosing class:
CloudVision

public static class CloudVision.AnnotateImagesFromBytesWithContext extends PTransform<PCollection<KV<ByteString,com.google.cloud.vision.v1.ImageContext>>,PCollection<List<com.google.cloud.vision.v1.AnnotateImageResponse>>>
Accepts KVs of ByteString (encoded image contents) and ImageContext. It's possible to add ImageContext to each image to be annotated.
See Also:
  • Field Details

    • contextSideInput

      protected final PCollectionView<Map<KV<ByteString,com.google.cloud.vision.v1.ImageContext>,com.google.cloud.vision.v1.ImageContext>> contextSideInput
    • featureList

      protected final List<com.google.cloud.vision.v1.Feature> featureList
    • desiredRequestParallelism

      protected final int desiredRequestParallelism
  • Constructor Details

    • AnnotateImagesFromBytesWithContext

      public AnnotateImagesFromBytesWithContext(List<com.google.cloud.vision.v1.Feature> featureList, long batchSize, int desiredRequestParallelism)
  • Method Details

    • mapToRequest

      public com.google.cloud.vision.v1.AnnotateImageRequest mapToRequest(KV<ByteString,com.google.cloud.vision.v1.ImageContext> input, @Nullable com.google.cloud.vision.v1.ImageContext ctx)
      Maps KV of ByteString (encoded image contents) and ImageContext to AnnotateImageRequest.
      Parameters:
      input - Input element.
      ctx - optional image context.
      Returns:
      valid request element.
    • expand

      public PCollection<List<com.google.cloud.vision.v1.AnnotateImageResponse>> expand(PCollection<KV<ByteString,com.google.cloud.vision.v1.ImageContext>> input)
      Applies all necessary transforms to call the Vision API. In order to group requests into batches, we assign keys to the requests, as GroupIntoBatches works only on KVs.
      Specified by:
      expand in class PTransform<PCollection<T>,PCollection<List<com.google.cloud.vision.v1.AnnotateImageResponse>>>