Rapid Prototyping von Kameraanwendungen
Interaktives Programmieren mit IDS peak und uEye+ Kameras
Python ist eine sehr gebräuchliche Programmiersprache im Internet of Things (IoT). Sie erlaubt das Schreiben und Testen kurzer Code-Schnipsel, ohne die aufwendige Einrichtung einer kompletten Entwicklungsumgebung. Die Möglichkeit, interaktiv zu programmieren, macht sie zur idealen Schnittstelle für die Test- und Erprobungsphase. Gerade in Verbindung mit Embedded Systemen kann Python punkten, da kein aufwendiges Cross-Compilieren notwendig ist.
Mit IDS peak 1.2 können Sie die Vorteile von Python auch für die Programmierung Ihrer uEye+ Kameraanwendungen einsetzen. Die zahlreichen Kamerafeatures der IDS Industriekameras lassen sich damit schnell ausprobieren, analysieren und für die spätere Nutzung in einem größeren Softwareprojekt vorbereiten. Wir möchten Ihnen deshalb mit diesem Techtipp die Programmierung von uEye+ Kameras über das IDS peak python Interface etwas näher erklären.
Die verwendeten Python Sourcecode-Beispiele verdeutlichen den grundlegenden Umgang mit den Kameras und der Schnittstelle. Sie sind als "Jupyter-Notebooks" angelegt. Dadurch können sie in der Open-Source-Webanwendung mit Ihren uEye+ Kameras live getestet und nachvollzogen werden.
Wir beschreiben die Installation und Verwendung der Jupyter Notebooks exemplarisch für einen Windows 10 PC. Da Python für mehrere Plattformen zur Verfügung steht, und Jupyter Notebooks eine plattformunabhängige Webanwendung ist, können Sie die Sourcecode-Beispiele natürlich ebenfalls unter Linux ausführen und testen.
Voraussetzungen
Python
Python ist Voraussetzung (Python 3.5 oder höher) für die Installation von Jupyter Notebook und für unsere IDS peak Programmierbeispiele.
Downloaden und installieren Sie Python
Achten Sie darauf, dass Python für "alle Benutzer" installiert wird und dass Python zur "Pfad"-Variablen hinzugefügt wird. Dann können Sie Python auch über die Eingabeaufforderung verwenden.
Zusätzliche Python Bibliotheken
In den Sourcecode-Beispielen verwenden wir zusätzliche Python-Bibliotheken zur Bildverarbeitung und Datenvisualisierung. Diese müssen Sie ebenfalls noch installieren.
- PIL - Die Python Imaging Library erweitert Ihren Python-Interpreter um Bildverarbeitungsfunktionen.
- matplotlib - Matplotlib ist eine umfassende Bibliothek zur Erstellung statischer, animierter und interaktiver Visualisierungen in Python.
- OpenCV - Computer Vision Bibliothek
- pyTorch - Deep Learning Framework
Installieren Sie die Bibliotheken ebenfalls über:
pip install Pillow
pip install matplotlib
pip install opencv-python
pip install torch
IDS peak
Für den für Betrieb und zur Programmierung von uEye+ Kameras, installieren Sie das IDS peak SDK (Software Development Kit). Es beinhaltet alle Bibliotheken und Software-Tools, die notwendig sind.
IDS peak Software Development Kit
Installieren Sie danach die IDS peak API und IPL Python Bindings in der Version, die zu Ihrer Python Version passt. Am einfachsten über "pip", das Paketverwaltungsprogramm für Python-Pakete, mittels der PowerShell (als Administrator):
python -m pip install --upgrade pip
pip install "C:\Program Files\IDS\ids_peak\sdk\api\binding\python\wheel\x86_64\ids_peak-1.2.0.5-cp38-cp38-win_amd64.whl"
pip install "C:\Program Files\IDS\ids_peak\sdk\ipl\binding\python\wheel\x86_64\ids_peak_ipl-1.2.2.1-cp38-cp38-win_amd64.whl"
Jupyter Notebook
Die Installation der Open-Source-Webanwendung erfolgt ebenfalls sehr einfach mit pip:
pip install notebook
Falls Sie weitere Infos zu Jupyter Notebook benötigen:
Erste Schritte mit Jupyter Notebook
Install Jupyter Notebook
Jupyter Documentation
Jupyter Notebooks ausführen
Entpacken Sie als nächstes das Sourcecode-Beispiel in einem Ordner auf ihrem PC.
Das Paket beinhaltet lediglich eine Datei. Das Jupyter Beispiel-Notebook.
ids-peak-python-sample-jupyter.zip
Notebook Server
Öffnen Sie ein Powershell Fenster (Benutzerrechte reichen dazu aus) und starten Sie den Jupyter Notebook Server.
Powershell im Ordner öffnen
Starten Sie den Server direkt im Installationsordner des Beispiel-Notebooks, dann stehen Ihnen die Notebooks direkt zur Verfügung.
Um ein PowerShell-Fenster direkt in einem bestimmten Ordner zu öffnen, navigieren Sie im Explorer zuerst in dieses Verzeichnis, tippen dort in der Pfad-Leiste oben "powershell" ein und bestätigen mit "Enter".
PS C:\Users\ids\ids-peak-jupyter-notebooks> jupyter notebook
[I 12:12:45.115 NotebookApp] Serving notebooks from local directory: C:\Users\ids\ids-peak-jupyter-notebooks
[I 12:12:45.115 NotebookApp] The Jupyter Notebook is running at:
[I 12:12:45.115 NotebookApp] http://localhost:8888/?token=f8baad4df16a4b1436c59723cfcba540c4b5a923b3352120
[I 12:12:45.115 NotebookApp] or http://127.0.0.1:8888/?token=f8baad4df16a4b1436c59723cfcba540c4b5a923b3352120
[I 12:12:45.115 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
Der Notebook-Server wird beim Start in Ihrem Standard-Webbrowser geöffnet und gibt in der Shell ein paar Informationen aus, einschließlich der URL der Webanwendung (standardmäßig http://localhost:8888). Wenn der Server in Ihrem Browser geöffnet wird, sehen Sie das Notebook-Dashboard, das eine Liste der Notizbücher, Dateien und Unterverzeichnisse in dem Verzeichnis anzeigt, in dem der Notebook-Server gestartet wurde.
Notebook verwenden
Öffnen Sie nun einfach das Notebook "ids-peak-python-sample-jupyter.jpynb" im Server.
Das Notebook ist kommentiert und selbsterklärend. Sie können es ausführen und auch für Ihre Anforderungen anpassen und wieder speichern. Das IDS peak Jupyter Notebook führt Sie durch den grundlegenden Umgang mit uEye+ Kameras mittels Python, wie z.B. das Finden und Öffnen der Geräte, Kameraeinstellungen anpassen und Bilder aufnehmen. Desweiteren wird demonstriert, wie Bilddaten mit der IDS peak IPL (Image Processing Library) in unterschiedliche Datenformate für Bildverarbeitungsprozesse von OpenCV konvertiert werden können. Auch die Weiterverarbeitung in OpenCV wird mit einigen Standardfunktionen gezeigt. Zum Schluss sehen Sie, wie schnelle ein Deep Learning Framework wie pyTorch eingebunden werden kann, um eine einfache Objekterkennung in den Kamerabildern zu realisieren.
Für weitere Informationen über IDS uEye+ Kameras oder deren Programmierung mit IDS peak, besuchen Sie die Knowledge Base unserer Webseite oder setzen Sie sich mit unserer Systemberatung in Verbindung.
Tipp: uEye+ Webinar-Video
In unserem Webinar-Video "Rapid prototyping camera applications" wird die Programmierung mit dem IDS peak Pyhton Interface mit Hilfe dieses Jupiter-Notebooks demonstriert.