Я не получаю ожидаемого результата при вызове ocr api с компьютера Visio - PullRequest
1 голос
/ 04 апреля 2019

Я пытаюсь использовать метод ocr из компьютерного видео, чтобы извлечь весь текст из определенного изображения.Тем не менее, он не возвращает информацию, которую я знаю, которая там есть, потому что, когда я анализирую изображение непосредственно в доступной опции на этой странице https://azure.microsoft.com/es-es/services/cognitive-services/computer-vision/,, он возвращает данные.

Это изображениеЯ собираюсь получить данные от https://bitbucket.org/miguel_acevedo_ve/python-stream/raw/086279ad6885a490e521785ba288914ed98cfd1d/test.jpg

Я следовал всем учебникам по Python, доступным на сайте документации Azure.

import matplotlib.pyplot as plt
from matplotlib.patches import Rectangle
from PIL import Image
from io import BytesIO

subscription_key = "<Subscription Key>"

assert subscription_key

vision_base_url = "https://westcentralus.api.cognitive.microsoft.com/vision/v2.0/"

ocr_url = vision_base_url + "ocr"

image_url = "https://bitbucket.org/miguel_acevedo_ve/python-stream/raw/086279ad6885a490e521785ba288914ed98cfd1d/test.jpg"

'''image_url = "https://upload.wikimedia.org/wikipedia/commons/thumb/a/af/" + \
    "Atomist_quote_from_Democritus.png/338px-Atomist_quote_from_Democritus.png"
'''

headers = {'Ocp-Apim-Subscription-Key': subscription_key}
params  = {'mode' : 'Printed'}
data    = {'url': image_url}
response = requests.post(ocr_url, headers=headers, params=params, json=data)
response.raise_for_status()

analysis = response.json()
print(analysis)

, и это мой текущий вывод:

{u'regions': [], u'textAngle': 0.0, u'orientation': u'NotDetected', u'language': u'unk'}

ОБНОВЛЕНИЕ: решение состоит в том, чтобы использовать признать текст, а не функцию ocr из компьютерного видео.

Ответы [ 2 ]

0 голосов
/ 05 апреля 2019

Решение состоит в том, чтобы использовать метод распознавания текста, а не метод ocr из компьютерного зрения.

Сначала вам нужно отправить сообщение, а затем с помощью идентификатора операции сделать запрос на получение результатов.

vision_base_url = "https://westeurope.api.cognitive.microsoft.com/vision/v2.0/"

ocr_url = vision_base_url + "recognizeText"

response = requests.post(
    ocr_url, headers=headers,params=params, data=imgByteArr)
operationLocation = response.headers['Operation-Location']
response = requests.request('GET', operationLocation, json=None, data=None, headers=headers, params=None)
0 голосов
/ 04 апреля 2019

Я вижу, что в вашем коде есть два изображения.

Ниже в вашем блоке комментариев.Это хороший пример, аналогичный известному набору данных MNIST для рукописного ввода.Особенностью этого класса данных является то, что нет сильных пикселей с шумом.

enter image description here

Однако , другой, ниже, есть сильные пиксели с шумом всенад изображением, даже я думаю, на 99%.

enter image description here

Так что это два сценария.Производительность распознавания Azure Cognitive Service зависит от образца набора данных в модели обучения.Так что на самом деле оптическое распознавание в компьютерном зрении может просто обнаружить эти похожие изображения с помощью обученных образцов.

Правильный способ для второго изображения - сначала обнаружить достаточно малую область пикселей, содержащую текстовое содержимое, а затем вырезать его, чтобы сделатьокр зовет.Например, если номер лицензии обозначен на изображении автомобильной головки, требуется только часть изображения автомобильной таблички.

...