Content uploaded by Maksym Figat
Author content
All content in this area was uploaded by Maksym Figat on Dec 16, 2019
Content may be subject to copyright.
Zezwala się na korzystanie z artykułu na warunkach
licencji Creative Commons Uznanie autorstwa 3.0
1. Wprowadzenie
Termin cyberbezpieczeństwo odnosi się do zbioru zagadnień
związanych z zapewnieniem bezpieczeństwa użytkowania sieci
komputerowych, a w szczególności Internetu. Dotyczy on
zabezpieczenia infrastruktury sieciowej używanej przez agendy
państwa, prywatne korporacje oraz indywidualnych użytkow-
ników przed cyberatakami. Działania związane z cyberbezpie-
czeństwem przede wszystkim koncentrują się na zapobieganiu
cyberatakom, ale jeżeli one już nastąpią, to na maksymalnym
ograniczeniu ich skutków. Podstawowym celem jest zapobiega-
nie wyciekom danych oraz udaremnianie ataków polegających
na uniemożliwianiu realizacji usług dostarczanych przez sieć.
Stopień zależności współczesnych państw od systemów telein-
formatycznych osiągnął taki poziom, że przypadkowe lub zamie-
rzone uszkodzenie tej infrastruktury może pociągnąć za sobą
Autor korespondujący:
Cezary Zieliński, c.zielinski@ia.pw.edu.pl
Artykuł recenzowany
nadesłany 15.07.2019 r., przyjęty do druku 16.09.2019 r.
Agentowa struktura wielomodalnego interfejsu
do Narodowej Platformy Cyberbezpieczeństwa,
część 1.
Włodzimierz Kasprzak, Wojciech Szynkiewicz, Maciej Stefańczyk, Wojciech Dudek, Maksym Figat,
Maciej Węgierek, Dawid Seredyński, Cezary Zieliński
Politechnika Warszawska, Wydział Elektroniki i Technik Informacyjnych, Instytut Automatyki i Informatyki Stosowanej, Nowowiejska 15/19,
00-665 Warszawa
Streszczenie: Ten dwuczęściowy artykuł przedstawia interfejs do Narodowej Platformy
Cyberbezpieczeństwa (NPC). Wykorzystuje on gesty i komendy wydawane głosem do sterowania
praca platformy. Ta część artykułu przedstawia strukturę interfejsu oraz sposób jego działania,
ponadto prezentuje zagadnienia związane z jego implementacją. Do specyfikacji interfejsu
wykorzystano podejście oparte na agentach upostaciowionych, wykazując że podejście to może
być stosowane do tworzenia nie tylko systemów robotycznych, do czego było wykorzystywane
wielokrotnie uprzednio. Aby dostosować to podejście do agentów, które działają na pograniczu
środowiska fizycznego i cyberprzestrzeni, należało ekran monitora potraktować jako część
środowiska, natomiast okienka i kursory potraktować jako elementy agentów. W konsekwencji
uzyskano bardzo przejrzystą strukturę projektowanego systemu. Część druga tego artykułu
przedstawia algorytmy wykorzystane do rozpoznawania mowy i mówców oraz gestów, a także
rezultaty testów tych algorytmów.
Słowa kluczowe: Narodowa Platforma Cyberbezpieczeństwa, rozpoznawanie obrazu, rozpoznawanie gestów, rozpoznawanie mowy, rozpoznawanie mówcy
katastrofalne skutki. Dlatego potrzebne są narzędzia służące
wykrywaniu, zapobieganiu oraz minimalizacji skutków działań
naruszających bezpieczeństwo infrastruktury teleinformatycznej
istotnej dla funkcjonowania państwa oraz jego obywateli. W tym
celu tworzona jest Narodowa Platforma Cyberbezpieczeństwa
(NPC), która umożliwi bieżące monitorowanie funkcjonowania
sieci oraz zapewni koordynację w skali kraju działań służących
wykrywaniu i zapobieganiu niepożądanym sytuacjom w cyber-
przestrzeni. Mowa tutaj o sieciach wykorzystujących protokoły
TCP/IP, mobilnych sieciach bezprzewodowych, sieciach two-
rzących Internet Rzeczy (IoT) oraz sieciach automatyki prze-
mysłowej.
Narodowe centra cyberbezpieczeństwa powstały w większości
państw wysokorozwiniętych, np. w Wielkiej Brytanii, USA czy
Holandii [1–3]. Ich zadaniem jest monitorowanie, gromadzenie
i analiza danych o podatnościach, zagrożeniach i naruszeniach
cyberbezpieczeństwa oraz zapobieganie cyberatakom i reago-
wanie na incydenty na poziomie państwa. Przykładem systemu
monitorowania bezpieczeństwa sieci jest prototypowy system
SEQUESTOR zainstalowany w Pacic Northwest National
Laboratory (USA) [5]. System korzysta z wielu źródeł danych,
w tym programów antywirusowych, narzędzi sieciowych, analizy
zdarzeń systemowych i ruchu sieciowego. Integracja danych z tak
różnorodnych źródeł stanowi prawdziwe wyzwanie projektowe.
Szczególnie istotna jest czytelna prezentacja tych danych, a to
się łączy bezpośrednio ze sterowaniem przez operatorów sys-
41
Pomiary Automatyka Robotyka, ISSN 1427-9126, R. 23, Nr 3/2019, 41–54, DOI: 10.14313/PAR_233/41
temu, jak dane mają być przedstawione. Kompleksowa analiza
pracy sieci wymaga wykrywania korelacji zachodzących zdarzeń,
analizy sytuacyjnej oraz dynamicznej i statycznej analizy ryzyka.
Aby narzędzie do takiej analizy było użyteczne, potrzebne są
odpowiednie metody i techniki do wizualizacji wielowymiaro-
wych danych [29, 30].
W systemie SEQUESTOR wizualizacja danych została zor-
ganizowana za pomocą SEQViz [5]. Dane są przedstawiane gra-
cznie w postaci dwóch skoordynowanych widoków: ogólnego
widoku sieci (w postaci grafu) oraz widoku modelu behawio-
ralnego. Modele są wzorcami anomalii, czyli zachowań wska-
zujących na potencjalne zagrożenie lub atak. Aby wspomóc
analityków sieci w wykrywaniu wzorców w danych dotyczą-
cych działania sieci i wykrywaniu anomalii opracowano panel
BubbleNet do ich wizualizacji [21]. Panel ten przedstawia dane
w różnych widokach: widoku lokalizacji w postaci mapy z prze-
strzenną informacją zakodowaną z użyciem tzw. pseudo-karto-
gramów Dorlinga [7], widoku czasowego w postaci wykresów
słupkowych oraz widoku atrybutów przedstawiających gracznie
różne atrybuty danych.
W pracy [12] przedstawiono wizualny system interaktywny do
wykrywania anomalii w danych czasoprzestrzennych zebranych
z różnych źródeł danych strumieniowych. Interaktywny interfejs
graczny użytkownika tego systemu składa się z ośmiu głównych
widoków, w tym makro- i mikromapy, widoku czasowego wzorca
oraz widoku inspekcji cech. Użytkownik za pomocą myszki może
wybrać obszar na makromapie i wyświetlić na mikromapie listę
anomalii wykrytych dla tego obszaru. Może również wykonać
operacje powiększania i przesuwania oraz zmiany trybu wyświe-
tlania na obu mapach.
System VisIDAC [32] umożliwia w czasie rzeczywistym
wizualizacje 3D danych o zdarzeniach dotyczących cyberbez-
pieczeństwa, zebranych przez systemy wykrywania włamań zain-
stalowane w różnych sieciach. Dane o zdarzeniach są wyświetlane
w postaci gracznej na trzech panelach: dla wejściowego, wyj-
ściowego i docelowego ruchu sieciowego. W celu łatwego rozróż-
nienia rodzajów zdarzeń są stosowane różne kształty i kolory.
Opracowanie systemu do monitorowania sieci pod kątem
jej cyberbezpieczeństwa pociąga za sobą konieczność stworze
-
nia wielomodalnego interfejsu operatora umożliwiającego mu
inteligentne sterowanie obrazowaniem zjawisk zachodzących
w cyberprzestrzeni. Niniejszy artykuł poświęcony jest opisowi
takiego interfejsu, który umożliwia sterowanie zobrazowaniem
za pomocą głosu i gestów operatora. Gesty tworzone są przez
operatora – ruchy sylwetki, rąk i głowy. Oprogramowanie do
rozpoznawania mowy i werykacji mówcy zapewnia bezpieczny
sposób zadawania komend głosowych przez uprzywilejowanego
operatora systemu obrazowania.
Prace badawcze poświęcone wielomodalnym interfejsom czło-
wiek-komputer są prowadzone od ponad 40 lat [15, 16, 23, 33].
Celem tych badań jest opracowanie metod i technik interakcji
ludzi z komputerem w pełni wykorzystujących sposoby natu-
ralnej komunikacji i interakcji człowieka z otoczeniem. Inter-
fejsy wielomodalne charakteryzują się dwiema podstawowymi
cechami: łączeniem wielu typów danych oraz przetwarzaniem
tych danych w czasie rzeczywistym przy określonych ogranicze-
niach czasowych [15].
Sposób prezentacji operatorowi oraz analitykom zebranych
danych o działaniu sieci w istotny sposób wpływa na efektyw-
ność ich pracy. Wielomodalny interfejs umożliwia im dostosowa-
nie sposobu prezentacji do ich wymagań. Sterowanie prezentacją
danych za pomocą komend głosowych i gestów umożliwia
obsługę systemu przez osoby, które nie zostały specjalnie do
tego przeszkolone, a co więcej, ułatwia prezentację stanu sieci
osobom podejmującym decyzje, które nie muszą być zaznajo-
mione ze sposobem działania interfejsu. Do codziennej obsługi
systemu przez przeszkolony personel używane będą standardowe
urządzenia wejściowe, takie jak klawiatury i myszki. Ponadto
interfejs umożliwia rozpoznanie mówcy i automatyczną jego
autoryzację w systemie.
Ten artykuł poświęcony jest sposobowi tworzenia interfejsu do
Narodowej Platformy Cyberbezpieczeństwa (NPC), ale sposób
ten może być wykorzystany także do budowy innych interfejsów.
Ogólne metody tworzenia oprogramowania są określone przez
inżynierię oprogramowania [28]. Niewątpliwie należy się do nich
stosować, ale konkretne systemy mają swoją specykę, która
również wpływa na architekturę powstającego oprogramowania.
Interfejs stanowi styk między otoczeniem zycznym, w którym
znajduje się operator, a platforma NPC. Podobne cechy mają
systemy robotyczne, które także operują w środowisku zycz-
nym, z jednej strony wpływając na nie, a z drugiej pozyskując
z niego informacje. Podobnie interfejs oddziałuje na operatora,
z jednej strony przekazując mu niezbędne dane, a z drugiej
pozyskuje od niego informacje, jak konkretnie ma platforma
zaprezentować zebrane dane. Dlatego postanowiono skorzystać
z bogatego doświadczenia w konstrukcji systemów sterowania
robotami i zastosować podejście wykorzystujące agenty upo-
staciowione [37–40] zarówno do specykacji jak i implementa-
cji interfejsu. Prezentacja tej metody zastosowanej do budowy
interfejsu jest głównym celem tego artykułu.
2 Wymagania i ogólna koncepcja
rozwiązania
W procesie projektowania systemu pierwszym krokiem jest jego
wyodrębnienie ze środowiska. Tutaj system stanowią platforma
NPC wraz z przedstawianym tu interfejsem do niej. Założono,
że kontakt operatora z systemem będzie najbardziej naturalny,
jeżeli będzie się można z nim porozumiewać tak, jak ludzie
porozumiewają się ze sobą, a więc za pomocą głosu i gestów.
Dlatego interfejs NPC wyposażono w kamery i mikrofony.
Ponadto operator w procesie powoływania systemu do życia
musi go skongurować, a następnie nim administrować. W tym
celu używa standardowych urządzeń wejściowych komputera,
takich jak myszka, klawiatura czy ekran dotykowy (touch-
pad). Informacja zwrotna wytwarzana przez system przed-
stawiana jest na ekranie monitora, a konkretnie w okienkach
pojawiających się na nim, a ponadto interakcja następuje za
pomocą kursorów przemieszczanych po ekranie. Przyjęto, że
operator działa w środowisku zycznym rozszerzonym o ekran
monitora. System porozumiewa się z operatorem za pomocą
wymienionych urządzeń i okienek pojawiających się na ekra-
nie. Z uwagi na fakt, że dotychczas operator kontaktował się
z platformą NPC za pomocą urządzeń wejściowych, takich
jak: ekrany dotykowe, myszki lub klawiatury, przyjęto iż inter
-
fejs będzie przekształcał komendy głosowe i te wydawane za
pomocą gestów do formatu komend wprowadzanych z urzą-
dzeń wejściowych.
Gesty związane są z ruchem rąk, a więc obrazy uzyskiwane
z kamer muszą być zbierane z dostatecznie dużą częstotliwością.
Przyjęto, że przetwarzanie zarówno obrazów jak i mowy powinno
być na tyle szybkie, by dla operatora czas między wydaniem
komendy a inicjacją jej wykonywania był niezauważalny. W ana-
lizie mowy powstaje opóźnienie między zakończeniem wypowia-
dania komendy a wynikiem analizy. Przyjęto, że dopuszczalne
opóźnienie wynosi 1 s, gdyż po zakończeniu wypowiedzi trzeba
odczekać, aby zdecydować, czy pojawi się pauza czy wypowiedź
będzie kontynuowana. Na to potrzeba około 200 ms, a do tego
dochodzi jeszcze czas analizy polecenia. W przypadku przetwa-
rzania obrazu użytkownik współpracuje dużo ściślej z systemem
– sterując położeniem kursora oczekuje dużo szybszych reakcji
i ciągłości jego przemieszczania. Z tego względu przyjęto, że
42
Agentowa struktura wielomodalnego interfejsu do Narodowej Platformy Cyberbezpieczeństwa, część 1.
POMIARY•AUTOMATYKA•ROBOTYKA NR 3/2019
analiza obrazu powinna odbywać się z szybkością co najmniej
20 klatek na sekundę, natomiast opóźnienie reakcji nie powinno
być większe niż 100 ms.
Struktura interfejsu operatora musi być dostosowana do wyżej
sformułowanych wymagań. Ponieważ interfejs jest kongurowany
za pomocą standardowych urządzeń wejściowych komputera lub
pobudzany do działania przez operatora wydającego komendy
głosowe lub gestykulacje, a ponadto oddziałuje na operatora
wyświetlając dane, można jego strukturę określić za pomocą
agentów upostaciowionych [18, 36], które realizują swoje zadanie
zbierając dane z otoczenia za pomocą receptorów, by przekształ
-
cić je na oddziaływania na to otoczenie za pomocą efektorów.
Należy jedynie adekwatnie zdeniować receptory i efektory inter-
fejsu. Dotychczas agenty upostaciowione były wykorzystywane
do tworzenia systemów sterowania systemami robotycznymi [37–
40]. Niniejszy artykuł pokazuje ich użyteczność w projektowaniu
systemów, które nie są związane z robotyką.
3. Agenty upostaciowione
W klasycznym podejściu agent deniowany jest jako twór dzia-
łający autonomicznie, postrzegający swoje środowisko, mający
charakter trwały, a ponadto mający zdolność do dostosowy-
wania się do zmian w swoim środowisku, a co więcej mogący
przejąć cel innego agenta [26]. Niemniej jednak tutaj przyjęto
denicję bardziej zwięzłą, a jednocześnie ogólniejszą. Przyjęto,
że agent jest tworem dążącym do realizacji zadania, postrze-
gającym swoje środowisko i wpływającym racjonalnie na nie.
Zadanie stanowi wewnętrzny imperatyw agenta do działania.
Jest ono realizowane w środowisku, zgodnie z aktualnie panu-
jącymi w nim warunkami, dzięki informacji uzyskiwanej z oto-
czenia. Tam gdzie środowisko ma charakter zyczny, agent
oddziałuje na nie przez swoje efektory i postrzega je za pomocą
swoich receptorów. Agent działający w zycznym otoczeniu
musi mieć zyczną powłokę (postać), by na nie oddziaływać.
W związku z tym zwykło się go zwać agentem upostacio-
wionym [18, 36]. Agentowa struktura systemu będzie okre-
ślona dalej. Tutaj wystarczy zauważyć, że działania operatora
działającego w środowisku rejestrowane są za pomocą takich
receptorów jak kamery czy mikrofony, natomiast system NPC
oddziałuje na operatora, traktowanego jako element otocze-
nia, poprzez okienka oraz kursory pojawiające się na obrazie
wyświetlanym na ekranie monitora, a więc zarówno okienka
jak i kursory mogą być traktowane jako efektory. Wewnętrz-
nym imperatywem systemu jest rozpoznawanie komend opera-
tora i przekształcanie ich w odpowiednie zobrazowanie danych.
Wykorzystanie agentów do określenia struktury systemu ma
tę zaletę, że można użyć formalnej notacji, opracowanej spe-
cjalnie do opisu zarówno struktur systemów, jak i sposobów ich
działania. Główne elementy tej notacji zostaną opisane poniżej.
Agent aj, gdzie j jest jego oznaczeniem, składa się z: efekto-
rów rzeczywistych E
j
oddziałujących na środowisko (w przy-
padku interfejsu NPC są to okienka oraz kursory pojawiające
się na ekranie monitora), rzeczywistych receptorów Rj (ściśle
mówiąc chodzi o eksteroceptory, gdyż proprioceptory sprzężone
są bezpośrednio z efektorami) zbierających dane o stanie otocze-
nia oraz systemu sterowania Cj realizującego zadanie przez
wpływanie na efektory na podstawie odczytów uzyskiwanych
z receptorów (w interfejsie NPC są nimi mikrofony i kamery).
System sterowania Cj składa się z trzech typów podsystemów:
wirtualnych efektorów e
j
, wirtualnych receptorów r
j
oraz
podsystemu sterowania c
j
. Agent może zawierać wiele recep-
torów rzeczywistych R
j,l
i wiele receptorów wirtualnych r
j,k
, gdzie
l i k są ich oznaczeniami. Podobnie w jego skład może wchodzić
wiele efektorów rzeczywistych E
j,m
i wiele efektorów wirtualnych
e
j,n
, gdzie m i n są ich oznaczeniami. Wirtualne efektory e
j,n
i receptory rj,k prezentują podsystemowi sterowania cj urządze-
nia wykonawcze i środowisko w postaci właściwej do określenia
sposobu realizacji zadania – w tym przypadku są to polecenia
dotyczące sposobu prezentacji wyników analizy, które ma wyko
-
nać platforma NPC. Wirtualne efektory dokonują transformacji
złożonych poleceń na elementarne rozkazy sterujące sprzętem
(w przypadku NPC są to okienka i kursory), natomiast wirtu-
alne receptory przekształcają odczyty z czujników (w przypadku
NPC są to zapisy dźwięku i obrazy) na abstrakcyjne pojęcia nie-
zbędne do zwięzłego wyrażenia realizowanego zadania. Agenty
mogą się również komunikować między sobą. Na rys. 1 przedsta-
wiono wewnętrzną strukturę agenta upostaciowionego.
Podsystemy agenta aj, a więc: podsystem sterowania cj, wir-
tualne efektory e
j,n
, wirtualne receptory r
j,k
, rzeczywiste efek-
tory Ej,m i rzeczywiste receptory Rj,l (rys. 1), kontaktują się ze
sobą przez bufory komunikacyjne. Bufory oznaczane są przed-
nim indeksem dolnym: x – wejściowe, y – wyjściowe, nato-
miast pamięć wewnętrzna podsystemu pozbawiona jest takiego
indeksu. Górny lewy indeks przy oznaczeniu bufora określa typ
podsystemu, z jakim ten bufor współpracuje.
Wszystkie podsystemy agenta działają według tego samego
wzorca [37–40]. Każdy zawiera automat skończony FSM (ang.
Finite State Machine), z którego stanami skojarzono zachowa-
nia. Każde zachowanie jest sparametryzowane funkcją przejścia
oraz warunkami końcowymi i błędu. Zachowanie jest powtarzane
do momentu spełnienia dowolnego z wymienionych warunków.
Zakończenie wykonania zachowania powoduje przejście auto-
matu skończonego do stanu następnego, który jest wybierany na
podstawie warunków początkowych etykietujących łuki skiero-
wane grafu automatu. Czynności związane z zachowaniem zależą
od postaci funkcji przejścia. Funkcja ta pobiera dane z buforów
wejściowych oraz pamięci wewnętrznej podsystemu i oblicza
nowe wartości dla buforów wyjściowych oraz pamięci wewnętrz-
nej. Zachowanie, oprócz obliczenia funkcji przejścia, zajmuje się
wczytaniem nowych wartości do buforów wejściowych oraz roze-
słaniem danych z buforów wyjściowych do innych podsystemów.
Rys. 1. Ogólna struktura agenta upostaciowionego
Fig. 1. General structure of an embodied agent
43
W. Kasprzak, W. Szynkiewicz, M. Stefańczyk, W. Dudek, M. Figat, M. Węgierek, D. Seredyński, C. Zieliński
4. Zadania interfejsu i kategorie jego
operatorów
Interfejs do systemu obrazowania informacji NPC odgrywa trzy
role, w zależności od kategorii operatora, z którym wchodzi
w interakcje. Umożliwia:
− użytkownikowi (np. kierownikowi NPC) dogodne sterowanie
wizualizacją informacji tworzonej przez platformę NPC,
− serwisantowi kongurację danej instalacji interfejsu,
−
administratorowi systemu zarządzanie zasobami (danymi
o gestach, osobach i komendach głosowych) oraz tworzenie
modeli: gestów, komend głosowych i użytkowników.
Role te związane są z trzema różnymi aspektami (trybami)
pracy interfejsu: sterowanie, kongurowanie, administrowanie
(tworzenie modeli i zarządzanie danymi).
Użytkownik za pomocą interfejsu zleca platformie wykonanie
swoich poleceń, a więc przedstawienie danych w odpowiedni
sposób. Serwisant zajmuje się kongurowaniem sprzętu i para-
metryzacją oprogramowania do analizy obrazów i mowy. Kon-
guracja sprzętowo-programowa każdego z modułów interfejsu
polega na doborze jego parametrów wewnętrznych dla danej
instalacji systemu. Administrator zarządza modelami gestów,
poleceń i użytkowników, ale przede wszystkim dostarcza dane
treningowe i uruchamia uczenie się systemu (tworzenie modeli).
Odnosi się to zarówno do zarządzania informacją dotyczącą
użytkowników systemu, jak i danych dotyczących poleceń, które
system może zrealizować. W tym pierwszym przypadku do sys-
temu można wprowadzać nowych użytkowników bądź usuwać
tych wcześniej wprowadzonych oraz edytować dane użytkownika.
W drugim przypadku można dodawać i usuwać polecenia oraz
je modykować (edytować).
Uczenie w systemie zastosowano do zdeniowania następu-
jących przyporządkowań: gestów poleceniom, instrukcji wyda-
wanych głosem komendom oraz rozpoznawania mówcy w celu
określenia jego uprawnień. Przewidziano, że użytkownicy róż-
nej rangi będą mieli różne uprawnienia do wydawania poleceń
systemowi. Proces uczenia odbywa się w dwóch fazach. Wpierw
zbierane są próbki o właściwej postaci, a następnie uczony jest
odpowiedni klasykator. Nadzór nad procesem uczenia spoczywa
na administratorze systemu.
Sterowanie polega na rozpoznawaniu poleceń użytkownika
wydawanych głosem lub gestem. Polecenia te są przekształ-
cane w bodźce zazwyczaj generowane przez myszkę (ruch kur-
sora, kliknięcie), klawiaturę (wciśniecie klawisza) bądź ekran
dotykowy (dotknięcia). Bodźce te oddziałują na okienka repre-
zentowane agentami lub na inne programy uruchomione na
komputerze. Są one przez te agenty lub programy interpreto-
wane, przykładowo jako: obrót obrazu, zbliżenie lub oddalenie
widoku wyświetlanego w oknie (zoom). Agenty reprezentujące
okna mogą być częściami modułów interfejsu lub platformy.
Interfejs przekształca gesty oraz komendy wydawane głosem na
polecenia dla platformy.
5. Modułowa struktura interfejsu
System NPC (rys. 2) składa się z platformy, która zbiera dane
o aktywności w sieci, analizuje je i prezentuje wyniki, oraz
z interfejsu, za pomocą którego użytkownik instruuje plat-
formę, w jaki sposób te wyniki powinny zostać zaprezentowane.
Aby móc sterować prezentacją wyników analizy, interfejs musi
być odpowiednio skongurowany i zarządzany. Tutaj skoncen-
trowano się jedynie na sposobie konstrukcji interfejsu. Zawiera
on trzy moduły: prezentacji, wizyjny i audio.
Każdy moduł skomponowany jest z agentów. Liczba modu-
łów wynika ze sposobu interakcji operatora z interfejsem oraz
sposobu interakcji interfejsu z platformą NPC. Użytkownik
może wydawać polecenia albo za pomocą głosu albo za pomocą
gestów, a więc istnieją dwa oddzielne źródła poleceń, a co za tym
idzie dwa odrębne moduły je przetwarzające: audio i wizyjny.
Niezależnie od źródła, wydawane polecenia muszą wpływać
bezkoniktowo na działanie platformy NPC. Dlatego pojedyn-
czy dysponent platformy, agregujący polecenia otrzymywane
z różnych źródeł, jest optymalny – jest nim moduł prezentacji.
W konsekwencji powstała trójmodułowa struktura interfejsu.
Moduł wizyjny służy do przetwarzania poleceń wydawanych
gestami, natomiast moduł audio zajmuje się komendami wyda-
wanymi głosem i identykacją mówcy. Moduł prezentacji jest
odpowiedzialny za agregację rozkazów pochodzących z modułów
przetwarzających polecenia użytkownika (tzn. modułów wizji
i audio). Efektem działania tego modułu jest selekcja polecenia
operatora, które ma być przekazane platformie do realizacji.
Opracowany interfejs umożliwia wydawanie poleceń za
pomocą głosu i gestów, które muszą być przetłumaczone na
postać akceptowaną przez platformę, czyli kody generowane
przez tradycyjne urządzenia wejściowe (klawiatura, mysz, ekran
dotykowy itp.). Odbywa się to dwuetapowo. Wpierw moduły
wizyjny i audio zamieniają odpowiednio gesty bądź komendy
głosowe na ich identykatory, a następnie moduł prezentacji
zamienia te identykatory na kody poleceń wydawanych przez
urządzenia wejściowe. Identykatory urządzeń w systemie ope-
racyjnym komputera, w którym uruchomiono interfejs, mogą się
zmieniać. Moduły audio i wizyjny odnoszą się do typów imitowa-
nych urządzeń wejściowych, natomiast moduł prezentacji chcąc
wykonać akcję musi się odwołać do identykatora konkretnego
urządzenia obsługiwanego przez system operacyjny. Identyka-
tor ten jest zmienny i przez to musi być dostarczony modułowi
prezentacji. Interfejs przekazuje prezentowanym oknom infor-
macje o elementarnych zdarzeniach, np. dotyku i przesunię-
ciu palca po ekranie. Informacja ma postać generowana przez
wspomniane urządzenia wejściowe. Sterownik okna interpretuje
te elementarne zdarzenia (a dokładniej sekwencje tych zdarzeń)
powodując np. zoom lub obrót. Założono, że zbiór możliwych
akcji użytkownika (gestów i komend głosowych) jest ustalony
(w przypadku gestów) względnie ograniczony (w przypadku
komend głosowych) przez twórcę systemu. Tablica asocjacji
akcji, utworzona przez projektantów systemu, może być co naj-
wyżej modykowana przez serwisanta systemu, aby ewentual-
nie lepiej dostosować konkretną instalację systemu do potrzeb
danego użytkownika/administratora.
6. Role interfejsu
6.1. Kategorie operatorów interfejsu
Interfejs jest używany przez różne kategorie operatorów zgod-
nie z przypisanymi im rolami. Użytkownicy wykorzystują go do
sterowania sposobem prezentacji danych generowanych przez
platformę. Podstawową formą działania interfejsu jest prze-
kształcanie poleceń użytkownika na pożądany sposób prezen-
Rys. 2. Struktura systemu NPC
Fig. 2. Structure of the NCP system
44
Agentowa struktura wielomodalnego interfejsu do Narodowej Platformy Cyberbezpieczeństwa, część 1.
POMIARY•AUTOMATYKA•ROBOTYKA NR 3/2019
tacji danych. Metoda sterowania okienkami została opisana
przy okazji prezentacji poszczególnych modułów interfejsu.
Każdy z modułów ma interfejs administracyjno-serwisowy
zawiadujący własnym oknem GUI (ang. Graphical User Inter-
face). Moduł prezentacji wykorzystuje swoje okno do wyświe-
tlania logów otrzymanych z wszystkich trzech modułów oraz
do wysyłania instrukcji do każdego z modułów. W odpowiedzi
na otrzymane z modułu prezentacji instrukcje, moduły wizji
i audio: przechodzą w tryb wstrzymania, wznawiają działanie
po wstrzymaniu lub wczytują nową kongurację.
Administrator modułu audio ma możliwość tworzenia i zarzą-
dzania modelami komend głosowych i mówców. Do tego celu
wykorzystuje interfejs administracyjno-serwisowy, który uak-
tywnia funkcje uczenia modułu audio. Komenda głosowa składa
się z sekwencji 1–3 słów, wypowiadanych w sposób ciągły bez
widocznych przerw między słowami. Pozwala to interpretować
tę sekwencję jako pojedynczą izolowaną frazę zdaniową i rozpo-
znawać ją jako jedną z komend, dla których stworzono model
akustyczny. Model akustyczny komendy ma postać sekwencji
cech krótkookresowych ramek sygnału i jest oparty na cechach
mel-cepstralnych [17] i pochodnych tych cech. Model głosowy
mówcy ma postać mieszaniny rozkładów Gaussa w przestrzeni
cech ramek. Szczegółowe omówienie tych modeli znajduje się
w drugiej części tego artykułu w jego sekcji 2. Rola admini-
stratora modułu audio w procesie tworzenia modeli polega na
zebraniu próbek głosowych odpowiednich komend i mówców,
uruchomieniu procedur uczenia i na zdeniowaniu tablicy aso-
cjacji treści komend i mówcy z numerami klas udostępnia-
nymi przez moduł audio. Administrator jest przy tym świadomy
istnienia tablicy asocjacji komend i ograniczeń, co do maksy-
malnej liczby dostępnych komend i mówców. Jeśli z tablicy
asocjacji komend wynika, że komenda nr 1 służy do wywoła-
nia „pochwycenia” elementu gracznego, to administrator może
nazwać tę komendę jako „pochwyć” lub „drag” lub jeszcze ina-
czej, w sposób zrozumiały dla użytkownika. Wtedy ta klasa
powinna być uczona na podstawie próbek głosowych zawiera-
jących treść „pochwyć” itp.
6.2. Role modułu wizji
Zarządzanie modelami przez administratora modułu wizyj-
nego polega na powiązaniu identykatorów gestów z ich klasą.
Identykatory gestów przekazywane są do modułu prezenta-
cji w trakcie użytkowania interfejsu. Zbiór gestów i ich forma
są ustalone z góry, a system analizy gestów jest dostarczony
w postaci już nauczonej. Administrator nie ma bezpośrednio
możliwości deniowania i uczenia własnych gestów, tak jak
to ma miejsce w przypadku modułu audio. Jednak może zle-
cić serwisantowi lub twórcy systemu wykonanie modykacji
zbioru gestów. Uwzględniając powyższą możliwość, bezpośred-
nie zarządzanie modułem wizji przez administratora polega
jedynie na ewentualnej modykacji tablicy asocjacji gestów,
czyli odwzorowania: moja nazwa gestu ↔ numer/klasa gestu
w module wizji.
Moduł wizyjny, po wczytaniu plików konguracyjnych, przy-
gotowany jest do współpracy z użytkownikiem. Aby sterowa-
nie gestami było skuteczne, użytkownik musi być widoczny dla
kamery. W tym celu moduł wizyjny wyświetla rysunek poka-
zujący, w jakim obszarze powinien stać użytkownik, by móc
sterować systemem, np. kursorami. Kursory to odwzorowanie
dłoni użytkownika na ekran.
Rolą serwisanta systemu wizyjnego jest, oprócz samej sprzę-
towej instalacji systemu, jego wstępna konguracja i kalibracja.
Serwisant wprowadza (w plikach konguracyjnych) położenie
i orientację kamery względem układu współrzędnych ustalonego
dla punktu odniesienia (np. środka ekranu). Wykonuje też kali-
brację stereo-pary kamer w celu uzyskania zestawu parametrów
wewnętrznych (ang. intrinsic parameters) i zewnętrznych (ang.
extrinsic parameters). Do jego zadań należy też wstępne ustawie-
nie parametrów akwizycji tak, aby dopasować je do warunków
oświetleniowych panujących w miejscu instalacji.
6.3. Role modułu audio
Moduł audio sprawuje kontrolę nad okienkami umożliwiają-
cymi administratorowi przełączanie się między następującymi
trybami pracy: trybem zarządzania zasobami (zarządza-
nie poleceniami, użytkownikami oraz nagraniami; zapisywa-
nie plików konguracyjnych i nagrań mowy), uczeniem się
modeli mówców i modeli komend (oraz zapisywaniem modeli
do plików) i trybem sterującym, umożliwiającym rozpoczęcie
rozpoznawania poleceń oraz identykacji użytkowników (wczy-
tanie modeli mówców oraz komend, rozpoczęcie rozpoznawa-
nia komendy/mówcy). Po przejściu w tryb sterowania moduł
audio rozpoczyna nasłuch sygnałów z mikrofonów oczekując na
polecenia wydawane przez użytkownika. W trybie tym identy-
katory rozpoznanych poleceń oraz rozpoznanych użytkowników
są przekazywane do modułu prezentacji.
Administracja modułem audio polega na: wprowadzaniu lub
usuwaniu poleceń, wprowadzaniu lub usuwaniu użytkowników,
nadzorze oraz zlecaniu rejestracji i przechowywania próbek głosu
użytkowników, uaktualnianiu system plików konguracyjnych,
a ponadto uruchamianiu dla danego użytkownika lub polecenia
procesu uczenia. Podczas czynności administracyjnych użytkow-
nik wykonuje polecenia administratora. Na jego żądanie użyt-
kownik podaje swoje dane, umożliwiając w ten sposób swoją
identykację, a następnie przechodzi do nagrywania próbek gło-
sowych. Użytkownik wprowadzony do systemu może wydawać
polecenia modułowi audio. Administrator modułu audio komu-
nikuje się z nim za pomocą okienek GUI, wybierając za pomocą
myszki pola okienek i wprowadzając informację tekstową do
wybranych pól okienek.
6.4. Konfiguracja modułów
Serwisant oddzielnie konguruje każdy z modułów. Konguro-
wanie modułu prezentacji polega na: ustaleniu rozdzielczości
monitora (co wymusza zmianę wielkości emulowanego ekranu
dotykowego), zmianie adresów modułów audio i wizji, zmianie
parametrów emulowanego ekranu dotykowego oraz zmianie
identykatorów przypisanych do bodźców inicjujących akcje
systemu operacyjnego. Każdy identykator określa pewną
akcję, która powinna zostać wykonana na oknie gracznym
platformy NPC. Jest ona wynikiem polecenia otrzymanego od
modułu prezentacji, pobudzonego przez moduł:
− audio, który rozpoznał komendę głosową, lub
− wizji, który rozpoznał gest.
Kongurowanie modułu wizji sprowadza się do:
−
wyboru obszaru, w którym użytkownik będzie mógł wykony-
wać gesty sterujące,
− kalibracji kamer,
−
ustalenia związku między przestrzenią trójwymiarową a jej
dwuwymiarowym zobrazowaniem,
−
modykacji tablicy asocjacji akcji/bodźców (dodawanie lub
usuwanie przyporządkowania rozpoznawanych gestów do iden-
tykatorów akcji/bodźców (i skrótów klawiszowych) genero-
wanych przez imitowane urządzenie wejściowe.
Kongurowanie modułu audio wymaga od serwisanta wyko-
nania następujących czynności:
− instalacji sprzętu,
−
ustawienia parametrów karty akwizycji – wybór kana-
łów akwizycji,
−
ustawienia parametrów akwizycji sygnału audio, czyli:
poziomu szumu, częstotliwości próbkowania, wielkości ramki
sygnału, długości wektora cech itp.,
−
modykacji tablicy asocjacji akcji/bodźców (dodania lub usu-
nięcia przyporządkowania rozpoznawanych komend głosowych
45
W. Kasprzak, W. Szynkiewicz, M. Stefańczyk, W. Dudek, M. Figat, M. Węgierek, D. Seredyński, C. Zieliński
do identykatorów akcji/bodźców (i skrótów klawiszowych)
generowanych przez imitowaną myszkę.
Część z wymienionych czynności wykonywanych jest przez
serwisanta bezpośrednio na sprzęcie wchodzącym w skład inter-
fejsu.
7. Dekompozycja modułów na agenty
Podstawową jednostką kompozycji interfejsu jest moduł.
Podział na moduły związany jest z trzema podstawowymi
funkcjami, które realizuje interfejs w celu umożliwienia
użytkownikowi łatwej interakcji z platformą NPC. Są nimi:
przekształcanie gestów na polecenia dla platformy NPC, trans-
formacja komend wydawanych głosem na polecenia dla tej
platformy oraz integracją poleceń w celu spójnej prezentacji ich
skutków na ekranie obserwowanym przez użytkownika. Każdy
z tych modułów został skomponowany z agentów. Niektóre
z tych agentów reprezentują okna ukazujące się na ekranie
monitora traktowanego jako element środowiska.
się agentów: (a = prezGUI, b = prez), (a = audioGUI_nr,
b = audio) (gdzie nr ∈ {init, user, command, control}),
(a = visionGUI, b = vision).
Agent generujący bodźce a
OID
(rys. 4) wyposażony jest
w receptory rzeczywiste R
OID,1,g
, takie jak mysz, klawiatura
lub ekran dotykowy – tu zbiorczo oznaczone jako g. Pojedynczy
wirtualny receptor rOID,1 agreguje informacje uzyskane z tych
urządzeń wejściowych. Efektorami rzeczywistymi tego agenta
są kursory, a dokładniej rzecz ujmując, generatory bodźców
zazwyczaj inicjowanych wspomnianymi urządzeniami wejścia.
Agent aOID ma trzy efektory rzeczywiste EOID, d. Dwa efektory
tworzą na ekranie monitora kursory: pierwotny (d= mainPoin-
ter) i wtórny (d = secPointer), a jeden efektor (d = keyExecu-
tor) imituje klawiaturę generując bodźce, takie jak rzeczywista
klawiatura. Informacja do tych trzech efektorów rzeczywistych
dostarczana jest przez efektor wirtualny eOID,1.
Agent a
OID
oraz agenty a
a
(reprezentujące okna) wchodzą
w interakcje za pośrednictwem stygmergii [6], a więc przez
zastosowanie komunikacji poprzez środowisko, którego czę-
ścią jest ekran monitora. Agenty aa odczytują bodźce genero-
wane przez aOID za pomocą swoich rzeczywistych receptorów
Rα
a,1,↔f
. W tym przypadku receptorami rzeczywistymi Rα
a,1,↔f
są
elementy okna (f) czułe na bodźce zewnętrzne. Przykładowa
interakcja między kursorem a elementami okna realizowana
jest w następujący sposób. Agent aOID wykorzystując jeden ze
swoich rzeczywistych efektorów E
OID,d
(d – element aktywny
wytwarzający bodziec) oddziałuje na rzeczywisty receptor okna
R
a,1,↔f
(f – element pasywny odbierający bodziec, np. przyciski
lub suwak). Następnie agent aa przekazuje uzyskaną informa-
cję do kolejnego agenta, który zrealizuje akcję wywoływaną
tym bodźcem.
7.1. Moduł prezentacji
Moduł prezentacji utworzony jest z trzech agentów: a
prez
(rys.5), aprezGUI (agent typu aa – rys. 3) i aOID (rys. 4). Komu-
nikację między tymi agentami w module prezentacji przedsta-
wiono na rys. 6.
Podsystem sterowania agenta aprez ma jedynie bufory komuni-
kacji międzyagentowej i pamięć wewnętrzną. Bufory komunika-
cji międzyagentowej umożliwiają interakcję nie tylko z dwoma
pozostałymi agentami modułu prezentacji, ale również z agen-
tami aaudio i avision. Agent aprez wykonuje następujące zadania:
− tłumaczenie gestów otrzymanych od agenta avision na odpo-
wiednie imitacje akcji urządzeń wejścia (myszy, klawiatury,
ekranu dotykowego) i przesyłanie tych zleceń do agenta a
OID
,
aby ten je zrealizował,
Rys. 3. Ogólna struktura a gentów repreze ntujących okna
urucha miane na ekranie komputera; α – nazwa agenta
reprezentującego okno, β – nazwa age nta, z którym ten a gent się
komunikuje
Fig. 3. General structure of agents representing windows appearing on
the computer screen; α – name of the agent representing the windows,
β – name of the agent with which this agent communicates
Ogólną strukturę agentów reprezentujących okna aa, gdzie
a to substytut nazwy agenta, określa rys. 3. Agentów tego
typu w systemie jest wiele. Rzeczywistymi efektorami E
a, j
każ-
dego takiego agenta są miejsca służące wyświetlaniu informacji
w oknie (j). Ta informacja pojawia się w środowisku i wten
sposób oddziałuje na operatora. Natomiast rzeczywistymi
receptorami R
a,f
tego agenta są obiekty wrażliwe na bodźce
(f) wytwarzane przez efektory agenta a
OID
(ang. Operator
Interface Devices). Agent aa ma po jednym efektorze i recep-
torze wirtualnym, odpowiednio: e
a,1
i r
a,1
. Współpracują one
z wieloma efektorami i receptorami rzeczywistymi: Ea, j, Ra,f.
Liczba receptorów rzeczywistych zależy od liczby pól okna,
z którymi użytkownik może wejść w interakcję (np. przycisk
lub suwak). Natomiast liczba efektorów rzeczywistych zależy
od liczby pól, w których może być wyświetlana informacja.
Agenty okien aa komunikują się bezpośrednio z innymi agen-
tami ab interfejsu. Istnieją następujące pary komunikujących
Rys. 4. St ruktura agenta generującego b odźce; g {mysz, klawi atura,
ekran dotykowy}, δ {mainPointer, secPointer, keyExecutor} agent
ten ma 3 efektory i 3 receptory
Fig. 4. Structure of the agent generating stimulus; g [mouse, keyboard,
touchscreen}; δ {mainPointer, secPointer, keyExecutor} this agent has
3 eectors and 3 receptors
46
Agentowa struktura wielomodalnego interfejsu do Narodowej Platformy Cyberbezpieczeństwa, część 1.
POMIARY•AUTOMATYKA•ROBOTYKA NR 3/2019
− tłumaczenie identykatorów poleceń otrzymanych od agenta
aaudio na odpowiednie skróty klawiaturowe i przesyłanie ich do
agenta aOID, aby ten je zrealizował,
−
przesyłanie poleceń zmiany trybu pracy do agentów a
vision
i aaudio. Polecenia te podsystem cprez otrzymuje od agenta aprezGUI,
−
przesyłanie logów do agenta a
prezGUI
, aby ten je wyświetlił.
Logi te pochodzą od samego podsystemu cprez oraz od agen-
tów avision i aaudio.
Zadaniem agenta aOID jest wykonywanie odpowiednich ope-
racji za pomocą swych efektorów rzeczywistych EOID,d (kurso-
rów), w celu oddziaływania na inne agenty reprezentujące okna,
poprzez stygmergię. Operacje te wyzwalane są albo poleceniami
agenta a
prez
albo bodźcami generowanymi przez rzeczywiste
receptory ROID,g, gdzie g ∈ {mysz, klawiatura, ekran dotykowy}.
Agent aprezGUI jest odpowiedzialny za wyświetlanie informacji
otrzymanych od agenta a
prez
oraz odczytywanie bodźców pocho-
dzących ze środowiska, w tym przypadku ekranu komputera,
a konkretnie kliknięć myszy lub naciśnięć klawiatury imitowa-
nych przez agenta a
OID
. Bodźce te są przechwytywane za pomocą
przycisków okna – rzeczywistych receptorów agenta aprezGUI.
7.2. Moduł audio
7.2.1. Struktura
Moduł audio składa się z pięciu agentów (rys. 7): podsta-
wowego agenta aaudio oraz agentów pomocniczych zarządzają-
cych oknami:
− agenta aaudioGUI_init reprezentującego pojedyncze okno, służące
do wyboru poniżej wymienionych okien,
−
agenta a
audioGUI_user
reprezentującego okno zarządzania użyt-
kownikami,
−
agenta a
audioGUI_command
reprezentującego okno zarządzania pole-
ceniami oraz
− agenta aaudioGUI_control reprezentującego okno sterowania i prze-
prowadzania uczenia na podstawie posiadanych nagrań.
Cztery agenty reprezentujące okna mają strukturę agenta aa,
gdzie a Î {audioGUI_init, audioGUI_user, audioGUI_com-
mand, audioGUI_control}, a więc ich wewnętrzna struktura
odpowiada tej z rys. 3. Każdy z czterech wspomnianych agentów
GUI reprezentuje pojedyncze okno wyposażone w przyciski oraz
elementy służące do wyświetlania odpowiednich informacji zwią-
zanych z konkretnym agentem GUI modułu audio. Tylko jeden
agent GUI modułu audio sposród: a
audioGUI_user
, a
audioGUI_command
oraz aaudioGUI_control jest aktywny w danym momencie.
Struktura wewnętrzna agenta a
audio
została przedstawiona
na rys. 8. Agent a
audio
składa się z podsystemu sterowania
caudio pozyskującego informacje z receptora wirtualnego raudio,mic
i oddziałującego na efektor wirtualny e
audio,ui
. Podsystem c
audio
wyposażony jest w bufory transmisyjne umożliwiające komuni-
kację z agentem a
prez
oraz wspomnianymi agentami GUI modułu
audio. Receptor wirtualny r
audio,mic
agreguje dane z receptora rze-
czywistego Raudio,mic, który zawiera mikrofony, sprzętowy prze-
twornik analogowo-cyfrowy oraz sterownik programowy tego
przetwornika zainstalowany w systemie operacyjnym. Natomiast
efektor wirtualny e
audio,ui
steruje efektorem rzeczywistym E
audio,ui
,
który reprezentuje głośnik komputera, bądź system nagłośnie-
nia pomieszczenia.
Rys. 5. St ruktur a agenta
prezentacji
Fig. 5. Structure of the agent
presentation
Rys. 6. Komunikacja międzyagentowa w m odule pr ezentacji
Fig. 6. Interagent communication in the presentation module
Rys. 7. Dekompozycja modułu audio na agent y
Fig. 7. Decomposition of the audio module into agents
Rys. 8. Struktura agenta audio aau dio, gdzi e nr ϵ {init, user,
command, control}
Fig. 8. Structure of the audio agent, where nr ϵ {init, user, command,
control}
47
W. Kasprzak, W. Szynkiewicz, M. Stefańczyk, W. Dudek, M. Figat, M. Węgierek, D. Seredyński, C. Zieliński
Moduł audio, a dokładniej podsystem sterowania c
audio
agenta aaudio, umożliwia:
−
administratorowi systemu – tworzenie i zarządzanie modelami
komend oraz użytkowników,
− użytkownikowi – sterowanie głosem platformą.
Administrator wpływa na moduł audio komunikując się
z agentem aOID za pomocą jego receptorów. Agent ten wykorzy-
stując swoje efektory komunikuje się z odpowiednim agentem
GUI stosując stygmergię. W dalszej kolejności podsystem ste-
rowania wspomnianego agenta GUI przesyła odpowiednie pole-
cenia do podsystemu caudio agenta aaudio. Konguracja modułu
audio polega na odpowiednim ustawieniu sprzętu oraz stworze-
niu odpowiedniego pliku konguracyjnego, co wykonywane jest
przez serwisanta bez udziału agenta aaudio.
7.2.2. Zachowania
Działanie agentów GUI a
a
, tj. a
audioGUI_init
, a
audioGUI_user
,
a
audioGUI_command
, a
audioGUI_control
polega na odbieraniu za pomocą
swoich rzeczywistych receptorów informacji ze środowiska
(ekranu monitora), np. o wciśniętym przycisku w jednym
z odpowiadających im okien, wysyłaniu powyższych informa-
cji do agenta a
audio
, odbieraniu danych z a
audio
oraz wyświe-
tlaniu ich za pomocą rzeczywistych efektorów (odpowiednich
elementów okien).
Działanie agenta a
audio
, a dokładniej jego podsystemu stero-
wania c
audio
, opisuje automat skończony przedstawiony na rys.
9. Z każdym ze stanów automatu związane jest odpowiednie
zachowanie. W stanie początkowym
init
audio
c
S
podsystem c
audio
ocze-
kuje na polecenie otrzymane z c
audioGUI_init
. Polecenie to może
dotyczyć albo przetwarzania komend głosowych albo zarządza-
nia zasobami. Otrzymywane polecenia, powodując zmianę stanu
automatu skończonego, powodują tworzenie agentów GUI lub
zakończenie ich istnienia – w ten sposób okienka pojawiają się
i znikają z ekranu. W konsekwencji prezentowany system ma
zmienną strukturę [39], w której agenty pojawiają się i znikają.
Polecenie rozpoczęcia rozpoznawania komend, otrzymanie
z caudioGUI_init powoduje, że podsystem caudio przechodzi do stanu
sterowanie
audio
c
S
, w którym realizuje zachowanie polegające na stwo-
rzeniu agenta aaudioGUI_command (reprezentującego okno służące do
sterowania rozpoznawaniem), a następnie dokonuje ciągłej akwi
-
zycji sygnału audio i na bieżąco wykonuje detekcję mowy
w sygnale oraz analizuje każdy izolowany fragment mowy w celu
rozpoznania mówcy i komendy. W zależności od tego, czy roz-
poznano mówcę czy też nie, stosowany jest dedykowany model
komend takiego mówcy lub model ogólny. Zakończenie zacho-
wania związanego ze stanem
sterowanie
audio
c
S
powoduje unicestwienie
agenta a
audioGUI_command
, a w związku z tym i okienka, którym zawia-
duje.
W stanie
zarzadzanie
audio
c
S
podejmowana jest decyzja, jakimi danymi
(zasobami) ma zarządzać caudio. Automat robi to na podstawie
danych otrzymanych z c
audioGUI_init
. Po przejściu do stanu
polecenia
audio
c
S
albo
uzytkownicy
audio
c
S
uruchamiane jest zachowanie inicjujące odpo-
wiedniego agenta, tj. aaudioGUI_command lub aaudioGUI_user i możliwe jest
dodawanie, usuwanie i aktualizowanie danych zawartych w pliku
konguracyjnym odpowiednio poleceń i użytkowników. Po
zakończeniu działania zachowań następuje zakończenie działania
odpowiedniego agenta GUI.
W stanie
nagrania
audio
c
S
uruchamiany jest agent a
audioGUI_control
, dzięki
czemu możliwe jest przeprowadzenie sesji nagraniowej dla
wybranego użytkownika. Sesja nagraniowa polega na nagraniu
po n próbek (powtórzeń) dla wszystkich poleceń wczytanych
z pliku konguracyjnego, gdzie n jest liczbą próbek deniowaną
przez administratora modułu audio. Podczas sesji nagraniowej
c
audio
komunikuje się z wirtualnym receptorem r
audio,mic
, w celu
akwizycji sygnału audio, oraz z podsystemem sterowania agenta
aaudioGUI_control, w celu kontrolnej wizualizacji oscylogramu nagra-
nia, a ponadto z eaudio,ui w celu odtworzenia przez głośniki roz-
poznanego polecenia. Na koniec tworzony jest plik w formacie
wave z nagraną próbką, będący elementem wewnętrznej pamięci
podsystemu sterowania caudio.
W stanie
uczenie
audio
c
S
uruchamiany jest agent aaudioGUI_control i ini-
cjowane jest uczenie, tj. automatyczne tworzenie modeli użyt-
kowników i poleceń w oparciu o zebrane wcześniej próbki
głosowe (podczas sesji nagraniowych z udziałem przyszłych użyt-
kowników). Proces uczenia wykonywany jest prawie wyłącznie
przez wirtualny receptor raudio,mic, który realizuje funkcje:
− dekodowania danych w formacie wave,
− analizy wstępnej i parametryzacji sygnału mowy,
− tworzenia modeli mówców i modeli komend,
− serializacji modeli następnie zapisywanych do plików.
Zakodowane w formacie wave dane są przesyłane do podsys-
temu sterowania c
audio
, a ten wypisuje je do rezydującego w jego
pamięci wewnętrznej systemu plików. W razie potrzeby podsys-
tem sterowania caudio może pobrać ze swojej pamięci wewnętrznej
uprzednio przygotowany plik, przesłać jego treść do wirtualnego
receptora r
audio,mic
, który zdekoduje dane w formacie wave do
postaci wektora próbek sygnału (liczb) i w tej postaci zapamięta
je na czas przetwarzania.
7.3. Moduł wizyjny
Moduł wizyjny składa się z trzech agentów. Głównym jest
agent a
vision
(rys. 10), który odpowiada za realizację zadania
sterowania gestami. Komunikuje się on z agentami avisionGUI
oraz a
vision−database
(rys. 11), które są odpowiedzialne za reali-
zację odpowiednio gracznego interfejsu użytkownika oraz
bazy danych.
Agent a
vision
składa się z podsystemu sterowania c
vision
, wirtual-
nego receptora r
vision
oraz dwóch rzeczywistych receptorów R
vision,1
i Rvision,2 będących kamerami RGB zestawionymi w stereoparę.
Pozostałe agenty mają jedynie podsystemy sterowania. Agent
avision komunikuje się ponadto z agentem aprez.
Automat skończony podsystemu sterowania cvision agenta wizyj-
nego a
vision
(rys. 12) w swym stanie początkowym
init
vision
c
S
uru-
chamia zachowanie, które komunikuje się z agentem avision−database
w celu pobrania modeli gestów statycznych i dynamicznych oraz
pozostałych danych potrzebnych do pracy agenta (m.in. zapisa-
nych parametrów kamer), a następnie przechodzi do rozpozna-
wania gestów. Najpierw w stanie
poszukiwanie_twarzy
vision
c
S
uruchamiana
jest procedura poszukiwania twarzy operatora. Jeśli zostanie
ona odnaleziona w oczekiwanym miejscu przestrzeni roboczej,
to automat przechodzi do stanu
poszukiwanie_dloni
vision
c
S
, w którym usta-
lane jest położenie obu dłoni operatora. Po ich poprawnym zlo-
kalizowaniu automat przechodzi do stanu
rozpoznawanie_gestów
vision
c
S
,
w którym rozpoznaje i śledzi dłonie oraz interpretuje gesty sta-
tyczne i dynamiczne. W przypadku utraty możliwości śledzenia
Rys. 9. Automat skońc zony prze łączaj ący zachowania pod systemu
sterowania caudio
Fig. 9. Finite state automation switching behavioours of the control
subsystem caudio
48
Agentowa struktura wielomodalnego interfejsu do Narodowej Platformy Cyberbezpieczeństwa, część 1.
POMIARY•AUTOMATYKA•ROBOTYKA NR 3/2019
dłoni bądź twarzy operatora automat wraca do stanu – odpo-
wiednio
poszukiwanie_dloni
vision
c
S
lub
poszukiwanie_twarzy
vision
c
S
. Trywialne auto-
maty skończone wirtualnego receptora rvision,1 i rzeczywistych
receptorów R
vision,1
i R
vision,2
agenta a
vision
przedstawiono na rys.13.
Podsystem sterowania agenta avisionGUI, odpowiedzialnego za
wyświetlanie okna interfejsu użytkownika modułu wizyjnego,
realizuje tylko jedno zachowanie. Polega ono na wyświetlaniu
w swoim oknie obrazów otrzymywanych od agenta a
vision
oraz
przesyłaniu do tego agenta poleceń będących efektem interakcji
z agentami wytwarzającymi kursory na ekranie albo dostarcza-
jącymi informacji o wciśnięciu klawiszy klawiatury bądź innym
zdarzeniu wywoływanym przez urządzenie wejściowe.
8. Charakterystyka agentów
upostaciowionych interfejsu NPC
Agenty upostaciowione, z których skomponowano inter-
fejs NPC, odpowiadają ogólnej denicji agenta przedstawio-
nej w części 3. tego artykułu. Literatura dotycząca agentów,
zarówno programowych, jak i stosowanych w robotyce, jest
bogata i, jak już wspomniano, nie doczekała się jednoznacznej
denicji tego pojęcia. Denicje tam przedstawione zazwyczaj
odnoszą się do licznych cech różnorodnych typów agentów.
Warto tutaj spojrzeć na agenta upostaciowionego pod kątem
często wymienianych atrybutów różnych typów agentów.
Pojęcie agenta upostaciowionego zostało spopularyzowane
przez Rodneya Brooksa (np. [9]) w trakcie debaty dotyczącej
sztucznej inteligencji. Tradycyjna sztuczna inteligencja koncen-
trowała się na modelu środowiska (jego reprezentacji), by móc
wyciągać wnioski dotyczące przyszłych akcji do wykonania przez
system. Planowanie akcji było głównym przedmiotem zaintereso-
wania badaczy. Brooks zakwestionował to podejście stwierdzając,
że najlepszym modelem środowiska jest ono samo, a inteligentne
działanie jest wynikiem ewolucyjnego procesu prowadzącego do
doskonalenia sposobu działania systemu [8, 10, 11]. W rozu-
mieniu Brooksa, dwoma podstawowymi cechami agenta jest
posiadanie ciała/postaci (ang. embodiment) oraz usytuowanie
(ang. situatedness), czyli egzystowanie w realnym otoczeniu,
a nie w świecie abstrakcyjnym (uproszczonym). Wymienia on
również inteligencję będącą następstwem wyłaniania (ang. emer-
gence) jako efektu interakcji między agentem i jego otoczeniem.
Spór między Brooksem i przedstawicielami klasycznej sztucz-
nej inteligencji, dotyczący wyższości agentów reaktywnych nad
deliberatywnymi, nie został jednoznacznie rozstrzygnięty, bo
do inteligentnego działania potrzebne jest, w istocie, zarówno
wnioskowanie prowadzone w oparciu o model świata, jak i zacho-
wania reaktywne wykorzystujące uogólnianie (ang. subsump
-
tion) – powstały więc agenty hybrydowe (np. [4]). Co najmniej
niektóre agenty wykorzystane do stworzenia interfejsu NPC są
upostaciowione, gdyż posiadają ciało, a więc mikrofony i ekran
monitora, służące do kontaktu z operatorem znajdującym się
w środowisku. Ponadto są usytuowane, ponieważ przetwarzają
sygnały dźwiękowe i świetlne bezpośrednio pochodzące z tego
otoczenia. Sygnałami tymi są mowa oraz gesty operatora. Mamy
tu jednak do czynienia z agentami hybrydowymi, bo sygnały te
nie oddziałują w sposób bezpośredni na efektory, a więc nie jest
to system czysto reaktywny. Wpierw te sygnały przetwarzane
są na postać symboliczną komend, a więc wykorzystują modele
wiążące sygnały z ich znaczeniem.
Spór dotyczący emergencji inteligencji w systemach dopro-
wadził do rozpowszechnienia pojęcia agenta w środowisku
naukowców zajmujących się sztuczna inteligencją. Klasyczny
podręcznik tej dziedziny [26] zbudowany jest właśnie wokół poję-
cia agenta. W najbardziej ogólnej postaci traktuje agenta jako
coś, co działa. Taka denicja jest zbyt ogólna, więc dodatkowo
wyróżnia pożądane cechy agentów: autonomiczne sterowanie,
Rys. 10. Str uktura agenta wizyjnego
Fig. 10. Structure of the agent vision
Rys. 11. Struktura agenta bazy d anych modułu audio
Fig. 11. Structure of the agent audio data base
Rys. 12. Automat skończony przełączaj ący zachowania pod systemu
sterowania cvision
Fig. 12. Finite state automaton switching the behaviours of the control
subsystem cvision
Rys. 13. Auto maty skończone przełącz ające zachowani a
rzeczywistych receptorów Rvision,1 i Rvision,2 oraz wirtualnego receptora
rvision,1
Fig. 13. Finite state automaton switching the behaviours of real receptor
Rvi sio n,1 i Rvisi on,2 and virtual receptor rvi sio n,1 of the agent avision
49
W. Kasprzak, W. Szynkiewicz, M. Stefańczyk, W. Dudek, M. Figat, M. Węgierek, D. Seredyński, C. Zieliński
czyli działanie bez udziału człowieka, zdolność do postrzega-
nia środowiska, długotrwałość działania, adaptacja do zmian
zachodzących w środowisku, zdolność do przejmowania celu
działania innych agentów. Dodatkowo wymieniane są agenty
racjonalne, a więc takie, których działanie przynosi najlepszy
skutek lub najlepszy spodziewany skutek (jeżeli mamy do czy-
nienia z niepewnością). Pojawiają się też agenty uczące się czyli
takie, które polepszają wyniki swojego działania w miarę zdoby-
wania nowych doświadczeń. Agenty interfejsu NPC, po dostro-
jeniu modeli przez uczenie, działają autonomicznie, dysponują
zdolnością do postrzegania środowiska (zdolność do interakcji
z operatorem), niektóre istnieją tak długo, jak długo istnieje
interfejs, a agenty pomocnicze zarządzające oknami działają
przez czas, kiedy są niezbędne do realizacji konkretnej operacji.
Nie mają one zdolności adaptacyjnych i nie mogą przejmować
celu działania innych agentów.
Różnorodność cech przypisywanych agentom wynika z ewolu-
cji, która doprowadziła do pojawienia się tego pojęcia na gruncie
informatyki. W podręczniku [25] autor wywodzi agenta z poję-
cia aktora, które stanowi elementarne obliczenie wykonywane
równolegle z innymi takimi obliczeniami. Aktory zmieniają swój
stan wewnętrzny oraz komunikują się z innymi aktorami. Uogól-
nieniem aktora stał się aktywny obiekt, działający w swym wła-
snym wątku. Uogólnienie aktywnego aktora doprowadziło do
pojęcia agenta, który stanowi autonomiczną jednostkę działa-
jącą w środowisku. Jednostka ta dąży do realizacji swojego celu,
co wymaga wykonywania pewnych czynności oraz komunikacji
z innymi agentami. Efektem tych rozważań historycznych jest
określenie agenta w bardzo podobny sposób, jak zdeniowano
agenta upostaciowionego.
Podjęto też próbę mariażu agentów działających w cyberprze-
strzeni z tymi funkcjonującymi w przestrzeni zycznej [13]. Roz-
wój systemów operacyjnych doprowadził do powstania pojęcia
procesu. Początkowo procesy komunikowały się ze sobą jedy-
nie wewnątrz systemu operacyjnego, ale wraz z rozwojem sieci
komputerowych ta komunikacja musiała zostać rozszerzona, co
doprowadziło do powstania koncepcji cyberprzestrzeni. Wspo-
mniana praca pokazuje możliwości i konsekwencje przekrocze-
nia granicy cyberprzestrzeni w celu wniknięcia do przestrzeni
rzeczywistej, w której działają urządzenia, a więc i roboty.
Ponieważ proces funkcjonuje w obrębie pojedynczego systemu
operacyjnego, to uogólnienie tego pojęcia na cyberprzestrzeń dla
odróżnienia zostało nazwane agentem. Cyberprzestrzeń stanowi
środowisko, w którym agent działa, a więc postrzega ją i wpływa
na nią. Dalsza ewolucja doprowadziła do powstania agentów
mobilnych, które są zdolne do przemieszczania się w cyberprze-
strzeni. Ponieważ roboty przemieszczają się w przestrzeni rzeczy-
wistej, dostrzeżono tu, z jednej strony paralelę, a z drugiej strony
pole ciekawych badań na styku tych przestrzeni. Podstawą tych
rozważań był rozwój pojęć – od algorytmu przez obiekt do
agenta. Motywacją była konieczność dekompozycji algorytmu,
w celu umysłowego zrozumienia złożoności tworzonego systemu
przez projektanta. Wspomniana ewolucja zwiększała stopień
autonomii działania kolejno wymienionych pojęć. W pracy [13]
zdeniowano M-agenta, który na podstawie danych pozyskanych
ze środowiska oraz wewnętrznego modelu służącego symulacji
możliwych zachowań, wybiera optymalną strategię działania i te
realizuje wpływając na środowisko. Specykacja M-agenta za
pomocą opisanego tu agenta upostaciowionego została przed-
stawiona w [35]. Jednak do sterowania platformą za pomocą
gestów i mowy nie jest potrzebny wyranowany model otocze-
nia – wystarczą wzorce gestów i komend.
Agentom programowym (software’owym) poświęcona jest
praca [22], w której przytoczono różne kryteria, według któ-
rych można sklasykować agenty. Wyróżnia się agenty statyczne
i mobilne, w zależności od tego czy mogą się one przemieszczać
po sieci. Agenty interfejsu NPC są statyczne. Natomiast praca
[22] odnosi się do omawianych wyżej agentów reaktywnych,
deliberatywnych i hybrydowych oraz autonomiczności agentów.
Podnosi kwestie uczenia się i zdolności do współpracy między
agentami. Agenty interfejsu NPC uczą się jedynie w trakcie
ich konguracji, natomiast współdziałają ze sobą, by osiągnąć
wspólny cel. Wspomniana praca sugeruje wykorzystanie jednego
wspólnego języka do porozumiewania się agentów. Tu taki język
nie został stworzony. Poszczególne agenty porozumiewają się
ze sobą dzięki oddzielnym zestawom przesyłanych wiadomości.
Wreszcie wymieniana jest oddzielna klasa agentów interfejso-
wych służących do porozumiewania się użytkowników z sys-
temami. Interfejs NPC spełnia, jako całość, dokładnie tę rolę.
Należy też zauważyć, że część agentów interfejsu NPC to agenty
upostaciowione, a część to agenty czysto programowe.
Tekst [24] bazuje na denicji agenta zaproponowanej przez
Wooldridge’a [34], mówiącej że agent stanowi system kompute-
rowy, który jest usytuowany w pewnym środowisku i jest zdolny
do autonomicznych działań w tym środowisku w celu realizacji
zadań, dla których został zaprojektowany. Praca [24] wymie-
nia pożądane cechy inteligentnego agenta: reaktywność, czyli
zdolność do reagowania na zmiany zachodzące w środowisku;
proaktywność, czyli dążenie do realizacji celu; socjalność, czyli
zdolność do wchodzenia w interakcje z innymi agentami; ela-
styczność, czyli zdolność do osiągania celów różnymi sposobami
oraz odporność, czyli umiejętność radzenia sobie z błędami.
Agenty wchodzące w skład interfejsu NPC do pewnego stopnia
mają wszystkie te cechy. Z kolei praca [31] traktuje o progra-
mowaniu zorientowanym agentowo, jako uogólnieniu programo-
wania obiektowego, określa agenta przez takie właściwości jego
„umysłu”, jak: przekonania, zdolności, wybory oraz zobowiąza-
nia. To podejście wywodzi się z prac dotyczących architektury
BDI (ang. belief, desire, intension) [24, 31]. Przekonania dotyczą
aktualnego stanu środowiska i samego agenta, pragnienia wyni-
kają z celu, który ma być osiągnięty, natomiast intencje dotyczą
pragnień, do których osiągnięcia agent się zobowiązał, a więc
dotyczą wyboru planu osiągnięcia celu. W przypadku agentów
interfejsu NPC nie wprowadzono pojęcia „umysłu”, gdyż jest on
nadmiarowy w stosunku do potrzeb. W konsekwencji tu prezen-
towane agenty upostaciowione nie korzystają z architektury BDI.
Na gruncie sztucznej inteligencji prowadzone są również prace
dotyczące zdobywania nowej wiedzy przez agenty. Przykładowo
praca [27] opisuje system wieloagentowy stosujący logikę niemo-
notoniczną do wnioskowania, w celu odpowiedzi na zapytania.
Mógłby to być ciekawy kierunek rozwoju interfejsu NPC, dający
użytkownikowi możliwość nie tylko sterowania prezentacją wyni-
ków działania platformy, ale również kierowania do niej zapytań.
Na gruncie informatyki rozpatrywane są również masywne
systemy wieloagentowe (ang. Massive Multi-Agent Systems),
złożone z olbrzymiej liczby agentów. W takich systemach głów-
nym problemem jest skalowalność komunikacji agentów. Roz-
wiązanie tego problemu w dużej mierze zależy od technologii
implementacji agentów jako wątków, oraz sposobu realizacji
przesyłania wiadomości między agentami. Polem zastosowa-
nia takich systemów są, przykładowo, obliczenia ewolucyjne
[20]. Chwilowo w systemach robotycznych tak olbrzymie liczby
agentów nie występują, stopień współbieżności jest więc dużo
niższy niż ten przedstawiony w pracy [20]. Należy się jed-
nak spodziewać, że w przyszłości roje robotów mogą stać się
ogromne. Wtedy wykorzystanie takich technologii może być
koniecznością. Informatycy badają również ewolucyjne sys-
temy wieloagentowe (ang. Evolutionary Multi-Agent Systems),
w których każdy z agentów reprezentuje pojedyncze rozwią-
zanie zadania optymalizacji [19]. Agenty wchodzą w interak-
cje między sobą (rozmnażają się, współzawodniczą o zasoby)
przekazując sobie skwantowany zasób zwany energią. Z punktu
widzenia informatyki istotne jest odseparowanie obliczeń od
modelu ich realizacji (sekwencyjnego, równoległego, typu prze-
50
Agentowa struktura wielomodalnego interfejsu do Narodowej Platformy Cyberbezpieczeństwa, część 1.
POMIARY•AUTOMATYKA•ROBOTYKA NR 3/2019
pływ danych dataow). Przedstawiany w tym artykule model
agenta również abstrahuje od jego implementacji, a więc spo-
sobu prowadzenia obliczeń.
Na zakończenie dyskusji dotyczącej relacji między prezento-
wanym tu agentem upostaciowionym i agentami deniowanymi
w bardzo bogatej literaturze tematu warto jeszcze wspomnieć
o inżynierii systemów wieloagentowych [14]. Podstawą jest roz-
dzielenie fazy specykacji systemu od fazy jego implementa-
cji, czyli realizacja ogólnych zaleceń inżynierii oprogramowania
[28]. Istotnym jest dodatkowe zalecenie mówiące, że specyka-
cję należy sporządzić dla każdego agenta oddzielnie, a działanie
całości systemu powinno wynikać z interakcji tych agentów.
Kolejnym zaleceniem jest przyporządkowanie każdej roli lub
grupie ról pokrewnych, które system ma pełnić, jednego agenta
realizującego te role. Ponadto zaleca się stosowanie automatów
skończonych do opisu działania agentów. Specykacja i imple-
mentacja interfejsu NPC jest zgodna z tymi ogólnymi zalece-
niami. Należy jednak podkreślić, że wśród zaleceń brak było
wskazówek na temat wewnętrznej struktury i sposobu działa-
nia agentów. Prezentowany tu sposób tworzenia systemu wielo-
agentowego jest konkretniejszy, przez co ułatwia projektantowi
stworzenie systemu wieloagentowego. Zarówno struktura, jak
i sposób działania określone są wzorcami.
9. Interakcja interfejsu z systemem
operacyjnym
Jedną z decyzji dotyczących implementacji jest ta odnosząca
się do liczby komputerów, które mają realizować zadania sys-
temu. Bezpośredni wpływ na nią ma obliczeniochłonność
stosowanych algorytmów. W przypadku relatywnie niskiej obli-
czeniochłonności kod wszystkich agentów wchodzących w skład
projektowanego systemu można ulokować na jednym kompute-
rze. Z taką sytuacją mamy do czynienia w przypadku interfejsu
NPC. Na rys. 14 przedstawiono ogólną zasadę implementacji
komunikacji zarówno między agentami jak i podsystemami
agentów, w przypadku gdy wszystkie agenty i podsystemy
wykonywane są przez ten sam komputer. Komunikacja ta
odbywa się za pośrednictwem systemu operacyjnego. Schemat
ten pokazuje również sposób interakcji między podsystemami
a sterownikami (ang. driverami) urządzeń oraz między sterow-
nikami a urządzeniami wykorzystywanymi przez interfejs NPC.
Jak widać, implementacja zakłada powstanie struktury trój-
warstwowej, w której górną warstwę bezpośrednio określa specy-
kacja. Poniżej znajduje się warstwa odpowiadająca systemowi
operacyjnemu komputera. W tej warstwie rezydują zarówno
sterowniki urządzeń – receptorów i efektorów, a także oprogra-
mowanie organizujące przekazywanie informacji między wątkami
i procesami. Najniższą warstwę tworzą tylko urządzenia, które
same w sobie mogą zawierać oprogramowanie, ale to tworzone
jest przez producentów sprzętu i jest ukryte przed projektan-
tem systemu.
10. Podsumowanie
Artykuł poświęcony jest specykacji i implementacji wielomo-
dalnego interfejsu do sterowania prezentacją wyników wytwa-
rzanych przez Narodową Platformę Cyberbezpieczeństwa. Ta
część artykułu koncentruje się na opisie struktury i sposobu
działania interfejsu. Do jego specykacji wykorzystano kon-
cepcję agentów upostaciowionych. Dotychczas ta metoda spe-
cykacji stosowana była do systemów robotycznych, a więc do
opisu urządzeń działających w środowisku zycznym. Tutaj
jednak mamy do czynienia z systemem działającym na styku
środowiska zycznego, w którym funkcjonuje operator, oraz
cyberprzestrzeni, w której tworzone są wyniki analizy aktyw-
ności w sieci. Ten charakter środowiska wymagał specycznego
rozdzielenia systemu i środowiska. W szczególności zakwali-
kowano ekran monitora do środowiska, natomiast elementy
okienek i kursory pojawiające się na tym ekranie zaliczono do
receptorów i efektorów reprezentujących je agentów. Ponadto
agenty zostały pogrupowane w moduły, co nadało systemowi
hierarchiczny charakter. Wyróżniono trzy takie moduły: audio,
wizji oraz prezentacji. Dzięki zastosowaniu grup współpra-
cujących agentów struktura powstałego interfejsu ma naturę
otwartą. System może być rozszerzony o kolejne moduły, jeżeli
trzeba dodać następne tryby porozumiewania się operatora
z systemem, a ponadto każdy z modułów może być wzbo-
gacany o kolejne agenty realizujące dodatkowe funkcje tych
modułów. Obecne tryby porozumiewania się mogą być roz-
RE
1
VE
1
CS
1
RR
1
VR
1
RE
1
RR
1
RE
2
VE
2
CS
2
VR
2
RR
2
RR
1
RE
2
RR
2
RR
2
RE
1
RE
2
12
Rys. 14. Schemat komunikacji międzyagentowej i wewnątrzagentowej zastosowanej w interfejsie NPC
Fig. 14. Intra-agent and inter-agent communication employed by the NCP interface
51
W. Kasprzak, W. Szynkiewicz, M. Stefańczyk, W. Dudek, M. Figat, M. Węgierek, D. Seredyński, C. Zieliński
szerzane przez dodawanie nowych komend głosowych oraz
gestów sterujących, w tym wykonywanych głową oraz stero-
wanie mimiką twarzy. Wszystko to umożliwia względnie proste
rozszerzenie struktury, a przez to zwiększenie jej możliwo-
ści. Rozszerzając tę strukturę należy wykorzystać to, co już
istnieje, jako wzorzec. Zastosowana metoda projektowa ma
swoje korzenie w inżynierii oprogramowania, w szczególności
przykłada istotną wagę do dwóch faz tworzenia systemu: fazy
specykacji odpowiadającej na pytanie, co ma być stworzone,
oraz fazy implementacji deniującej, jak to ma być wykonane.
To rozdzielenie zainteresowania (ang. separation of concerns)
projektanta prowadzi do stworzenia hierarchicznego systemu
o przejrzystej architekturze. Wspomniana hierarchia obejmuje
następujące warstwy: modułu, agenta, automatu skończonego,
funkcji przejścia.
Obecnie podstawowymi sposobami komunikacji operatora
z interfejsem są polecenia wydawane albo głosem albo gestem.
Wprowadzono też bezpieczny tryb dostępu do platformy wyko-
rzystujący identykację mówcy. Wstępne testy wykazały wysoką
skuteczność obecnych trybów porozumiewania się z systemem.
Druga część artykułu poświęcona będzie zastosowanym algoryt
-
mom rozpoznawania: mowy, mówcy i gestów. Ponadto przedsta-
wione zostaną wyniki przeprowadzonych testów.
Podziękowania
Praca wykonana w ramach projektu CYBERSECIDENT
/369195/I/NCBR/2017, współnansowanego przez Narodowe
Centrum Badań i Rozwoju w ramach programu CyberSecIdent.
Bibliografia
1. The National Cyber Security Centre, Holandia, https://
www.ncsc.nl [on-line: dostęp 5-04-2019].
2.
The National Cyber Security Centre, Wielka Brytania,
https://www.ncsc.gov.uk [on-line: dostęp 5-04-2019].
3.
The National Cybersecurity and Communications Inte-
gration Center, USA, https://ics-cert.us-cert.gov [on-line:
dostęp 5-04-2019].
4. Arkin R.C., Behavior-Based Robotics. MIT Press, 1998.
5.
Best D.M., Endert A., Kidwell D., 7 key challenges for
visualization in cyber network defense. Proceedings of the
Eleventh Workshop on Visualization for Cyber Security,
VizSec ’14, 33–40, DOI: 10.1145/2671491.2671497.
6.
Bonabeau E., Dorigo M., Theraulaz G., Swarm Intelli-
gence: From Natural to Articial Systems. Oxford Uni-
versity Press, New York, Oxford, 1999.
7.
Bostock M., Pseudo-Dorling cartogram, https://bl.ocks.
org/mbostock/4055892, 2015. [on-line: dostęp 5-04-2019].
8.
Brooks R.A., Elephants don’t play chess. “Robotics
and autonomous systems”, Vol. 6, No. 1–2, 1990, 3–15,
DOI: 10.1016/S0921-8890(05)80025-9.
9. Brooks R.A., Intelligence without reason. Articial intel-
ligence: critical concepts, 3:107–163, 1991.
10.
Brooks R.A., Intelligence without representation. Articial
Intelligence, 47(1-3):139–159, January 1991.
11. Brooks R.A., New approaches to robotics. “Science”, Vol.
253, No. 5025, September 1991, 1227–1232,
DOI: 10.1126/science.253.5025.1227.
12. Cao N., Lin C., Zhu Q., Lin Y., Teng X., Wen X., Voila:
Visual anomaly detection and monitoring with streaming
spatiotemporal data. IEEE Transactions on Visualization
and Computer Graphics, Vol. 24, No. 1, Jan 2018, 23–33,
DOI: 10.1109/TVCG.2017.2744419.
13.
Cetnarowicz K., Inteligencja wokół nas. Współdziałanie agen-
tów softwareowych, robotów, inteligentnych urządzeń, Vol.
15, rozdział M–agent, 137–167. Wydawnictwo EXIT, 2010.
14. DeLoach S., Wood M., Sparkman C., Multiagent systems
engineering. “International Journal of Software Engineer-
ing and Knowledge Engineering”, Vol. 11, No. 3, 2001,
231–258, DOI: 10.1142/S0218194001000542.
15.
Dumas B., Lalanne D., Oviatt S.. Human Machine Inter-
action, Vol. 5440 serii Lecture Notes in Computer Science,
rozdział Multimodal Interfaces: A Survey of Principles,
Models and Frameworks, 3–26, Springer, 2009.
16.
Jaimes A., Sebe N., Multimodal human–computer interac-
tion: A survey. “Computer Vision and Image Understand-
ing”, Vol. 108, No. 1–2, 2007, 116–134, Special Issue on
Vision for Human-Computer Interaction,
DOI: 10.1016/j.cviu.2006.10.019.
17. Kasprzak W., Rozpoznawanie obrazów i sygnałów mowy.
Ocyna Wydawnicza Politechniki Warszawskiej, 2009.
18.
Kornuta T., Zieliński C., Robot control system design
exemplied by multi-camera visual servoing, “Journal of
Intelligent & Robotic Systems”, Vol. 77, No. 3–4, 2013,
499–524, DOI: 10.1007/s10846-013-9883-x.
19.
Krzywicki D., Faber Ł., Dębski R., Concurrent agent-based
evolutionary computations as adaptive dataows. “Concur-
rency and Computation Practice and Experience”, Vol. 30,
No. 22, 2018, 1–29, DOI: 10.1002/cpe.4702.
20.
Krzywicki D., Turek W., Byrski A., Kisiel-Dorohinicki M.,
Massively concurrent agent-based evolutionary computing.
“Journal of Computational Science”, Vol. 11, 2015, 153–
162, DOI: 10.1016/j.jocs.2015.07.003.
21.
McKenna S., Staheli D., Fulcher C., Meyer M., Bubblenet:
A cyber security dashboard for visualizing patterns. Euro-
graphics Conference on Visualization (EuroVis), Vol. 35,
No. 3, June 2016, 281–290, DOI: 10.1111/cgf.12904.
22. Nwana H.S., Ndumu D.T., A Brief Introduction to Soft-
ware Agent Technology, 29–47. Springer Berlin Heidelberg,
Berlin, Heidelberg, 1998.
23.
Oviatt S., Schuller B., Cohen P., Sonntag D., Potamianos
G., Kruger A. (eds), The Handbook of Multimodal-Mul-
tisensor Interfaces, Vol. 1: Foundations, User Modeling,
and Common Modality Combinations. ACM Books Series.
Association for Computing Machinery (ACM), 2017.
24.
Padgham L., Winiko M., Developing Intelligent Agent
Systems: A Practical Guide. John Wiley & Sons, 2004.
25.
Pałka P., Wieloagentowe systemy decyzyjne. Ocyna
Wydawnicza Politechniki Warszawskiej, Warszawa 2019.
26.
Russell S., Norvig P., Articial Intelligence: A Modern
Approach. Prentice Hall, Upper Saddle River, N.J., 1995.
27.
Rybiński H., Ryzko D., Wiech P., Learning of Defaults
by Agents in a Distributed Multi-Agent System Environ-
ment, 197–213. Springer Berlin Heidelberg, Berlin, Hei-
delberg, 2013.
28.
Sacha K., Inżynieria oprogramowania. Wydawnictwo
Naukowe PWN, Warszawa 2010.
29.
Sethi A., Wills G., Expert-interviews led analysis of EEVi
– a model for eective visualization in cybersecurity. 2017
IEEE Symposium on Visualization for Cyber Security
(VizSec), Oct 2017, 1–8,
DOI: 10.1109/VIZSEC.2017.8062195.
30. Shiravi H., Shiravi A., Ghorbani A., A survey of visual-
ization systems for network security. IEEE Transactions
on Visualization and Computer Graphics, Vol. 18, No. 8,
2012, 1313–1329, DOI: 10.1109/TVCG.2011.144.
31.
Shoham Y., Agent-oriented programming. “Articial Intel-
ligence”, Vol. 60, No. 1, 1993, 51–92.
32.
Song B., Choi J., Choi S.-S., Song J., Visualization of
security event logs across multiple networks and its appli-
cation to a CSOC. “Cluster Computing”, 1–12, Nov 2017.
33.
Turk M., Multimodal interaction: A review. “Pattern Rec-
ognition Letters”, Vol. 36, 2014, 189–195,
DOI: 10.1016/j.patrec.2013.07.003.
34.
Wooldridge M., Multiagent systems. Ch. Intelligent
Agents, 27–77. MIT Press, Cambridge, MA, USA, 1999.
52
Agentowa struktura wielomodalnego interfejsu do Narodowej Platformy Cyberbezpieczeństwa, część 1.
POMIARY•AUTOMATYKA•ROBOTYKA NR 3/2019
35.
Zieliński C., Inteligencja wokół nas. Współdziałanie agen-
tów softwareowych, robotów, inteligentnych urządzeń,
wolumen 15, rozd. Formalne podejście do programowa-
nia robotów – struktura układu sterującego, 267–300,
EXIT, 2010.
36. Zieliński C., Figat M., Hexel R., Communication within
multi-FSM based robotic systems. “Journal of Intelligent
& Robotic Systems”, Vol. 93, No. 3–4, 2019, 787–805,
DOI: 10.1007/s10846-018-0869-6.
37.
Zieliński C., Kornuta T., Diagnostic requirements in
multi-robot systems. Korbicz J., Kowal M. (eds), Intel-
ligent Systems in Technical and Medical Diagnostics,
wolumen 230 serii Advances in Intelligent Systems and
Computing, 345–356. Springer, 2014.
38.
Zieliński C., Kornuta T., Winiarski T., A systematic
method of designing control systems for service and eld
robots. 19th IEEE International Conference on Methods
and Models in Automation and Robotics, MMAR, 1–14.
IEEE, 2014.
39.
Zieliński C., Stefańczyk M., Kornuta T., Figat M., Dudek
W., Szynkiewicz W., Kasprzak W., Figat J., Szlenk M.,
Winiarski T., Banachowicz K., Zielińska T., Tsardoulias
E.G., Symeonidis A.L., Psomopoulos F.E., Kintsakis
A.M., Mitkas P.A., Thallas A., Reppou SE., Karagian
-
nis G.T., Panayiotou K., Prunet V., Serrano M., Merlet
J.-P., Arampatzis S., Giokas A., Penteridis L., Trochidis
I., Daney D., Iturburu M., Variable structure robot control
systems: The RAPP approach. „Robotics and Autonomous
Systems”, Vol. 94, 2017, 226–244,
DOI: 10.1016/j.robot.2017.05.002.
40.
Zieliński C., Winiarski T., Kornuta T., Agent-based struc-
tures of robot systems. J. Kacprzyk, et al. (eds), Trends
in Advanced Intelligent Control, Optimization and Auto-
mation, Vol. 577 AISC, 493–502, 2017,
DOI: 10.1007/978-3-319-60699-6_48.
Abstract: This two part paper presents an interface to the National Cybersecurity Platform utilising
gestures and voice commands as the means of interaction between the operator and the platform.
Cyberspace and its underlying infrastructure are vulnerable to a broad range of risk stemming from
diverse cyber-threats. The main role of this interface is to support security analysts and operators
controlling visualisation of cyberspace events like incidents or cyber-attacks especially when
manipulating graphical information. Main visualization control modalities are gesture- and voice-based
commands. Thus the design of gesture recognition and speech-recognition modules is provided. The
speech module is also responsible for speaker identification in order to limit the access to trusted users
only, registered with the visualisation control system. This part of the paper focuses on the structure
and the activities of the interface, while the second part concentrates on the algorithms employed for
the recognition of: gestures, voice commands and speakers.
Keywords: National Cybersecurity Platform, image recognition, gesture recognition, speech recognition, speaker recognition
Agent Structure of Multimodal User Interface to the National
Cybersecurity Platform – Part 1
dr hab. inż. Wojciech Szynkiewicz
W.Szynkiewicz@elka.pw.edu.pl
ORCID: 0000-0001-6348-1129
Adiunkt w Instytucie Automatyki i Infor-
matyki Stosowanej na Wydziale Elektro-
niki i Technik Informacyjnych Politechniki
Warszawskiej. Zajmuje się zagadnieniami
sterowania i programowania robotów,
autonomicznej nawigacji, planowania
zadań i cyberbezpieczeństwa robotów.
Autor i współautor ponad 90 publikacji
w wymienionych obszarach badawczych.
prof. dr hab. inż. Włodzimierz Kasprzak
W.Kasprzak@elka.pw.edu.pl
ORCID: 0000-0002-4840-8860
Jest profesorem na Wydziale Elektroniki
i Technik Informacyjnych (WEiTI) Politech-
niki Warszawskiej (PW). W PW pracuje od
1997 r. Obecnie jest kierownikiem Zespołu
Percepcji Maszyn w IAiIS. Jego zaintere-
sowania badawcze obejmują algorytmy
i techniki automatycznej analizy obrazów
i sygnału mowy oraz metody rozpozna-
wania wzorców i uczenia maszynowego. Jest
autorem/współautorem ponad 160 publikacji
naukowych i członkiem towarzystw naukowych IEEE, IEEE CI Soc., IEEE SMC
Soc., TPO (IAPR), DAGM.
53
W. Kasprzak, W. Szynkiewicz, M. Stefańczyk, W. Dudek, M. Figat, M. Węgierek, D. Seredyński, C. Zieliński
mgr inż. Maciej Węgierek
wegierek.maciej@gmail.com
ORCID: 0000-0003-0779-255X
Jest doktorantem w Politechnice War-
szawskiej w Instytucie Automatyki i Infor-
matyki Stosowanej. Pracował w między-
narodowym grancie badawczym INCARE
(Active and Assisted Living JP Komisji Euro-
pejskiej). Jego zainteresowania naukowe
obejmują specykacje wymagań, struk-
tury oraz zasady działania sterowników
robotów.
prof. dr hab. inż. Cezary Zieliński
c.zielinski@ia.pw.edu.pl
ORCID: 0000-0001-7604-8834
Jest profesorem zwyczajnym na Wydziale
Elektroniki i Technik Informacyjnych (WEiTI)
Politechniki Warszawskiej (PW). W PW
pracuje od 1985 r., a od 2008 r. również
w Przemysłowym Instytucie Automatyki
i Pomiarów PIAP. W PW sprawował funkcje:
prodziekana ds. nauki i współpracy między-
narodowej WEiTI (2002–2005), zastępcy
dyrektora ds. naukowych Instytutu Auto-
matyki i Informatyki Stosowanej (IAiIS)
(2005–2008), dyrektora IAIS (2008–2016) oraz prodziekana ds. ogólnych WEiTI
(2016–). Od 1996 r. jest kierownikiem Zespołu Robotyki w IAiIS. Od 2007 r. jest
członkiem Komitetu Automatyki i Robotyki Polskiej Akademii Nauk. Jego zainte-
resowania badawcze koncentrują się na zagadnieniach związanych z programo-
waniem i sterowaniem robotów.
mgr inż. Maksym Figat
maksym_figat@pw.edu.pl
ORCID: 0000-0002-1898-0540
Absolwent Wydziału Matematyki i Nauk
Informacyjnych. W 2012 r. uzyskał tytuł inży-
niera, a w 2013 r. tytuł magistra (z wyróż-
nieniem) na specjalizacji „Projektowanie
systemów CAD/CAM”. Jest doktorantem na
Wydziale Elektroniki i Technik Informacyj-
nych Politechniki Warszawskiej (PW). W PW
pracuje od 2014 r. w projektach badawczych
krajowych i międzynarodowych, a od 2018 r.
na stanowisku asystenta badawczo-dydak-
tycznego. Jego zainteresowania badawcze koncentrują się na zagadnieniach
związanych z językami dziedzinowymi, specyfikacja systemów robotycz-
nych, automatyczna generacja kodu sterowników robotów na podstawie
formalnej specyfikacji.
mgr inż. Dawid Seredyński
dawid.seredynski@pw.edu.pl
ORCID: 0000-0003-2528-6335
Jest doktorantem na Wydziale Elektroniki
i Technik Informacyjnych (WEiTI) Politechniki
Warszawskiej (PW). W PW pracuje od 2013 r.
w projektach badawczych krajowych i mię-
dzynarodowych, a od 2018 r. na stanowisku
asystenta naukowo-dydaktycznego. Jego
zainteresowania badawcze obejmują zagad-
nienia związane z planowaniem i realizacja
złożonych zadań przez roboty usługowe.
mgr inż. Wojciech Dudek
wojciech.dudek@pw.edu.pl
ORCID: 0000-0001-5326-1034
Jest doktorantem i asystentem naukowym
w Politechnice Warszawskiej w Instytucie
Automatyki i Informatyki Stosowanej.
Pracował w międzynarodowych gran-
tach badawczych, m.in. RAPP (7PR Komisji
Europejskiej) i INCARE (Active and Assisted
Living JP Komisji Europejskiej). Jego zain-
teresowania naukowe obejmują systemy
sterowania usługowymi robotami mobil-
nymi, ich lokalizacje, nawigacje i harmoni-
zacje ich zadań.
mgr inż. Maciej Stefańczyk
maciej.stefanczyk@pw.edu.pl
ORCID: 0000-0001-9948-6319
Absolwent Wydziału Elektroniki i Technik
Informacyjnych Politechniki Warszawskiej.
W 2010 r. uzyskał tytuł inżyniera, w 2011 r.
tytuł magistra inżyniera, oba z wyróżnie-
niem. W 2011 r. rozpoczął prace nad dokto-
ratem dotyczącym zastosowania aktywnej
wizji wraz z systemami opartymi na bazie
wiedzy w systemie sterowania robotów. Od
2012 r. pracuje na Politechnice Warszaw-
skiej, początkowo jedynie przy realizacji
projektów, a obecnie na stanowisku asystenta. Główne zainteresowania
naukowe obejmują zastosowanie informacji wizyjnej zarówno w robotyce,
jak i systemach rozrywki komputerowej.
54
Agentowa struktura wielomodalnego interfejsu do Narodowej Platformy Cyberbezpieczeństwa, część 1.
POMIARY•AUTOMATYKA•ROBOTYKA NR 3/2019