universitatea transilvania din...

20
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

Upload: others

Post on 09-Sep-2019

5 views

Category:

Documents


0 download

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