[PYTHON] Kategorieschätzung mit der Bilderkennungs-API von docomo

Was du machen willst

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.

** Der diesmal implementierte Code wird auf [hier] hochgeladen (https://github.com/ichiroex/imageRecognition). ** **.

Klicken Sie hier, wenn Sie eine Zeichenerkennung durchführen möchten

Vorbereitungen

Zu erkennende Bilddatei (rose.jpg)

rose.jpg

Entwicklungsumgebung

Programm

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

Ausführungsergebnis

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

Nachwort

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

Kategorieschätzung mit der Bilderkennungs-API von docomo
Extrahieren Sie Zeichen aus Bildern mithilfe der Zeichenerkennungs-API von docomo
Alterserkennung mit Peppers API
Bilderkennung mit API aus null Wissen mit AutoML Vision
Gesichtserkennung mit Peppers API
Bilderkennung von Früchten mit VGG16
Bilderkennung
Python: Grundlagen der Bilderkennung mit CNN
Python: Anwendung der Bilderkennung mit CNN
Bilderkennungsmodell mit Deep Learning im Jahr 2016
Bilderkennung mit CNN Pferden und Hirschen
Bildersammlung mit der benutzerdefinierten Such-API von Google
So codieren Sie eine Drohne mithilfe der Bilderkennung
Holen Sie sich die Bild-URL mithilfe der Flickr-API in Python
Sprachdateierkennung durch Google Speech API v2 mit Python
Bilderkennung mit Keras
Pfeffer-Tutorial (7): Bilderkennung
Bildsegmentierung mit U-Net
Fähigkeitswertschätzung mit Pyirt
Grundlagen der CNN 1-Bilderkennung
Bestimmung von Baumkrankheiten durch Bilderkennung mit CNTK und SVM
Ich habe versucht, die Gesichtserkennungs-API von Microsoft für Cognitive Services zu verwenden
Sammeln Sie eine große Anzahl von Bildern mit der Bildsuch-API von Bing
Image Optimize auf der Serverseite mithilfe der Web-API von TinyPNG
Ähnliche Gesichtsbilderkennung mit Gesichtserkennung und PCA- und K-Mittel-Clustering