Praktikum: Allgemeine Hinweise

Größe: px
Ab Seite anzeigen:

Download "Praktikum: Allgemeine Hinweise"

Transkript

1 Praktikum: Allgemeine Hinweise Ziel dieses Praktikums ist es, die in der Vorlesung erworbenen Kenntnisse zu vertiefen und praktisch anzuwenden, sowie Sie zum Selbststudium anzuleiten. Außerdem sollen Sie erste Erfahrungen sammeln im gemeinsamen Erstellen von Software: Man einigt sich auf eine Schnittstelle und jeder Beteiligte löst unabhängig vom Anderen einen Teil der Aufgabe. Die Praktikumsaufgaben sind daher in Zweier-Teams zu bearbeiten. Zur Software- Entwicklung gehört auch das systematische Testen und eine zielgerichtete Fehlersuche: Sind die einzelnen Komponenten fehlerhaft oder arbeiten sie nur nicht korrekt zusammen. Diese Kenntnisse werden ebenfalls im Rahmen dieses Praktikums vermittelt. Alle Aufgaben sind zu Hause vorzubereiten, d.h. die Vorlesungsinhalte müssen nachgearbeitet werden und verstanden sein. Die Vorbereitung dient dazu, dass Sie sich kritisch mit den in der Vorlesung behandelten Inhalten beschäftigen und dass Sie nicht behandelte Themen selbständig erarbeiten. Eine gute Mitarbeit in den Übungen ist hilfreich. Im Praktikum versuchen die Betreuer durch Fragen sicherzustellen, dass die behandelten Themen verstanden sind. Die korrekte Beantwortung der Fragen ist notwendig, um das Praktikum erfolgreich zu absolvieren. Zum Praktikumstermin dürfen Sie Bücher, Vorlesungsfolien sowie -mitschriften mitbringen, natürlich können Sie Informationen auch im Internet suchen und nachlesen. Die Aufteilung, wer aus der Zweiergruppe welche Teile bearbeitet, bleibt Ihnen überlassen. Notwendige Programmteile werden ggf. von uns bereitgestellt. Am Ende des Praktikums müssen alle Module zusammen kompilierbar sein und das Programm die gewünschte Funktionalität aufweisen. Vielleicht sind in den von uns bereitgestellten Programmteilen auch Fehler enthalten. Im Laufe des Praktikums soll eine etwas umfangreichere Software entstehen. An jedem Praktikumstermin wird ein kleiner Teil der Software implementiert, sodass am Ende daraus ein echtes Produkt zusammengesetzt werden kann. Jeder Teil wird für sich getestet (Komponententest). Die Funktionalität wächst also im Laufe der Zeit. Man nennt dieses Vorgehen auch inkrementelle Software-Entwicklung. Das Produkt, was wir entwickeln wollen, ist ein Routenplaner. Darin soll eine Karte mittels eines Graphen modelliert werden. Die Knoten repräsentieren die Städte und die Kanten die Strecken dazwischen. Weitere Funktionalitäten wie das Finden der kürzesten Wegstrecke, effiziente Möglichkeiten der Integration von Wegänderungen bei Stau und Sperrungen, sowie Streckenplanung mit mehreren Zielpunkten müssen zusätzlich implementiert werden. Viele Softwareprojekte in der heutigen Zeit verwenden Software, die von Dritten programmiert wurde. Um die Einbindung fremder Software zu üben, wird das Praktikum ein externes Framework mit dem Namen OpenCV verwenden. 1

2 1. OpenCV OpenCV ist eine freie Programmbibliothek mit Algorithmen für die Bildverarbeitung und maschinelles Sehen. Sie ist für die Programmiersprachen C und C++ geschrieben und steht als freie Software unter den Bedingungen der BSD-Lizenz. Das CV im Namen steht für Englisch Computer Vision. Die Entwicklung der Bibliothek wurde von Intel initiiert und wird heute hauptsächlich von Willow Garage gepflegt. Im September 2006 wurde die Version 1.0 herausgegeben, Ende September 2009 folgte nach längerer Pause die Version 2.0.0, welche die Bezeichnung Gold trägt. Die Stärke von OpenCV liegt in ihrer Geschwindigkeit und in der großen Menge der Algorithmen aus neuesten Forschungsergebnissen. Die Bibliothek umfasst unter anderem Algorithmen für Gesichtsdetektion, 3D-Funktionalität, Haar-Klassifikatoren, verschiedene sehr schnelle Filter (Sobel, Canny, Gauß) und Funktionen für die Kamerakalibrierung. (Quelle: Wikipedia.de [März 2014]) Die Installation von OpenCV ist nur auf Ihrem persönlichen Rechner notwendig. Auf den Rechnern der Hochschule Niederrhein ist bereits eine OpenCV Version vorinstalliert Installation in Linux Um OpenCV in Linux zu nutzen, werden die Pakete der Bibliothek benötigt. Diese können sie wahlweise über einen Paket Manager oder durch Terminal Eingaben installieren. Beispiel für Ubuntu/Debian: apt-get install libopencv-dev (Bitte bedenken Sie, dass sie zur Installation der Pakete Root-Rechte benötigen. Die Sie in einer Debian- oder Ubuntu-Standardinstallation mit dem Prefix sudo erhalten Bsp: sudo apt-get install...) Installation auf anderem Linux: Für eine allgemeine Installation aus Quelldateien finden Sie eine Anleitung unter: 2

