Schätzen Sie die Kategorie der Bilder mithilfe der von docomo veröffentlichten Bilderkennungs-API.
Die Bilderkennungs-API schätzt Kategorien basierend auf dem in Deep Learning erlernten Modell. Für diejenigen, die kein Bilderkennungsprogramm von Deep Learning von Grund auf neu implementieren möchten, aber die Bilderkennung ausprobieren möchten.
Ersetzen Sie den API-Schlüssel durch den API-Entwickler-Support für (API-SCHLÜSSEL) im 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
#Werfen Sie Bilddaten und holen Sie sich die Top 5 Kandidaten der Kategorie(Kategorieerkennung)
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__':
#Streit(Optionseinstellung)
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()
#Name der Bilddatei,modelName-Einstellung
fname = args.image
model_name = args.model
#Holen Sie sich Kategorie Kandidaten(Verwenden Sie die Kategorieerkennung)
candidate_list = getImageCategory(fname, model_name)
#Kategorie-Tags und Partituren anzeigen
for can in candidate_list:
print can['tag'], can['score']
Sie können eine Bilddatei mit der Option --image angeben. Der Standardwert ist rose.jpg.
Sie können auch die Option --model verwenden, um das Modell anzugeben, das beim Schätzen verwendet werden soll. Wenn Sie beispielsweise "--modelszene" angeben, können Sie ein Modell verwenden, das Szenen wie "Hochzeit", "Aquarium", "Blume" und "Tier" schätzt. (Standardmäßig ist es Szene.)
Unten sehen Sie das Ergebnis der Schätzung der Szenenkategorie von rose.jpg. Die Punktzahl mit Kategorie und Sicherheit wird angezeigt.
$ python imageRecognition.py --image rose.jpg
Blume 0.999078631401
Außen 0.000487390527269
Golf 0.000105955921754
Fußball 0.000101881953015
Malen / Basteln 3.79223347409e-05
Sie können auf die Blumenkategorie schließen, indem Sie wie unten gezeigt optional "--modellblume" hinzufügen.
$ python imageRecognition.py --image rose.jpg --model flower
Rose 0.992434620857
Mini Rose 0.00756544619799
Southernka 3.99395894135e-09
Kalanchoe 2.60835908428e-09
Geranie 1.24757426612e-09
Mit dem von Deep Learning erlernten Modell konnte ich die Bildkategorien leicht abschätzen. Solange Sie sich als Entwickler registrieren, können Sie es problemlos verwenden, was für diejenigen praktisch ist, die etwas erstellen möchten.
Neben der Bilderkennung sind verschiedene APIs für die Öffentlichkeit zugänglich, daher möchte ich sie nutzen.
Recommended Posts