簡體   English   中英

IBM Watson 圖像識別

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

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