universitatea transilvania din...
TRANSCRIPT
UNIVERSITATEA TRANSILVANIA DIN BRAŞOV
ROUTE 66, ROMANIA
Tip proiect PN-II-PT-PCCA-2013-4-2023
Contract nr. 240/2014
Titlul Asistent inteligent de navigare auto pentru dispozitive
mobile bazat pe urmărirea privirii
Acronim NAVIEYES
RAPORT ŞTIINŢIFIC ŞI TEHNIC
Etapa a II-a Module software de urmărire în timp real a mişcărilor
ochilor şi a mediului de rulare
2015
2
CUPRINS
REZUMAT ............................................................................................................................... 3
1. OBIECTIVELE ACTIVITĂŢII ..................................................................................... 3
1.1 Obiectivul general .................................................................................................... 3
1.2 Obiectivele specifice ................................................................................................ 3
1.2 Rezultate preconizate ............................................................................................... 3
2. DESCRIEREA ȘTIINȚIFICĂ ȘI TEHNICĂ ................................................................. 4
2.1 Modelarea matematică a urmăririi ochilor conducătorului auto (continuare
din ETAPA I) ........................................................................................................... 4
2.2 Conceperea, proiectarea și implementarea unui modul de analiză a ochilor și de
estimare a direcției de privire în timp real ............................................................... 6
2.3 Conceperea, proiectarea și dezvoltarea unui simulator imersiv de realitate virtuală
pentru testarea modulelor software de estimare a direcției de privire a ochilor ... 12
2.4 Testarea în realitate virtuală a modulelor software de estimare a direcției de
privire a ochilor ...................................................................................................... 13
2.5 Conceperea, proiectarea și implementarea unui modul de clasificare și estimare a
caracteristicilor dinamice a posibilelor obstacole .................................................. 15
2.6 Conceperea, proiectarea şi implementarea unui sistem de control şi comandă
inteligent ............................................................................................................... 18
2.7 Diseminarea rezultatelor prin participarea la conferințe în domeniu si publicarea
rezultatelor în reviste și jurnale relevante .............................................................. 19
2.8 Rezultatele activităţii ............................................................................................. 20
3. CONCLUZII. GRADUL REALIZARE A OBIECTIVELOR ..................................... 20
3
REZUMAT În prima parte a acestei etape s-au conceput şi dezvoltat modele matematice de determinare a
unghiului direcţiei capului (privirii) conducătorului auto cu luarea în considerare a vitezelor de
deplasare a autovehiculului şi obstacolului. Relaţiile de calcul obţinute au permis studiul variaţiilor
acestui unghi considerând diverse viteze. Sistemului NAVIEYES de urmărire video cu dispozitive
dual camera a mişcărilor capului (privirii) este compus din următoarele module: estimatorul privirii
(eye gaze estimator), orientarea capului şi nivelul de somnolenţă (drowsiness level); detectorul de
obstacole pe calea de rulare, benzi şi semene de circulaţie; API necesar pentru integrarea primelor 2
module. Acest sistem utilizează imagini multiple pentru descrierea diverselor comportări ale
conducătorului auto în raport cu sarcinile impuse de procesul de conducere a vehicului. Arhitectura
sistemului este reprezentată conform recomandărilor RUP (Rational Unified Process) şi specificaţiile
dezvoltate bazate UML (Unified Modeling Language) au fost generate din considerentele
următoarelor cinci perspective: utilizator (User View), sintaxă (Domain Vocabulary View), servisare
(Service View), agregare (Portal View) şi implementare (Deployment View). Pentru testarea în medii
virtuale a modulelor software dezvoltate s-a conceput şi dezvoltat un simulator auto compus din
următoarele componente hardware: 3 sisteme de calcul client pentru vizualizare, sistem de calcul
server pentru sincronizare in mediu virtual, senzori de urmărire a mișcării capului și posturii
conducătorului auto şi un subsistem auto pentru conducere în mediu imersiv. Modul de clasificare și
estimare a caracteristicilor dinamice a posibilelor obstacole permite detecţia, recunoaşterea şi
semnalizarea obstacolelor frontale bazat pe telefoane iPhone din gamele 5 (5, 5S, 5C) – 6 (6, 6plus). În
Volumul de date prelucrate, soluţiile tehnice precum şi numărul operaţiilor matematice a fost
optimizate în funcţie de constrângerile impuse de resursele hardware şi software folosite.
1. OBIECTIVE ŞI REZULTATE PRECONIZATE
1.1 Obiectivul general Modelarea matematică a geometriei şi cinematicii proceselor de estimare a urmăririi privirii
considerând urmărirea mişcărilor capului şi ochilor bazat pe imagini video monoculare (o singura
webcamera); modelele matematice stau la baza unui sistem de urmărire a privirii în real time (online).
Concepţia, proiectarea, dezvoltarea, testarea şi implementarea sistemelor de tip asistent inteligent de
navigare auto pentru dispozitive mobile bazat pe urmărirea privirii.
1.2 Obiective specifice a. Modelarea matematică a geometriei procesului de urmărire a capului (privirii) considerând
viteza de deplasare a vehiculului şi obstacolul din faţa vehiculului fix. b. Modelarea matematică a geometriei procesului de urmărire a capului (privirii) considerând
viteza de deplasare a vehiculului şi obstacolul din faţa vehiculului mobil. c. Conceperea, proiectarea și implementarea unui modul de analiză a ochilor și de estimare a
direcției de privire în timp real. d. Conceperea, proiectarea și dezvoltarea unui simulator imersiv de realitate virtuală pentru
testarea modulelor software de estimare a direcției de privire a ochilor e. Testarea în realitate virtuală a modulelor software de estimare a direcției de privire a ochilor. f. Conceperea, proiectarea și implementarea unui modul de clasificare și estimare a
caracteristicilor dinamice a posibilelor obstacole. g. Conceperea, proiectarea şi implementarea unui sistem de control şi comandă inteligent
1.3 Rezultate aşteptate a. Modele matematice ale urmăririi mişcărilor ochilor conducătorului auto.
b. Modulul software pentru urmărirea ochilor și estimarea direcției de privire a ochilor în timp
real.
c. Sistemul pentru testare a estimării direcției de privire a ochilor în realitate virtuală imersivă
d. Modul software de detecție a obstacolelor frontale.
e. Sistem de control si comandă inteligent (parţial).
4
2. DESCRIEREA ȘTIINȚIFICĂ ȘI TEHNICĂ
2.1 Modelarea matematică a urmăririi ochilor conducătorului auto (continuare
din ETAPA I) Pornind de la modelul geometric general de descriere a mişcărilor capului şi ochilor (privirii) în
raport cu dispozitivul dual camera (DC) şi mediul de rulare în condiţiile descris în ETAPA I, luând în
considerare aceleaşi ipoteze simplificatoare), în continuare, se descrie modelul geometrio-cinematic
pentru situaţii distincte de conducere a vehiculelor.
Variaţia unghiului direcţiei capului pentru cazul deplasării vehiculului cu viteza v spre un obtsacol fix
(fig. 1)
Unghiul deviaţiei capului la timpul curent t (fig. 11 din raportul Etapa I), conform modelului
geometric, se descrie cu relaţia,
∆ = 𝐷𝑃⃗⃗ ⃗⃗ ⃗ 𝐶𝑂⃗⃗⃗⃗ ⃗
|𝐷𝑃⃗⃗ ⃗⃗ ⃗||𝐶𝑂⃗⃗⃗⃗ ⃗|=
−xo cos(rcz) + yo sin(rcz) + xc
√(xo cos(rcz) − yo sin(rcz) + xc)2 + (xo sin(rcz) + (yo cos(rcz) + yc)2
Considerând că vehiculul se deplasează cu viteza constantă v în direcţia obiectului O fix şi direcţia
capului nu se modifică (fig. 1), unghiul direcţiei capului Δ, după timpul Δt, devine,
∆′ = 𝐷𝑃⃗⃗ ⃗⃗ ⃗ 𝐶′𝑂⃗⃗⃗⃗ ⃗⃗ ⃗
|𝐷𝑃⃗⃗ ⃗⃗ ⃗||𝐶′𝑂⃗⃗⃗⃗ ⃗⃗ ⃗|=
−xo cos(rcz) + yo sin(rcz) − x𝑐′
√(xo cos(rcz) − yo sin(rcz) + x𝑐′)2 + xo sin(rcz) + (yo cos(rcz) + y𝑐′)2
unde , xc’ = xc + v cos (a) Δt, yc’ = yc + v sin(a) Δt sunt coordonatele punctului de referinţă asociat
capului la timpul Δt. În fig. 2 se evidenţierea, pentru o perioadă de 1 s, variaţiile unghiului direcţiei
capului luând în considerare diferite viteze de de deplasare a vehiculului: v = 20 km/h, curba cu
albastru; v = 40 km/h, curba cu verde; v = 60 km/h, curba cu negru; v = 80 km/h, curba cu roşu.
Pentru aceste grafice s-au considerat următoarele date: xo = 300mm, yo = -8000mm, xc = 300 mm, yc
= 500 mm, rcz = 0o.
Variaţia unghiului direcţiei capului pentru cazul deplasării vehiculului cu viteza v spre un obtsacol
mobil cu viteza vo (fig. 3)
Pentru acest caz, unghiul deviaţiei direcţiei capului Δ, după timpul Δt, devine,
∆′ = 𝐷𝑃⃗⃗ ⃗⃗ ⃗ 𝐶′𝑂′⃗⃗ ⃗⃗ ⃗⃗ ⃗⃗
|𝐷𝑃⃗⃗ ⃗⃗ ⃗| |𝐶′𝑂′⃗⃗ ⃗⃗ ⃗⃗ ⃗⃗ |=
−xo′ cos(rcz) + yo′ sin(rcz) + x𝑐′)
√(xo′ cos(rcz) − yo′ sin(rcz) + x𝑐′)2 + xo′ sin(rcz) + (yo′ cos(rcz) + y𝑐′)2
unde , xc’ = xc + v cos(a) Δt, yc’ = yc + v sin(a) Δt, xo’ = xo + vo cos(b) Δt, yo’ = yo + vo sin(b) Δt
Fig. 1 Fig. 2
5
sunt coordonatele punctelor de referinţă asociate capului şi obstacolului la timpul Δt. În fig. 4 se
prezintă, pentru o perioadă de 1 s, variaţiile unghiului direcţiei capului (privirii) luând în considerare
diferite viteze de de deplasare a autovehiculului: v = 20 km/h, curba cu albastru; v = 40 km/h, curba cu
verde; v = 60 km/h, curba cu negru; v = 80 km/h, curba cu roşu şi viteza de deplasare a obiectului este
vo = - 20 km/h şi aceeaşi direcţie cu a vehiculului. Pentru aceste grafice s-au cunsiderat următoarele
date: xo = 300mm, yo = -8000mm, xc = 300 mm, yc = 500 mm, rcz = 0o. În fig. 5 şi 6 se prezintă
variaţiile unghiului direcţiei capului (privirii) păstrând vitezele autovehiculului din cazurile anterioare
dar viteza obstacolului are direcţii perpendiculare pe direcţia de deplsarea a autovehiculului.
Variaţia unghiului direcţiei privirii pentru cazul deplasării vehiculului cu viteza v spre un obtsacol fix
(fig. 7)
Unghiul deviaţiei direcţiei ochilor (privirii) Δ, după timpul Δt, devine,
Fig. 3 Fig. 4
Fig. 5 Fig. 6
6
∆′ = 𝐷𝑃⃗⃗ ⃗⃗ ⃗ 𝐶′𝑂⃗⃗⃗⃗⃗⃗ ⃗
|𝐷𝑃⃗⃗ ⃗⃗ ⃗||𝐶′𝑂⃗⃗⃗⃗⃗⃗ ⃗|=
= −xo cos(rcz + rpz) + yo sin(rczrcz + rpz) − xc′)
√(xo cos(rcz + rpz) − yo sin(rcz + rpz) + xc′)2 + xo sin(rcz + rpz) + (yo cos(rcz + rpz) + y𝑐′)2
unde , xc’ = xc + vx Δt, yc’ = yc + vy Δt sunt coordonatele punctului de referinţă asociat privirii la
timpul Δt.
Variaţia unghiului direcţiei ochilor (privirii) pentru cazul deplasării vehiculului cu viteza v spre un
obtsacol mobil cu viteza vo (fig. 8)
Unghiul deviaţiei direcţiei ochilor (privirii) Δ, după timpul Δt, devine,
∆′ = 𝐷𝑃⃗⃗ ⃗⃗ ⃗ 𝐶′𝑂′⃗⃗ ⃗⃗ ⃗⃗ ⃗⃗
|𝐷𝑃⃗⃗ ⃗⃗ ⃗| |𝐶′𝑂′⃗⃗ ⃗⃗ ⃗⃗ ⃗⃗ |=
= −xo′ cos(rcz + rpz) + yo′ sin(rcz + rpz) − xc′)
√(xo′ cos(rcz + rpz) − yo′ sin(rcz + rpz) + xc′)2 + xo′ sin(rcz + rpz) + (yo′ cos(rcz + rpz) + y𝑐′)2
unde , xc’ = xc + v cos(a) Δt, yc’ = yc + v sin(a) Δt, xo’ = xo + vo cos(b) Δt, yo’ = yo + vo sin(b) Δt sunt coordonatele punctelor de referinţă asociate privirii şi obiectului mobil la timpul Δt.
Relaţiile şi datele obţinute din studiile de mai sus au fost integrate în pachetele de evaluare a direcţiei
capului şi/sau privirii considerând şi vitezele de deplasare ale vehiculului şi/sau obstacolelor din
mediul de rulare.
2.2 Conceperea, proiectarea și implementarea unui modul de analiză a ochilor
și de estimare a direcției de privire în timp real Schema bloc a sistemului NAVIEYES (fig. 9) are la bază următoarle module: estimatorul
privirii (eye gaze estimator), orientarea capului şi nivelul de somnolenţă (drowsiness level); detector de
obstacole pe calea de rulare, benzi şi semne de circulaţie; API necesar pentru integrarea primelor 2
module.
Primul modul (eye gaze estimator) înregistrează şi analizează mişcările capului şi ochilor şi
oferă indicatori pentru a identifica intenţiile conducătorului auto şi pentru a se lua măsuri de evitare a
accidentelor imediate. Ieşirile acestui modul sunt vectorul privirii, vectorul orientării capului şi
PERCLOS (PERCentage of eye CLOSure). Acest modul procesează imaginile video curente primite
de la camera frontală şi implică o procedură de calibrare care operează înainte de începerea achiziţiei
de date.
Fig. 7 Fig. 8
7
Al doilea modul analizează mediul de trafic exterior şi generează 3 ieşiri: avertizarea de
coliziune frontală (FCW), detectarea semnalelor de trafic (TSD) şi avertizarea îndepărtării de bandă
(LDW). Acest modul primeşte imagini video de la camera din spate.
Al treilea modul integrează primele două module pentru a evidenţia cuantificabil dacă
conducătorul auto are atenţia concentrată asupra potenţialelor situaţii periculoase (ex. coliziune
Fig. 9
frontală sau schimbarea de bandă) luând în considerare ieşirile modulelor anterioare bazate pe valorile
vectorilor privirii şi capului. Sistemul NAVIEYES bazat pe dispozitive video mobile utilizează imagini multiple pentru
descrierea diverselor comportări ale conducătorului auto în raport cu sarcinile impuse de procesul de
conducere a autovehicului. Arhitectura acestui sistem este reprezentată conform recomandărilor RUP
(Rational Unified Process). Specificaţiile dezvoltate bazate UML (Unified Modeling Language) au
fost generate din considerentele următoarelor cinci perspective (fig. 10): utilizator (User View),
sintaxă (Domain Vocabulary View), servisare (Service View), agregare (Portal View) şi implementare
(Deployment View). Domain Vocabulary View descrie principalele abstracţii folosite ca abrevieri
şi/sau modelări şi comunicaţii. Service View descrie componentele de servisare care sunt conectate cu
aspectele dinamice ale sistemului; de exemplu, constrângerea fundamentală bazată pe arhitectura
orientată pe utilizator. Portal View descrie comportarea sistemului ca întreg; sunt achiziţionate în
paralel date cu diverse produse software ce implică comunicarea rezultatelor în timp real. Deployment
View are ca scop dezvoltarea de structuri/module potenţiale de anticipare a deciziilor necesare.
Fig. 10
User View descrie principalii actori care interacţionează în sistem în diferite situaţii concentrându-se
pe cerinţele impuse cu scopul clarificării rolului fiecăruia şi a dependenţelor dintre aceştia. Dintre
posibilele scenarii s-a adoptat variante ce implică pericolul iminent şi presupun înregistrarea de diverse
date (PERCLOS, estimări ale direcţiei privirii, sau posibile semene de trafic care nu produc alertă etc.),
inclusiv, din faza de precoliziune (fig. 11).
Scenariul la nivelul utilizatorului poate fi divizat (segmentat) la nivel funcţional al aplicaţiei şi
8
la nivel logic al procesării datelor. Primul nivel, al aplicaţiei (fig. 12) ţine cont de aspectele funcţionale
al modulelor software de procesare (Planning, Design, Eye estimation, Head orientation estimation,
Analysis). Al doilea nivel presupune focusarea pe structura algoritmilor de procesare a datelor (fig.
13). Modulele din această figură sunt structuri de cod independente cu seturi de parametri de intrare
ieşire definiţi determinist.
Fig. 11
Fig. 12
Fig. 13
9
Fig. 15
În fig. 14 se prezintă procesul de vizualizare a intrărilor şi ieşirilor pentru fiecare etapă de
calcul şi de analiză. La fiecare cuantă de timp, asumându-se calibrarea de la început, se analizează
zona capului conducătorului auto ce este inclusă într-un singur cadru video. În pasul următor de
detecţie se recunoaşte capul asociat cu un sistem de coordinate local. În continuare, se realizează
procesarea de date ce presupune operaṭii de transformare de coordinate în raport cu sistemul de
coordinate asociat dispozitivului mobil pe care se rulează aplicaţia. Folosind fiecare frame independent
şi informaţiile legate de frame-urile anterioare se determină estimarea care după validare este trimisă
pentru procesare la nivel superior.
Funcţia de detectare a feţei (capului) conducătorului auto este necesară atât în modulul
Calibration cât şi în modulul Head Orientation. Ca şi consecinţă al lucrului pe dspozitivul iPhone 6,
programarea a fost făcută în mediul XCode cu modulul OpenCV din librăria IOS. Astfel, după
asocierea butoanelor din Main.storyboard cu evenimentele corespondente şi asignarea UIImageView
pentru procesare, se va apela funcţia de detectare a feţei (fig. 15) bazată pe clasificatorul Haar
haarcascade_frontalface_ alt2. Acest algoritm a fost implementat bazat pe specificaţiile librăriei
EHCI. Astfel, pornind de la un frame dat, folosind funcţia asociată algoritmului Viola-Jones se va
determina poziţia feţei utilizatorului. Asociat acestei poziţii se va apela funcţia de determinare a
caracteristicilor (cvFindGoodFeatures) şi se va genera modelul 3D al feţei (capului) considerând
înălţimea şi lăţimea feţei determinată anterior. Astfel, se determină punctele 3D corespunzătoare
punctelor 2D ale imaginii din interiorul
cadrului de referinţă marcat cu roşu (fig. 16).
Pentru determinarea poziţiei iniţială estimată s-
a folosit algoritmul POSIT şi având la bază un
algoritm de urmărire sunt vizualizate punctele
peste frame-ul video. În vederea reducerii
erorilor cumulative s-a utilizat funcţia asociată
algoritmului RANSAC. În final, se obţine
vectorul orientării capului (privirii) care se
vizualizează ca în fig. 16 partea din dreapta.
Subsistemul de calibrare se activează la
deschiderea aplicaţiei şi asigură ca cele două
camere video (frontală şi din spate) sunt
poziţionate corect în vederea recepţionării de
cadre video realiste Aceasta implică o
comunicare interactivă (fig. 17) a
conducătorului auto cu modulul de calibrare
pentru poziţionarea step by step a dispozitivului
mobil în suportul de pe bordul vehiculului
Fig. 14
10
pentru a centra câmpurile vizuale ale camerei spate (marcat cu albastru, fig. 18) şi camerei faţă (marcat
cu roşu) pe centru scenei de traficului şi respectiv pe capul conducătorului auto. Funcţia de calibrarea
app “înceracă” să detecteze faţa conducătorului auto (fig. 17); dacă faţa nu este detectată se cere să se
repoziţioneze dispozitivul mobil având la bază senzorul giroscopic; dacă faţa este detectată utilizatorul
este ghidat să realizeze calibrarea prin fixarea poziţiilor extreme de orientare (stânga şi dreapta) a
capului (fig. 19); dacă calibrarea este validată se va iniţializa sistemul cu datele (PERCLOS - ul mediu,
poziţia GPS etc.) asociate acestei sesiuni de calibrare.
Fig. 16
Fig. 17
Fig. 18
11
Fig. 20
Fig. 21
Fig. 19
În fig. 20 se prezintă schema bloc a sistemului de asistare NAVIEYES în care se integrează
modulul de urmărire a privirii, prezentat mai sus, cu modulul de urmărire a traficului, realizat de
partenerul Route 66, prezentat în subcap. 2.5. În urma corelării celor două categorii de date obținute de
la cele două fluxuri video (de la camera frontală şi de la camera spate) vor estimate direcţiile privirii şi
vor fi generate alerte pentru atragerea atenției conducătorului auto.
În cadrul acestei etape s-au implementat două
aplicații rulate pe telefoane smartphone-uri Iphone 5S.
Comunicațiile au fost realizate cu ajutorul unei
conexiuni Bluetooth. Modulul Agregator sincronizează
informațiile legate de poziția capului (privirii)
conducătorului auto, așteptând informațiile legate de
situațiile din trafic. Astfel, prin procesarea informațiilor
se vor genera alerte de atenționare a conducătorului
auto. Modulul de urmărire a traficului este capabil să
identificate indicatoarele rutiere, depășirea benzii pe
care rulează vehiculul sau apropierea periculoasă față de
mașina prezentă în fața sa în timpul rulării, să
recunoască valorile de viteză înscrise pe indicatoarele
rutiere specifice; valorile identificate fiind între 15 și
140 km/h. Testele realizate, în primul caz, când privirea
conducătorului auto este în direcţia obiectului identificat
(vehicul din față), acesta va fi avertizat de apropierea
periculoasă față de vehiculul din fața. Practic, cu toate
că privirea conducătorului auto este pe direcţia
obstacolului este necesar alertarea acestuia pentru a
preîntâmpina apropierea excesivă față de autovehiculul
din față.
12
Fig. 22
În al doilea caz, privirea conducătorului auto nu este pe direcţia de deplasare a vehiculului,
fiind orientat către partea stângă a drumului și acesta începe să părăsească banda de deplasare (fig.
20). Se poate observa că vehiculul se apropie periculos de banda de deplasare din dreapta în timp ce
conducătorul auto are privirea orientată către partea stângă.
Suplimentar, urmăririi privirii conducătorului auto, s-au făcut studii pentru identificarea mişcărilor
corpului şi braţelor acestuia în timp real (30 de cadre pe secundă) folosind un senzor Kinect montat în
fața (fig. 21). Camera Kinect înregistrează mișcările, ascultă semnale vocale şi oferă biblioteci API
pentru aplicații .NET și C / C ++ care rulează pe platformele Windows. Astfel, sistemul NAVIEYES
poate să avertizeze conducătorul auto şi în cazul mişcărilor neadecvate ale corpului (inclusiv, braţelor).
2.3 Conceperea, proiectarea și dezvoltarea unui simulator imersiv pentru
testarea modulelor software de estimare a direcției de privire Sistemele de realitate virtuală imersive sunt actualmente cele mai performante sisteme de
vizualizare tridimensională, îmbunătăţind semnificativ modul în care utilizatorii pot vizualiza, naviga
şi interacţiona în mediile virtuale, în raport cu alte dispozitive. Comparativ cu sistemele de vizualizare
de tip Head Mounted Display, sistemele de vizualizare imersive oferă numeroase avantaje:
îmbunătăţirea senzaţiei de imersie, obţinerea unor imagini stereoscopice de înaltă fidelitate, câmp de
vizualizare larg, posibilitatea lucrului colaborativ. Arhitectura hardware a simulatorului auto imersiv
este prezentată în fig. 22. Acesta este compus din următoarele componente hardware: 3 sisteme de
calcul client pentru vizualizare, sistem de calcul server pentru sincronizare in mediu virtual, senzori de
urmărire a mișcării capului și posturii conducătorului auto, subsistem auto pentru conducere în mediu
imersiv.
Sistemul software este capabil să simuleze în timp real funcţionarea unui model al traficului de
rulare, să sincronizeze transmiterea informaţiilor ce descriu mediul virtual precum şi informaţiile
referitoare la interacţiunea cu sistemul de asistare NAVIEYES. Arhitectura software a sistemului
dezvoltat este bazată pe separarea evenimentelor şi informaţiilor în module distincte de: simulare
autoturism, administrarea echipamentelor de realitate virtuală (colectează şi administrează toate
evenimentele echipamentelor de interacţiune ale utilizatorului cu mediul virtual 3D), management
13
vizualizare mediul virtual (coordonează proiecţia şi navigarea în mediul virtual), sincronizarea
informaţiilor (corelează toate evenimentele referitoare la interacţiunea utilizatorului cu mediul virtual
3D actualizând în timp real acţiunile utilizatorului în mediul virtual).
Pentru realizarea aplicaţiei client de simulare în timp real utilizând arhitectura hardware s-au
implementat module software specializate de simulare dezvoltate în limbajul de programare C++.
Pentru comunicaţia în cadrul simulatorului auto au fost utilizate protocoalele TCP/IP şi UDP
(User Datagram Protocol). Diferenţa dintre aceste protocoale este că protocolul TCP/IP este sigur, dar
lent deoarece realizează verificarea primirii datelor de către client, iar protocolul UDP este rapid
deoarece nu mai realizează aceste verificări ale datelor, dar totodată fiabilitatea acestuia este mai
scăzută deoarece nu există siguranţa primirii lor de către client.
2.4 Testarea în realitate virtuală a modulelor software de estimare a direcției de
privire a ochilor Testarea în medii virtuale a modulelor software de asistare în faza de preavertizare
Schema bloc a sistemului pe care s-au testat module software dezvoltate este prezentată în fig.
23. În interiorul cabinei sistemului d etestare s-au montat două camere video, una poziționată pe partea
de sus a centrului display-ului LCD pentru monitorizarea conducătorului auto (camera 2) și cealaltă în
spate pe plafon, pentru urmărirea mediului virtual de trafic (camera 1).
Fig. 23
Scenariul de testare presupune conducerea unui vehicul în condiţii de trafic urbane. Aplicaţia a fost
setată să genereze sunetul de alarmă după 0,6 s după identificarea unei orientări neadecvate a capului
(privirii). Fiecare subiect va dezvolta o secvenţă de conducere în mediul de trafic virtual de 3 min. În
vederea determinării comportării modulelor software dezvoltate pe diverse tipuri de telefoane mobile
s-au dezvoltat experimente pe 10 tipuri de telefoane mobile (tab. 1).
În urma procesări datelor s-a evidenţiat superioritatea telefoanelor cu platforma Android care asigură
timpi de sub 1 s la trecerea de la o cameră la alta şi timpii de detectare a feţei sunt aprox. 0.2-0.3 s.
Astfel, s-au folosit pentru experimentele de performanţă telefoane Android (Samsung S3). Modulul de
calibrare a fost testat pe un vehicul real de 22 subiecţi. Rezultatele experimentelor evidenţiate în urma
centralizării datelor din chestionarele completate de toţi subiecţii evidenţiază, pe de-o parte, o bună
14
Fig. 25
Fig. 24
uzabilitate a versiunii iniţiale cuantificată cu nota 8,72 pe o scară de la 1 la 10 şi, pe de altă parte, o
comportare acceptabilă la calibrare, marcată cu nota 7,9 pe aceeaşi scară. În viitor, se impune pentru
teste şi integrarea imaginilor video de la camera din spate. În vederea evidenţierii deviaţiilor orientării privirii pentru trei cazuri distincte: întoarcerea
capului spre bancheta spate (Spate), orientarea privirii spre schimbătorul de viteze să ia telefonul şi să
facă un selfie (Selfie), să deschidă o aplicație a unei rețele de socializare (FB). Toate cele 3 situaţii s-
au repetat de trei ori fiecare în ordine aleatoare de către fiecare participant, singura condiție fiind ca
autovehiculul virtual să fie în mișcare. Fiecare experiment a durat in jur de 35 de minute. Datele
obţinute au fost prelucrate și centralizate sub forma unui tabel excel şi grafic (fig. 24). Pentru fiecare
din cele trei situaţii de distragere a atenției a conducătorului auto s-a calculat media de timp a glance-
ului, precum și o contorizare a greșelilor privind nerespectarea regulilor de circulație. În graficul din
fig. 24 se prezintă media glance-ului pentru
fiecare situaţie de distragere a atenției în
funcție de grupul de subiecţi. Astfel, se
observă o bună comportare în cazul grupului
care a folosit aplicația NAVIEYES pentru
toate cele trei situaţii de distragere a atenției
(curba cu orange; curba cu albastru este pentru
cazul când nu se foloseşte asistentul
NAVIEYES). Diferențe considerabile s-au
înregistrat în cazul Selfie, urmat de cazul FB
şi cele mai reduse diferenţe, pentru cazul
Spate.
Teste de planificare a traiectoriei
vehiculului în faza de postavertizare cu
deplasare autonomă
Mediul virtual dezvoltat utilizând
biblioteca V-REP este compus dintr-o
suprafață plană de 25 mp în mijlocul căreia se află o un vehicul virtual (fig. 24). În mediul virtual sunt
poziţioate două repere care reprezintă începutul și punctul de oprire al traiectoriei urmărită de
vehiculul virtual. Punctul de pornire corespunde cu centrul vehiculului virtual, iar punctul de oprire
este ţinta în care trebuie să ajungă vehiculul în regim autonom cu evitarea obstacolelor imediate (fig.
25). Modulul pentru detecția coliziunii dezvoltat în cadrul bibliotecii V-REP permite verificarea
interferenței dintre un set de primitive sau obiecte 3D importate in formatul STL. Pentru identificarea
coliziunii este utilizată o structură
arborescentă binară de obiecte de tip OBB
(Oriented Bounding Boxes) ce permite
identificarea rapidă a interferenţelor.
Simularea in V-REP a traiectoriei optime se
face utilizând una din librariile: Bullet
Dynamics Engine, ODE Dynamics Engine
sau simulare in timp real. Simularea este
configurată prin intermediul unui script
specific, care primeşte ca parametru de
intrare pasul de simulare. În urma evaluării
euristice a tuturor posibilităţilor de
soluţionare a problemei planificării traseului,
se stabileşte traseul cel mai scurt. Pornind de
la puncte asociate acestui traseu, ţinând cont
că vehiculul cu direcţie Ackerman poate
urmări numai linii drepte şi arce de cerc
racordate cu arce de clotoidă (fig. 26), se
generează o traiectorie posibil de urmărit de
15
Fig. 26
Fig. 27
autovehicul. Astfel după
stabilirea setului de puncte din
care este format traseul optim
se calculează parametrii
traiectoriei: punctul de
pornire, punctul de început al
clotoidei de intrare în viraj,
punctul de sfârşit al clotoidei
de intrare în viraj care
coincide cu cel de începutul al
arcului de cerc, centrul arcului
de cerc, punctul de sfârşit al
arcului de cerc şi de începutul
al clotoidei de ieşire din viraj,
punctul de sfârşit al clotoidei
de ieşire din viraj şi punctul de
sosire (fig. 26).
2.5 Conceperea, proiectarea și implementarea unui modul de clasificare și
estimare a caracteristicilor dinamice a posibilelor obstacole În fig. 27 se prezintă schema bloc a modulului conceput. Ieşirile modulului definite în cadrul
problemei de rezolvat presupune recunoaşterea obstacolelor frontale ce pot apărea în timpul conducerii
unui autovehicul trebuie, pe baza informaţiilor primite ca intrare, să ofere mai multe estimări necesare
evaluării riscului de coliziune privitor la: viteza autovehiculului, distanța până la obstacol, intervalul
între autovehicul şi obstacol (headway), timpul până la coliziune (time to collision). Este de remarcat
însă că viteza autovehiculului, ca valoare oferită la ieşire, se calculează direct pe baza informaţiilor
furnizate de senzorii telefonului (accelerometru, GPS). În cazul în care programul estimează o
coliziune posibilă, va fi emisă o alertă în scopul integrării cu programul de detecție a direcției de
privire a ochilor/orientării capului conducătorului auto.
Intrările primite în permanenţă de modul sunt următoarele: imaginea video, cadru cu cadru;
datele de la senzorii telefonului mobil; rezultatul modulului de calibrare a camerei video. Primele două
intrări reprezintă date distincte şi nu necesită detalieri suplimentare. Cea de-a treia intrare este legată
de metodele de calibrare a camerei video, necesare pentru a putea aprecia corect atât poziţia
autovehiculului propriu cât şi cea a obiectelor aflate în câmpul vizual al camerei video, raportate la
scena de trafic, au fost detaliate în raportul Etapei I a. Astfel, în urma acestor operaţiuni, se obţin
rezultate ca: punctul de fugă (folosit pentru determinarea regiunilor din imagini care vor fi procesate
16
în vederea extragerii de informaţii utile); înălţimea la care camera video este poziţionată faţă de
suprafaţa de rulare (pentru a transforma măsurătorile realizate în spaţiul imaginilor – în pixeli – în
valori metrice, relevante sistemului de alarmă. Calibrarea camerei este necesară ori de câte ori poziţia
dispozitivului video în scena de trafic este schimbată.
Modele matematice teoretice detaliate în raportul Etapei I a sunt implementate în aplicaţia
practică în situaţia de faţă.
În fig. 28 se prezintă schema bloc a modulului de recunoaştere şi semnalizare a obstacolelor
frontale. Modulul a fost conceput să performeze ţinând cont de posibilităţile tehnice generale ale
telefoanelor iPhone din gamele 5 (5, 5S, 5C) – 6 (6, 6plus). Drept urmare, volumul de date prelucrate,
soluţiile tehnice precum şi numărul operaţiilor matematice a fost redus şi optimizat în funcţie de aceste
constrângeri. O atenţie specială s-a acordat limitării complexităţii cauzate de toate aceste operaţiuni. O
primă optimizare a fost realizată privitor la preluarea fluxului video. Aşa cum este definită problema,
se doreşte evitarea obstacolelor întâlnite în scena de trafic, o condiţie esenţială fiind ca cele mobile să
nu se îndrepte spre autovehicul.
Din acest punct de vedere, este clar că nu are rost ca imaginea să fie procesată atunci când
autovehiculul se deplasează foarte puţin sau deloc, prin deplasare semnificativă înţelegându-se
parcurgerea distanţei de cel puţin 0,5 ... 1 m. Totodată, la o rată de 30 de cadre pe secundă, procesarea
cadru cu cadru ar solicita foarte mult telefonul. Prin urmare, s-a adoptat soluţia de a corela validarea
cadrelor video cu distanţa parcursă de autovehicul. Concret, este preluat spre prelucrare câte un cadru
la fiecare 0,75 m parcurşi de autovehicul, conform datelor furnizate de GPS şi accelerometru. În cazul
în care autovehiculul staţionează, sunt prelucrate 1 din 10 cadre.
Cadrul este apoi analizat în mai mulţi paşi, conform schemei de principiu a modulului de
recunoaştere şi semnalizare a obstacolelor frontale. Pentru a uşura înţelegerea sa, se va prezenta în cele
ce urmează la modul general, în capitolele raportului extins fiind trataţi în detaliu fiecare.
Cu ajutorul unui detector care foloseşte codurile LBP şi clasificatorul în cascadă Adaboost se
detectează posibilele obstacole (autoturisme, autocamioane, pietoni etc.), apoi fiecare detecţie este
validată cu ajutorul unui clasificator, realizat pe baza HOG şi/sau de reţelelor neurale. În cazul în care
rezultatul este pozitiv, urmează o etapă de urmărire a obiectului respectiv, realizată cu ajutorul filtrului
Kalman calculat recursiv pe baza valorilor anterioare.
Concomitent are loc corelarea obstacolului cu detaliile geometrice ale scenei de trafic pentru a
verifica dacă acesta se află în faţa autovehiculului şi există un pericol potenţial de coliziune (se află în
aşa numita collision path). În cazul în care acest lucru este posibil, se calculează variabilele de ieşire:
intervalul între autovehicul şi obstacol (headway), timpul până la impact (time to collision), distanţa
până la obstacol, viteza autovehicului. De remarcat faptul că primele două valori sunt calculate pe baza
ultimelor două. În cazul în care timpul până la impact se regăseşte sub o anumită valoare (2,5
secunde), modulul emite o indicaţie de avertizare.
Algoritmul a fost implementat în C++, folosind componente din biblioteca OpenCV 2.4.9. S-a
realizat, de asemenea o interfaţă grafică pentru a putea vizualiza rezultatele calculate de modul. Codul
a fost compilat cu ajutorul aplicaţiei Xcode, oferită de Apple, şi a fost instalat şi testat ulterior pe
telefoane iPhone 5, iPhone 5C, iPhone 5S, iPhone 6 şi iPhone 6 PLUS.
După etapa de detecţie urmează recunoaşterea unde sunt eliminate toate sau aproape toate
detecţiile false. Obstacolele detectate sunt încadrate în categorii pe baza proprietăţilor care s-au descris
cu histograma orientării gradienţilor (HOG). Antrenarea clasificatorului se face folosind o bază de date
cu texturi, cuprinzând circa 30.000 de texturi pozitive şi un număr similar de texturi negative, de data
aceasta alese manual dintr-o zonă de interes delimitată dinainte, în care să prezinte interes detecţia
obstacolelor. Zona de interes se află dispusă în jurul punctului de fugă şi trebuie stabilită în funcţie de
probabilitatea de a găsi obstacole în acel perimetru.
Faza de urmărire a obstacolului recunoscut asigură o continuitate a detecţiei şi recunoaşterii
pentru cazurile în care obiectul este „pierdut” pentru unul sau mai multe cadre, nemaifiind necesară
parcurgerea paşilor anteriori de detecţie şi clasificare. În plus, urmărirea obstacolului pe mai multe
cadre succesive elimină în principiu ultimele detecţii false. Urmărirea obiectului se face cu ajutorul
filtrului Kalman.
Testarea în trafic s-a făcut având camera video calibrată în prealabil şi un anumit set de
17
obstacole de detectat: pietoni aflaţi în traversare (priviţi din lateral, deplasându-se spre stânga sau spre
dreapta); automobile aflate pe banda de mers (privite din spate); autocamioane aflate pe banda de mers
(privite din spate).
Fig. 27
18
Pentru aceasta au fost realizate în prealabil trei baze de date, înregistrând filmări în trafic în
diferite condiţii de mediu şi în toate anotimpurile şi extrăgând din acestea texturi cu obstacolele de
detectat şi recunoscut. Texturile negative au fost extrase din aceleaşi filmări. Prin testări repetate în
trafic s-a putut determina numărul suficient de texturi necesare unei reprezentări cât mai diversificate,
aşa încât să se obţină recunoaşteri cu o rată de succes peste 90%.
Pe baza texturilor au fost generate detectoare şi clasificatoare folosind tehnicile descrise în
capitolele anterioare. Tot experimental s-a dedus numărul optim de stagii ale clasificatorului Adaboost
pentru fiecare situaţie în parte, precum şi numărul de cadre după care urmărirea începe sau încetează
(relativ la rata de succes sau necesitatea de a detecta obstacolele mai devreme în detrimentul
acurateței).
O etapă importantă, care a necesitat mai mult timp de îmbunătăţire, a fost rafinarea valorilor de
ieşire: viteza autovehiculului, de care depind şi intervalul şi timpul până la coliziune precum şi distanţa
până la obstacol, în funcţie de parametrii fizici variabili, ce nu pot fi cuantificaţi cu exactitate. Pentru
control, aceste măsurători au fost comparate în permanenţă cu un set independent, obţinut prin metode
calibrate (vitezometru, ruletă sau marcaj standard).
O atenţie specială s-a acordat gradului de folosire a procesoarelor telefoanelor mobile, precum
şi ratei de descărcare a bateriei, necesar a fi cât mai reduse. În mod ideal, în cursul rulării algoritmului
telefonul mobil se află permanent conectat la sursa de tensiune a autovehiculului.
În tab. 2 se prezintă rezultatele testelor de detecţie şi recunoaştere a obstacolelor efectuate în
condiţii reale de trafic.
Tab. 2
OBSTACOL RECUNOAŞTERE DETECŢII FALSE OBSERVAŢII
Pietoni 98% Cel mult 1 la 2 ore
Pe timp de zi Automobile 95% Cel mult 1 la 3 ore
Autocamioane 90% Cel mult 1 la 1 oră
2.6 Conceperea, proiectarea şi implementarea unui sistem de control şi
comandă inteligent După avertizarea sonoră sau vizuală a conducătorului auto de către sistemul NAVIEYES că
direcţia privirii nu este spre obstacolul identificat, în plus, se poate acţiona asupra sistemului de frânare
şi/sau se poate trece automat vehiculul într-un regim de rulare autonom ce permite ocolirea
obstacolului. În continuare, se prezintă un model de conducere inteligent implementat pe un
miniautovehicul de tip Traxxas Rustler VXL.
În fig. 29 se prezintă sistemul de compus dintr-un ESC (Electronic Speed Controller), un motor
fără perii pentru propulsie, și un servomotor pentru direcție. Semnalul de acţionare este semnal puls
care este modulat în lățime numit PWM (Pulse Width Modulation). Sistemul de comandă şi control are
la bază microcontrolerul Arduino Mega 2560 ce dispune de 8 KB de memorie pentru stocarea
temporare. Pentru stocarea datelor legate de traiectorie se utilizează un card de memorie. Servomotorul
de propulsie este alimentat direct de la acumulator şi controlerul este alimentat de un regulator de
tensiune LM7805. Această tensiune trebuie menţinută pentru generarea unui semnal PWM precis,
deoarece la o frecvență de 12 kHz, dacă scade tensiunea, se obţin deviaţii mărite de la traiectoria
teoretică.
Modelul teoretic implementat presupune în primă fază determinarea traseului de rulare a
vehiculului, pornind de la datele oferite de sistemul asistent NAVIEYES (direcţia obstacolului,
distanţa până la obstacol, viteza vehiculului, viteza obstacolului etc.). Astfel, prin intermediul unui
program de planificare dedicat se obţin parametrii traseului ce descriu toţi parametrii entităţilor
geometrice care definesc seturile de tip linie, arc de clotoidă şi arc de cerc (fig. 25).
Pentru generarea traiectoriei ţinând cont de vitezele şi timpii de deplasare şi virare s-a conceput
şi dezvoltat un subprogram în limbajul de programare C++ pentru calculul parametrilor necesari pentru
comanda vehiculului autonom. Parametrii de intrare pentru acest subprogram sunt: punctelor
semnificative din care este format traseul, unghiul de pornire şi cel de sosire, lungimile clotoidelor de
intrare şi ieşire din viraj care sunt egale, raza şi unghiul de rotaţie corespunzătoare arcului de cerc,
19
viteza maximă a vehiculului pe parcursul drumului drept şi viteza maximă de virare. Se calculează
lungimile segmentelor de dreaptă şi a arcului de cerc şi apoi se determină viteza unghiulară necesară
pentru efectuarea virajelor şi timpii corespunzători parcurgerii fiecărei componente a traseului (fig.
30), parametrii ce reprezintă datele de ieşire ale subprogramului şi care sunt folosite pentru comanda
vehiculului autonom astfel încât eroarea de urmărire a căii stabilite să fie minimă.
Programarea microcontrolerul Arduino MEGA 2560 pentru urmărirea traiectoriei impuse s-a
făcut cu programul Flowcode. În vederea acordării parametrilor de comandă asociaţi componentelor
hardware cu parametrii reali, preliminar, s-a realizat calibrarea celor două motoare de propulsie şi de
direcţie (fig. 31). Testele efectuate ce au impus urmărirea traiectoriilor programate (fig. 32) au
evidenţiat abateri minore la deplasările în linie dreaptă şi erori mai mari (aprox. 50 mm) la cele pe linii
curbe.
2.7 Rezultate obţinute
Ca urmare a dezvoltării activităţilor prevăzute în contract pentru perioada de derulare a etapei a II
- a proiectului s-au obţinut următoarele rezultate:
a. Modele matematic al urmăririi mişcărilor ochilor conducătorului auto.
b. Modulul software pentru urmărirea ochilor și estimarea direcției de privire a ochilor în timp
real.
Fig. 30 Fig 31
Fig. 29
20
c. Sistemul pentru testare a estimării direcției de privire a ochilor în realitate virtuală imersivă.
d. Modul software de detecție a obstacolelor frontale.
e. Sistem de control si comanda inteligent.
3. CONCLUZII. GRADUL DE REALIZARE A OBIECTIVELOR
Parcurgerea activiăţilor programate în cadrul etapei a II-a, pe lângă rezultatele obţinute şi parţial
diseminate, a condus şi la următoarele aspecte calitative şi de contribuţii proprii:
- studiul variaţiei unghiului direcţiei capului pentru cazul deplasării vehiculului cu o viteză dată
spre un obtsacol fix;
- studiul variaţiei unghiului direcţiei capului pentru cazul deplasării vehiculului cu o viteză dată
spre un obtsacol mobil cu viteză măsurată.
- modele matematice pentru determinare a unghiului direcţiei privirii pentru cazul deplasării
vehiculului cu viteza v spre un obtsacol fix/mobil;
- concepţia şi dezvoltarea unui sistem modular ierarhizat de analiză a mişcărilor capului
(privirii);
- concepţia şi dezvoltarea unui sistem modular ierarhizat de clasificare şi estimare a
caracteristicilor dinamice ale obstacolelor din mediul de rulare a autovehiculelor;
- concepţia şi dezvoltarea unui sistem integrator de urmărire a mişcărilor capului (privirii)
concomitenet cu urmărirea obstacolelor din trafic şi avertizarea conducătorului auto;
- conceperea, proiectarea și dezvoltarea unui simulator imersiv pentru testarea modulelor
software de estimare a direcției capului şi privirii;
- conceperea, proiectarea și implementarea pe un miniautovehicul electric a unui sistem de
comandă şi control pentru conducerea autovehiculului în regim autonom în faza postavertizare;
- testarea pachetelor software de urmărire a direcţiei de orientare a capului (privirii) pe diverse
telefoane dual camera;
- testarea în medii virtuale a modulelor software de urmărire a direcţiei de orientare a capului
(privirii) în condiţii diverse de distragere a atenţiei conducătorului auto;
- teste de planificare a traiectoriei virtuale vehiculului în faza de postavertizare cu deplasare
autonomă;
- teste experimentale pentru determinarea numărului optim de stagii ale clasificatorului Adaboost
pentru fiecare situaţie în parte, precum şi numărul de cadre după care începe urmărirea;
- testarea modulelor software de detecţie şi recunoaştere a obstacolelor efectuate în condiţii reale
de trafic;
- testarea sistemului de comandă şi control pentru situaţii de ocolire de obsatcole.
În concluzie, prin cercetările realizate şi, mai ales, prin rezultatele obţinute obiectivele propuse au
fost îndeplinite în integralitate. Acest raport a fost elaborat având la bază rapoartele detaliate elaborate
de membrii echipelor coordonatorului şi partenerului.
Fig. 32