MODELOWANIE INŻYNIERSKIE nr 51, ISSN 1896-771X IMPLEMENTACJA SIECI NEURONOWYCH W NAHEŁMOWYM SYSTEMIE WSKAZYWANIA CELU Krzysztof Sibilski 1a, Wiesław Milewski 1b, Marek Sosnowski 1c 1 Zakład Uzbrojenia Lotniczego, Instytut Techniczny Wojsk Lotniczych, Warszawa a krzysztof.sibilski@itwl.pl, b wiesław.milewski@itwl.pl, c marek.sosnowski@itwl.pl Streszczenie Referat prezentuje metodę sterowania stanowiskiem ruchomym z karabinem zamontowanym na śmigłowcu, z użyciem celownika nahełmowego, bazującą na sztucznej sieci neuronowej. Układ wykrywania położenia hełmu działa na podstawie optoelektronicznego rozpoznawania i analizy w czasie rzeczywistym, uzyskiwanego z minikamery, obrazu trzech miniaturowych transmiterów podczerwieni (plamek świetlnych) umieszczonych na hełmie pilota. Sygnał wizyjny z kamery jest analizowany sprzętowo przez układ elektroniczny, na którego wyjściu otrzymywane są trzy pary współrzędnych wyrażone w układzie przetwornika kamery, opisujące położenie obrazów trzech świecących plamek. Do wyznaczania położenia hełmu zastosowano jednokierunkową wielowarstwową sieć neuronową. Sieć ta po etapie uczenia z nauczycielem została zaimplementowana w systemie celownika nahełmowego. Słowa kluczowe: (sztuczna) sieć neuronowa, celownik nahełmowy NEURAL NETWORK IMPLEMENTATION IN THE HELMET SIGHT POSITIONING SYSTEM Summary In this paper is presented a neural network based method of control the helicopter mounted moving gun turret using helmet-mounted sight. Helmet position detection system acts on the base optoelectronic recognition and real time analysis of the spatial constellation of three miniature IR transmitters (light dots) placed on the pilots helmet. Video signal from sensor is hardware analyzed. At the system output are sent three pair of measured coordinates in camera coordinate system, which designate position of three light dots. A multilayer unidirectional neural network is used to assign helmet spatial position. This network after learning stage using a teacher method is implemented in the system of helmet-mounted sight. Keywords: (artificial) neural network, helmet-mounted sight 1. Wstęp Współczesne śmigłowce bojowe mogą być wyposażone w celownik nahełmowy współpracujący z podsystemem wykrywania położenia hełmu. System taki jest przygotowany do implementacji na polskim śmigłowcu W-3PL Głuszec, na którym celownik nahełmowy operatora, służy do zgrubnego celowania karabinem zamontowanym na ruchomym stanowisku podkadłubowym oraz do szybkiego ustawiania osi optycznej głowicy obserwacyjno-celowniczej w pozycji równoległej do osi wizowania celu wybranego przez operatora. Dalsze precyzyjne celowanie odbywa się za pomocą systemu stabilizowanej głowicy obserwacyjno-celowniczej z funkcją autotrackingu. Proponowany układ wykrywania położenia hełmu działa na podstawie optoelektronicznego rozpoznawania i analizy w czasie rzeczywistym, uzyskiwanego z minikamery, obrazu trzech miniaturowych transmiterów podczerwieni (plamek świetlnych) umieszczonych na 77
IMPLEMENTACJA SIECI NEURONOWYCH W UKŁADZIE POZYCJONOWANIA hełmie w jego płaszczyźnie symetrii. Minikamera jest nieruchoma względem kabiny śmigłowca i umieszczona w taki sposób, by jej oś optyczna celowała w środek hełmu widzianego w jej polu widzenia. Sygnał wizyjny z kamery analizowany jest sprzętowo przez układ elektroniczny, na którego wyjściu otrzymywane są trzy pary współrzędnych wyrażone w układzie przetwornika kamery, opisujące położenie obrazów trzech świecących plamek. Badania i analizy ruchów głowy operatora w hełmie w trakcie celowania wykazały, że wypadkowy ruch powodujący zmiany położenia przestrzennego hełmu odbywa się w sposób nieliniowy, zależny od amplitudy odchyleń hełmu od położenia przyjętego umownie za położenie zerowe oraz jest zakłócany poprzez czynniki takie jak drgania nosiciela, mimowolne ruchy głowy i zależy od anatomicznych różnic w budowie głowy i szyi pilota. Ogólnie można stwierdzić, że: dla małych wychyleń w azymucie jest to w przybliżeniu obrót względem osi pionowej przechodzącej przez górny odcinek kręgosłupa szyjnego, dla dużych wychyleń w azymucie ruch dodatkowo odbywa się względem osi przechodzącej przez lędźwiowy odcinek kręgosłupa, ruch w elewacji, w zakresie około +/-15 stopni, dokonywany jest względem osi przechodzącej przez punkt leżący w szyjnej części kręgosłupa przy podstawie czaszki, przy większych amplitudach wychyleń w elewacji, oś obrotu przesuwa się do dołu wzdłuż kręgosłupa szyjnego. Z uwagi na nieliniową charakterystykę opisującą ruchy głowy pilota wraz z hełmem w trakcie celowania oraz jej zależność od indywidualnych cech budowy antropometrycznej proste analityczne jej zamodelowanie jest trudne i wymaga przyjęcia wyników badań doświadczalnych. W związku z powyższym pojawiła się koncepcja zastosowania sztucznej sieci neuronowej do obliczenia kątów azymutu i elewacji hełmu na podstawie danych wejściowych otrzymywanych z optoelektrycznego układu pomiarowego. W wyniku przeprowadzonych doświadczeń, do wyznaczania położenia hełmu wykorzystano jednokierunkową wielowarstwową sieć neuronową z dwiema warstwami ukrytymi. Pojedynczy rekord danych wejściowych układu pomiarowego w postaci współrzędnych plamek świetlnych związany jest z zadanymi kątami azymutu (Az zad) i elewacji (El zad) osi celowania hełmu i po zastosowaniu odpowiednio zaimplementowanego algorytmu obliczeniowego sieci neuronowej służy do wyliczenia odpowiadających mu kątów azymutu (Az obl) i elewacji (El obl) osi celowania hełmu. W celu opracowania algorytmów obliczeniowych i wyboru optymalnej struktury sztucznej sieci neuronowej konieczne jest wcześniejsze nauczenie sieci polegające na serii pomiarów położeń kątowych hełmu i odpowiadających im odpowiedzi układu pomiarowego. Pojedyncza odpowiedź układu pomiarowego na zadane kąty azymutu i elewacji hełmu, z odpowiednio gęstym rastrem kątowym, w fazie uczenia sieci stanowi rekord odpowiadający rekordowi danych wejściowych. Po zakończeniu fazy uczenia sieci sczytywane są współczynniki wagowe sieci i wraz ze strukturą sieci stanowią zestaw danych do uruchomienia docelowego algorytmu wyznaczania położenia przestrzennego hełmu pilota w nahełmowym systemie wskazywania celu. System ten, po odpowiednim dostosowaniu, może być stosowany na dowolnym śmigłowcu z ruchomym stanowiskiem strzeleckim. 2. Architektura układu pomiarowego Do wykonania serii pomiarów koniecznych do nauczenia sieci opracowano stanowisko pomiarowe, które spełnia następujące wymagania: umożliwia zautomatyzowane zadawanie i pomiar kątów azymutu i elewacji osi celowania z określonym rastrem kątowym, umożliwia pomiar położenia transmiterów podczerwieni, umożliwia zapis położenia transmiterów podczerwieni i odpowiadające im zadane kąty azymutu i elewacji, stanowiących dane wejściowe do uczenia sieci neuronowej, umożliwia wyznaczenie kątów azymutu i elewacji osi wizowania hełmu na podstawie danych wejściowych przez algorytm sztucznej sieci neuronowej i przesłanie ich do modułu wykonawczego, umożliwia określenie dokładności i dokonanie pomiaru błędów wyznaczania położenia kątowego. Stanowisko pomiarowe (rys. 1) składa się z: hełmu z modułem nahełmowym i wskaźnikiem laserowym na obrotnicy PanTilt, modułu pokładowego, minikamery IR, obrotnicy PanTilt ze sterownikiem, komputera pomiarowego (PC), oprogramowania pomiarowo-badawczego, ekranu multimedialnego. 78
Krzysztof Sibilski, Wiesław Milewski, Marek Sosnowski Ekran Laser Kamera IR Moduł nahełmowy Sterownik obrotnicy PanTilt CV Az zad El zad Ethernet Rys. 1. Stanowisko pomiarowe Moduł pokładowy RS 232 X1,Y1 X2,Y2 X3,Y3 Komputer pomiarowy Stanowisko to pozwala na uproszczone zadawanie położenia przestrzennego hełmu poprzez zmianę jedynie jego kątów azymutu i elewacji względem dwóch prostopadłych osi obrotu, bez uwzględnienia przemieszczeń bocznych. Przemieszczenia boczne (prawo, lewo, przód, tył) realizowane są poprzez równoległe przemieszczanie podstawy obrotnicy z określonym rastrem (np. co 1 cm) i dokonywanie serii pomiarów kątowych dla każdego przemieszczenia. Pomiar sprzętowy płaskich współrzędnych 3 plamek w układzie przetwornika kamery realizowany jest za pomocą sprzętowego układu analizy sygnału video (MASV). Następnie realizowana jest transmisja odczytywanych sześciu współrzędnych plamek (X1, Y1, X2, Y2, X3, Y3) z modułu pokładowego do komputera, gdzie następuje wyliczenie kątów azymutu (Az obl) i elewacji (El obl) hełmu z wykorzystaniem sztucznej sieci neuronowej, które przekazywane są do układu wykonawczego. 2.1 Moduł pokładowy Moduł pokładowy detektora elektrooptycznego służy do: detekcji sygnałów optycznych generowanych przez transmitery podczerwieni zamontowane na powierzchni hełmu, wyznaczania współrzędnych tych transmiterów w układzie przetwornika kamery, transmisji zmierzonych współrzędnych transmiterów podczerwieni do komputera pomiarowego. W skład modułu pokładowego wchodzą następujące elementy: moduł elektronicznej analizy sygnału video (MASV), mikroprocesorowy moduł sterujący - µp, moduł konwertera transmisji szeregowej RS-232. Moduł elektronicznej analizy sygnału video (MASV) stanowi układ sprzętowy, którego głównym zadaniem jest przetworzenie i analiza sygnału wizyjnego otrzymywanego z kamery. Moduł MASV analizuje sygnał video na drodze sprzętowej, wydziela z niego sygnały synchronizacji pionowej i poziomej oraz znormalizowany sygnał intensywności plamki, a następnie na ich podstawie generuje sygnały pośrednie, niosące informacje o pozycji świecących plamek w azymucie i elewacji względem początku układu związanego z polem obrazowym kamery. Pozycje plamek w azymucie wyznaczane są przez odczyt 9-bitowego licznika położenia horyzontalnego taktowanego częstotliwością 8 MHz. Daje to rozdzielczość poziomą odczytu położenia piksela wynoszącą 512 punktów na linię. Pozycje plamek w elewacji wyznaczane są przez programowe zliczanie linii w obrazach nieparzystych przez mikroprocesor sterujący µp. Sygnały pośrednie: parzystości, intensywności plamki oraz stan licznika analizowane są programowo przez mikroprocesor µp i na ich podstawie wyznaczane są współrzędne 3 transmiterów podczerwieni (plamek) w układzie przetwornika CCD kamery. Mikroprocesorowy moduł sterujący µp wykonuje następujące zadania: synchronizuje się z kamerą, zgodnie z sygnałami linii synchronizacji pionowej i sygnałem parzystości, odbiera sygnały pośrednie (parzystości i intensywności plamki) z MASV i wstępnie je przetwarza, na podstawie przetworzonego wstępnie sygnału wizyjnego wyznacza i rejestruje współrzędne trzech plamek w układzie związanym z przetwornikiem obrazowym kamery, transmituje szeregowo do komputera pomiarowego wektor danych wejściowych zawierający sześć współrzędnych plamek, obsługuje mechanizm watchdoga. 2.2 Moduł nahełmowy Moduł nehełmowy składa się z układu trzech transmiterów podczerwieni i służy do generowania sygnałów optycznych wykrywanych przez kamerę. Układ trzech transmiterów podczerwieni (plamek świetlnych) składa się z trzech diod emitujących podczerwień umieszczonych na powierzchni hełmu w jego płaszczyźnie symetrii, tak by w pozycji neutralnej znajdowały się w centrum obrazu widzianego przez kamerę. Diody nie leżą na jednej prostej, co polepsza algorytm dekodowania kątów azymutu i elewacji. 2.3 Moduł kamery Miniaturowa, monochromatyczna kamera z dobraną optyką i filtrem odcinającym światło widzialne stanowi element detekcyjny elektrooptycznego podsystemu wykrywania położenia hełmu pilota. Jest ona umieszczona nad hełmem w jego płaszczyźnie symetrii w taki sposób, by triada świecących transmiterów (plamek) na hełmie zawsze znajdowała się w polu widzenia kamery przy maksymalnie szerokim zakresie zmian położenia przestrzennego hełmu. 79
IMPLEMENTACJA SIECI NEURONOWYCH W UKŁADZIE POZYCJONOWANIA Kamera na swoim wyjściu wytwarza wizyjny sygnał video w standardzie CCIR Composite Video (CV) odpowiadający płaskiemu obrazowi przestrzennej konfiguracji triady świecących plamek. Do badań użyto kamery monochromatycznej z obiektywem o kącie widzenia FOV 90 z założonym filtrem odcinającym światło widzialne. Sygnał CV służy do dalszej sprzętowej analizy obrazu przekazywanego przez kamerę. Analiza każdej klatki (ramki) obrazu odbywa w czasie rzeczywistym co 40 ms. Jest to czas odpowiadający transmisji jednej ramki obrazu składającego się z dwóch półobrazów. 2.4 Komputer pomiarowy Komputer pomiarowy służy do: odbioru z modułu pokładowego kompletnych rekordów danych wejściowych odpowiadających bieżącej pozycji hełmu (z użyciem interfejsu szeregowego RS- 232), odfiltrowania zakłóceń i szumów generowanych przez sensory, wyliczenia na podstawie danych wejściowych kątów azymutu i elewacji osi celowania hełmu na podstawie zaimplementowanych algorytmów sieci neuronowych, przesłania wyliczonych kątów azymutu i elewacji osi celowania hełmu do układu wykonawczego. 3. Model sztucznej sieci neuronowej Działanie sztucznych sieci neuronowych oparte jest na prostych modelach komórek neuronowych opracowanych na podstawie obserwacji układów nerwowych zwierząt i ludzi. +1 X 1 X 2 X j X m w k1 w k2 w kj w km w k0 g() f() g() funkcja pobudzenia f() funkcja aktywacji Rys. 2. Schemat modelu sztucznego neuronu Na rysunku 2. przedstawiono schemat często stosowanego modelu sztucznego neuronu. Składa się on z: n+1 wejść (stanowiących odpowiedniki dendrytów synaps komórki nerwowej), z którymi związane są odpowiednie współczynniki liczbowe W zwane wagami lub współczynnikami wagowymi, Y k jednostki przetwarzającej (odpowiednik ciała komórki nerwowej), jednego wyjścia Y (odpowiednika aksonu komórki). Jedno połączenie synaptyczne jest wyróżnione w ten sposób, że wartość sygnału X na jego wejściu jest stała i wynosi +1, natomiast wartość jego współczynnika wagowego W0 stanowi wartość progową dla tego neuronu. Wartość sygnału wyjściowego Y otrzymywanego na wyjściu k-tego neuronu jest określona następującym wzorem: Yfg n fg W X (1) gdzie: W - wektor wag (ważonych połączeń synaptycznych), X - wektor wartości sygnałów wejściowych, gk() - funkcją pobudzania k-tego neuronu w postaci sumy: n w x (2) gdzie: - nk - pobudzenie k-tego neuronu, - fk() - funkcją aktywacji k-tego neuronu, o postaci (w tym przypadku sigmoidalnej): f (3) Informacja zgromadzona przez pojedynczy neuron wchodzący w skład sieci neuronowej zawarta jest we współczynnikach wagowych związanych z połączeniami synaptycznymi tej sieci. Dobór współczynników wagowych decyduje zatem o jakości działania sztucznej sieci neuronowej. Bardzo istotną rolę w pracy systemów opartych na sztucznych sieciach neuronowych pełni faza treningu, zwana również fazą uczenia sieci. W jej trakcie sieć uczy się poprawnie reagować na wzorce znajdujące się w zbiorze uczącym. Jednocześnie w trakcie tego procesu sieć nabywa zdolności generalizacji, czyli oczekiwanego reagowania na wektory wejściowe, nie zawarte w zbiorze uczącym. Rozróżnia się dwie podstawowe metody treningu: nadzorowaną (z nauczycielem) oraz nienadzorowaną (bez nauczyciela). Autorzy niniejszej pracy zastosowali metodę nadzorowaną. W nadzorowanym procesie uczenia sieci (rys. 3) na wejście sieci neuronowej podawane są wektory X ze zbioru uczącego wraz z żądaną poprawną odpowiedzią D. Aktualny wektor odpowiedzi sieci Y na wyjściu służy do określenia miary odległości L pomiędzy wektorem wyjściowym Y a sygnałem uczącym D. W zależności od wartości miary L dokonywana jest aktualizacja wag W w taki sposób, aby dla danego wektora uczącego X miara L[Y,D] była mniejsza od poprzedniej. 80
Krzysztof Sibilski, Wiesław Milewski, Marek Sosnowski X Sieć neuronowa W Miara odległości L[D,Y] Generator odległości Sygnał uczący D Y Nauczyciel Rys. 3. Schemat modelu nadzorowanego nauczania sieci Poszczególne jednostki neuronowe mogą być połączone połączeniami synaptycznymi, tworząc w ten sposób sieć neuronową. W ogólnym przypadku może być to zupełnie dowolna struktura, jednakże podlega ona pewnym ograniczeniom, nie są bowiem znane efektywne algorytmy nauki takich nieregularnych sieci. Stąd też spotykane obecnie struktury neuronowe charakteryzują się dużą regularnością i na tej podstawie wyróżnia się: sieci jednokierunkowe (rys. 4) sieci rekurencyjne. Sieci jednokierunkowe tworzy się w wyniku grupowania pojedynczych neuronów w warstwy, a następnie łączy się warstwy w ten sposób, że wyjście każdego neuronu z danej warstwy jest połączone z wejściem każdego neuronu z warstwy następnej. Nie mogą jednocześnie istnieć połączenia wewnątrz warstwy, jak również połączenia wsteczne, czyli połączenia z warstwą poprzednią. Sygnały wejściowe podawane są na pierwszą warstwę ukrytą neuronów, a te z kolei stanowią sygnały źródłowe dla kolejnej warstwy. Sieci jednokierunkowe wielowarstwowe często wykorzystują nieliniową funkcję aktywacji typu sigmoidalnego unipolarną (niesymetryczną) lub bipolarną (symetryczną). W sieci jednokierunkowej sygnał przechodzi przez dany neutron tylko jeden raz, w jednym kierunku od wejścia do wyjścia. Metody uczenia takich sieci są proste i łatwe do realizacji w praktyce. Ich uczenie zwykle odbywa się z nauczycielem. Ponieważ sieć wielowarstwowa o trzech warstwach realizuje odwzorowanie dowolnej przestrzeni X w dowolną przestrzeń Y w postaci X Y, wynika więc z tego, że omawiana sieć powinna być zbudowana przynajmniej z trzech warstw. WEJŚCIE +1 X1 Y1 X2 Y2 X3 Y3 w0 w6 Warstwa ukryta neuronów 1 2 3 4 WYJŚCIE Rys. 4. Struktura sieci neuronowej jednokierunkowej Az El W sieciach rekurencyjnych, takich jak: Hamminga, Hopfielda, typu BAM i Elmana [1], [2] istnieją sprzężenia zwrotne między wejściem a wyjściem. Zależności dynamiczne, jakie panują w sieci, są widoczne na każdym etapie działania. Zmiana stanu jednego neuronu przenosi się przez masowe sprzężenie zwrotne na całą sieć, wywołując stan przejściowy, kończący się określonym stanem ustalonym na ogół innym niż stan poprzedni. Dopuszcza się istnienie sprzężeń zwrotnych, tzn. wyjścia neuronów mogą być połączone z wejściami neuronów tej samej warstwy lub warstw pośrednich. Informacja oscyluje między warstwami lub w obrębie warstw aż do spełnienia pewnego kryterium zbieżności i dopiero wtedy jest przekazywana na wyjście sieci. 4. Badania 4.1 Pozyskiwanie danych Pozycje plamek w azymucie wyznaczane są z 9- bitową dokładnością, co daje rozdzielczość poziomą odczytu położenia piksela wynoszącą 512 punktów na linię. Pozycje plamek w elewacji wyznaczane są przez programowe zliczanie linii w obrazach nieparzystych przez mikroprocesor sterujący w module pokładowym, w zakresie od 20 do 290. Sygnały pośrednie: parzystości, intensywności plamki oraz stan licznika analizowane są programowo przez ten mikroprocesor i na ich podstawie wyznaczane są współrzędne trzech transmiterów podczerwieni (plamek) w układzie przetwornika kamery. Wyznaczone współrzędne przesyłane są do komputera badawczego i archiwizowane w pliku tekstowym wraz z odpowiadającymi im wartościami zadanego azymutu i elewacji. Pojedynczy rekord danych ma postać: X1, Y1, X2, Y2, X3, Y3, Az zad, El zad. W procesie pozyskiwania danych kąty zadawane są z rastrem: dla azymutu - 2 deg, dla elewacji - 1 deg. Kąt azymutu zmieniany jest w zakresie od -80 do +80, zaś kąt elewacji w zakresie od -25 do +12. Zmianę kąta, odczyt i zapis danych pomiarowych dokonywany jest co ok. 330 ms. Po zarchiwizowaniu wszystkich rekordów danych dokonujemy przesunięcia równoległego obrotnicy PanTilt układu pomiarowego w zakresie do 5 cm lewo-prawo i przód-tył z rastrem co 1 cm i dla każdej przesuniętej pozycji wykonujemy serię pomiarów. Następnym krokiem jest przygotowanie pliku danych wejściowych do uczenia sieci neuronowej. W tym celu wszystkie rekordy danych zapisuje się w jednym pliku tekstowym, po czym poddaje analizie w programie Excel w celu wyeliminowania ewentualnych błędów 81
IMPLEMENTACJA SIECI NEURONOWYCH W UKŁADZIE POZYCJONOWANIA w rekordach danych (brak współrzędnych jednego z transmiterów podczerwieni). Należy pamiętać o tym, że dane wejściowe powinny być znormalizowane do 1, tzn. zawierać się w przedziale (0;1). Jest to konieczne, jeżeli chce się stosować standardowe metody badania sieci i specjalizowane aplikacje sieciowe. W tym celu należy znaleźć największą i najmniejszą wartość danych, obliczyć ich różnicę (zakres), a następnie każdą bieżącą wartość podzielić przez obliczoną różnicę. Normalizację można przeprowadzić oddzielnie dla każdej danej wejściowej i wyjściowej, tzn. szukać oddzielnie maksymalnej i minimalnej wartości spośród wszystkich zgromadzonych wartości dla każdej danej. Istotne jest późniejsze dokonanie denormalizacji z odpowiednimi współczynnikami, odwrotnymi niż przy normalizacji. 4.2 Dobór struktury sieci W celu doboru optymalnej struktury sztucznej sieci neuronowej przyjęto następujące założenia: rozpatrywane będą sieci jednokierunkowe z jedną i dwiema warstwami ukrytymi, sieć będzie posiadała 6 wejść i 2 wyjścia, ilość neuronów w warstwach ukrytych zostanie dobrana w trakcie badań. W trakcie badań analizowano sieci z jedną oraz dwiema ukrytymi warstwami neuronów o strukturze, m.in. 6-4-2, 6-8-2, 6-12-2, 6-6-4-2, 6-8-4-2, 6-18-8-2 i na podstawie analizy dokładności i szybkości uczenia się sieci przyjęto sieć o strukturze 6-9-5-2. 4.3 Uczenie sieci Jedną z głównych zalet sieci neuronowej w stosunku do innych metod przetwarzania danych jest umiejętność generalizacji wiedzy, co umożliwia poprawną reakcję na sygnały nieprzewidziane przez projektanta. W odróżnieniu od metod matematycznych lub algorytmicznych sieć może być wykorzystywana dla wielu różnych modeli, bez znaczących modyfikacji. Powyższe cechy mogą zostać uzyskane tylko przez zastosowanie odpowiedniego algorytmu uczenia. Istnieje wiele algorytmów uczenia sieci. W tym przypadku zastosowano metodę wstecznej propagacji błędów z modyfikacjami. Przed rozpoczęciem procesu uczenia należy ustalić strukturę sieci oraz parametry uczenia, tj. szybkość uczenia, moment uczenia, tryb uczenia, maksymalną liczbę epok uczenia oraz założoną dokładność. Algorytm wstecznej propagacji błędów jest podstawowym algorytmem uczenia nadzorowanego wielowarstwowych jednokierunkowych sieci neuronowych. Polega on na takiej zmianie wag sygnałów wejściowych dla każdego neuronu i w każdej warstwie, aby wartość błędu dla kolejnych par uczących zawartych w zbiorze uczącym była jak najmniejsza. Algorytm wykorzystuje w tym celu metodę gradientową, czyli najszybszego spadku. Ogólny schemat przebiegu uczenia nadzorowanego sieci neuronowej przebiega wg algorytmu przedstawionego na rys. 5. Inicjalizacja sieci i algorytmu Obliczanie wartości wyjściowej sieci na podstawie danych Obliczanie błędów sieci Nie Korekcja wag Czy sieć nauczona? Tak Koniec Rys. 5. Schemat algorytmu uczenia sieci Przebieg algorytmu dla wszystkich elementów ciągu uczącego nazywa się epoką. Algorytm wstecznej propagacji błędów ma postać [3]:! " #$%&' 3(4) * +,- )( )!. )! #$%& 1,,'21 (!! 456! (5). 7!81. 7! 82:(! ; 7! (6) gdzie: -! #! 2<! błąd sygnału wyjściowego i-tego neuronu, i=1,...,nk, k-tej warstwy, k=1,...,l; - # sygnał wzorcowy i-tego neuronu, i=1,...,nk, k-tej warstwy, k=1,...,l; - < sygnał wyjściowy i-tego neuronu, i=1,...,nk, k-tej warstwy, k=1,...,l; - ( błąd i-tego neuronu, i=1,...,nk, k-tej warstwy, k=1,...,l; * - 6! +=- 7>. 7! ; 7! sygnał wyjściowy części liniowej i-tego neuronu, i=1,...,nk, k-tej warstwy, k=1,...,l; -. 7! waga i-tego neuronu, i=1,...,nk, k-tej warstwy, k=1,...,l, łącząca go z j-tym wejściem ; 7, j=1,...,nk-1; - L liczba warstw sieci; - Nk liczba neuronów w k-tej warstwie, k=1,...,l; - f funkcja aktywacji; - : współczynnik uczenia. Wartości początkowe wszystkich wag sieci są wybierane losowo (zazwyczaj z przedziału [-0,5, 0,5]), nato- 82
Krzysztof Sibilski, Wiesław Milewski, Marek Sosnowski miast współczynnik uczenia µ przyjmuje zazwyczaj wartości z przedziału (0, 1. Algorytm wstecznej propagacji błędów posiada jednak wady. Do najistotniejszych zalicza się dużą liczbę iteracji potrzebną do osiągnięcia oczekiwanego wyniku oraz wrażliwość na lokalne minima funkcji błędu. Działanie tego algorytmu zależy również od odpowiedniego dobrania współczynnika szybkości uczenia. Zbyt mały powoduje długą pracę algorytmu, a zbyt duży może doprowadzić do oscylacji. Istnieje jednak metoda zwiększania tempa uczenia bez pogorszenia jakości uczenia oraz przy mniejszej wrażliwości na minima lokalne. Jest to momentowa metoda wstecznej propagacji błędu. Modyfikacja podstawowego algorytmu polega tu na dodaniu członu, który pełni rolę współczynnika bezwładności przy modyfikacji wagi. Powoduje to większą płynność zmian oraz "przeskakiwanie" nad minimami lokalnymi. Postać po modyfikacji wygląda następująco:. 7!81. 7! 82:(! 456! ; 7! 8?@. 7! 2. 7!21 A (7) gdzie: - α współczynnik momentu. Współczynnik α przyjmuje wartości z przedziału (0, 1. Przy wartościach α 1 udział poprzednich przyrostów wag jest duży (duża bezwładność algorytmu), a dla małych wartości α udział ten jest nieznaczny. Zazwyczaj stosuje się α = 0,9. Po zakończeniu procesu uczenia, w wyniku osiągnięcia zadanego parametru błędu średniokwadratowego na poziomie 1% lub maksymalnej liczny epok uczenia (gdy tak niskiego błędu nie można osiągnąć) należy zapisać współczynniki wagowe. Czynność ta kończy proces uczenia, a jakość osiągniętych wyników można obejrzeć, przeglądając zawartość odpowiedniego pliku programu. Wyliczonych wartości wag można dalej używać w aplikacji po odczytaniu ich z pliku weights.csv. Proces uczenia sieci można podglądać w jego trakcie, wywołując graficzne zobrazowanie próbek w funkcji błędu wskazań sieci neuronowej. 4.4 Implementacja współczynników wagowych Implementacja sieci neuronowej w strukturę oprogramowania układu wykrywania może odbywać się na poziomie oprogramowania mikroprocesora modułu nahełmowego lub też na poziomie aplikacji użytkowej zainstalowanej w komputerze pomiarowym (docelowo w komputerze pokładowym na śmigłowcu). W pierwszym przypadku wyznaczone w trakcie procesu uczenia sieci współczynniki wagowe odpowiadające przyjętej strukturze sieci umieszczone są w pamięci Flash mikroprocesora modułu nahełmowego i użyte w algorytmie wyliczającym wyjściowe kąty azymutu i elewacji na podstawie aktualnego rekordu danych wejściowych. Wyliczone kąty azymutu i elewacji osi wizowania hełmu będą przesyłane synchronicznie do komputera pomiarowego. W drugim przypadku współczynniki wagowe umieszczone są w aplikacji użytkowej komputera pomiarowego (pokładowego śmigłowca) i użyte w algorytmie wyliczającym wyjściowe kąty azymutu i elewacji osi wizowania hełmu na podstawie aktualnego rekordu danych wejściowych, przesyłanych z modułu nahełmowego. Wyliczone kąty używane są przez inne aplikacje użytkowe zintegrowanego systemu awionicznego śmigłowca. Rozwiązanie to jest bardziej elastyczne, gdyż pozwala na łatwe modyfikacje algorytmów na poziomie aplikacji użytkownika bez wnikania w strukturę sprzętową modułów mikroprocesorowych. W obu przypadkach konieczne jest synchroniczne przesłanie danych do komputera pomiarowego. Do zaimplementowania wyliczonych współczynników wagowych sieci w algorytmach wyliczających dane wyjściowe: kąt azymutu i kąt elewacji konieczne jest opracowanie funkcji propagacji, która na podstawie znormalizowanego wektora danych wejściowych i wyliczonej w procesie uruchamiania macierzy współczynników wagowych wylicza wyżej wymienione dane wyjściowe na podstawie prostego algorytmu składającego się z kilkunastu operacji mnożenia i dodawania. Normalizacji surowych danych wejściowych, wywołania funkcji propagacji i denormalizacji wyników, czyli wyrażenia ich w postaci wielkości kątowych, dokonuje się za pomocą specjalizowanych procedur. Podstawowe zadania, jakie ma spełniać docelowa aplikacja zainstalowana na komputerze graficznym w zakresie obsługi sieci neuronowej w układzie wykrywania położenia przestrzennego hełmu, to: odbieranie, z użyciem łącza szeregowego, komunikatów zawierających rekordy danych wejściowych przesyłanych z modułu pokładowego i ich rozkodowywanie, filtracja docierających danych, zapewniająca odrzucenie danych odbiegających od wartości z przewidywanego zakresu, na skutek różnych czynników, takich jak zakłócenia synchronizacji przy transmisji miedzy procesorami, itp., wyliczanie kątów azymutu i elewacji hełmu na podstawie rekordu danych wejściowych z wykorzystaniem opracowanego algorytmu sieci neuronowej i współczynników wagowych wyznaczonych w procesie nauczania sieci, zaimplementowanych w odpowiednich strukturach tej aplikacji, wysyłanie wyliczonych wartości kątów azymutu i elewacji hełmu do wykorzystania w wyższych warstwach użytkowych zintegrowanego systemu awionicznego śmigłowca. Aplikacja działa w tle, bez konieczności używania interfejsu graficznego użytkownika. 83
IMPLEMENTACJA SIECI NEURONOWYCH W UKŁADZIE POZYCJONOWANIA 4.5 Oprogramowanie pomiarowo-badawcze W celu przeprowadzenia badań ilościowych systemu i doboru optymalnej struktury sieci neuronowej opracowano specjalizowane oprogramowanie pomiarowobadawcze w postaci aplikacji Orion.exe. Podstawowe zadania, jakie spełnia aplikacja zainstalowana na komputerze pomiarowym w zakresie obsługi sieci neuronowej obsługującej układ wykrywania położenia przestrzennego hełmu, są następujące: 1) związane z odbiorem i dekodowaniem komunikatów otrzymywanych po łączu szeregowym z modułu pokładowego, zawierających komplet danych pomiarowych z czujników układu wykrywania (zadania te obejmują także filtrację otrzymywanych danych wejściowych otrzymywanych w kolejnych komunikatach), 2) związane z obsługą stanowiska pomiarowego do uczenia sieci neuronowej i jego automatyzacji, obejmujące między innymi ręczne i automatyczne sterowanie obrotnicą PanTilt z określonym zadawanym krokiem w azymucie i elewacji, 3) związane z nauczeniem sztucznej sieci neuronowej, 4) związane z wykorzystaniem nauczonej sieci do wyliczania kątów azymutu i elewacji hełmu na podstawie danych wejściowych, algorytmu implementującego sztuczną sieć neuronową, 5) związane z uruchamianiem nowego systemu pomiarowo-badawczego, ułatwiające ten proces i zapewniające między innymi: - łatwe sterowanie wywoływaniem funkcji pomiarowych, zarządzanie procedurami i zadawanie parametrów, - podgląd gromadzonych przez system wyników, - wizualizację w postaci cyfrowej i graficznej, - monitorowanie prawidłowego działania układu pomiarowo-badawczego, - obsługę procedur testowych, pomiarowych i archiwizujących zapisujących pozyskiwane dane do plików w celu analiz w procesie uruchamiania. - łatwy transfer wyników do innych aplikacji używanych do uczenia sztucznej sieci neuronowej. Widok interfejsu graficznego programu przedstawiono na rys.6. Rys. 6. Okno interfejsu programu Aplikacja jest prosta w obsłudze i posiada jedno okno, w którym w zależności o aktualnego trybu pracy wyświetlany jest komplet danych badawczopomiarowych i elementy interfejsu sterowania. Ułatwia to wykonywanie bieżącej dokumentacji pomiarowej poprzez bezpośrednie zrzuty ekranowe do schowka systemowego. Po upewnieniu się, że badany układ pomiarowy jest załączony i podłączony do komputera za pomocą interfejsu szeregowego, a obrotnica PanTilt podłączona jest do sieci lokalnej oraz po załączeniu aplikacji użytkowej, w oknie wizualizacji plamek pojawiają się 3 kolorowe plamki ustawione w kolejności: czerwona, zielona, niebieska (liczy się je od góry), a w polach danych pomiarowych pojawiają się odpowiednie odczyty cyfrowe. Następnie nawiązywane jest połączenie z serwerem obrotnicy PanTilt poprzez naciśnięcie przycisku sterującego na panelu sterowania obrotnicą. Jest to sygnalizowane poprzez czerwone podświetlenie panelu i komunikat o adresie IP podłączonego serwera. Po naciśnięciu klawisza synchronizacji obrotnica powinna ustawić się w położeniu zerowym. Pozycję obrotnicy można ręcznie sprowadzić do położenia początkowego poprzez naciskanie klawiszy strzałek w panelach zadawania kątów. Wyboru automatycznego zadawania kątów azymutu i elewacji obrotnicy dokonuje się poprzez zaznaczenie opcji pracy azymut automatyczny (Auto_Azym) w panelu zadawania kąta azymutu. Obrotnica rozpocznie pracę z określonym rastrem kątowym, a w polu Memo1 będą wyświetlane kolejne odczytywane wartości pomiarowe. Po zakończeniu pomiaru wyniki mogą być skopiowane z pola Memo1 do schowka, a następnie przekopiowane do dowolnego edytora tekstowego w celu utworzenia pliku wynikowego z danymi. Plik danych wejściowych zawiera rekordy pomiarowe składające się z trzech par współrzędnych transmiterów podczerwieni i odpowiadających im wartości zadanych kątów, poprzez skopiowanie zawartości pola Memo1 do pliku z danymi. Aplikacja na komputer pomiarowy napisana jest dla rozszerzonej wersji systemu wykrywania, obejmującej wykrywanie hybrydowe, tzn. uwzględniające dodatkowe 84
Krzysztof Sibilski, Wiesław Milewski, Marek Sosnowski dane z czujników akcelerometrycznych zamontowanych dodatkowo w module nahełmowym. Plik ten może być następnie wykorzystywany w procesie uczenia sieci o wybranej wcześniej strukturze, za pomocą zewnętrznego specjalizowanego oprogramowania NetMaker. 4.6 System oceny ilościowej Oceny ilościowej wyliczonych kątów azymutu i elewacji dokonano programowo, określając błąd tych kątów wyliczonych przez sieć. Przykładowy histogram liczby próbek w funkcji błędu dla azymutu (czerwona linia) i elewacji (niebieska linia), po rozpoczęciu procesu uczenia przedstawia rys. 7, a po zakończeniu procesu uczenia przedstawia rys. 8. Na histogramie, w trakcie uczenia sieci, można zaobserwować zagęszczanie próbek w okolicach zera. Błąd przedstawiony jest jako różnica pomiędzy kątem zadanym a kątem obliczonym, który wcześniej został znormalizowany, czyli wartości z przedziału od minimalnego do maksymalnego kąta, wyrażonego w stopniach, zostały sprowadzone do przedziału (0,1). Wartość błędu 0,2 na histogramach poniżej odpowiada w przybliżeniu 1 kąta azymutu i elewacji. Innym graficznym zobrazowaniem może być niejako przestrzenny wykres błędów azymutu w funkcji błędów elewacji, odpowiednio po rozpoczęciu procesu uczenia rys. 9, a po zakończeniu rys. 10. Kolory oznaczają wartości znormalizowanych kątów wejściowych. Wykresy te są połączeniem histogramu azymutu oś rzędnych i elewacji oś odciętych. Błąd wyjściowy Azymutu Błąd wyjściowy Elewacji Rys. 9. Wykres po rozpoczęciu procesu uczenia Ilość próbek Błąd wyjściowy Azymutu Azymut Elewacja Rys. 7. Histogram próbek po rozpoczęciu nauki sieci Błąd wyjściowy Ilość próbek Elewacja Błąd wyjściowy Elewacji Rys. 10. Wykres po zakończeniu procesu uczenia Azymut Rys. 8. Histogram próbek po zakończeniu nauki sieci Błąd wyjściowy 4.7 System oceny jakościowej System oceny jakościowej zbudowano poprzez dodanie do stanowiska pomiarowego układu wykonawczego (rys. 11). Wyliczone przez sztuczną sieć neuronową kąty azymutu i elewacji są przesyłane do układu wykonawczego i przy włączonych wskaźnikach laserowych w układzie pomiarowym i wykonawczym można obserwować ruch 85
IMPLEMENTACJA SIECI NEURONOWYCH W UKŁADZIE POZYCJONOWANIA plamki lasera odpracowujący te same kąty w obu układach. Ekran Laser Laser Kamera Układ pomiarowy Switch CV Układ wykonawczy Ethernet Rys. 11. Stanowisko do oceny jakościowej 5. Podsumowanie Moduł pokładowy RS232 Komputer pomiarowy Na podstawie wyników badań można stwierdzić, że implementacja sztucznych sieci neuronowych w nahełmowym systemie wskazywania celu pozwala na określenie kątów azymutu i elewacji z dokładnością nie mniejszą niż 1, przy czym dla 80% błędów dokładność wzrasta dwukrotnie. Otrzymana dokładność zapewnia szybkie ustawienie w rejon celu osi optycznej głowicy obserwacyjno-celowniczej sprzężonej z ruchomym karabinem. Dalsze precyzyjne celowanie może odbywać się z użyciem głowicy obserwacyjno-celowniczej posiadającej automatyczny system śledzenia celu. Jednym z istotniejszych zalet zastosowania sztucznych sieci neuronowych w nahełmowym systemie wskazywania celu jest wypracowywanie sygnałów sterujących ruchomym stanowiskiem strzeleckim w czasie rzeczywistym (ok. 20 ms), co w dynamice realizacji zadań w powietrzu ma kluczowe znaczenie dla dokładności celowania. Nahełmowy system wskazywania celu, w obecnej postaci, został zaimplementowany na testowym (nie latającym) egzemplarzu śmigłowca W-3PL i realizuje poprawnie zadania wskazywania celu. Prezentowany system wskazywania celu, po odpowiednim dostosowaniu, może być stosowany na dowolnej platformie (śmigłowcu) z zaimplementowanym ruchomym stanowiskiem strzeleckim. Literatura 1. Rutkowski L.: Metody i techniki sztucznej inteligencji. Warszawa: PWN, 2012. 2. Flasiński M.: Wstęp do sztucznej inteligencji. Warszawa: PWN, 2011. 3. Duch W., Korbicz J., Rutkowski L., Tadeusiewicz R.: Biocybernetyka i inżynieria biomedyczna 2000. T. 6: Sieci neuronowe. Warszawa: PAN, 2000. 4. Velger M.: Helmet-Mounted Displeys and Sights. Boston&London: Artech House, 1998. 5. Praca zbiorowa pod kierownictwem Rash C.E.: Helmet-Mounted Displeys: Design Issues for Rotary-Wing Aircraft. Washington USA: SPIE Press, 1999. 86