![](/img/trans.png)
[英]Misclassification of Custom Model On IBM Watson Visual Recognition
[英]IBM watson image recognition
我是 Watson 的新手,因為我正在學習 moog 課程。 我正在瀏覽遇到問題的示例,但我無法弄清楚。 我不斷收到錯誤 403。任何幫助將不勝感激。 謝謝你
import cv2
import urllib.request
from matplotlib import pyplot as plt
from matplotlib import rcParams
from ibm_watson import VisualRecognitionV3
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
my_apikey = 'mmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm'
# Paste your API key for IBM Watson Visual Recognition below:
authenticator = IAMAuthenticator(my_apikey)
visrec = VisualRecognitionV3("2020-07-30", authenticator=authenticator)
def plt_image(image_url, size=(10, 8)):
# Downloads an image from a URL, and displays it in the notebook
urllib.request.urlretrieve(image_url, "image.jpg") # downloads file as "image.jpg"
image = cv2.imread("image.jpg")
# If image is in color, then correct color coding from BGR to RGB
if len(image.shape) == 3:
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
rcParams['figure.figsize'] = size[0], size[1] # set image display size
plt.axis("off")
plt.imshow(image, cmap="Greys_r")
plt.show()
from pandas.io.json import json_normalize
def getdf_visrec(url, apikey=my_apikey):
json_result = visrec.classify(url=url, threshold='0.6', classifier_ids= 'E36').get_result()
json_classes = json_result['images'][0]['classifiers'][0]['classes']
df = json_normalize(json_classes).sort_values('score', ascending=False).reset_index(drop=True)
return df
url = 'http://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/CV0101/Images/76011_MAIN._AC_SS190_V1446845310_.jpg'
plt_image(url)
getdf_visrec(url,my_apikey)
這是我運行它時得到的錯誤代碼
ERROR:root:Forbidden
Traceback (most recent call last):
File "C:\Users\isaip\OneDrive\College\python pp\venv\lib\site-packages\ibm_cloud_sdk_core \ base_service.py", line 229, in send
response.status_code, error_message, http_response=response)
ibm_cloud_sdk_core.api_exception.ApiException: Error: Forbidden, Code: 403
Traceback (most recent call last):
File "C:/Users/isaip/OneDrive/Desktop/.idea/pythonpy/watson.py", line 49, in <module>
getdf_visrec(url,my_apikey)
File "C:/Users/isaip/OneDrive/Desktop/.idea/pythonpy/watson.py", line 34, in getdf_visrec
json_result = visrec.classify(url=url, threshold='0.6', classifier_ids= 'E36').get_result()
File "C:\Users\isaip\OneDrive\College\python pp\venv\lib\site-packages\ibm_watson\ visual_recognition_v3.py", line 183, in classify
response = self.send(request)
File "C:\Users\isaip\OneDrive\College\python pp\venv\lib\site-packages\ibm_cloud_sdk_core\ base_service.py", line 229, in send
response.status_code, error_message, http_response=response)
ibm_cloud_sdk_core.api_exception.ApiException: Error: Forbidden, Code: 403
進程以退出代碼 1 結束
在 Watson 服務上獲得 403 是很常見的。 當密鑰與端點不匹配時會發生這種情況,基本上是當您使用不正確的密鑰、不正確的端點甚至兩者都不正確時。
查看 API 文檔,了解如何設置 url 端點。
from ibm_watson import VisualRecognitionV3
from ibm_cloud_sdk_core.authenticators import IAMAuthenticator
authenticator = IAMAuthenticator('{apikey}')
visual_recognition = VisualRecognitionV3(
version='{version}',
authenticator=authenticator
)
visual_recognition.set_service_url('{url}')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.