Benutzer-Werkzeuge

Webseiten-Werkzeuge


ss18:teilprojekte:detection

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
ss18:teilprojekte:detection [2018/07/12 03:05]
f_g_r
ss18:teilprojekte:detection [2018/08/25 17:06] (aktuell)
f_g_r [Ordner Struktur]
Zeile 1: Zeile 1:
 ====== Detection mit Kaskaden ====== ====== Detection mit Kaskaden ======
- 
-Work in Progress: Texte sind noch falsch/​unvollständig 
  
 Man kann Haar Kaskaden benutzen um spezielle Objekte zu erkennen. Dafür muss man diese aber erst einmal mit positiven (Bilder die das gesuchte Objekt beinhalten) und negativen trainieren. Man kann Haar Kaskaden benutzen um spezielle Objekte zu erkennen. Dafür muss man diese aber erst einmal mit positiven (Bilder die das gesuchte Objekt beinhalten) und negativen trainieren.
Zeile 25: Zeile 23:
  
 ===== Master Skript ===== ===== Master Skript =====
 +==== Allgemein ====
  
 Um das eigentliche Trainieren und Testen einer Kaskade zu vereinfachehn haben wir ein Bash Script geschrieben. Um das eigentliche Trainieren und Testen einer Kaskade zu vereinfachehn haben wir ein Bash Script geschrieben.
  
-Das Script liest die Paramter aus einer einfach zu editierenden Config Datei und macht den Rest alleine. Dabei zeigt an wie weit es ist und leitet den output einzelner Programme in getrennte Output Dateien.+Das Script liest die Paramter aus einer einfach zu editierenden Config Datei (AKETS.conf) ​und macht den Rest alleine. Dabei zeigt es an wie weit es ist und leitet den output einzelner Programme in getrennte Output Dateien.
  
 Es ist so geschrieben das man es für das einfache Trainieren mehrerer Kaskaden benutzen kann und immer nur eine neue config Datei erstellen muss. Es ist so geschrieben das man es für das einfache Trainieren mehrerer Kaskaden benutzen kann und immer nur eine neue config Datei erstellen muss.
Zeile 36: Zeile 35:
 {{:​ss18:​teilprojekte:​akets_bild_1.png?​direct&​300|}} {{:​ss18:​teilprojekte:​akets_bild_1.png?​direct&​300|}}
  
-Ordner Struktur+==== Ordner Struktur ​====
 <​code>​ <​code>​
-Ordner in dem man arbeitet+Ordner_in_dem_man_arbeitet/​
     AKETS.sh     AKETS.sh
     mergevec.py     mergevec.py
-    cascade_0+    ​test_cascade.py 
 +    ​cascade_0/
         AKETS.conf         AKETS.conf
-    ​cascade_1+        annotations/​ 
 +            ... 
 +    ​cascade_1/
         AKETS.conf         AKETS.conf
 +        annotations/​
 +            ...
 </​code>​ </​code>​
-Ausführen tut man das Skript wenn man im gleichen Ordner ist mit <code Bash>​./​AKETS.sh</​code>​ oder wenn man in einem Unterordner ist mit <code Bash>​../​AKETS.sh</​code>​ .+ 
 +Ausführen tut man das Skript wenn man im gleichen Ordner ist mit <code Bash>​./​AKETS.sh</​code>​ oder wenn man in einem Unterordner ist mit <code Bash>​../​AKETS.sh</​code>​ 
 + 
 + 
 +==== Funktionen ==== 
 + 
 +=== 1) setup === 
 +Erstellen aller Ordner und erschaffung der samples 
 +=== 2) train_cascade === 
 +Eigentliches Trainieren der Kaskade 
 +=== 3) test_cascade === 
 +Testen der Kaskade mit python Programm oder automatischen Test Dateien 
 +=== 4) utilities === 
 +Werkzeuge zum umgehen mit großen Datenmengen 
 +== 4.1) multipli_pics == 
 +[funktioniert leider noch nicht] 
 +== 4.2) number_files_dir == 
 +Nummiert Dateien in einem ordner welcher der Benutzer eingibt 
 +=== 5) clean_dir === 
 +zum löschen aller dateien die im Setup erstellt werden 
 +=== 6) write_config === 
 +Alternative zum schreiben der Config Datei 
  
 ===== Erstellen von Samples ===== ===== Erstellen von Samples =====
Zeile 94: Zeile 120:
 {{:​ss18:​teilprojekte:​maxidev_mit_40_0.jpg?​direct&​100|}} {{:​ss18:​teilprojekte:​maxidev_mit_40_0.jpg?​direct&​100|}}
 {{:​ss18:​teilprojekte:​maxidev_mit_40_1.jpg?​direct&​100|}} {{:​ss18:​teilprojekte:​maxidev_mit_40_1.jpg?​direct&​100|}}
- 
-=== bgcolor, bgtresh === 
- 
  
 ===== Trainieren der Kaskade ===== ===== Trainieren der Kaskade =====
