[PYTHON] Estimation de catégorie à l'aide de l'API de reconnaissance d'image de docomo

Chose que tu veux faire

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.

** Le code implémenté cette fois-ci est téléchargé sur ici. ** **

Cliquez ici si vous souhaitez effectuer la reconnaissance de caractères

Préparation préalable

Fichier image à reconnaître (rose.jpg)

rose.jpg

Environnement de développement

--Série Python 2.7

programme

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']

Résultat d'exécution

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

Épilogue

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

Estimation de catégorie à l'aide de l'API de reconnaissance d'image de docomo
Extraire des caractères d'images à l'aide de l'API de reconnaissance de caractères de docomo
Reconnaissance de l'âge à l'aide de l'API de Pepper
Reconnaissance d'image avec API à partir de zéro connaissance avec AutoML Vision
Reconnaissance faciale à l'aide de l'API de Pepper
Reconnaissance d'image des fruits avec VGG16
Reconnaissance d'image
Python: principes de base de la reconnaissance d'image à l'aide de CNN
Python: Application de la reconnaissance d'image à l'aide de CNN
Modèle de reconnaissance d'image utilisant l'apprentissage profond en 2016
Reconnaissance d'image à l'aide de chevaux et de cerfs CNN
Collection d'images à l'aide de l'API Google Custom Search
Comment coder un drone en utilisant la reconnaissance d'image
Obtenir l'URL de l'image à l'aide de l'API Flickr en Python
Reconnaissance vocale des fichiers par l'API Google Speech v2 à l'aide de Python
Reconnaissance d'image avec keras
Tutoriel Pepper (7): Reconnaissance d'image
Segmentation d'image à l'aide de U-net
Estimation de la valeur de capacité à l'aide de pyirt
Principes de base de la reconnaissance d'image CNN 1
Détermination des maladies des arbres par reconnaissance d'image à l'aide de CNTK et SVM
J'ai essayé d'utiliser l'API de reconnaissance faciale des services cognitifs de Microsoft
Collectez un grand nombre d'images à l'aide de l'API de recherche d'images de Bing
Optimisation d'image côté serveur à l'aide de l'API Web de TinyPNG
Détection d'image de visage similaire utilisant la reconnaissance faciale et le clustering PCA et K-means