MIN-Faculty
Department of Informatics
Scene analysis and visualization (SAV)

Infoseite zu dem Bildverarbeitungspraktikum (Do 14 - 18 Uhr) im SoSe 2017

Ablauf des Praktikums:

Ziel des Praktikums ist die Entwicklung eines Spiels mit Hilfe der funktionalen Programmiersprache Racket sowie der Anbindung der VIGRA-Bildverarbeitungsbibliothek über die VigRacket-Schnittstelle. Das Spiel sollte hierbei aus einer Aufnahme des Spielzustands generiert werden, und anschließend Multi- oder Singleplayer-basiert weiter gespielt werden können. Insgesamt werden in diesem Praktikum folgende Kenntnisse vermittelt:

  • Bildentstehung und Bildvorverarbeitung,
  • Objekterkennung / Klassifikation von Bildinhalten,
  • Bildverstehen,
  • Interaktive, Netzwerkbasierte GUI-Programmierung und
  • Künstliche Intelligenz (im Sinne der implementierten Spiellogik sowie mögl. Computergegner).

Die gewählten Teilprojekte sollen in Kleingruppen bearbeitet werden, die aus jeweils 2 bis 3 Personen bestehen.

Aufnahmen der Spielfelder vom 20. April 2017

Die Bilder der Spielfelder werden einige Minuten nach dem Abschluss der Aufnahmen hier zur Verfügung gestellt. Bitte verwendet direkt nach dem Laden der Bilder die VigRacket-Funktion resizeimage und verkleinert die hochauflösenden Bilder vor der weiteren Verarbeitung. Um ein Bild z.B. prozentual zu verkleinern, hilft folgende Hilfsfunktion:

(define (resizeimage-percent img prozent [interpolation 2])
    (let* ((p (/ prozent 100))
           (new_w (round (* (image-width img) p)))
           (new_h (round (* (image-height img) p))))
        (resizeimage img new_w new_h interpolation)))
Um ein Bild img sowohl in der Breite, als auch in der Höhe zu halbieren, kann dann folgender Aufruf dienen:
(define small_img (resizeimage-percent img 50))
Und hier nun die Übersicht über die bereits verfügbaren Aufnahmen:
GruppeSpielAufnahmen (zip-komprimiert)
1Damedownload
2Mensch ärgere dich nichtdownload
3Junior Labyrinthdownload
4Abalonedownload
5Damedownload
6Godownload
7Shogidownload Take 1
download Take 2
8Mühledownload
9Lotti Karottidownload
10Othellodownload
11Rummikubdownload Take 1
download Take 2
12Mühledownload
13Vier gewinntdownload

Wichtige Termine (tabellarische Ansicht)

  • 6. April 2017
  • 13. April 2017
    • Weitere praktische Bildverarbeitungsübungen am Rechner (Minikurs BV - 2. Teil).
    • Vorstellung der Projektgruppen und Themen untereinander.
  • 20. April 2017
  • 27. April 2017
    • Erneuter Seminarteil zur Freistellung von Bildinhalten.
    • Präsentation zur Ordnung und Bildverarbeitung.
    • Racket-Quellen zur obigen Präsentation.
    • Beginn der Erstellung des Grobentwurfs/Pflichtenheftes.
    • Weitere Experimente mit den aufgenommenen Bildern.
  • 4. Mai 2017
    Vorstellung und Abgabe des Grobentwurfs/Pflichtenheftes. Darin sollten folgende Punkte enthalten sein:
    1. Das Team, also alle Mitglieder mit Namen und Matrikelnummern.
    2. Das Thema, mit dem ihr Euch beschäftigen wollt.
    3. Der Leistungsumfang der Software, die Ihr entwickeln möchtet.
    4. Rahmenbedinungen, die erfüllt sein müssen, damit das Programm erfolgreich arbeiten kann.
  • 11. Mai 2017
    Einführung in fortgeschrittene Bildverarbeitungsverfahren zur Erkennung und Klassifikation von Spielständen.
    Downloads:
  • 18. Mai 2017
    • Einführung in die Versionsverwaltung mit dem IRZ GitLab.
    • Einrichtung der Versionsverwaltung für alle Gruppen
  • 25. Mai 2017 - Himmelfahrt
  • 1. Juni 2017
    Einführung in die verteilte GUI-Programmierung mit Racket
    • anhand des Client-Server-basierten TicTacToe-Beispiels (ttt.zip)
    • anhand des Client-Server-basierten Memory-Beispiels (memory.zip)
    • Unterscheidung zwischen Single- und Multiplayer.
  • 8. Juni 2017 - Pfingstferien UHH
  • 15. Juni 2017
    Vorstellung des Zwischenstandes der Gruppen untereinander. Diese sollte folgendes umfassen:
    • Das Gruppenthema,
    • die gewählten Lösungsansätze und
    • die bisher entwickelten Software-Module.
  • 22. Juni 2017
    Abgabe des Feinentwurfes des Programms. Dieser sollte folgendes umfassen:
    • Die Schnittstellen,
    • die Paketstruktur und
    • die verschiedenen Module der Software.
  • 13. Juli 2017 (letze Sitzung)
    • Präsentation der Software auf dem vorläufigen endgültigen Stand
  • bis spätestens 20. September 2017!
    Endgültiger Praktikumsabschluss
    • Fertige Software liegt vor
    • Abgabe der Entwickler- und Anwender-Handbücher

