Begleitendes Praktikum zur Vorlesung Mustererkennung



Ähnliche Dokumente
Begleitendes Praktikum zu Computer Vision und Mustererkennung: Vertiefung

Begleitendes Praktikum zur Vorlesung Künstliche Intelligenz

Computer Vision und Mustererkennung SS11

Installation und Inbetriebnahme von Microsoft Visual C Express

Softwaretests in Visual Studio 2010 Ultimate Vergleich mit Java-Testwerkzeugen. Alexander Schunk Marcel Teuber Henry Trobisch

Informationen zur Verwendung von Visual Studio und cmake

Einführung in das Microsoft.NET-Framework. Programmiersprache C# 02: Visual Studio / Hello World. Boris Hülsmann

Vorkurs Informatik WiSe 15/16

Die Programmiersprache Java. Dr. Wolfgang Süß Thorsten Schlachter

Installation von NetBeans inkl. Glassfish Anwendungs-Server

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Installation OMNIKEY 3121 USB

Anleitung zum Arbeiten mit Microsoft Visual Studio 2008 im Softwarepraktikum ET/IT

5. Tutorium zu Programmieren

ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg Weiterstadt

Anwenderdokumentation PersoSim

MPI-Programmierung unter Windows mit MPICH2. Installieren von MPICH2, Übersetzen, Ausführen und Debuggen von MPI-Programmen. Christian Terboven

Installation des Authorware Webplayers für den Internet Explorer unter Windows Vista

Einführung zum Arbeiten mit Microsoft Visual C Express Edition

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Einführung in Java. PING e.v. Weiterbildung Andreas Rossbacher 24. März 2005

1 Vom Problem zum Programm

LEGO-Mindstorms-Roboter im Informatikunterricht 1 - mit Java-

ASD ZSS. RZ-Süd (LfStaD) Internet

Einbinden der Windows 8 Images ins Virtualschool System

MINECRAFT SERVER AUF AZURE

C++11 C++14 Kapitel Doppelseite Übungen Musterlösungen Anhang

Einführung in die Java- Programmierung

Grundlagen von Python

Datenbank-Verschlüsselung mit DbDefence und Webanwendungen.

Microsoft Dynamics NAV 2013 R/2 Installationsanleitung. Inhalt: Begleitmaterial des ERP Übungsbuchs:

Arrays von Objekten. Annabelle Klarl. Einführung in die Informatik Programmierung und Softwareentwicklung

Installation der SAS Foundation Software auf Windows

Adminer: Installationsanleitung

Informatik I Tutorial

Arrays Fortgeschrittene Verwendung

Programmierkurs Java

Installationsbeschreibung Flottenmanager 7.1

Das erste Programm soll einen Text zum Bildschirm schicken. Es kann mit jedem beliebigen Texteditor erstellt werden.

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Automatisierung ( Fernsteuerung ) von Excel unter Microsoft Windows Tilman Küpper (tilman.kuepper@hm.edu)

1 Vorraussetzungen. 2 Installiere Eclipse. FS 2015 Herausgabe: Dr. A. L. Schüpbach, D. Sidler, Z. István Departement Informatik, ETH Zurich

PCC Outlook Integration Installationsleitfaden

Windows Presentation Foundation (WPF) -Grundlagen -Steuerelemente. Dr. Beatrice Amrhein

Übung 1 mit C# 6.0 MATTHIAS RONCORONI

Objektorientierte Programmierung

1. Übung zu "Numerik partieller Differentialgleichungen"

Version 0.3. Installation von MinGW und Eclipse CDT

Smap3D PDM 10. Installation. Stand-Alone-Migration-Analyzer

Algorithmen & Datenstrukturen 1. Klausur

Tutorium Rechnerorganisation

Eclipse 3.0 (Windows)

Java: Vererbung. Teil 3: super()

Einführung in die objektorientierte Programmierung mit Java. Klausur am 19. Oktober 2005

Objektorientierte Programmierung für Anfänger am Beispiel PHP

Java Kurs für Anfänger Einheit 5 Methoden

