Die Bildklassifizierung ist ein Teilgebiet der Informatik, das sich mit der Entwicklung von Algorithmen zur automatischen Kennzeichnung von Bildern befasst. Sie können die Bildverarbeitung zum Beispiel nutzen, um das Logo Ihres Unternehmens automatisch als Autologo, Blumenlogo usw. zu kennzeichnen. In diesem Beitrag stellen wir Ihnen 15 Python-Pakete für die Bildverarbeitung vor.

OpenCV

OpenCV ist eine Open-Source-Python-Bibliothek, die mehrere tausend Funktionen enthält, um die Entwicklung von Computer-Vision-Anwendungen zu erleichtern. Sie umfasst eine Reihe von Bildverarbeitungsalgorithmen, Algorithmen zur Erkennung und Erkennung von Gesichtern, zur Verfolgung von Objekten, zur Klassifizierung menschlicher Handlungen in Videos, usw. Die Bibliothek unterstützt mehrere Betriebssysteme (Windows, Mac OS X, Linux, Android, iOS) und ist in C++ geschrieben.

Command to install: pip install opencv-python

TensorFlow

TensorFlow ist ein schnelles, flexibles und umfassendes System zum Aufbau von maschinellen Lernsystemen. Es ist für die Verwendung mit Problemen gedacht, die eine klare konzeptionelle Struktur haben, insbesondere Probleme, die als eine lineare Transformation von Eingaben ausgedrückt werden können (z. B. Matrixfaktorisierung, strukturierte Vorhersage, Verstärkungslernen, Bilderkennung und viele andere). Für die Bildklassifizierung können Sie ein bereits vortrainiertes Modell verwenden, das in TensorFlow für eine einfache Verwendung verfügbar ist.

Command to install: pip install tensorflow

Scikit-Image

Scikit-image ist eine freie Bibliothek für Python, die Algorithmen und Dienstprogramme für die Bildverarbeitung, Bildanalyse und wissenschaftliche Visualisierung implementiert. Sie baut auf den beliebten Python-Paketen NumPy und SciPy auf und bietet Unterstützung für Bildverarbeitung, Bildanalyse und geometrische Bildverarbeitung. Insbesondere bietet Scikit-image eine Sammlung von Bildverarbeitungsfiltern (morphologische Operationen, Kantenerkennungsfilter, Farbraumoperationen, Frequenzfilter, Bildformatkonvertierungsoperationen), eine Sammlung von geometrischen Bildfiltern (wie Bildregistrierung und Bildübermalungsoperationen), einfache Bildanalyseroutinen (wie das Messen von Entfernungen, Flächen, Volumina und Massenschwerpunkten) und eine Sammlung von Algorithmen zur Verarbeitung mehrdimensionaler Bilder.

Command to install: pip install scikit-image

Keras

Keras ist eine High-Level-API für neuronale Netze, die in Python geschrieben wurde und auf TensorFlow, CNTK oder Theano aufsetzen kann. Sie wurde mit dem Schwerpunkt entwickelt, schnelle Experimente zu ermöglichen. Der Schlüssel zu guter Forschung liegt darin, möglichst schnell von der Idee zum Ergebnis zu gelangen. Mit Keras können Sie Ihr Netzwerkmodell von Grund auf trainieren, indem Sie es nach Ihren Wünschen konfigurieren.

Command to install: pip install keras

SciPy

Das scikit-image-Projekt ist eine Sammlung von Python-Modulen für die Bildverarbeitung. Es unterstützt viele gängige Bildformate, darunter JPEG, PNG und TIFF. Es umfasst Bildverarbeitungsalgorithmen wie Merkmalsextraktion (Kantenerkennung, Eckenerkennung, Blob-Erkennung), Bildtransformationen (affine Transformationen, perspektivische Transformationen, Bildverzerrung, Histogramm-Modifikation), Farbverarbeitung, Malerei und Bildfilterung. Um Bilder zu klassifizieren, können Sie den KNN-Klassifikator in der scikit-learn-Bibliothek verwenden.

