docomo의 이미지 인식 API를 이용한 카테고리 추정
하고 싶은 일
docomo가 게시하는 이미지 인식 API를 사용하여 이미지 카테고리를 추정합니다.
이미지 인식 API는 Deep Learning에서 학습한 모델을 기반으로 카테고리를 추정합니다.
Deep Learning에 의한 화상 인식하는 프로그램을 처음부터 구현하고 싶지는 않지만, 화상 인식을 해보고 싶다는 방향입니다.
이번에 구현한 코드는 여기에 업하고 있습니다.
문자 인식을하고 싶은 분은 이쪽
사전 준비
인식 할 이미지 파일 (rose.jpg)
개발 환경
프로그램
코드의 (APIKEY)에는 docomo developer support에서 얻은 API 키를 할당하십시오.
imageRecognition.py# -*- coding: utf-8 -*-
# implemented by ichiroex
# other codes are also available on GitHub (https://github.com/ichiroex)
from poster.encode import multipart_encode
from poster.streaminghttp import register_openers
import urllib2
import json
import time
import urllib
import re
import sys
import argparse
#画像データを投げて、カテゴリの候補上位5つを取得 (カテゴリ認識)
def getImageCategory(fname, modelName):
register_openers()
APIKEY = "(APIKEY)"
url = 'https://api.apigw.smt.docomo.ne.jp/imageRecognition/v1/concept/classify/?APIKEY=' + APIKEY
f = open(fname, 'r')
datagen, headers = multipart_encode({"image": f, 'modelName': modelName})
request = urllib2.Request(url,datagen, headers)
response = urllib2.urlopen(request)
res_dat = response.read()
#return candidate list
return json.loads(res_dat)['candidates']
if __name__ == '__main__':
# 引数 (オプション設定)
parser = argparse.ArgumentParser()
parser.add_argument('--image' , dest='image', type=str, default='rose.jpg', help='name of input image')
parser.add_argument('--model' , dest='model', type=str, default='scene', help='modelName = {scene, fashion_pattern, fashion_type, fashion_style, fashion_color, food, flower, kinoko}')
args = parser.parse_args()
# 画像ファイル名, modelName の設定
fname = args.image
model_name = args.model
# カテゴリ候補の取得 (カテゴリ認識を利用)
candidate_list = getImageCategory(fname, model_name)
# カテゴリのタグとスコアを表示
for can in candidate_list:
print can['tag'], can['score']
실행 결과
--image 옵션으로 이미지 파일을 지정할 수 있습니다.
기본적으로 rose.jpg입니다.
또한 --model 옵션을 사용하면 추정할 때 사용할 모델을 지정할 수 있습니다.
예를 들어, "--model scene"을 지정하면 "결혼식", "수족관", "꽃", "동물"과 같은 장면을 추정하는 모델을 사용할 수 있습니다. (기본적으로 scene입니다.)
다음은 rose.jpg 장면 카테고리를 추정한 결과입니다.
카테고리와 확실성을 나타내는 점수를 표시합니다.
$ python imageRecognition.py --image rose.jpg
花 0.999078631401
アウトドア 0.000487390527269
ゴルフ 0.000105955921754
サッカー 0.000101881953015
絵・工作 3.79223347409e-05
아래와 같이 선택적으로 ``--model flower''를 추가하여 꽃 카테고리를 추정할 수 있습니다.
$ python imageRecognition.py --image rose.jpg --model flower
バラ 0.992434620857
ミニバラ 0.00756544619799
サザンカ 3.99395894135e-09
カランコエ 2.60835908428e-09
ゼラニウム 1.24757426612e-09
후기
Deep Learning에서 학습한 모델을 이용하여 쉽게 이미지 카테고리를 추정할 수 있었습니다.
developer 등록마저 끝나면 부담없이 이용할 수 있으므로, 무언가 앱 등을 만들고 싶은 분에게 편리합니다.
이미지 인식 이외에도 다양한 API가 공개되어 있으므로 활용하고 싶습니다.
Reference
이 문제에 관하여(docomo의 이미지 인식 API를 이용한 카테고리 추정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ichiroex/items/16a6dcd893a131624a71
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# -*- coding: utf-8 -*-
# implemented by ichiroex
# other codes are also available on GitHub (https://github.com/ichiroex)
from poster.encode import multipart_encode
from poster.streaminghttp import register_openers
import urllib2
import json
import time
import urllib
import re
import sys
import argparse
#画像データを投げて、カテゴリの候補上位5つを取得 (カテゴリ認識)
def getImageCategory(fname, modelName):
register_openers()
APIKEY = "(APIKEY)"
url = 'https://api.apigw.smt.docomo.ne.jp/imageRecognition/v1/concept/classify/?APIKEY=' + APIKEY
f = open(fname, 'r')
datagen, headers = multipart_encode({"image": f, 'modelName': modelName})
request = urllib2.Request(url,datagen, headers)
response = urllib2.urlopen(request)
res_dat = response.read()
#return candidate list
return json.loads(res_dat)['candidates']
if __name__ == '__main__':
# 引数 (オプション設定)
parser = argparse.ArgumentParser()
parser.add_argument('--image' , dest='image', type=str, default='rose.jpg', help='name of input image')
parser.add_argument('--model' , dest='model', type=str, default='scene', help='modelName = {scene, fashion_pattern, fashion_type, fashion_style, fashion_color, food, flower, kinoko}')
args = parser.parse_args()
# 画像ファイル名, modelName の設定
fname = args.image
model_name = args.model
# カテゴリ候補の取得 (カテゴリ認識を利用)
candidate_list = getImageCategory(fname, model_name)
# カテゴリのタグとスコアを表示
for can in candidate_list:
print can['tag'], can['score']
--image 옵션으로 이미지 파일을 지정할 수 있습니다.
기본적으로 rose.jpg입니다.
또한 --model 옵션을 사용하면 추정할 때 사용할 모델을 지정할 수 있습니다.
예를 들어, "--model scene"을 지정하면 "결혼식", "수족관", "꽃", "동물"과 같은 장면을 추정하는 모델을 사용할 수 있습니다. (기본적으로 scene입니다.)
다음은 rose.jpg 장면 카테고리를 추정한 결과입니다.
카테고리와 확실성을 나타내는 점수를 표시합니다.
$ python imageRecognition.py --image rose.jpg
花 0.999078631401
アウトドア 0.000487390527269
ゴルフ 0.000105955921754
サッカー 0.000101881953015
絵・工作 3.79223347409e-05
아래와 같이 선택적으로 ``--model flower''를 추가하여 꽃 카테고리를 추정할 수 있습니다.
$ python imageRecognition.py --image rose.jpg --model flower
バラ 0.992434620857
ミニバラ 0.00756544619799
サザンカ 3.99395894135e-09
カランコエ 2.60835908428e-09
ゼラニウム 1.24757426612e-09
후기
Deep Learning에서 학습한 모델을 이용하여 쉽게 이미지 카테고리를 추정할 수 있었습니다.
developer 등록마저 끝나면 부담없이 이용할 수 있으므로, 무언가 앱 등을 만들고 싶은 분에게 편리합니다.
이미지 인식 이외에도 다양한 API가 공개되어 있으므로 활용하고 싶습니다.
Reference
이 문제에 관하여(docomo의 이미지 인식 API를 이용한 카테고리 추정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/ichiroex/items/16a6dcd893a131624a71
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(docomo의 이미지 인식 API를 이용한 카테고리 추정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ichiroex/items/16a6dcd893a131624a71텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)