Es ist ein großer Vorteil im Leben, die Fehler, aus denen man lernen kann, möglichst früh zu begehen. – Winston Churchill
Die letzten Monate haben meine 14-jährige Tochter und ich zusammen ein Python Bootcamp absolviert. Als Basis diente uns der Kurs «Python Bootcamp: Vom Anfänger zum Profi, inkl. Data Science» auf Udemy. Als eigene gemeinsame Abschlussarbeit haben wir die Grundstücksüberwachung mit Objekterkennung realisiert. Objekterkennung heisst in diesem Zusammenhang die Klassifizierung und Erkennung von Aktivitäten durch Person, Tier oder Fahrzeug.
In einen weiteren Schritt steht als Idee die Identifizierung der Personen an. Wir möchten informiert werden, ob der Bruder, die Tochter oder ein Kollege das Grundstück betritt. Später eventuell auch die Haustiere der Nachbarn oder den Gesichtsausdruck um Infos zu liefern. Meine Tochter war der Meinung, eine Meldung wie: «Achtung, wütender Nachbar in Anmarsch.» wäre Cool. Einige Ideen sind sicher nicht ganz Datenschutz-Konform, wie zum Beispiel die Verwendung unserer Drohne zur Personenidentifizierung.
Für die Identifizierung von Personen stiess ich auf dlib, ein Modul das mit drei Millionen Gesichtern trainiert wurde. Die persönliche Identifizierung soll mit weiteren geringen Trainingsaufwand möglich sein. Beim ersten Versuch diese zu installieren begrüsste mich eine Fehlermeldung, dass cmake nicht gefunden wurde. Der Versuch «cmake» mit pip zu installieren wollte mir auch nicht gelingen. Der nächste Versuch war die Installation mittels MSI Installer von cmake.org. Diese funktionierte, die Installation von dlib aber nicht. Es begrüsste mich die Meldung:
Collecting dlib Using cached … Building wheels for collected packages: dlib Running setup.py bdist_wheel for dlib ... error running bdist_wheel running build running build_py package init file 'dlib\__init__.py' not found (or not a regular file) running build_ext Building extension for Python 3.6.5 |Anaconda, Inc.| (default, Mar 29 2018, 13:32:41) [MSC v.1900 64 bit (AMD64)] Invoking CMake setup: …. -- Building for: NMake Makefiles CMake Error in CMakeLists.txt: Generator NMake Makefiles does not support platform specification, but platform x64 was specified. CMake Error: CMAKE_C_COMPILER not set, after EnableLanguage CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage -- Configuring incomplete, errors occurred! …
CMake verlangte nach einen C – Kompiler. Ich war etwas überrascht, weil ich bisher dachte pip ist in etwa ähnlich wie Nuget. Ich wurde eines Besseren belehrt. Damit ich einen C-Kompiler habe, musste ich meine Visual Studio Installation anpassen. Die C/C++ SDK Pakete hatte ich bisher nicht installiert. Nach der Aktivierung und Aktualisierung von Visual Studio 2017 mit den C/C++ Komponenten führte ich den Befehl «pip install dlib» erneut aus und siehe da:
Collecting dlib Using cached https://files.pythonhosted.org/packages/35/8d/e4ddf60452e2fb1ce3164f774e68968b3f110f1cb4cd353235d56875799e/dlib-19.16.0.tar.gz Building wheels for collected packages: dlib Running setup.py bdist_wheel for dlib ... done Stored in directory: … Successfully built dlib Installing collected packages: dlib Successfully installed dlib-19.16.0
Ein kurzer Test in Jupyter und die Module waren vorhanden. Unser zweites Experiment kann beginnen.