3 1.2. Verwendung in Linux: OpenCV muss in Linux beim kompilieren und beim linken von Sourcecodes hinzugefügt werden: Kompilieren: gcc source.c -o source.o -c -I/usr/include/opencv Linken: gcc source.o -o binary -lopencv core -lopencv imgproc -lopencv highgui Kombiniert: gcc source.c -o binary -I/usr/include/opencv -lopencv core -lopencv imgproc -lopencv highgui Wahlweise kann auch pkg-config verwendet werden: gcc source.c -o binary pkg-config --cflags opencv pkg-config --libs opencv Die Quelldateien selbst können nun die Bibliotheken der OpenCV über die Includes #include <cv.h> sowie #include <highgui.h> mit allen Funktionen benutzen Installation in Windows 7 / Windows 8 Schritt 1: Bei der Installation unter Windows muss die Software zunächst runtergeladen werden. Hierfür gibt es einen Downloadlink unter: /opencv exe/download Die runtergeladene Datei muss nun ausgeführt werden. Im Textfeld Extract to: wird der Pfad für OpenCV angegeben. In unserer Anleitung verwenden wir den Pfad: C:\Program Files\ 3

4 Schritt 2: Öffnen sie Ihre Systemeinstellung und Klicken sie auf Erweiterte Systemeinstellungen In die Systemeinstellungen gelangen sie über die Tastenkombination aus Windowstaste + Pause oder über das Startmenü: Systemsteuerung -> System und Sicherheit -> System, bzw bei Windows 8 über den Bildlauf an der rechten Seite. Schritt 3: Im neuen Menü klicken Sie auf Umgebungsvariablen und erweitern sie den Path unter Systemvariablen um folgende Zeilen [Zeilen werden mit Semikolon getrennt an die vorhandenen Einträge hinten angehängt]: C:\Program Files\opencv\build\x86\vc10\bin C:\Program Files\opencv\build\common\tbb\ia32\vc10 4

5 1.4. Verwendung: Visual Studio 2010 oder höher Zunächst wird wie in anderen Programmierprojekten ein leeres C/C++ Win32-Konsolenprojekt angelegt. Nachdem das Projekt existiert, werden die Projekteigenschaften geöffnet (Rechtsklick auf Projektnamen und anschließend auf Eigenschaften): Damit Visual Studio 2010 die installierte OpenCV Bibliothek findet, müssen nun sowohl die drei Includeverzeichnisse: C:\Program Files\opencv\build\include\opencv2 C:\Program Files\opencv\build\include\opencv C:\Program Files\opencv\build\include als auch das verwendete Bibliotheksverzeichnis: C:\Program Files\opencv\build\x86\vc10\lib angegeben werden. Der Pfad C:\Program Files\ ist der, der bei der Installation in Schritt 1 angegeben wurde. Die Angaben der Include- und Bibliotheksverzeichnisse erfolgen in der Eigenschaftenseite unter: Konfigurationseigenschaften -> VC++-Verzeichnisse 5

6 Zum Schluss müssen die einzelnen Abhängigkeiten angegeben werden, die der Linker auflösen muss. Dazu werden die lib-dateien unter C:\Program Files\opencv\build\x86\vc10\lib in den zusätzlichen Abhängigkeiten eingetragen: Konfigurationseigenschaften -> Linker -> Eingabe In der hier installierten Version von OpenCV sind diese Abhängigkeiten für das Praktikum: opencv core248d.lib; opencv highgui248d.lib; opencv imgproc248d.lib 6