msc thesis slides (traffic sign recognition)
TRANSCRIPT
KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA, KÖVETÉSE ÉS SZEGMENTÁLÁSA
Giczi DánielMérnökinformatikus MSc
Témavezető: Dr. Czúni László
Célkitűzés
• Olyan rendszer kifejlesztése:• Amely képes legalább négy különböző jelzőtáblát
felismerni;
• Amely legalább 80% találati aránnyal (recall) rendelkezik;
• Amely szegmentálja a találatokat a detektált jelzőtáblának megfelelően;
• Amely találatkövetést és szűrést végez a minél alacsonyabb hamis pozitív arány eléréséért (precizitás);
• Valós idejű (asztali számítógépen)
• (Későbbi fúzionálás lidar adatokkal)
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA2/24
Motiváció
• Nem triviális probléma
• Jelen kor kihívása
• Még nem érhető el kész formában
• Összetett szoftver:• Detektál
• Követ
• Szegmentál
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA3/24
Felhasznált technológia
• Visual C++ 2012
• OpenCV 2.4.11
• MATLAB
• Különböző típusú kamerák
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA4/24
Szoftverek szerkezete
• Szoftver projektek• Annotation: Naplózás (lib)
• SignDetector: Teljes lánc (lib)
• ObjectTracking: Követés (lib)
• FollowedAnnotationTool: Annotáló és értékelő program
• CliDetector: Parancssoros futtatókörnyezet
• MatlabSignDetection: MATLAB interfész
• Kódismétlés teljesen ki van küszöbölve
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA6/24
Detekciós megközelítések
• Tetszőleges objektumok detektálásának módjai:• Rész-egész alapú
• Leíró reprezentáció alapú
• Osztályozó struktúra
• Jelzőtáblák detektálására megközelítések:• Alak (élek) alapján
• Szín alapján
• Leíró alapú (pl. Haar, LBP, HOG)
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA7/24
Haar-szerű detekció
• OpenCV implementáció
• Kaszkád működés
• Egyszerű és gyors
• Szürkeskálás működés
• Több típusú és irányú feature
• Kiértékelés konstans időben (integrál kép)
• Azonos méretű területek kiértékelése
Haar-szerű feature típusok
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA8/24
Kaszkád működés
Ábra: Kaszkád működés illusztrációja (H: gyenge osztályozók)
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA9/24
Szegmentálási megközelítések
• Intenzitás alapú küszöbölés
• Diszkontinuitás alapú
• Régiónövelés alapú (pl. Watershed)
• Klaszterezés alapú
• Hibrid megoldások
• …
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA10/24
Képkomponensek színi szűrése
• Globális színtartományok
• Bináris maszkok elkészítése
• Összefüggő komponensek keresése
• Szűrés• Elhelyezkedés és méret alapján (követés)
• Szegmentált háttéren van-e a találat
• Erős színi torzulás
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA11/24
Ábra: Színi maszk előállítása
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA12/24
Képek sorrendben:1. Eredeti kép2. Maszk (Tartomány A)3. Maszk (Tartomány B)4. Maszk (Tartomány C)5. Logikai VAGY6. Komponensek
szűrése
Ábra: Háttérszegmentáció
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA13/24
Megerősítéses követés
• Objektumok több képkockán át követése
• Találatok osztályozása színi komponsens alapján:• Erős találat
• Gyenge találat
• Pontszám alapján küszöb
• Objektumok ismételt azonosítása
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA14/24
Szegmentációfázisai
1. Eredeti kép
2. Watershed középről indítva
3. Színi maszk előállítása és
komponensek szűrése
4. Színi maszk morfológiai
kiterjesztése (adaptív)
5. Összevonás
6. Konvex burkolóÁbra: Konvex burkoló
2016. 06. 13.
Annotáló és kiértékelő szoftver
• Félautomata működés (követés)
• Két struktúra feltöltése:• DetekcióAnnotáció leképezés (egy-egy)• AnnotációDetekció megfeleltetés (egy-több)
• Kimenete:• Valós találatok száma• Hamis pozitív találatok száma• Befoglaló téglalap középpontjának és annotált
középpont átlagos távolsága• Befoglaló téglalap méretének és az annotált téglalapok
méretének átlagos arányszáma
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA17/24
All GT objects count: 6Detected GT obejcts count: 5False positive objects count: 1Center percision: 1.2Size percision: 1.24674
### Identifier pairs ###GT Detected1 22 33 44 NULL5 76 9
Ábra: Kiértékelő kimenetének illusztrációja
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA18/24
Tanító adatbázisok
• Tanítóminták:• Pozitív• Negatív
• Források:• Saját adatbázis• IFNI intézet
• Tanítás:• OpenCV CLI
eszközökkel
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA19/24
71 102
1410
66
540
56
1440
176 168
1116
175
1207
175
1336
Tanítóminták eloszlása
Pozitív Negatív
Tesztfelvételek
• Kamerák:• Prestigio RoadRunner 520GPS
• Nikon D3200
• Samsung Galaxy S2
• Helyszínek• Budapest, Dózsa György út és környéke
• Győr, Liszt Ferenc utca és környéke
Összesen: 27 perc
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA20/24
Manuális mérésFelvétel
TruePositive
FalseNegative
FalsePositive
Recall(Találati a.)
Precizitás(TP/FP)
FalsePositive
arány
0090 6 1 0 85,7% 100% 0%
0091 13 8 1 61,2% 92,9% 7.1%
0092 4 1 2 80% 66,6% 33,3%
0093 11 2 0 84,6% 100% 0%
0094 9 3 0 75% 100% 0%
leaving 15 0 3 100% 83% 17%
orgona 7 0 0 100% 100% 0%
Eredő 65 15 6 81,25% 90,77% 9,23%
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA21/24
Felvétel TalálatokHamis pozitív
Hamis negatív
Közzépp.átlag táv.
Méretpontosság
0092 – csak követés
Gyalogátkelő 0 7 0 - -
Főútvonal 3 29+3 1 1,1px 117%
Stop 0 7 0 - -
Elsőbbségadás 1 13 0 2px 98%
Eredő 4 56+3* 0 - -
0092 – megerősítéses követés
Gyalogátkelő 0 0 0 - -
Főútvonal 3 4+3 1 0,8px 117%
Stop 0 0 0 - -
Elsőbbségadás 1 5 0 2px 99%
Eredő 4 9+3* 1 - -
0092 – teljes szűréssel (háttér és megerősítés)
Gyalogátkelő 0 0 0 - -
Főútvonal 3 0+3 1 1,74px 114%
Stop 0 0 0 - -
Elsőbbségadás 1 2 0 2px 99%
Eredő 4 2+3* 1 - -
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA22/24
*: Automatikus mérésből származó hiba
Összefoglalás
• Adatbázis gyűjtése (tanító adathalmaz, felvételek)
• Detekció, szegmentálás, szűrés logika kidolgozása
• A követelményekben meghatározott >80% találati arány teljesült (81,25%)
• 9.23% hamis pozitív arány mellett
• A futási idő valós idejű (9.58 FPS @2.8GHz)
• A teljesítmény jónak mondható, további fejlesztésekkel tovább javítható
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA23/24
Köszönöm a figyelmet!
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA24/24
Elkészült szoftverek
• Alkalmazások• CLI futtató környezet
• MATLAB interfész (közel C++ futási idő)
• Annotáló és kiértékelő program
• Adatbázis• Saját gyűjtött adatbázis Google StreetView forrásból
• Leíró XML állományok• Különböző táblákra (két adatbázisból)
• Tesztvideók
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA26/24
Ábra: Követés-hozzárendelés probléma
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA27/24
Mérőszámok
𝑅𝑒𝑐𝑎𝑙𝑙 =𝑇𝑃
𝑇𝑃 + 𝐹𝑁∗ 100%
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 =𝑇𝑃
𝑇𝑃 + 𝐹𝑃∗ 100%
𝐹𝑃𝑅𝑎𝑡𝑒 = 1 − Precision =𝐹𝑃
𝑇𝑃 + 𝐹𝑃∗ 100%
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA28/24
Manuális mérés (táblázat)Start idő Vég idő Tábla Találat
0:00:47 0:01:09 Y Y
0:00:52 0:01:10 Pr X
0:02:45 0:02:46 Pr Y
0:03:10 0:03:11 Pr Y
0:03:31 0:03:33 Pr Y
0:03:40 0:03:42 Pr Y
0:04:04 0:04:05 Pr Y
Start idő Vég idő
0:00:23 0:00:23
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA29/24
Naplózás
• 1049 2 0 1119 50 75 75 1 251 98 50 46
• 1050 2 0 1128 38 79 77 1 242 89 53 50
• 1051 2 0 1129 28 89 75 1 235 84 47 46
• 1052 2 0 1145 19 83 77 1 227 78 49 45
• 1053 2 0 1159 12 84 79 1 222 70 50 52
• 1054 2 0 1171 12 83 83 1 217 76 51 51
• 1055 2 1 209 82 51 52 0 1179 15 91 88
• 1056 2 0 1184 28 94 89 1 198 94 54 59
• 1057 2 0 1197 36 83 90 1 189 113 56 54
• 1058 1 1 181 122 59 49
• 1059 1 1 182 117 59 53
• 1060 1 1 174 112 60 52
• 1061 1 1 166 109 63 53
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA30/24
Integrálkép
𝑠 𝑥, 𝑦 = 𝑖 𝑥, 𝑦 + 𝑠 𝑥 − 1, 𝑦 + 𝑠 𝑥, 𝑦 − 1 − 𝑠(𝑥 − 1, 𝑦 − 1
𝑖 𝑥′, 𝑦′ = 𝑠 𝐴 + 𝑠 𝐷 − 𝑠 𝐵 − 𝑠(𝐶
Ábra: Integrál kép illusztrációja
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA31/24
Ábra: Színi maszkon végzett címkézés
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA32/24
Futási sebesség méréseFelvétel Felbontás Frame szám Eltelt idő FPS
0090 1280x720 7206 00:12:22 9,71
0091 1280x720 6717 00:11:40 9,59
0092 1280x720 7200 00:12:21 9,72
0093 1280x720 7199 00:12:22 9,7
0094 1280x720 5376 00:09:36 9,3
leaving 1280x720 3977 0:06:53 9,62
orgona 1280x720 1440 00:02:33 9,41
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA33/24
Automatikus mérésFelvétel TP FP FN CP SP
leaving
Gyalogátkelő 6 0 0 6,76px 150%
Főútvonal 0 3 0 - -
Stop 3 0 0 3,67px 176%
Elsőbbségadás 6 0+1* 0 1,84px 132%
0092
Gyalogátkelő 0 0 0 - -
Főútvonal 3 0+3* 1 1.74px 114%
Stop 0 0 0 - -
Elsőbbségadás 1 2 0 2px 99%
Eredő 19 5+4* 1 - -
CP: Középpont pontossága(Távolságok átlaga)
SP: Méret pontossága(Terület aránya az annotációhoz képest)
2016. 06. 13.KÖZLEKEDÉSI JELZŐTÁBLÁK DETEKCIÓJA,
KÖVETÉSE ÉS SZEGMENTÁLÁSA34/24