Benötigte Softwarepakete:

Racket

Das aktuelle Racket kann man unter http://racket-lang.org herunterladen. Es steht für nahezu jeden Betriebssystem bereit. Auf den Pool Rechnern ist zurzeit Racket 6.0 (64-bit) installiert.

Eine gelungene Einführung in die Programmiersprache findet sich unter der offiziellen Dokumentation, die auch in Racket unter Hilfe (F1) verfügbar ist.

Bildverarbeitung mit Racket: VigRacket

Die Bildverarbeitungsanbindung, mit der wir die Aufgaben der Bildverarbeitung innerhalb des Praktikums lösen werden, liegt in einer neuen Version 1.6 vor und kann hier heruntergeladen werden. Die Installation besteht im Entpacken des Verzeichnisses und dem Aufrufen/Ausführen der Datei "install.rkt" mit DrRacket. Nach der Installation kann man durch Aufruf der enthaltenen Beispiele "examples.rkt" die Funktionalität testen.

Wer Fehler an der VigRacket findet oder beim Entwickeln selbiger helfen möchte, kann das gerne tun. Die Bibliothek kann z.B. von meiner github-Seite gefork'd werden.

VigRacket unter Windows benutzen

Befolgt man folgende Schritte, so lässt sie die VigRacket-Erweiterung auch unter Windows mit der entsprechenden Windows-Version von Racket benutzen:

  1. Herunterladen und Installieren der MS Runtime 2015 (Download Link).
  2. Danach gleiche Vorgehensweise wie oben genannt.

VigRacket unter Linux/Unix benutzen

Befolgt man folgende Schritte, so lässt sie die VigRacket-Erweiterung auch unter Linux (z.B. Ubuntu) mit der entsprechenden Version von Racket benutzen:

  1. Herunterladen und Installieren VIGRA-Bibliothek (mindestens Version 1.11.0, entweder über den System-Paketmanager oder von der VIGRA-Homepage aus).
  2. Herunterladen und Entpacken der VigRacket-Anbindung (gleiches Paket für alle Betriebssysteme!).
  3. Danach, wie bei allen anderen Systemen, Ausführen der Datei "install.rkt" mit DrRacket.

VigRacket unter Mac OS X benutzen

Auf den Pool-iMacs ist die VIGRA bereits installiert, hier kann direkt das install.rkt Skript gestartet werden. Ansonsten empfehle ich, die aktuelle Version der vigra über die MacPorts (www.macports.org) zu installieren:

  1. Herunterladen und Installieren der MacPorts (https://www.macports.org/install.php).
  2. Im Terminal die Vigra und alle Abhängigkeiten installieren:
    > sudo port install cmake
    > sudo port install vigra
  3. Danach gleiche Vorgehensweise wie oben genannt.