Estimez la catégorie d'images à l'aide de l'API de reconnaissance d'image publiée par docomo.
L'API de reconnaissance d'image estime les catégories en fonction du modèle appris en Deep Learning. Pour ceux qui ne souhaitent pas implémenter un programme de reconnaissance d'image par Deep Learning à partir de zéro, mais qui souhaitent essayer la reconnaissance d'image.
--Série Python 2.7
Remplacez la clé API obtenue auprès du support développeur docomo par (API KEY) dans le code.
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
#Jetez des données d'image et obtenez les 5 meilleurs candidats(Reconnaissance de catégorie)
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__':
#argument(Réglage des options)
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()
#Nom du fichier image,paramètre modelName
fname = args.image
model_name = args.model
#Obtenez des candidats de catégorie(Utiliser la reconnaissance de catégorie)
candidate_list = getImageCategory(fname, model_name)
#Afficher les balises de catégorie et les scores
for can in candidate_list:
print can['tag'], can['score']
Vous pouvez spécifier un fichier image avec l'option --image. La valeur par défaut est rose.jpg.
Vous pouvez également utiliser l'option --model pour spécifier le modèle à utiliser lors de l'estimation. Par exemple, si vous spécifiez "--model scene", vous pouvez utiliser un modèle qui estime des scènes telles que "mariage", "aquarium", "fleur" et "animal". (Par défaut, il s'agit d'une scène.)
Voici le résultat de l'estimation de la catégorie de scène de rose.jpg. Le score indiquant la catégorie et la certitude est affiché.
$ python imageRecognition.py --image rose.jpg
Fleur 0.999078631401
Extérieur 0.000487390527269
Golf 0.000105955921754
Football 0.000101881953015
Peinture / Artisanat 3.79223347409e-05
Vous pouvez estimer la catégorie de fleur en ajoutant "--model flower" en option, comme indiqué ci-dessous.
$ python imageRecognition.py --image rose.jpg --model flower
Rose 0.992434620857
Mini rose 0.00756544619799
Southernka 3.99395894135e-09
Kalanchoe 2.60835908428e-09
Géranium 1.24757426612e-09
J'ai pu facilement estimer les catégories d'images à l'aide du modèle appris par Deep Learning. Tant que vous vous inscrivez en tant que développeur, vous pouvez facilement l'utiliser, ce qui est pratique pour ceux qui souhaitent créer quelque chose.
En plus de la reconnaissance d'image, diverses API sont ouvertes au public, j'aimerais donc les utiliser.
Recommended Posts