Vor kurzem konnte ich durch Berühren verstehen, wie die Computer Vision-API verwendet wird, und ich war überrascht über die höhere Leistung als erwartet. Daher habe ich beschlossen, sie zusammenzufassen. Nachdem ich vorgestellt habe, was die Computer Vision-API ist, warum sie erstaunlich ist und wie leistungsfähig sie sein kann, wenn Sie sie tatsächlich verwenden, möchte ich Ihnen auch den Code zeigen. Durch diesen Artikel habe ich gelernt, dass Sie eine so leistungsstarke Bilderkennungsfunktion einfach verwenden können, indem Sie ein paar Codezeilen schreiben, und ich hoffe, Sie werden es versuchen.
Der API-Dienst von Microsoft, der ein Bild in REST auslöst und das Ergebnis der Analyse des Bildes im JSON-Format zurückgibt. Es erkennt nicht nur das Objekt im Bild und gibt das Tag aus, sondern gibt auch den Status und die Situation des Objekts auf dem Bild als Tag mit Verben und Adjektiven aus. (ex. water, sport, swimming, man) Darüber hinaus fügt es dem Bild in einem Satz eine plausible Beschriftung hinzu. (ex. a man swimming in a pool of water)
(Siehe Offizielle Seite)
Hinter den Kulissen läuft die neueste Bilderkennungs-Engine, die die neuesten Forschungsergebnisse von Microsoft Research enthält und für die breite Öffentlichkeit zugänglich ist.
Obwohl es auf dem neuesten Stand ist, frage ich mich, wie stark Microsoft Research in diesem Bereich überhaupt ist. Im Bereich der Bilderkennung gibt es ein Projekt namens ImageNet, das eine große Anzahl von Bildern und zugehörigen Anmerkungen als offenen Datensatz veröffentlicht. Es gibt einen Wettbewerb namens Large Scale Visual Recognition Challenge, der von diesem Wettbewerb gesponsert wird und um die Bilderkennungsgenauigkeit einer großen Menge von Bilddaten konkurriert. Beim jüngsten Wettbewerb (ILSVRC 2015) steht MSRA (Microsoft Research Asia) bei vielen Aufgaben an erster Stelle, während Forschungsabteilungen wie Google und Forschungsteams von führenden ausländischen Universitäten miteinander konkurrieren.
(Zitiert aus ILSVRC2015-Ergebnissen)
Da ich als Student in einem Labor in der Nähe dieses Fachgebiets war, hatte ich ein vages Bild davon, dass MS oft "starke Papiere" veröffentlichte, aber ich bin froh, dass ich die spezifische Situation durch eine Untersuchung dieses Mal kennen konnte. Am Ende dieses Artikels zitiere ich auch die verwandten Artikel, die für die Computer Vision API verwendet werden, aber wenn ich sie mir anschaue, werden normalerweise die neuesten Forschungsergebnisse verwendet, daher bin ich überzeugt, dass es erstaunlich ist.
Lassen Sie uns tatsächlich Ihr eigenes Bild werfen und das Analyseergebnis sehen. Dieses Mal möchte ich ** Caption Generation Function ** und ** Tag Generation Function ** vorstellen, die ich persönlich als besonders nützlich und interessant unter den Bilderkennungsfunktionen der Computer Vision API empfand. Zum Lernen habe ich diesmal einen einfachen Webdienst erstellt, der das Bild aufruft, das Analyseergebnis anzeigt und es in Azure bereitstellt. (Ich möchte den Code auf Git hochladen und beim nächsten Mal zusammenfassen.) Nachfolgend einige Kommentare und Eindrücke.
Zuallererst ** Foto von Kaffee und Pfundkuchen, aufgenommen im Café **
Die richtige Antwort war ein Stück Kuchen und ein Stück Kaffee in einer Tasse. Als ich mir die Etiketten ansah, war ich überrascht, einen Tisch zu finden, Schokolade und sogar gegessen, was darauf hinweist, dass ich gerade essen wollte.
Als nächstes kommt ** ein lässiges Foto, das auf Reisen aufgenommen wurde **
Bei Betrachtung der generierten Bildunterschriften wurde erneut brillant vermutet, dass das Auto vor der Kirche geparkt war. Ich war beeindruckt, dass die Positionsbeziehung der Objekte im Bild in der Beschriftung ausgedrückt wurde.
Wenn Sie die auf diese Weise ausgegebenen Tags verwenden, ist es einfach, Apps und Webdiensten Bildsuchfunktionen hinzuzufügen und eine Gruppierung durchzuführen. Wenn der Webdienst eine große Anzahl von Bildern enthält, kann es auch interessant sein, diese zu analysieren und nach der Gesamtzahl der Tags zu ordnen, um neue Erkenntnisse zu gewinnen.
Ich möchte Ihnen zeigen, welche Art von Code und wie viel Code dies erreichen kann. Ich habe es im Python2-System geschrieben. Implementierungsbeispiele für Python3-Serien und C #, Java, JavaScript, Objective-C, PHP und Ruby finden Sie unten in hier. ..
ComputerVision API-Nutzungsteil
import httplib
import urllib
image_url = ''
headers = {
# Request headers
'Content-Type': 'application/json',
# 'Content-Type': 'application/octet-stream',
'Ocp-Apim-Subscription-Key': 'Your key',
}
params = urllib.urlencode({
# Request parameters
'visualFeatures': 'Description',
# 'visualFeatures': 'Categories,Tags, Description, Faces, ImageType, Color, Adult',
# 'details': 'Celebrities'
})
conn = httplib.HTTPSConnection('api.projectoxford.ai')
body = """{'url': '%s'}""" % (image_url)
conn.request("POST", "/vision/v1.0/analyze?%s" % params, body, headers)
response = conn.getresponse()
caption_data = response.read()
conn.close()
Im obigen Beispiel wird die Bild-URL ausgelöst. Es ist auch möglich, Bilddaten direkt zu werfen. Das Wechseln ist möglich, indem der Wert von Content-Type in den Headern geändert wird.
'Content-Type': 'application/json'Bei Angabe einer Bild-URL
'Content-Type': 'application/octet-stream'Bei der direkten Abgabe von Bilddaten
Wenn Sie also Daten direkt werfen möchten, geben Sie octat-stream und an Der folgende Teil
body = """{'url': '%s'}""" % (image_url)
conn.request("POST", "/vision/v1.0/analyze?%s" % params, body, headers)
Kann wie folgt geändert werden.
file_name = ''
img = open(file_name, 'rb').read()
conn.request("POST", "/vision/v1.0/analyze?%s" % params, img, headers)
Geben Sie in params das gewünschte Analyseergebnis mit Parametern an. Zu diesem Zeitpunkt können die folgenden sieben Werte für visualFeatures angegeben werden.
(Weitere Informationen finden Sie unter Anforderungsparameter in hier) Das obige Beispiel für die Analyse meines eigenen Fotos ist das Ergebnis, wenn für visualFeatures nur die Beschreibung (Untertitelgenerierungsfunktion und Taggenerierungsfunktion) angegeben ist.
Wenn alle in visualFeatrues angegeben sind, wird der folgende JSON zurückgegeben. Sehen wir uns das Ergebnis an, wenn Sie das auf der offiziellen Seite verwendete Bild verwenden. Sie können auch die Sicherheit jedes Tags überprüfen, ob es sich um ein Erwachsenenbild handelt, die Position des Gesichts der reflektierten Person, Geschlecht und Alter usw.
Analytisches Bild |
---|
JSON kehrte zurück
{
"categories": [
{
"name": "people_swimming",
"score": 0.98046875
}
],
"adult": {
"isAdultContent": false,
"isRacyContent": false,
"adultScore": 0.14750830829143524,
"racyScore": 0.12601403892040253
},
"tags": [
{
"name": "water",
"confidence": 0.99964427947998047
},
{
"name": "sport",
"confidence": 0.95049923658370972
},
{
"name": "swimming",
"confidence": 0.90628182888031006,
"hint": "sport"
},
{
"name": "pool",
"confidence": 0.87875884771347046
},
{
"name": "water sport",
"confidence": 0.631849467754364,
"hint": "sport"
}
],
"description": {
"tags": [
"water",
"sport",
"swimming",
"pool",
"man",
"riding",
"blue",
"top",
"ocean",
"young",
"wave",
"bird",
"game",
"large",
"standing",
"body",
"frisbee",
"board",
"playing"
],
"captions": [
{
"text": "a man swimming in a pool of water",
"confidence": 0.78501081244404836
}
]
},
"requestId": "your request Id",
"metadata": {
"width": 1500,
"height": 1155,
"format": "Jpeg"
},
"faces": [
{
"age": 29,
"gender": "Male",
"faceRectangle": {
"left": 748,
"top": 336,
"width": 304,
"height": 304
}
}
],
"color": {
"dominantColorForeground": "Grey",
"dominantColorBackground": "White",
"dominantColors": [
"White"
],
"accentColor": "19A4B2",
"isBWImg": false
},
"imageType": {
"clipArtType": 0,
"lineDrawingType": 0
}
}
Grundsätzlich sind die zurückgegebenen Tags für allgemeine Zwecke bestimmt (z. B. Hunde, keine Pudel), aber für Prominente können Sie sich sogar identifizieren. Wenn Sie diese Funktion aktivieren möchten, gehen Sie zu Details in den Parametern
'details' : 'Celebrities'
Wenn Sie angeben, wird das Analyseergebnis in JSON aufgenommen. Das Promi-Urteil scheint in der Lage zu sein, etwa 200.000 Menschen zu identifizieren, und wenn es von anderen Personen gefragt wird, die es berührt haben, scheint es, dass es auch Demon Kogure entspricht! (Wie alt ist das Alter ...?)
Für die Nutzung von Cognitive Services ist ein Abonnementschlüssel erforderlich. Eine kostenlose Testversion ist [hier] verfügbar (https://www.microsoft.com/cognitive-services/en-us/subscriptions?productId=0products/54d873dd5eefd00dc474a0f4) ) Bitte registrieren. Sie müssen sich mit Ihrem Microsoft-Konto anmelden. Geben Sie den Abonnementschlüssel an, den Sie durch Registrierung bei Ocp-Apim-Abonnementschlüssel im Beispielcode erhalten haben. Es gibt auch einen kostenpflichtigen Plan. Wenn Sie ihn also fest verwenden möchten, anstatt ihn auszuprobieren, lesen Sie bitte den folgenden Punkt ** Nutzungsplan **.
Wenn Sie etwas ausprobieren möchten, bevor Sie Ihren eigenen Code schreiben, besuchen Sie die offizielle Kommentarseite (https://www.microsoft.com/cognitive-services/en-us/computer-vision-api). Wenn Sie es erhalten, können Sie das vorbereitete Bild auswählen oder Ihr eigenes Bild hochladen und es überprüfen. Es wird daher empfohlen.
Wenn Sie verschiedene Meinungen und Ideen haben, z. B. versuchen, sie zu nutzen und hier mehr zu tun, Give your apps a human side (Feedback-Sharing-Seite, auf die das Computer Vision API-Entwicklungsteam verweist). Es ist schön, auf diese Weise benutzerseitige Meinungen direkt an das Entwicklungsteam übermitteln zu können. Über jede Verbesserungsidee kann abgestimmt werden. Wenn die Stimmen gesammelt werden, wird sie höher eingestuft, sodass die Aufmerksamkeit leichter auf sich gezogen werden kann. Lassen Sie es uns gemeinsam nutzen und verbessern!
Ab heute wurde ** Standardplan ** zum vorherigen Testplan hinzugefügt. Kostenlos! Es gibt keine SLA oder Unterstützung, da sich die gesamten Cognitive Services noch in der Vorschau befinden. Ich denke, Sie können es auch für geschäftliche Zwecke in Betracht ziehen.
Plan | Description | Price |
---|---|---|
Free | 5,000 transactions per month | Free |
Standard | 10 transactions per second | $ 1.50 per 1000 transactions |
Sie können ein Standardplan-Konto direkt von [hier] aus einrichten (https://portal.azure.com/#create/Microsoft.CognitiveServices/apitype/ComputerVision/pricingtier/S0). Wenn Sie kein Microsoft Azure-Abonnement haben, benötigen Sie ein Microsoft Azure-Abonnement, um den Standardplan verwenden zu können. Wenn Sie also kein Abonnement haben, einen Monat ab hier Bitte versuchen Sie es mit dem kostenlosen Testkonto für 20.500 Yen.
Wenn es eine Möglichkeit gibt, diese API zu verwenden, die geschäftliche Auswirkungen hat, lassen Sie es mich bitte in den Kommentaren oder persönlich wissen. Ich persönlich interessiere mich sehr dafür! Lol
Abschließend möchte ich die Forschungsergebnisse vorstellen, die hinter der Computer Vision API verwendet wurden, die von der offiziellen Seite abgerufen wurde. (Offizielle Referenz-URL) Das erste Papier wurde in CVPR 2015 angenommen, nicht wahr? CVPR ist eine Top-Konferenz in internationalen Computer Vision-Konferenzen. Man kann also sagen, dass es sich um eine Forschung von relativ hoher Qualität und hohem Niveau handelt. Ich denke, es ist sehr interessant mit einem beispiellosen Gefühl der Geschwindigkeit, dass die vor einem Jahr angekündigte Spitzenforschung als ein Dienst entwickelt wird, der für die breite Öffentlichkeit genutzt werden kann.
Hao Fang, Saurabh Gupta, Forrest Iandola, Rupesh Srivastava, Li Deng, Piotr Dollar, Jianfeng Gao, Xiaodong He, Margaret Mitchell, John Platt, Lawrence Zitnick, and Geoffrey Zweig, From Captions to Visual Concepts and Back,CVPR,June2015(won1stPrizeattheCOCOImageCaptioningChallenge2015)
Kaiming He, Xiangyu Zhang, Shaoqing Ren, and Jian Sun. Deep Residual Learning for Image Recognition.arXiv(wonbothImageNetandMSCOCOcompetitions2015)
Yandong Guo, Lei Zhang, Yuxiao Hu, Xiaodong He, Jianfeng Gao, MS-Celeb-1M: Challenge of Recognizing One Million Celebrities in the Real World, IS&T International Symposium on Electronic Imaging, 2016
Xiao Zhang,Lei Zhang, Xin-Jing Wang, Heung-Yeung Shum, Finding Celebrities in Billions of Web Images, accepted by IEEE Transaction on Multimedia, 2012
Die Computer Vision-API (https://www.microsoft.com/cognitive-services/en-us/computer-vision-api) ist die Cognitive Services von Microsoft (https://www.microsoft.com/cognitive). -services /), einer der Cloud-basierten API-Dienste Es ist eine API, die aus den folgenden fünf Kategorien zur Kategorie Vision gehört.
Die APIs in der Kategorie Vision lauten wie folgt.
Die Computer Vision API bietet die folgenden Funktionen, einschließlich der Bilderkennung:
Recommended Posts