Was ist Computer Vision? KI für Bilder und Videos

Computer Vision identifiziert und lokalisiert häufig Objekte in digitalen Bildern und Videos. Da lebende Organismen Bilder mit ihrem visuellen Kortex verarbeiten, haben viele Forscher die Architektur des visuellen Kortex von Säugetieren als Modell für neuronale Netze zur Bilderkennung herangezogen. Die biologische Forschung reicht bis in die 1950er Jahre zurück.

Die Fortschritte in der Bildverarbeitung in den letzten 20 Jahren waren absolut bemerkenswert. Einige Computer-Vision-Systeme sind zwar noch nicht perfekt, erreichen jedoch eine Genauigkeit von 99%, andere laufen auf mobilen Geräten anständig.

Der Durchbruch im Bereich des neuronalen Netzwerks für das Sehen war 1998 das LeNet-5 von Yann LeCun, ein siebenstufiges neuronales Faltungsnetzwerk zur Erkennung handgeschriebener Ziffern, die in 32 x 32 Pixel großen Bildern digitalisiert wurden. Um Bilder mit höherer Auflösung zu analysieren, müsste das LeNet-5-Netzwerk auf mehr Neuronen und mehr Schichten erweitert werden.

Die besten Bildklassifizierungsmodelle von heute können verschiedene Kataloge von Objekten mit HD-Auflösung in Farbe identifizieren. Zusätzlich zu reinen tiefen neuronalen Netzen (DNNs) verwenden Menschen manchmal hybride Bildverarbeitungsmodelle, die tiefes Lernen mit klassischen Algorithmen für maschinelles Lernen kombinieren, die bestimmte Unteraufgaben ausführen.

Andere Sehprobleme neben der grundlegenden Bildklassifizierung wurden durch tiefes Lernen gelöst, einschließlich Bildklassifizierung mit Lokalisierung, Objekterkennung, Objektsegmentierung, Bildstilübertragung, Bildfärbung, Bildrekonstruktion, Bildauflösung und Bildsynthese.

Wie funktioniert Computer Vision?

Computer-Vision-Algorithmen basieren normalerweise auf Faltungs-Neuronalen Netzen oder CNNs. CNNs verwenden normalerweise Faltungs-, Pooling-, ReLU-, vollständig verbundene und Verlustschichten, um einen visuellen Kortex zu simulieren.

Die Faltungsschicht nimmt im Wesentlichen die Integrale vieler kleiner überlappender Bereiche auf. Die Pooling-Schicht führt eine Form der nichtlinearen Abwärtsabtastung durch. ReLU-Schichten wenden die nicht gesättigte Aktivierungsfunktion f (x) = max (0, x) an .

In einer vollständig verbundenen Schicht haben die Neuronen Verbindungen zu allen Aktivierungen in der vorherigen Schicht. Eine Verlustschicht berechnet, wie das Netzwerktraining die Abweichung zwischen den vorhergesagten und den tatsächlichen Bezeichnungen unter Verwendung eines Softmax- oder Kreuzentropieverlusts zur Klassifizierung bestraft.

Computer Vision Trainingsdatensätze

Es gibt viele öffentliche Bilddatensätze, die für das Training von Visionsmodellen nützlich sind. Das einfachste und eines der ältesten ist MNIST, das 70.000 handschriftliche Ziffern in 10 Klassen enthält, 60.000 für das Training und 10.000 für das Testen. MNIST ist ein einfach zu modellierender Datensatz, selbst wenn ein Laptop ohne Beschleunigungshardware verwendet wird. CIFAR-10 und Fashion-MNIST sind ähnliche Datensätze der Klasse 10. SVHN (Street View House Numbers) ist ein Satz von 600.000 Bildern von realen Hausnummern, die aus Google Street View extrahiert wurden.

COCO ist ein größerer Datensatz zur Objekterkennung, -segmentierung und -beschriftung mit 330.000 Bildern in 80 Objektkategorien. ImageNet enthält ungefähr 1,5 Millionen Bilder mit Begrenzungsrahmen und Beschriftungen, die ungefähr 100.000 Phrasen aus WordNet veranschaulichen. Open Images enthält ungefähr neun Millionen URLs zu Bildern mit ungefähr 5K-Labels.

Google, Azure und AWS verfügen alle über eigene Visionsmodelle, die für sehr große Bilddatenbanken trainiert wurden. Sie können diese unverändert verwenden oder Transfer Learning ausführen, um diese Modelle an Ihre eigenen Bilddatensätze anzupassen. Sie können das Transferlernen auch mit Modellen durchführen, die auf ImageNet und Open Images basieren. Die Vorteile des Transferlernens gegenüber dem Erstellen eines Modells von Grund auf sind, dass es viel schneller ist (Stunden statt Wochen) und dass Sie ein genaueres Modell erhalten. Sie benötigen immer noch 1.000 Bilder pro Etikett, um die besten Ergebnisse zu erzielen, obwohl Sie manchmal mit nur 10 Bildern pro Etikett davonkommen können.

