Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Abschlusspräsentation

Kopien: 1
Face Detection Probleme: Welche Software ist für unser Projekt die richtige?

Ähnliche Präsentationen


Präsentation zum Thema: "Abschlusspräsentation"—  Präsentation transkript:

1 Abschlusspräsentation
Projekt ”Diogenes”

2 Vortragsablauf Benutzte Softwaretechnikmethoden GUI Movement
Wander-Funktion Map Kamera Facedetection Was nehmen wir mit?

3 SOFTWARETECHNIK METHODEN

4 Softwaretechnik im Projekt
Methoden: Vorgenommen: Unified Process Ausgeartet in: Extreme Programming

5 Softwaretechnik im Projekt
Funktionalität des Programms im Vordergrund Einfache Bedienung

6 Softwaretechnik im Projekt
Gruppenkommunikation über Facebook Google:Code als Repository

7 Aufwandsschätzung Top-Down Zeitpunkt Abgabe war klar
Teilaufgaben verteilt um Termin einzuhalten

8 Gantt-Diagramm

9 Verwendete Testmethoden
Sporadische Tests Konstruktive Nur getestet worauf User Einfluss hat Final: Walkthrough

10 GUI

11 GUI – Was ist uns wichtig?
Übersichtliche GUI Wenig Unterbäume Einfach zu bedienen/selbsterklärend

12 Idee Wenig Pop-ups Klar strukturiertes Menü
Viele Informationen auf einen Blick

13 Alte GUI

14 Neue Funktionen Manuelle Steuerungsoptionen
Switch zwischen Roboter und Kamerasteuerung Map angepasst

15 Neue Funktionen Präsentationsmodus auf Roboter
Roboter wird auf Map dargestellt Option für Facedetection

16 Wegrationalisierte Funktionen
Koordinatenangabe

17 Finale GUI

18 Probleme bei der GUI Position der Teilfenster Auswahl Layout
Hängen während Befehle ausgeführt werden

19 MOVEMENT

20 Movement ...wo wir waren: MoveTo MoveForward/Backward TurnLeft/Right
Wander

21 Movement WRPCommands zur Anfrage einer Bewegung: GOTO_XY MOVE_BACKWARD
MOVE_FORWARD TURN_LEFT TURN_RIGHT Movement

22 Movement Entwickeln von Workarounds mit GOTO_XY
1 Woche später: Nicht machbar 2 Wochen später: Bugfix! (WRPServer-1.1.0)

23 Movement ...war ein Zeitfresser! Grundfunktionalität verstehen (Doku?)
Rumprobieren Fehlersuche am falschen Ende Workarounds – Code für die Tonne Movement

24 WANDER-FUNKTION

25 Wander Funktion Punkte durch klicken auf die Map festlegen
Ausgewählte Punkte in der Map darstellen Umrechnung Panel ↔ Roboterkoordinaten Einzelne Punkte auf der Karte abwandern Darstellung bei Zoom und Scroll anpassen

26 Ablauf Klick auf die Map erstellt Punkt
Jeder Punkt → Kreis auf der Map Werden in einer Liste gespeichert Umrechnung in Roboterkoordinaten Roboter kriegt umgerechnete Koordinaten Punkte abwandern Löschen der Punkte auf der Map

27 Beispielbild Blaue Punkte = Wegpunkte Roter Punkt = Roboter
Start des Wanderns über Functions → wander the given points

28 Umrechnung X-Wert * Skalierung Y-Wert * Skalierung * -1
Mapverschiebung mit einrechnen +/- Verschiebung * Skalierung

29 MAP

30 Map Visualisierung Problemstellung: Wie visualisiert man angegebene Punkte & Linien im Textformat für eine GUI. 2 Ansätze: Ein Bild davon erstellen Direkt auf dem Panel zeichnen LINES DATA(points)

31 Ansatz: Bild erstellen
Punkte und Linien werden dem Graphics(2D) Objekt eines BufferedImage's hinzugefügt. for (MapLine ml : lines){ g.drawLine((int)ml.getP1().getX(), (int)ml.getP1().getY()*-1, (int)ml.getP2().getX(), (int)ml.getP2().getY()*-1 ); } for (MapPoint mp : points){ g.drawLine((int)mp.getX(), (int)mp.getY()*-1, (int)mp.getX()+5), ((int)mp.getY()*-1

32 Ansatz: Bild erstellen
Generell gute Idee, aber Probleme! Map Koordinaten != GUI Koordinaten Bild Koordinaten ggf. != GUI Koordinaten → hoher Aufwand, evtl. nicht performant. Ebenfalls Probleme beim skalieren/zoomen → Bild für jedes zoomen neu erstellen? Keine gute Idee → wurde verworfen

33 Ansatz: Direkt auf dem Panel zeichnen
Gleiche Vorgehensweise wie Bild erstellen Unterschied: paintComponent Methode des Panels wird überschrieben und dort die Linien und Punkte gezeichnet. Vorteile: → Map Koordinaten ~ Panel/GUI Koordinaten → Einheitliches skalieren mit wenig Aufwand möglich

34 Ansatz: Direkt auf dem Panel zeichnen
Resultat:

35 Problem – große Map, kleineres Sichtfeld
Maps können teilweise sehr groß sein Verhältnis Mapgröße ↔ GUI Fenster teilweise schlecht Lösung: → MapPanel zoomable machen Zoomfaktor einführen, kein Zoom → Zoomfaktor 1.0 In der paintComponent() Methode muss dann der zoomfaktor auf die x & y Werte multipliziert werden. public static void zoomOut() { if(zoomFactor >= 0.5){ MapCanvas.zoomFactor -= 0.1; } public static void zoomIn() { if(zoomFactor <= 2.0){ MapCanvas.zoomFactor += 0.1; }

36 FACE DETECTION

37 Welche Software ist für unser Projekt
Face Detection Probleme: Welche Software ist für unser Projekt die richtige?

38 Face Detection Alternativen Faint OpenCV Face.com

39 Entscheidung fiel auf:
Face Detection Entscheidung fiel auf:

40 Face Detection Warum? Faint: Läuft nur unter Windows
OpenCV: C++ Version kam nicht in Frage Java Version genügte nicht unseren Anforderungen Face.com: Verhältnismäßig einfache Integration in unser Projekt

41 Face Detection Funktionsweise
Gesichtsmerkmale werden auf Face.com mit einem Label gespeichert Vergleich der Merkmale eines übergebenen Fotos mit den gespeicherten

42 Face Detection Fazit In dem Sinne keine Face Detection
Passender: Face Recognition

43 Was nehmen wir mit?

44 Was nehmen wir mit? Wichtige Erkenntnisse: API gut dokumentieren!
Erst denken -> dann programmieren = riesige Zeitersparnis!

45 Was nehmen wir mit? - gute Kommunikation in der Gruppe wichtig!


Herunterladen ppt "Abschlusspräsentation"

Ähnliche Präsentationen


Google-Anzeigen