Einrichten des IIS für VDF WebApp. Einrichten des IIS (Internet Information Server) zur Verwendung von Visual DataFlex Web Applications

Step by Step Webserver unter Windows Server von Christian Bartl

Eclipse 3.0 (Mac) 1. Eclipse installieren. 2. Welcome Projekt schliessen

The ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung

Qt-Projekte mit Visual Studio 2005

Leichte-Sprache-Bilder

1 Was ist das Mediencenter?

Grundlagen der Informatik

Installation & Anwendung Xdebug für Eclipse

Um die Installation zu starten, klicken Sie auf den Downloadlink in Ihrer (Zugangsdaten für Ihre Bestellung vom...)

WDS: Windows Deployment Service

Software Engineering II

ANLEITUNG NETZEWERK INSTALATION

Anleitung zur Installation der DataWatch Software auf einem LINUX System ohne grafische Oberfläche

Starthilfe für C# Inhaltsverzeichnis. Medien- und Kommunikationsinformatik (B.Sc.) Alexander Paharukov. Informatik 3 Praktikum

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Materialupload. Verwalten von Unterrichtsmaterialien. über das STiNE-Webportal. Universität Hamburg Tor zur Welt der Wissenschaft

Kurzanleitung. MEYTON Aufbau einer Internetverbindung. 1 Von 11

Verhindert, dass eine Methode überschrieben wird. public final int holekontostand() {...} public final class Girokonto extends Konto {...

Installation älterer Programmversionen unter Windows 7

C++ mit Eclipse & GCC unter Windows

Einführung in die Informatik Tools

Zum Abschluss wird gezeigt, wie aus einem C++ Quell-Programm ein ausführbares Programm erzeugt wird. 1. Installation von NetBeans...

Speichern. Speichern unter

Übung Grundlagen der Programmierung. Übung 03: Schleifen. Testplan Testergebnisse

Installationsanleitung dateiagent Pro

Eprog Starthilfe. 5. Oktober Einleitung 2

4D Server v12 64-bit Version BETA VERSION

ANLEITUNG EBOOKS. 1. Der Kauf von ebooks über den Onlineshop

Anwenderhandbuch logiware IO-Stick

Installationshinweise BEFU 2014

Windows7 32/64bit Installationsanleitung der ROBO-PRO-Software

INSTALLATION VON INSTANTRAILS 1.7

Praktikum im Bereich Praktische Informatik Echtzeitgraphik in C++ und DirectX10. computer graphics & visualization

COMPUTERIA VOM Wenn man seine Termine am Computer verwaltet hat dies gegenüber einer Agenda oder einem Wandkalender mehrere Vorteile.

Von der PC Konfiguration bis zur Endanwendung (UPnP Audio/Video Server)

Computerorientiertes Problemlösen

Datenbanken und Informationssysteme II

Anleitung zur Bearbeitung von Prüferkommentaren in der Nachreichung

eridea AG Installation Eclipse V 1.1

Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)

R-BACKUP MANAGER v5.5. Installation

Hinweise zur Installation von MySQL

virtuos Leitfaden für die virtuelle Lehre

Transkript:

Begleitendes Praktikum zur Vorlesung Mustererkennung WS14/15

Übersicht Kontakt Aufgaben Bibliotheken Hinweise zu C#

Kontakt Internet: http://cvpr.unimuenster.de/teaching/ws1415/me_praktikum/ Softwareumgebung: Dr. Michael Schmeing m.schmeing<at>uni-muenster.de Raum 602b (Nach Vereinbarung) Aufgaben: Prof. Dr. X. Jiang xjiang<at>uni-muenster.de Raum 601 (Nach Vereinbarung) Emailverteiler m.schmeing<at>uni-muenster.de

Termine Werden frei festgelegt Vorgesehen zur Bearbeitung der Aufgabe Verpflichtende Vorführung am Ende des Semesters

Aufgaben Werden später bekannt gegeben

Organisation Notwendig zum Bestehen der Veranstaltung: Teilnahme an der Klausur der Vorlesung Abgabe der Aufgabe Vorführung des Gesamtsystems Übungsgruppen mit 3 bis 4 Teilnehmern