Command to install: pip install scipy

Pillow/PIL

Die Pillow-Bibliothek ist ein Fork der PIL-Bibliothek, einer der bekanntesten, freien und quelloffenen Python-Bibliotheken für die Bearbeitung und Manipulation von Bildern. Sie wird von den Entwicklern der PIL-Bibliothek gepflegt, die das Projekt geforkt haben, um den Code unter der BSD-Lizenz neu zu lizenzieren. Heute gilt Pillow als die „offizielle“ Bibliothek für die Python Imaging Library (PIL), und der Betreuer der Bibliothek gehört zum Pillow-Entwicklungsteam. Pillow bietet eine Vielzahl verschiedener Bilddateiformate an, wie z.B.. PNG, .JPEG,PPM, .GIF, .TIFF und mehr. Aufgrund dieses breiten Spektrums können die Benutzer alle Arten von erstaunlichen Bildbearbeitungsmöglichkeiten nutzen, die Pillow ihnen bietet, wie z. B. das Hinzufügen von Text oder das Vergrößern/Verkleinern der Bilder in ihrem Werkzeugkasten.

Command to install: pip install Pillow

Mahotas

Mahotas ist eine Bibliothek zum Schreiben von Computer-Vision-Anwendungen in Python. Sie ermöglicht es Ihnen, modernste Bildverarbeitungsalgorithmen zu verwenden, ohne die Feinheiten der Algorithmen selbst programmieren zu müssen. Mahotas kann über die Kommandozeile mit dem Befehl mahotas_client oder über seine API mit dem Mahotas-Modul verwendet werden. Es verfügt über viele vorgefertigte Module, die einfach zu verwenden sind.

Command to install: pip install mahotas

SimpleITk

SimpleITk ist die fortschrittliche Open-Source-Bibliothek für Computer Vision für Python. Sie bietet eine Reihe leistungsstarker Werkzeuge, die Ihnen helfen, Bilder und Videos zu verarbeiten und einfach Anwendungen zu erstellen.  SimpleITk ist hochgradig optimiert und nutzt Multithreading-Techniken, um die Vorteile von Mehrkernprozessoren voll auszuschöpfen.  Sie ist kompatibel mit Python 2 und Python 3. 

Command to install: pip install SimpleITK

Numpy

Wenn Sie mit Bildern arbeiten, können Sie das NumPy-Array von Python verwenden, um die Arbeit zu erledigen. Aber was ist NumPy? Numpy ist eine Bibliothek, die schnelle, flexible und ausdrucksstarke Datenstrukturen in Python bereitstellt. Außerdem bietet sie leistungsstarke Routinen für die Berechnung grundlegender numerischer Transformationen und mathematischer Funktionen. Damit lassen sich Bilddaten mit wissenschaftlichen Berechnungen manipulieren. Sie können NumPy mit TensorFlow oder Keras verwenden, um bessere Ergebnisse zu erzielen.

Command to install: pip install numpy

OpenFace

OpenFace ist eine Gesichtserkennungsbibliothek mit einem tiefen neuronalen Netzwerk als Backend. Sie wird von Facebook AI Research (FAIR) entwickelt.  Die Bibliothek basiert auf Torch, einem Framework für wissenschaftliche Berechnungen mit umfassender Unterstützung für Algorithmen des maschinellen Lernens. Sie kann für das Rapid Prototyping und den Einsatz in Echtzeitanwendungen zur Gesichtserkennung verwendet werden. Außerdem bietet sie eine Reihe von Werkzeugen für die feinkörnige Analyse von Gesichtsbildern und -daten.

PytorchCV

Im Wesentlichen ist PyTorchCv ein Fork von Pytorch-cv zur Unterstützung von Python3 und PyTorch 1.0.  PyTorchCv ist ein Python-Paket für Computer Vision, das auf PyTorch basiert. Es ist einfach zu benutzen und unterstützt mehrere Bildformate. Es unterstützt auch PyTorch RNN (Recurrent neural network) und LSTM (Long short-term memory) Schichten, so dass Benutzer RNNs und LSTMs für Computer Vision trainieren können.