Computer Vision-Anwendungen

Computer Vision ist zwar nicht perfekt, aber oft gut genug, um praktisch zu sein. Ein gutes Beispiel ist das Sehen in selbstfahrenden Automobilen.

Waymo, ehemals das selbstfahrende Autoprojekt von Google, behauptet Tests auf sieben Millionen Meilen öffentlichen Straßen und die Fähigkeit, im täglichen Verkehr sicher zu navigieren. Es gab mindestens einen Unfall mit einem Waymo-Van. Nach Angaben der Polizei wurde nicht angenommen, dass die Software schuld ist.

Tesla hat drei Modelle von selbstfahrenden Autos. Im Jahr 2018 war ein Tesla-SUV im Selbstfahrmodus in einen tödlichen Unfall verwickelt. Der Bericht über den Unfall besagte, dass der Fahrer (der getötet wurde) trotz mehrfacher Warnungen von der Konsole die Hände vom Lenkrad hatte und dass weder der Fahrer noch die Software versuchten zu bremsen, um ein Auftreffen auf die Betonbarriere zu vermeiden. Die Software wurde inzwischen so aktualisiert, dass die Hände des Fahrers am Lenkrad liegen müssen, anstatt darauf hinzuweisen.

Amazon Go-Geschäfte sind kassenfreie Self-Service-Einzelhandelsgeschäfte, in denen das Computer-Vision-System im Geschäft erkennt, wann Käufer Lagerartikel abholen oder zurückgeben. Käufer werden von einer Android- oder iPhone-App identifiziert und über diese aufgeladen. Wenn die Amazon Go-Software einen Artikel verpasst, kann der Käufer ihn kostenlos aufbewahren. Wenn die Software einen entnommenen Artikel fälschlicherweise registriert, kann der Käufer den Artikel markieren und eine Rückerstattung für diese Gebühr erhalten.

Im Gesundheitswesen gibt es Bildverarbeitungsanwendungen zur Klassifizierung bestimmter Merkmale in Pathologie-Objektträgern, Röntgenaufnahmen des Brustkorbs und anderen medizinischen Bildgebungssystemen. Einige davon haben sich im Vergleich zu qualifizierten menschlichen Praktikern als wertvoll erwiesen, einige genug für die behördliche Genehmigung. Es gibt auch ein Echtzeitsystem zur Schätzung des Blutverlusts von Patienten in einem Operations- oder Entbindungsraum.

Es gibt nützliche Bildverarbeitungsanwendungen für die Landwirtschaft (landwirtschaftliche Roboter, Ernte- und Bodenüberwachung und prädiktive Analyse), Bankgeschäfte (Betrugserkennung, Dokumentenauthentifizierung und Remote-Einzahlungen) und industrielle Überwachung (Remote-Brunnen, Standortsicherheit und Arbeitsaktivität).

Es gibt auch Anwendungen der Computer Vision, die umstritten oder sogar veraltet sind. Eine davon ist die Gesichtserkennung, die bei Verwendung durch die Regierung eine Verletzung der Privatsphäre darstellen kann und häufig eine Trainingsverzerrung aufweist, die dazu neigt, nicht weiße Gesichter falsch zu identifizieren. Eine andere ist die Deepfake-Generation, die mehr als ein bisschen gruselig ist, wenn sie für Pornografie oder die Erstellung von Hoaxes und anderen betrügerischen Bildern verwendet wird.

Computer Vision Frameworks und Modelle

Die meisten Deep-Learning-Frameworks unterstützen Computer Vision erheblich, einschließlich der Python-basierten Frameworks TensorFlow (die führende Wahl für die Produktion), PyTorch (die führende Wahl für die akademische Forschung) und MXNet (das bevorzugte Framework von Amazon). OpenCV ist eine spezialisierte Bibliothek für Computer Vision, die sich an Echtzeit-Vision-Anwendungen orientiert und MMX- und SSE-Anweisungen nutzt, sobald diese verfügbar sind. Es unterstützt auch die Beschleunigung mit CUDA, OpenCL, OpenGL und Vulkan.

Amazon Rekognition ist ein Bild- und Videoanalysedienst, der Objekte, Personen, Text, Szenen und Aktivitäten identifizieren kann, einschließlich Gesichtsanalyse und benutzerdefinierter Etiketten. Die Google Cloud Vision-API ist ein vorab trainierter Bildanalysedienst, mit dem Objekte und Gesichter erkannt, gedruckter und handgeschriebener Text gelesen und Metadaten in Ihren Bildkatalog integriert werden können. Mit Google AutoML Vision können Sie benutzerdefinierte Bildmodelle trainieren. Sowohl Amazon Rekognition Custom Labels als auch Google AutoML Vision führen das Transferlernen durch.