- 
-TODO: Script fertig schreiben, Text verbessern und fixen das bei der Ordner Struktur keien Box mehr drum ist 
- 
  
 ==== Parameter ==== ==== Parameter ====
Zeile 119: Zeile 139:
 Am Anfang haben wir immer den Feature Type HAAR benutzt doch jüngste Ergebnisse zeigen das LBP, anders als erst gedacht, doch sehr effiktiv sein kann. Am Anfang haben wir immer den Feature Type HAAR benutzt doch jüngste Ergebnisse zeigen das LBP, anders als erst gedacht, doch sehr effiktiv sein kann.
  
-=== minHitRate === 
-=== maxFalseAlarmRate === 
 ===== Testen der Kaskade ===== ===== Testen der Kaskade =====
  
Zeile 127: Zeile 145:
 Die Syntax ist:  Die Syntax ist: 
 <code Bash> <code Bash>
-python3 cascade_test_img.py pfad_zu_bild pfad_zu_kaskade+python3 cascade_test_img/vid.py pfad_zu_bild/vid pfad_zu_kaskade
 </​code>​ </​code>​
 für das testen an Bildern. Für das Video Programm ist es genauso. für das testen an Bildern. Für das Video Programm ist es genauso.
Zeile 135: Zeile 153:
 python3 cascade_test_img.py first_frame.png cascade.xml python3 cascade_test_img.py first_frame.png cascade.xml
 </​code>​ </​code>​
-TODO: Test Script beinhaltet nur img test Code 
  
 {{:​ss18:​teilprojekte:​haar_kaskade_test_code_mit_beispiel.zip|}} {{:​ss18:​teilprojekte:​haar_kaskade_test_code_mit_beispiel.zip|}}
-===== Erstellen der finalen Kaskade ===== 
- 
-TODO: Wenn finale Kaskade fertig ist soll hier die genaue Anleitung hin 
- 
  
 ===== Allgemeine Erfahrungen aus dem Trainieren ===== ===== Allgemeine Erfahrungen aus dem Trainieren =====
Zeile 161: Zeile 174:
 2. Haltet die positiven Bilder ungefähr in einem Bereich von 20-35 Pixeln. 2. Haltet die positiven Bilder ungefähr in einem Bereich von 20-35 Pixeln.
    
-==== Pucks in einer einfachen Puck Simulation finden ==== 
- 
-Es wurde eine simple Simulation von bewegenden Pucks zum üben mit Trackern und Kaskaden erstellt. 
- 
-==== Logos finden ==== 
- 
 ===== Server als Ressource ===== ===== Server als Ressource =====
  
 +{{:​ss18:​teilprojekte:​azure_bild.png?​400|}}
  
-TODO+Man kann einen externen Server mieten um wenn viel Rechenarbeit von nöten ist nicht seinen eigenen Computer benutzen zu müssen. Außerdem kann dies genutzt werden um eine Linux Umgebung für Windows Nutzer bereit zu stellen.
  
-Man kann einen externen Server mieten um wenn viel Rechenarbeit ​von nöten ist nicht seinen eigenen Computer benutzen zu müssen. Außerdem kann dies genutzt werden ​um eine Linux Umgebung für Windows Nutzer bereit ​zu stellen.+Wir haben uns dabei für den Dienst Azure von Microsoft entschieden da sie jedem Studenten 100 USD Guthaben geben um damit zu machen was man will[[https://​azure.microsoft.com/​de-de/​free|Azure für Studenten]]
  
-Wir haben uns dabei für den Dienst Azure von Microsoft entschieden da sie jedem Studenten 100 USD Guthaben ​geben um damit zu machen was man will.+Alternativen sind: 
 +  * AWS von Amazon (eventuell ein Studentenprogramm) 
 +  * Compute Engine von Google (Test Version mit Guthaben)
  
 ===== Literatur ==== ===== Literatur ====
 +  * [[https://​www.cs.cmu.edu/​~efros/​courses/​LBMV07/​Papers/​viola-cvpr-01.pdf | Wissentschaftliche Arbeit von Paul/​Viola]]
 +  * [[http://​www.cbsr.ia.ac.cn/​users/​lzhang/​papers/​ICB07/​ICB07_Liao.pdf | Wissentschaftliche Arbeit über LBP]]
 +  * [[https://​docs.opencv.org/​3.4.1/​ | OpenCV Dokumentation]]
 +  * [[https://​docs.python.org/​3/​contents.html | Python3 Dokumentation]]
 +  * [[https://​www.python.org/​dev/​peps/​pep-0008/​ | PEP8]]
  
-TODO: Wissentschafliche Arbeit von Paul/Viola für HAAR und die andere für LBP+===== Dateien ====
  
 +{{:​ss18:​teilprojekte:​detection_dateien.zip|}}
ss18/teilprojekte/detection.1531357531.txt.gz · Zuletzt geändert: 2018/07/12 03:05 von f_g_r