Command to install: pip install pytorchcv

Pgmagick

Pgmagick ist eine Python-Schnittstelle zu ImageMagick. Sie basiert auf der Mac-Bibliothek und wurde von John Plaice geschrieben und wird nun von Phil Harvey gepflegt. ImageMagick bietet die Möglichkeit, Bilder in einer Vielzahl von Grafikformaten zu lesen, zu bearbeiten und zu schreiben, darunter PNG, JPEG, GIF, TIFF, PDF, Photo CD und SVG.

Command to install: pip install pgmagick

Pytessarct

Die Pytessarct Bibliothek ist ein Python Wrapper für die Tesseract OCR Engine. Sie ist für die Verwendung mit Bilddateien konzipiert, so dass Sie immer noch eine andere Software benötigen, um den Text zu erkennen. Es ist eine sehr beliebte Bibliothek, aber nicht die einzige; die Pakete, die ich oben auf der Liste erwähnt habe, sind viel besser in der Lage, eine Bildklassifizierung durchzuführen. Aber mit Pytessarct können Sie Text aus Bildern in vielen verschiedenen Sprachen und Formaten extrahieren.

Command to install: pip install pytesseract

SimpleCV

SimpleCV ist eine Open-Source-Bibliothek für Computer Vision, die auf Python läuft. Mit SimpleCV können Sie Gesichter erkennen und wiedererkennen, Objekte erkennen und wiedererkennen, Text erkennen und wiedererkennen, Objekte zählen, Objekte verfolgen und ähnliche Bilder neben vielen anderen Funktionen finden. Diese Bibliothek verfügt über viele weitere Funktionen wie Gesichtserkennung mit HaarCascades oder LBP, OCR für Text in Bildern, vollständige Bildmanipulationen wie Bildbeschneidung, Größenänderung, Drehen, Spiegeln, Konvertierung von Bildformaten usw.

Command to install: pip install SimpleCV

ImageMagick

Wenn es um die Klassifizierung von Bildern geht, ist ImageMagick sicherlich nicht die beste Option, aber es ist geeignet, um Bitmap-Bilder zu erstellen, zu bearbeiten und zusammenzustellen. Es kann Bilder in einer Vielzahl von Formaten (über 100) lesen und schreiben, darunter PNG, JPEG, GIF, TIFF, DPX, EXR, WebP, Postscript, PDF und SVG. Mit ImageMagick können Sie Bilder übersetzen, spiegeln, drehen, skalieren, scheren und transformieren, Bildfarben anpassen, verschiedene Spezialeffekte anwenden oder Text, Linien, Polygone, Ellipsen und Bézier-Kurven zeichnen. ImageMagick ist eine freie Software, die unter der Apache-Lizenz zur Verfügung gestellt wird. Sie wird unter anderem für die Retusche von Fotos und die Aufbereitung von Grafikdaten für das Web verwendet.

Command to install: pip install foliantcontrb.imagemagick

Final Words

In diesem Blogbeitrag haben wir untersucht, welche verschiedenen Arten von Python-Paketen für die Bildverarbeitung es gibt. Wir haben uns 15 Python-Pakete für die Bildverarbeitung angesehen, die dabei helfen, einen Großteil der Prozesse hinter Bildern zu automatisieren. Diese Python-Pakete für die Bildverarbeitung reichen von Low-Level-Implementierungen beliebter Algorithmen bis hin zu High-Level-Frameworks, die die Klassifizierung und Verarbeitung von Bildern erheblich vereinfachen. Einige Pakete zu diesem Thema sind noch relativ neu oder unterentwickelt, aber es gibt keinen Mangel an Paketen, die in diesem Bereich verwendet werden können. Es ist auf jeden Fall besser, ausgereifte und bekannte Bibliotheken zu verwenden. Ich hoffe, dieser Blog hilft Ihnen bei der Entscheidung, welches Tool für Ihre Arbeit am besten geeignet ist.