Ist die Google Cloud Vision API die Nummer 1 für Objekterkennung?

Visuelle Objekterkennung ist genau dein Ding? Wenn du immer die schnellsten und genauesten Ergebnisse für deine Suchanfragen haben möchtest, interessierst du dich eventuell für den neuesten Player unter den APIs, Google Cloud Vision, und dafür wie er sich im Vergleich mit ähnlichen Services schlägt. Wir haben diesen Vergleich für dich angestellt und möchten unsere Ergebnisse hier teilen.

 

google cloud codefluegel graz

 

Die Google Cloud Vision API

Vor Kurzem hat Google den allgemeinen Beta Release ihrer Cloud Vision API verkündet. Nachdem Objekt- und Texterkennung immer komplexer wird und auch über die letzten Jahre viele verschiedene Anbieter für solche Services  aufgetaucht sind, haben wir gedacht es wäre an der Zeit, einen kurzen Vergleich unter ihnen anzustellen. Einerseits haben wir getestet wie gut Google Cloud Vision an sich funktioniert und andererseits, wie sich der Service gegen die Konkurrenz schlägt. 

Die Cloud Vision API bietet mehrere verschiedene Erkennungstypen: [1]

  • Gesicht:
    stellt fest ob Gesichter in einem Bild auftauchen und erkennt die Position von Augen, Nase und Mund, sowie die Wahrscheinlichkeit diverser Emotionen wie Freude oder Kummer. Google versichert auch, dass keine Informationen zur Gesichtserkennung auf ihren Servern gespeichert werden – aber darüber kann sich jeder seine eigene Meinung bilden.
  • Wahrzeichen:
    erkennt und identifiziert bekannte natürliche und bauliche Strukturen (kein anderer Service scheint dieses Feature anzubieten)
  • Logo
    erkennt und identifiziert Produktlogos innerhalb eines Bildes und liefert den Markennamen
  • Kennzeichen
    wählt die dominanten Objekte und Strukturen innerhalb eines Bildes und liefert passende Metadaten
  • Text
    erkennt Text innerhalb eines Bildes (und unterstützt dabei viele verschiedene Sprachen)
  • Sichere Suche
    erkennt unangemessene Inhalte innerhalb eines Bildes (vergleichbar mit Google SafeSearch)

Für dieses kleine Testszenario haben wir uns dafür entschieden, vier der oben genannten Erkennungstypen (Logo-, Wahrzeichen-, Kennzeichen- und Texterkennung) auszuwählen, um festzustellen wie gut die Leistung der Google API bei verschiedenen Bildern tatsächlich ist.

Die Zahlen neben den verschiedenen ausgegebenen Begriffen zeigen das “level of confidence”, also die angenommene Wahrscheinlichkeit für das Vorkommen der einzelnen Begriffe, wobei 1 der höchste Wert ist (das würde heißen, dass der Algorithmus zu 100% sicher ist, etwas korrekt erkannt zu haben).

OK, los geht’s!

Den ersten Test habe ich mit einigen Nahaufnahmen meines Schreibtisches durchgeführt. Überraschung, der Algorithmus konnte bei Bild 1 zumindest zwei von drei Logos erkennen und gab relativ gute Ergebnisse für die Objekte zurück. Dazu könnte man jetzt aber auch noch sagen, dass Cherry offensichtlich gute Arbeit dabei geleistet hat, die Erkennungssoftware glauben zu lassen, dass die Buttons auf der Maus aus Eisen sind – denn das sind sie definitiv nicht – und außerdem, dass wir ein ziemliches Talent dafür besitzen einen Keil und einen Golfschläger im Bild zu verstecken. Den Ergebnissen “wedge (71%)” und  “putter (64%)” nach zu schließen, ist sich Google zumindest sehr sicher, dass sie da sind.

google cloud vision api results 1

Wie dem auch sei, weiter zum nächsten Bild. Das nächste Bild zeigt fast dieselbe Anordnung von Objekten, allerdings aus einem anderen Blickwinkel und von etwas weiter weg. Obwohl wir hier ein zusätzliches Logo für die Erkennung „vorgeschlagen“ haben, beschließt Google hier, dass keine Logos zu finden sind, was mich etwas überrascht hat. Zumindest findet die Erkennung keinen Golfschläger mehr, stattdessen sind in diesem Bild ein Mobiltelefon (“mobile phone (85%)” ) und eine Hand (“hand (65%)”) versteckt … naja, OK. Anhand (ich bitte um Entschuldigung für den schlechten Wortwitz) der anderen gelieferten Werte wie “gadget”, “computer”, “input device” und “computer hardware” lässt sich die Qualität des Algorithmus erkennen, da diese besser nicht sein könnten. Auch die Textsuche hat hier wirklich gut funktioniert, wie man sieht.