Prüfungsanmeldung Ab jetzt möglich bis zum 15.12.2014 studium.uni-muenster.de Nachmeldung ist nicht möglich Bei Fragen jeglicher Art: Prüfungsamt

SOFTWAREUMGEBUNG

Dreamspark (früher MSDNAA) Zugänglich für alle Studenten der IVV5 Enthält Microsoft Software, u.a. Windows 7/8 Visual Studio Ultimate 2013 SQL Server Zugang: <kennung>@math.uni-muenster.de Passwort wird an <kennung>@uni-muenster.de geschickt Link: http://www.unimuenster.de/ivv5ws/docwiki/doku.php?id=public:zugri ff_auf_microsoft-software_im_rahmen_von_msdnaa

Visual Studio Wir benutzen Visual Studio Ultimate 2013 Komplette Entwicklungsumgebung für C# (u.a.)

Emgu.CV Wrapper auf OpenCV Wir benutzen Version 2.4.9-beta (http://sourceforge.net/projects/emgucv/files/emgucv/2.4.9-beta/) Besteht aus mehreren Teilen, u.a: Emgu.CV.dll: Kernbibliothek Computer Vision Emgu.CV.ML.dll: Machine Learning Emgu.CV.UI.dll: GUI-Elemente Emgu.CV.OCR: Tesseract Engine (benutzen wir nicht) Emgu.CV.GPU: GPU-Funktionen (benutzen wir nicht) Emgu.CV.Stitching: Image Stitching (benutzen wir nicht) Emgu.Util.dll: Zeugs www.emgu.com Mehr Informationen auf der Vorlesungswebsite

Installation Windows Installation von libemgucv-windows-universal-cuda-2.9.0.1922- beta.exe Installiert Bibliothek Installiert Debugger Visualizer in VS2013 Testprojekt auf Homepage

Math.NET Mathematikbibliothek Version 3.2.0 Download: http://mathnetnumerics.codeplex.com/releases/view/126119 Reine.NET-Bibliothek, d.h. ohne Einschränkungen lauffähig unter.net und Mono Installation (Windows + Linux): Einbinden der MathNet.Numerics.dll aus Ordner Net40 ins Projekt

Aufgabenstellung Projektgerüst wird veröffentlicht Hauptdatei: *.sln Windows: Projekt kann direkt benutzt werden Linux: Zielplattform auf.net 2.0 einstellen Projektverweise neu auf eigene Emgu.*.dll setzen Bitte Quellcode kommentieren

Aufgabenstellung Projekt besteht aus Program.cs: Hauptschleife (nichts ändern) WS14_GUI.cs: GUI WS14_Aufgabe.cs: Schnittstelle WS14_LoesungXXX.cs: Eure Implementation Bitte XXX durch Gruppennummer ersetzen (in Dateiname und Klasse) Gruppennummer: Die letzten drei Ziffern der Summe der Matrikelnummern der Gruppenteilnehmer Abgabe: Implementation der Schnittstelle (für vergleichende Tests) Eigene GUI

HINWEISE ZU C#

Programmiersprache Performance Zugänglichkeit Bibliothek GUI Linux + Windows MATLAB Java C/C++ C# Wir benutzen C#

Einführung in C# Programme laufen in Laufzeitumgebung (.NET CLR, entspricht JavaVM) Java Bytecode entspricht Common Interface Language Garbage Collection Managed Code (keine Zeiger) Ähnliche Syntax wie Java Umfangreiche Standardbibliothek Sehr gute IDE (Visual Studio 2013)

Syntax Beispiel: class Program { public static void Main() { System.Console.WriteLine("Hallo Welt!"); } } Sehr gute Einführungen / Quellen: de.wikipedia.org/wiki/sprachelemente_von_c-sharp (<- sehr gut) openbook.galileocomputing.de/visual_csharp/ www.java2s.com/book/csharp/catalogcsharp.htm

Syntax (2) /// <summary> /// Verschiebt das Bild in x- und y-richtung /// </summary> /// <param name="shiftx">betrag in x-richtung</param> /// <param name="shifty">betrag in y-richtung</param> /// <returns></returns> public Image<Bgr, byte> shift(int shiftx, int shifty) { int rows = image.rows; int cols = image.cols; //erstellt das zurückzugebende Bild Image<Bgr, byte> shiftimage = new Image<Bgr, byte>(cols, rows); //for-schleife über Zeilen, Spalten und Farbkanäle for (int r = 0; r < rows; r++) { for (int c = 0; c < cols; c++) { for (int d = 0; d < 3; d++) { //Randbehandlung if (r - shifty >= 0 & r - shifty < rows && c - shiftx >= 0 && c - shiftx < cols) shiftimage.data[r, c, d] = image.data[r - shifty, c - shiftx, d]; } } } return shiftimage; }

Syntax: Emgu Image<Bgr, byte> image Bgr: BlueGreenRed : Farbkanäle Alternative: Gray byte: Farbtiefe: 256 Farben pro Kanel = 8-bit Bild Alternative: double, Int32 image.data[r,c,d] byte-array Liefert Intensitätswert in Zeile r, Spalte c, Kanal d Schnellerer Zugriff als image[r,c] Wichtig: x-koordinate entspricht Spalte, also (x,y) = (c,r)

Visual Studio: Visual Debugger Bietet die Möglichkeit, im Debugger, d.h. bei angehaltenem Progamm, Bilder zu inspizieren.

Visual Studio: Visual Debugger 2. Im Debug Modus ausführen 4. Visual Debugger aufrufen 5. Visual Debugger. Rechtsklick öffnet 3. Variablen inspizieren 6. erweitertes Menü 1. Breakpoint setzten

Visual Studio: Visual Debugger Aktuelle Funktionszeiger Funktionszeiger Verschiebbar Vor und zurück Code ist veränderbar Wird on-the-fly kompiliert. Danach kann das Debuggen fortgesetzt werden. Entwicklung im Debugger möglich

Visual Studio: Hinzufügen von Steuerelementen Emgu.UI.dll auswählen

HINWEISE ZU EMGU

Zugriff auf Bilder Image<Bgr, byte> Img = new Image<Bgr, byte>(400,300); Img[r,c]: Extrem langsam (nicht verwenden) Img.Data[r,c,*]. Schon besser. Aber: for (int r = 0; r < rows; r++) for (int c = 0; c < cols; c++) Img.Data[r,c,0] = 255; ist langsam. Besser: byte[,,] imgdata = Img.Data; for (int r = 0; r < rows; r++) for (int c = 0; c < cols; c++) imgdata[r,c,0] = 255; Zeigerzugriff ist noch schneller, aber fehleranfälliger

Klasse Image Image<Bgr, byte> Img = new Image<Bgr, byte>(400,300); Viele CV-Funktionen bietet die Klasse Image direkt an: Img.Canny() Img.Hough*() Img.Dilate/Erode() Img.Smooth*() Img.Sobel() Img.Threshold*()

CvInvoke Emgu ist ein Wrapper auf OpenCV Kapselt OpenCV-Funktionen (Klassen in Emgu) Wrappt OpenCV-Funktionen: In Klasse CvInvoke Mit der Klasse CvInvoke kann man (so gut wie) alle OpenCV-Funktionen benutzen (mehr als in Emgu) Beispiel: k-means Clustering: CvInvoke.cvKMeans2(..) Bilder werden als Pointer übergeben: Img.Ptr Arrays (generell: Daten) als Matrizen Vorsicht: Nicht mit (ungenerischen) MathNET Matrizen verwechseln.

CvInvoke: Beispiele Binärisierung per Otsu: CvInvoke.cvThreshold(inputImg.Ptr, outputimg.ptr, 0, 255, Emgu.CV.CvEnum.THRESH.CV_THRESH_OTSU); inputimg ist ein Image<Bgr, byte> Bild, outputimg ebenfalls k-means: CvInvoke.cvKMeans2(data.Ptr, 12, labels.ptr, new MCvT ermcriteria(0.0001), 200, IntPtr.Zero, 0, centers, In tptr.zero); data ist vom Typ Matrix<float> data = new Matrix<float>(rows, cols);

Fragen?