Watsonで画像認識してみる
Watson Studioを使う
Watson Studioインスタンスの作成
Projectの作成
COS(Cloud Object Storage)の作成
Projectの設定
ProjectにCOSを割り当てたので、Projectを設定していく。
Visual Recognitionのインスタンス作成
Notebookの作成
Watson SDKのインストール
!pip install --upgrade watson-developer-cloud
from watson_developer_cloud import VisualRecognitionV3
学習する画像データを用意する。
割愛。(Googleさんで集めた)
Zipで固めておく
データのアップロード
ドラッグアンドドロップだとうまくできなかったので、browseから選択
犬と猫の画像をCOSにアップロード
COSからNotebookへのダウンロード
コードの挿入
※一番下のセルにカーソルを選択しておかないと、変なところにコードが入ってエラーになる。
・以下のimportより上は自動で挿入される。import以下を追記する。
・犬と猫2回やる。
・credentials_4 の数字は自動で挿入されるコードに合わせる。
# @hidden_cell
# The following code contains the credentials for a file in your IBM Cloud Object Storage.
# You might want to remove those credentials before you share your notebook.
credentials_4 = {
'IAM_SERVICE_ID': 'iam-ServiceId-bea9af74-fa78-4594-8fa2-ba59cb7e1b2f',
'IBM_API_KEY_ID': 'GNhhYxQDCvTOX-54uyhotkXArreYxDW2qd8CMXRySrna',
'ENDPOINT': 'https://s3-api.us-geo.objectstorage.service.networklayer.com',
'IBM_AUTH_ENDPOINT': 'https://iam.ng.bluemix.net/oidc/token',
'BUCKET': 'sampleprojext-donotdelete-pr-v0hn5ybs9xbmyt',
'FILE': 'cats.zip'
}
import ibm_boto3
from ibm_botocore.client import Config
cos = ibm_boto3.resource('s3',
ibm_api_key_id = credentials_4['IBM_API_KEY_ID'],
ibm_service_instance_id = credentials_4['IAM_SERVICE_ID'],
ibm_auth_endpoint = credentials_4['IBM_AUTH_ENDPOINT'],
config = Config(signature_version = 'oauth'),
endpoint_url = credentials_4['ENDPOINT']
)
cos.meta.client.download_file(credentials_4['BUCKET'],'cats.zip', 'cats.zip')
カスタムモデルの作成
API KeyはVisual RecognitionのインスタンスのAPI Key
from watson_developer_cloud import VisualRecognitionV3
visual_recognition = VisualRecognitionV3(
'2019-09-22', iam_apikey='qwhCa2CXgPwq-ZTNnBgwZUTCQ8b61kv6ct3RUPHTt4qL')
classifier = visual_recognition.create_classifier('dogcat',
dog_positive_examples=dogs,
cat_positive_examples=cats,).get_result()
print(classifier)
トレーニング状況の確認
print(visual_recognition.get_classifier('dogcat_547431064').get_result())
{'classifier_id': 'dogcat_547431064', 'name': 'dogcat', 'status': 'training', 'owner': '6e4c9e3c-6cc3-4517-81ae-fbde24a96894', 'created': '2019-09-22T14:20:56.998Z', 'updated': '2019-09-22T14:20:56.998Z', 'classes': [{'class': 'cat'}, {'class': 'dog'}], 'core_ml_enabled': True}
→status がtrainingからreadyになればOK
画像認識確認
import json
result = visual_recognition.classify(
url='https://www.petmd.com/sites/default/files/what-does-it-mean-when-cat-wags-tail.jpg',
classifier_id=['dogcat_547431064'],
threshold='0.2').get_result()
print(result)
{'images': [{'classifiers': [{'classifier_id': 'default', 'name': 'default', 'classes': [{'class': 'tabby cat', 'score': 0.86, 'type_hierarchy': '/animal/mammal/carnivore/feline/cat/domestic cat/tabby cat'}, {'class': 'domestic cat', 'score': 0.882}, {'class': 'cat', 'score': 0.948}, {'class': 'feline', 'score': 0.954}, {'class': 'carnivore', 'score': 0.954}, {'class': 'mammal', 'score': 0.954}, {'class': 'animal', 'score': 0.955}, {'class': 'gray color', 'score': 0.928}, {'class': 'ash grey color', 'score': 0.726}]}], 'source_url': 'https://www.petmd.com/sites/default/files/what-does-it-mean-when-cat-wags-tail.jpg', 'resolved_url': 'https://www.petmd.com/sites/default/files/what-does-it-mean-when-cat-wags-tail.jpg'}], 'images_processed': 1, 'custom_classes': 0}
import json
result = visual_recognition.classify(
url='https://www.petmd.com/sites/default/files/what-does-it-mean-when-cat-wags-tail.jpg',
classifier_id=['dogcat_547431064'],
threshold='0.2').get_result()
print(result)
{'images': [{'classifiers': [{'classifier_id': 'default', 'name': 'default', 'classes': [{'class': 'tabby cat', 'score': 0.86, 'type_hierarchy': '/animal/mammal/carnivore/feline/cat/domestic cat/tabby cat'}, {'class': 'domestic cat', 'score': 0.882}, {'class': 'cat', 'score': 0.948}, {'class': 'feline', 'score': 0.954}, {'class': 'carnivore', 'score': 0.954}, {'class': 'mammal', 'score': 0.954}, {'class': 'animal', 'score': 0.955}, {'class': 'gray color', 'score': 0.928}, {'class': 'ash grey color', 'score': 0.726}]}], 'source_url': 'https://www.petmd.com/sites/default/files/what-does-it-mean-when-cat-wags-tail.jpg', 'resolved_url': 'https://www.petmd.com/sites/default/files/what-does-it-mean-when-cat-wags-tail.jpg'}], 'images_processed': 1, 'custom_classes': 0}
→いかにも猫な画像を指定して、確認スコアは0.948でした。
それ以外にも色とかも識別している。
まとめ
・多少Pythonを書く必要があるが、簡単に画像認識を確認することができた。
・アプリとかとの連携も試してみたい。そのうち・・
Author And Source
この問題について(Watsonで画像認識してみる), 我々は、より多くの情報をここで見つけました https://qiita.com/dingtianhongjie/items/53db6c973a814da42ae3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .