Я пытаюсь сохранить ответы от Google-Cloud-Vision OCR на диск и обнаружил, что сжатый архив и хранение фактического protobuf - это самый компактный вариант для последующей обработки.Эта часть была легкой!Теперь, как мне извлечь и проанализировать это обратно с диска в его исходный формат?
Мой вопрос: где / как мне перестроить файл message_pb2 для синтаксического анализа файла обратно в protobuf
Follow документация Вот мой код:
#!/usr/bin/python3
# coding: utf-8
from google.cloud import vision
import gzip, os, io
def ocr_document(path):
"""
Detects document features in an image.
Returns response protobuf from API.
"""
client = vision.ImageAnnotatorClient()
with io.open(path, 'rb') as image_file:
content = image_file.read()
image = vision.types.Image(content=content)
response = client.document_text_detection(image=image)
return(response)
response = ocr_document('handwritten-scan.jpg')
serialized = response.SerializeToString()
with gzip.open('response.pb.gz', 'wb') as f:
f.write(serialized)
print(os.path.getsize('response.pb.gz'), 'bytes') # Output: 11032 bytes
# Figure this part out!
with gzip.open('response.pb.gz', 'rb') as f:
serialized=f.read()
### parsed = message_pb2.Message() # < - Protobuf message I'm missing
parsed.ParseFromString(serialized)
print(parsed)