Die Microsoft Computer Vision-API kann Objekte aus einem Katalog von 10.000 mit Beschriftungen in 25 Sprachen identifizieren. Es werden auch Begrenzungsrahmen für identifizierte Objekte zurückgegeben. Die Azure Face-API führt eine Gesichtserkennung durch, bei der Gesichter und Attribute in einem Bild wahrgenommen werden, eine Personenidentifikation, die einer Person in Ihrem privaten Repository mit bis zu einer Million Personen entspricht, und eine wahrgenommene Emotionserkennung. Die Face-API kann in der Cloud oder am Rand in Containern ausgeführt werden.

IBM Watson Visual Recognition kann Bilder aus einem vorab trainierten Modell klassifizieren, benutzerdefinierte Bildmodelle mit Transferlernen trainieren, Objekterkennung mit Objektzählung durchführen und für die visuelle Überprüfung trainieren. Watson Visual Recognition kann in der Cloud oder auf iOS-Geräten mit Core ML ausgeführt werden.

Das Datenanalysepaket Matlab kann Bilderkennung durch maschinelles Lernen und Deep Learning durchführen. Es verfügt über eine optionale Computer Vision Toolbox und kann in OpenCV integriert werden.

Computer-Vision-Modelle haben seit LeNet-5 einen langen Weg zurückgelegt, und es handelt sich hauptsächlich um CNNs. Beispiele hierfür sind AlexNet (2012), VGG16 / OxfordNet (2014), GoogLeNet / InceptionV1 (2014), Resnet50 (2015), InceptionV3 (2016) und MobileNet (2017-2018). Die MobileNet-Familie von neuronalen Vision-Netzwerken wurde für mobile Geräte entwickelt.

[Ebenfalls zu: Kaggle: Wo Datenwissenschaftler lernen und miteinander konkurrieren]

Das Apple Vision-Framework führt Gesichts- und Gesichtsmarkierungserkennung, Texterkennung, Barcode-Erkennung, Bildregistrierung und allgemeine Funktionsverfolgung durch. Vision ermöglicht auch die Verwendung von benutzerdefinierten Core ML-Modellen für Aufgaben wie Klassifizierung oder Objekterkennung. Es läuft unter iOS und MacOS. Das Google ML Kit SDK verfügt über ähnliche Funktionen und kann auf Android- und iOS-Geräten ausgeführt werden. ML Kit unterstützt zusätzlich APIs in natürlicher Sprache.

Wie wir gesehen haben, sind Computer-Vision-Systeme gut genug geworden, um nützlich und in einigen Fällen genauer als menschliches Sehen zu sein. Durch das Transferlernen ist die Anpassung von Visionsmodellen für bloße Sterbliche praktisch geworden: Computer Vision ist nicht mehr die ausschließliche Domäne von Forschern auf Ph.D.-Ebene.

Lesen Sie mehr über maschinelles Lernen und tiefes Lernen:

  • Deep Learning vs. Machine Learning: Verstehen Sie die Unterschiede
  • Was ist maschinelles Lernen? Aus Daten abgeleitete Intelligenz
  • Was ist tiefes Lernen? Algorithmen, die das menschliche Gehirn nachahmen
  • Algorithmen für maschinelles Lernen erklärt
  • Was ist die Verarbeitung natürlicher Sprache? KI für Sprache und Text
  • Automatisiertes maschinelles Lernen oder AutoML erklärt
  • Betreutes Lernen erklärt
  • Halbüberwachtes Lernen erklärt
  • Unbeaufsichtigtes Lernen erklärt
  • Verstärkungslernen erklärt
  • Kaggle: Wo Datenwissenschaftler lernen und konkurrieren
  • Was ist CUDA? Parallelverarbeitung für GPUs

Lesen Sie Rezensionen zu maschinellem Lernen und tiefem Lernen:

  • So wählen Sie eine Cloud-Plattform für maschinelles Lernen aus
  • Deeplearning4j: Deep Learning und ETL für die JVM
  • Rückblick: Amazon SageMaker spielt Aufholjagd
  • TensorFlow 2-Test: Einfacheres maschinelles Lernen
  • Rückblick: Google Cloud AutoML ist ein wirklich automatisiertes maschinelles Lernen
  • Rückblick: MXNet Deep Learning glänzt mit Gluon
  • PyTorch-Test: Ein Deep-Learning-Framework, das auf Geschwindigkeit ausgelegt ist
  • Rückblick: Keras segelt durch tiefes Lernen