Individualisierte mit YOLOv2 in Darknet Img Src: pjreddie.com/darknet & pjreddie.com/darknet/yolo Darknet ist ein Machine Learning Framework wie Caffe, Tensorflow oder Theano. Darknet ist in C mit Cuda geschrieben. 1
VS Erraten des dargestellten Objektes Erraten wo Objekte im Bild sind und dieser Vallhund Img Src: Wikimedia Commons - Sören T Eriksson Img Src: Low-Power Image Recognition Challenge (LPIRC 218) 2
Beispiel vs MNIST Ziffer Einzelne Ziffer klar Zwei Ziffern? Object Detection evaluiert Regionen 3 [.933] 2 [.987] 4 2 Generiert mit https://tensorflow-mnist.herokuapp.com/ 3
2-Stage Detektor Beispiele R-CNN, Fast R-CNN, Faster R-CNN, Mask R-CNN [Facebook] R-FCN [Microsoft Research] Gute Präzision, langsam Img Src: Girshick, Ross, et al. "Rich feature hierarchies for accurate object detection and semantic segmentation 214 4
Single Shot Detectors Beispiele YOLO, YOLOv2, YOLOv3 [University of Washington] SSD [Google] DSSD [Amazon] RetinaNet [Facebook] Schneller als 2-Schritt detektoren, schlechtere Resultate Img Src: Redmon, Joseph, et al. "You only look once: Unified, real-time object detection." 216 5
Technischer Unterschied YOLO Img Src: Wikimedia Commons typical CNN architecture Img Src: Redmon, Joseph, et al. "You only look once: Unified, real-time object detection." 216 6
YOLO - Konzept 7 x 7 Grid* Pro Zelle 2 Bounding Boxes Positionierung x, y, width, height Wahrscheinlichkeit der korrektheit der Bounding Box IoU 2 Klassen (Pascal VOC) 7 x 7 x (2*5+2)** 7 height width Intersection over Union (x,y) src: http://www.pyimagesearch.com 7 * YOLOv2 verwendet die Input grösse des Bildes / 32 als Grid ** YOLOv2 verwendet Anchor Boxes mit eigenen Klassen -> 7x7x2x(5+2) 7
YOLO - Cost Function (Mathe Teil) Bounding Box width height (x,y) src: http://www.pyimagesearch.com 8 Formula Src: Redmon, Joseph, et al. "You only look once: Unified, real-time object detection." 216
Wordtree Finden von visuellen Gemeinsamkeiten Falls nicht genau Klassifizierbar, wird die Nächste überklasse verwendet Best Effort Haustier C x y Hund Welsh Corgi w h p p p p p p 1 1 2 2 3 3 Katze Shiba Inu Maine Coon Scottish Fold Img Src: Wikimedia Commons 9
YOLO anhand eines Beispiels Ziel der Person Unbekannt Bruno Zimmermann Matthias Rosenthal Hans Gelke Simone Schwizer Tobias Welti 1
Tree Structure Tree File Name File Designator Parent Line face rosn gelk zing zimb welo weii sczr moes mazl kamm hubp gana groo -1 Root Element Unbekannt Matthias_Rosenthal Hans_Gelke Raphael_Zingg Bruno_Zimmermann Tobias_Welti Armin_Weiss Simone_Schwizer Dominik_Moesch Amin_Mazloumian Tobias_Kammacher Philipp_Huber Rico_Ganahl Alexey_Gromov 11
Darknet YOLO Components.data File für referenz zu Trainingsdaten und Beschriftungen.cfg Datei mit der strukturdefinition des s.weights Datei mit den erlernten Gewichten.tree mit einer Repräsentation der Nur Relevant wenn verwendet wird. Verlinkt über eine Zeile in der.cfg Datei 12
Data Face Detection Data Set and Benchmark (FDDB) Bilder von Gesichtern mit Koordinaten Bilder von Arbeitskollegen nach Person sortiert (s Daten) rosn welo zimb Beispiel für Dateiname 1_zimb.jpg 13
Training 1. 2. 3. 4. 5. trainieren Letzten Layer entfernen - Nur erlernte Filter relevant straining mit FDDB Datenset über sdaten Training mit kombiniertem Datenset zimb 1 3 5 14
Fully Convolutional Out of the Box ist das Resultat teilweise etwas durchzogen Effizient auf neuromorpher Hardware wie z.b. Movidius Interessant für Datengenerierung - Viele Daten mit wenig Aufwand Statisch Für neue Klassen muss neu Trainiert werden! 15
Dynamischer Ansatz () s Algorithmus (zb YOLO mit nur Gesicht trainiert) s Netz zur (VGG16) Resultate egal, nur erlernte filter relevant 128 Werte, welche ein Gesicht beschreiben Support Vector Machine (SVM) 16
Kontakt Bruno Zimmermann bruno.zimmermann@zhaw.ch www.zhaw.ch/ines https://blog.zhaw.ch/high-performance/ 17
Appendix 18
Computation Costs YOLOv2 (with Darknet19) Factor *32 Size Billion Calculations 2 64.656678912 4 128 2.626715648 6 192 5.911128 8 256 1.5686259 1 32 16.4169728 12 384 23.644483 14 448 32.17726669 16 512 42.274537 18 576 53.1999187 2 64 65.6678912 22 74 79.45814835 24 768 94.56176333 26 832 11.9787361 28 896 128.79668 3 96 147.7527552 Appendix 19
Configuration File Details [convolutional] filters=1 = 5*num + 5*classes size=1 stride=1 pad=1 activation=linear [region] anchors =.77871, 1.1474, 3.525, 4.31277, 9.22725, 9.61974 bias_match=1 classes=15 coords=4 num=5 softmax=1 jitter=.2 rescore=1 Appendix 2
Mehr Tree Struktur Beispiele Line Designator Parent Line Number saeugetiere -1 1 canidae 2 felidae 3 hund 1 4 wolf 1 5 fuchs 1 6 luchs 2 7 hauskatze 2 8 panthera 2 9 corgi 3 1 vallhund 3 11 wildkatze 7 12 sandkatze 7 13 loewe 8 Appendix 21