Wenn wir die Kamera noch etwas weiter weg bewegen und mehr Objekte ins Bild aufnehmen (wie beispielsweise meine vorbildliche Kabelorganisation) erkennt Google ein Fahrzeug (“vehicle (64%)”) und einen Synthesizer (“drum machine (51%)”), aber dafür keine Logos. Interessanterweise konnte die Texterkennung den BenQ Schriftzug auf dem Monitor zwar lesen, ihn aber nicht als Logo identifizieren. Aber alles in allem ist das Ergebnis hier ganz OK.

Aber was wenn ich auch andere Dinge als meinen Arbeitsplatz fotografieren möchte? Wir sollten also auch noch folgendes testen. Diesen Versuch habe ich mit einem Bild des Grazer Uhrturms gestartet – der sollte schließlich weltweit jedem ein Begriff sein, oder etwa nicht? Na gut, er genießt nicht die gleiche Bekanntheit wie zum Beispiel der Eiffelturm oder die Freiheitsstatue, aber ein gewisses Potential zur Erkennung ist vorhanden (wie ihr gleich sehen werdet).

google cloud vision api results 2 graz

Der Algorithmus schlug diesmal keinen falschen Alarm was irgendwelche Logos angeht und konnte, ehrlich gesagt zu meiner Überraschung, das Wahrzeichen als “Graz Schloßberg Clock Tower (98%)” ziemlich zielsicher erkennen. Auch die gelieferten generellen Schlagwörter stimmen mit Begriffen wie “clock tower (94%)”, “tower (83%)” and “steeple (56%)” gut mit dem Bild überein. Das einzig zu Bemängelnde war der falsch erkannte Buchstabe „a“ (vielleicht aufgrund der A-förmigen Rosenbögen?), aber im Grunde lieferte die Software für dieses Bild ein sehr zufriedenstellendes Ergebnis.

Wie sieht’s mit der Konkurrenz aus?

Imagga

Dieser Service lieferte eine große Anzahl von Ergebnissen und passenden Begriffen zum Bild, konnte aber das Wahrzeichen nicht identifizieren. Dabei muss man allerdings bedenken, dass eine solche Erkennung von Imagga nicht als Feature beworben wurde, also können wir das auch nicht wirklich kritisieren. Ein Alleinstellungsmerkmal dieses Service ist die textuelle Ausgabe der im Bild vorhandenen Farben und deren jeweiliges prozentuelles Vorkommen.

google-cloud-vision-api vs imagga

CloudSight API

Nach mehreren Versuchen auf die ich die Antwort „Too many requests“ erhielt, lieferte die Demo der CloudSight API doch noch ein Ergebnis. Die Ausgabe “white and black concrete clock tower” war zwar weder die genaueste, noch konnte der Algorithmus das Wahrzeichen identifizieren, doch etwas positives ist trotzdem zu vermerken. Das Ergebnis wurde, anstelle des üblichen Wortclusters, in Form eines ganzen Satzes geliefert, der für Menschen tatsächlich lesbar ist.

google-cloud-vision-api vs cloudsight api

clarifAI

Auch dieser Service schaffte es, das Bild mehr oder weniger gut zu kategorisieren, aber die Genauigkeit war dabei relativ gering. Oder um es anders zu sagen: die gelieferten Begriffe waren in unseren Augen etwas zu “meta”. Eines der Ergebnisse war beispielsweise “no person”, was zwar unbestreitbar richtig, aber vielleicht nicht unbedingt ganz relevant ist. Zusammengefasst war uns die ausgegebene Bildbeschreibung etwas zu vage.

google-cloud-vision-api vs clarifai

Conclusion

Kann ich abschließend also mit gutem Gewissen behaupten, dass Google Cloud Vision die Nummer 1 unter den APIs für Objekterkennung ist?
Nach dem Vergleich mit der Konkurrenz ist meine Antwort: Ja!

Ich weiß, ihr fragt euch jetzt: „aber… wieso vergleichst du nicht auch alle anderen Anbieter solcher Services? “ Und meine Antwort darauf ist, um das zu machen müssten wir einen Vollzeit-Tester einstellen. Wenn das euer Traumjob ist, dürft ihr euch gerne bewerben. Inzwischen ist meine finales Urteil auf die zuerst gestellte Frage: vielleicht.

Der Ansatz von Google erreicht das was er soll. Man sollte davon nur keine Wunder oder Magie erwarten, aber es ist schließlich ein Google Produkt – also wer weiß… Zum Testzeitpunkt und unter der Annahme, dass die Erkennung mit Sicherheit noch verbessert wird, können wir die Google API empfehlen. Im Vergleich mit den Funktionen und der Qualtiät der anderen Services, gibt Google deutlich den Ton an.

P.S.: Ihr ahnt vermutlich wie es mit den Ergebnissen aussah, als wir die Logoerkennung an unserem eigenen Schriftzug ausprobiert haben. Falls nicht, seht ihr die traurige Wahrheit in den Bildern unten… Ach, naja.

google cloud vision api results codefluegel