PythonでWatson APIのVisual Recognitionを使う
目的
Watson API の Visual Recognition を使った画像認識がしたい!
物体認識、顔認識、文字認識がしたい!
できれば、Python でやりたい!
参考リンク
WatsonのPython SDKを使ってAPIを叩いてみた 13連発 (絶賛途中) - Qiita
visual-recognition - API Reference | IBM Watson Developer Cloud
動作環境
Python 2.7.13 :: Anaconda 4.3.1 (64-bit)
やりかた
1.Python で Watson API を使えるようにする
コマンドプロンプトから以下を実行
> pip install watson-developer-cloud
2.Visual Recognition のサービス資格情報から api_key を参照
3.画像認識
1)既存の画像認識器を使う(物体の認識・顔の認識・文字の認識)
Python で以下を実行(プログラム中の '2016-05-20' は固定値)
# -*- coding: utf-8 -*
import json
from os.path import join, dirname
from os import environ
from watson_developer_cloud import VisualRecognitionV3
visual_recognition = VisualRecognitionV3('2016-05-20', api_key='api_key')
# 物体認識
with open('画像ファイル名', 'rb') as img:
print(json.dumps(visual_recognition.classify(images_file=img), indent=2))
# 顔認識
with open('画像ファイル名', 'rb') as img:
print(json.dumps(visual_recognition.detect_faces(images_file=img), indent=2))
# 文字認識
with open('画像ファイル名', 'rb') as img:
print(json.dumps(visual_recognition.recognize_text(images_file=img), indent=2))
2)画像認識器を自作して使う
Python で以下を実行(作成から、リスト、画像認識、削除まで)
# -*- coding: utf-8 -*
import json
from os.path import join, dirname
from watson_developer_cloud import VisualRecognitionV3
# VisualRecognition のサービス資格情報から api_key を参照
visual_recognition = VisualRecognitionV3('2016-05-20', api_key='api_key')
# 独自に画像分類器を作る
with open('分類1の画像zipファイル名', 'rb') as no1, open('分類2の画像zipファイル名', 'rb') as no2:
print(json.dumps(visual_recognition.create_classifier('分類器名', no1_positive_examples=no1, negative_examples=no2), indent=2))
# 独自に作った画像分類器のリスト
print(json.dumps(visual_recognition.list_classifiers(), indent=2))
# 独自に作った画像分類器による認識
with open('画像ファイル名', 'rb') as img:
print(json.dumps(visual_recognition.classify(images_file=img, classifier_ids=['classifier_id']), indent=2))
# 独自に作った画像分類器を削除
print(json.dumps(visual_recognition.delete_classifier(classifier_id='classifier_id'), indent=2))
Good Luck !!!