[英]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.