Arkadiusz Łapiński ETI V gr.9.4 Sieć neuronowa w inteligentnym pojeździe, Tribolite 1
Cel: Określenie czy określony obszar jest drogą (betonową) czy nie. Główne cechy: wykorzystuje kamerę (przechwytującą obraz z punktu widzenia kierowcy), działa w czasie rzeczywistym, niezależny od linii itp. oznaczeń drogowych. Podstawowe kroki działania: 1. krótki krok inicjalizacyjny zebranie próbek danych, 2. trening sieci neuronowej, 3. zastosowanie sieci do detekcji drogi. 2
Postać danych - obraz jest w postaci RGB, - cechy: + 3 x 8 bitów na kolory, + wartości współrzędnych x i y rozważanych punktów (znormalizowane). Każdy wektor jest następnie ręcznie oznaczany jako droga lub nie-droga. Trening sieci 3
Detekcja drogi Przykładowy wynik 4
Zastrzeżenie do algorytmu Mimo, że detekcja drogi przez otrzymaną sieć odbywa się automatycznie i może być wykonywana w czasie rzeczywistym, to trenowanie wymaga ręcznych oznaczeń wprowadzanych przez człowieka Adaptacyjne podejście rzeczywiście dla czasu rzeczywistego przy podstawowych założeniach systemu bez zmian Dodatkowa obserwacja 5
Bazując na oczekiwanych obszarach wg poprzedniego obrazka, bierzemy punkty z tych obszarów i automatycznie oznaczamy je jako droga lub nie-droga. A nieco dokładniej określamy to nie dla pojedynczych punktów a dla pewnych obszarów / okien Wykorzystanie okien z poprzedniego slajdu (wraz z oznaczeniami droga czy niedroga) jako filtrów 6
Dlaczego nie powinno się cały czas uczyć sieci w ten sposób, czyli np. zakręt Post processing, aby zwiększyć precyzję 1. szumy są redukowane filtrami graficznymi erosion & dilationm, 2. jeśli droga na 2 kolejnych obrazach nie różni się znacznie, informacje z poprzednich obrazków o segmentacji mogą być wykorzystywane. 7
Implementacja strona techniczna Dell Latitude laptop 2,2GHz, z Red Hatem 9, Unibrain Fire-i (320x240 pixels) firewire camera (30 klatek / sek.), aplikacja napisana w C++. Implementacja sieć neuronowa 26 inputs (24 bitów RGB + koordynaty x i y) sieć trzywarstwowa: - dwie pierwsze warstwy zawierają po 4 neurony, - ostatnia warstwa złoŝona z 1 neuronu zwraca wynik, wykorzystuje wsteczną propagację. 8
Implementacja c.d. Dla umożliwienia działania w czasie rzeczywistym: każdy obrazek jest zmniejszany z 320x240 do 160x120, wybierany jest co trzeci piksel wraz z otoczeniem o rozmiarach 7x7 (więc nachodzą te okna na siebie trzema pikselami z każdej strony), Aktualnie czas segmentacji drogi wynosi ok. 60 ms / ramkę Wyniki testy na różnych rodzajach dróg, 4-sekundowe sekwencje wideo, wykresy błędów pokazują co 25 klatkę. 9
Test 1, prosta droga, wyniki Test 2, droga z cieniami, wyniki 10
Test 3, łuk drogi, lekka zmiana otoczenia, wyniki Test 4, duża zmiany otoczenia i drogi, wyniki 11
Podsumowanie wyników Uwagi, pomysły, plany na przyszłość trening sieci zajmuje aktualnie ok. 600 ms, nowe dane bufor FIFO, rozwiązanie dla dynamicznych zmian, wykorzystywanie informacji o ruchu pojazdu, zastosowanie algorytmów dla detekcji nadjeżdżających pojazdów. 12
Co jeszcze się dzieje w kierunku intelligent vehicles? n.p. kilka skrótów: CC - (Cruise Control) system stabilizacji prędkości jazdy iccs - system utrzymujący stałą odległość od poprzedzającego pojazdu DAS - system identyfikujący pasy ruchu, znaki drogowe i przeszkody DSC - układ kontroli stabilności pojazdu DTC - układ dynamicznej kontroli trakcji) EOBD - (European On- Board Diagnostic) układ ten stanowi centrum gromadzenia wszelkich funkcji diagnostycznych ICC (Intelligent Cruise Control)- inteligentny system stabilizacji prędkości jazdy ICS - zespolony system kontroli układów samochodowych PTS - system ułatwiający parkowanie (wyposażony w czujniki odległości) RDW - system informujący o zmianie ciśnienia w oponach SRS - system bezpieczeństwa pasażerów TPMS - układ monitorujący ciśnienie powietrza w ogumieniu 13