Using Google Client Library interacting with the vision library.
I have a function to detect labels from an image.
GoogleVision.py
import os
from google.cloud import vision
from google.cloud.vision import types
from google.protobuf.json_format import MessageToJson
class GoogleVision():
def detectLabels(self, uri):
client = vision.ImageAnnotatorClient()
image = types.Image()
image.source.image_uri = uri
response = client.label_detection(image=image)
labels = response.label_annotations
return labels
I have an api to call this function.
from flask_restful import Resource
from flask import request
from flask import json
from util.GoogleVision import GoogleVision
import os
class Vision(Resource):
def get(self):
return {"message": "API Working"}
def post(self):
googleVision = GoogleVision()
req = request.get_json()
url = req['url']
result = googleVision.detectLabels(url)
return result
However, it does not return the result and errors with the following
TypeError: Object of type 'RepeatedCompositeContainer' is not JSON serializable
This question was answered in this GitHub link, which might help to resolve your issue.
The error you encountered is
TypeError: Object of type 'RepeatedCompositeContainer' is not JSON serializable
Below is the solution provided in the GitHub thread
from google.protobuf.json_format import MessageToJson
serialized = MessageToJson(original)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With