簡體   English   中英

Azure 計算機視覺 SDK read_in_stream 總是返回錯誤請求

[英]Azure Computer Vision SDK read_in_stream always returns Bad Request

我發現自己無法使用 Azure 計算機視覺 SDK 的 Azure 的 read_in_stream API ZA37217F32431B569 SDK 總是返回一個

File "<path>/azure/cognitiveservices/vision/computervision/operations/_computer_vision_client_operations.py", line 1567, in read_in_stream raise models.ComputerVisionErrorException(self._deserialize, response) azure.cognitiveservices.vision.computervision.models._models_py3.ComputerVisionErrorException: Operation returned an invalid status code 'Bad Request'

我嘗試使用標准讀取 API,為它提供一個文件 URL 而不是本地文件,它工作正常,因此客戶端已正確驗證。

該文件確實具有讀取權限,並且將其讀入枕頭圖像可以正常工作。 這是一個相當小的PNG文件。

from azure.cognitiveservices.vision import computervision
from azure.cognitiveservices.vision.computervision import ComputerVisionClient
from azure.cognitiveservices.vision.computervision.models import OperationStatusCodes
from azure.cognitiveservices.vision.computervision.models import VisualFeatureTypes
from msrest.authentication import CognitiveServicesCredentials

from array import array
import os
from PIL import Image
import sys
import time

subscription_key = "<key from azure portal>"
endpoint = "<endpoint from azure portal>"


def ocr(filePath):

    computervision_client = ComputerVisionClient(endpoint, CognitiveServicesCredentials(subscription_key))

    with open(filePath, "rb") as local_image_printed_text:
        recognize_handw_results = computervision_client.read_in_stream(local_image_printed_text, raw=True)

您提到您的PNG文件很小,請檢查其尺寸是否大於50 50? 基於官方 API 參考 在此處輸入圖像描述 如果使用尺寸小於 50 50 的 PNG 文件,我可以重現您的問題 在此處輸入圖像描述 在此處輸入圖像描述

但是當我換成更大的時,它的工作原理是例外:

在此處輸入圖像描述

在此處輸入圖像描述

這是我下面的測試代碼:

from azure.cognitiveservices.vision import computervision
from azure.cognitiveservices.vision.computervision import ComputerVisionClient
from azure.cognitiveservices.vision.computervision.models import OperationStatusCodes
from azure.cognitiveservices.vision.computervision.models import VisualFeatureTypes
from msrest.authentication import CognitiveServicesCredentials

from array import array
import os
from PIL import Image
import sys
import time
import requests

subscription_key = ""
endpoint = ""


def ocr(filePath):

    computervision_client = ComputerVisionClient(endpoint, CognitiveServicesCredentials(subscription_key))

    with open(filePath, "rb") as local_image_printed_text:
        recognize_handw_results = computervision_client.read_in_stream(local_image_printed_text, raw=True)
        
        time.sleep(5)
        result_url = recognize_handw_results.headers.get('Operation-Location')
        result = requests.get(result_url,headers = {"Ocp-Apim-Subscription-Key":subscription_key})
        print(result.text)

ocr("<png local path>")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM