Am dezbătut alături de invitații de la panel provocările și evoluția autonomous driving:
Alexandru Cornea - Capability Lead & Center of Excellence Lead @ Accenture Industrial Software Solutions
Alexandru Condurache - Development Engineer @ Bosch (Stuttgart Area)
Răzvan Itu: Sunt șef de lucrări la Universitatea Tehnică din Cluj-Napoca. Anul trecut, am susținut teza de doctorat în domeniul Computer Science cu o temă legată de computer vision & self-driving cars, Machine Learning, calibrarea camerelor, acestea fiind domeniile mele de interes în care am avut proiecte de cercetare. Doresc să mulțumesc pe această cale colectivului de cercetare, domnului profesor Radu Dănescu și domnului profesor Nedevschi.
Alexandru Condurache: Am terminat Facultatea de Electronică a Universității din București. Apoi, am făcut doctoratul și post-doctoratul în imagistică medicală, în Germania. Sunt conferențiar universitar în Germania, iar după post-doctorat m-am angajat la Bosch unde mă ocup de conducerea autonomă (analiză de semnal) și implementarea acesteia prin intermediul inteligenței artificiale.
Alexandru Cornea: Lucrez la Accenture de zece ani unde conduc capabilitatea de application development, având proiecte pe conducerea autonomă și nu numai. Noi suntem system integrators. Noi nu dezvoltăm un produs anume, dar lucrăm cu clienți ce au abordări diferite. În ultima perioadă, am fost implicat într-un proiect de control al mașinii dintr-un centru de operare, dar și unul de taxi și curierat realizat de o mașină autonomă.
Ovidiu Mățan: Putem avea mașini autonome având doar camera video?
Alexandru Condurache: Teoretic, este posibil. Oamenii care conduc mașini folosesc în principal vederea. Practic, este mai complicat din cauza limitărilor pe care le au senzorii în anumite situații și a redundanței care trebuie implementată pentru ca produsul să fie acceptat de mai mulți clienți. Dacă se strică camera, este bine să ai și alte tipuri de senzori, iar, în afară de asta, senzorii actuali, video au limitări în condiții de ceață intensă. Dacă dorești să conduci autonom într-un loc unde este tot timpul vreme bună, poți folosi doar camera video. În caz contrar, va fi nevoie de mai mulți senzori, iar, dacă vrei să faci acest sistem cu adevărat sigur, e nevoie de senzori ce au modalități diferite de achiziționare a datelor. Momentan, este uzual ca mașina autonomă să aibă și senzori RADAR, LiDAR sau ultrasonici.
Funcționează toți senzorii simultan sau există senzori primari?
Alexandru Condurache: Toți senzorii funcționează simultan. Fiecare senzor are părțile lui bune și părțile lui rele. Dacă avem o singură cameră, există limitări în vizualizarea 3D a imaginii. Poate fi neclar dacă obiectul vine spre mine sau dacă se îndepărtează de mine, ceea ce înseamnă că nu vom putea opri în siguranță. Un om face reconstrucția 3D a scenei natural cu doi ochi. Senzorul video ne dă textura, senzorul LiDAR se ocupă de structura scenei, iar senzorul RADAR ne oferă informații de tip semnal și în condiții adverse, dar ne dă în mod nativ și informație despre viteza radială a obiectului.
Răzvan Itu : Așa cum a spus și Alexandru, senzorii au avantaje și dezavantaje, iar o implementare bună are nevoie de cât mai multe camere. Vremea nefavorabilă este în detrimentul senzorilor. Dacă un senzor amplasat pe lunetă, de exemplu, este acoperit de noroi sau praf, datele pot fi ușor compromise. Camera poate fi anulată ușor. Dacă ne raportăm la industrie, Bosch și Tesla folosesc un număr mare de camere. Dacă nu mă înșel, Tesla folosește opt camere cu senzori de tip RADAR. Este posibil ca senzorii LiDAR să fie folosiți din ce în ce mai mult. Acum câțiva ani, un senzor LiDAR avea prețul unei mașini. Lucrurile evoluează și este posibil să scadă costul acestora.
Alexandru Condurache: Acum câțiva ani, era imposibil de integrat senzori LiDAR deoarece erau foarte mari, dar momentan, aceștia sunt mai reduși ca dimensiuni.
Am văzut și senzori LiDAR pentru IoT.
Alexandru Cornea: Când vorbim de mașini autonome, responsabilitatea nu mai stă pe umerii proprietarului mașinii sau a celui care stă la volan, ci pe umerii celui care a dezvoltat software-ul acelei mașini. Prin urmare, redundanța este foarte importantă și nimeni nu va vrea ca tehnologia să se bazeze doar pe ceea ce putem interpreta prin imagini. Mai mult, standardele de siguranță nu vor permite folosirea unui senzor exclusiv.
Oamenii se așteaptă ca mașina autonomă să fie perfectă comparativ cu un șofer uman care nu este perfect.
Alexandru Condurache: Dar ce înseamnă șoferul perfect? O mașină autonomă va funcționa după reguli. Aceasta nu va încălca regulile de circulație, dar nu va putea salva vieți neapărat. Putem să ne gândim la acest subiect ca la o problemă de etică. Să zicem că în fața unei mașini autonome sare un copil, mașina nu are timp să frâneze suficient, iar din sens opus vine o altă mașină fiind linie continuă. Ce înseamnă condus perfect în această situație? Să salveze viața copilului? Scopul este să înțelegem că, dacă există o regulă care spune că linia continuă nu trebuie trecută, mașina autonomă o va respecta. Mașina nu va conduce perfect, ci va conduce conform regulilor. Nu avem un cadru legal ce reglementează mașinile autonome, dar, ca societate, trebuie să ne gândim ce așteptări avem de la o astfel de tehnologie. Cadrul legal e pe cale să apară în diverse țări.
Din perspectiva unui programator, ce înseamnă să scrii cod pentru o mașină autonomă? Care vor fi cerințele sistemului de operare? Mă gândesc că trebuie să fie ceva real-time? Ce tehnologii se folosesc?
Alexandru Condurache: E nevoie de un sistem real-time. E nevoie de un hardware care să permită luarea de decizii rapid, într-un interval de timp de nivelul secundelor sau milisecundelor. De foarte multe ori se folosește C++, iar o tendință este Python prin intermediul frameworkurilor folosite pentru dezvoltarea algoritmilor în contextul folosirii AI sau Machine Learning.
Ce folosiți la nivel de comunicare pe partea de conducere autonomă? Folosiți C++ și real-time Linux?
Alexandru Cornea: Majoritatea software-ului este dezvoltat în C++. Folosim algoritmică.
Ce trebuie să știe un programator care lucrează pe proiecte de conducere autonomă?
Răzvan Itu: Trebuie să cunoască algoritmică, procesare de imagini, C++. O parte din lucrurile de bază au fost scrise foarte bine și nu merită reinventate. Avem tooluri interne pe care le îmbunătățim. Încercăm să limităm folosirea de API-uri externe. Le scriem noi pe cât posibil, de la achiziția de imagini la procesare. Am folosit OpenCV ca un tool de debugging pentru a putea vizualiza mai ușor rezultatele. Am implementat ecuațiile și parametri pe cont propriu. Am folosit atât Windows, cât și Linux, Ubuntu din comoditate. Facem sincronizare pe GitHub. În ceea ce privește sincronizarea cu rețelele neuronale, aici se merge pe Python și librării existente (TensorFlow, PyTorch). Am lucrat cu C++ pentru code base (achiziție și procesare de imagini) și cu rețele neuronale pentru predicții în Python. Am creat un server local de Python, trimiteam imaginea, se efectua predicția și primeam imaginea înapoi. Ulterior, am găsit o cale de a exporta modelul antrenat în Python.
Cât de mult contează algoritmica și cât de mult contează Machine Learning? Prin algoritm înțelegem algoritmul clasic ce ia decizii, nu un sistem care învață.
Alexandru Condurache: Machine Learning este un termen care descrie tot algoritmi pentru soluții la probleme de decizie. Dihotomia care există momentan este cea dintre algoritmica clasică Machine Learning și Deep Learning. Metodele bazate pe Deep Learning și rețele neuronale aduc un plus de calitate în zona de decizie. Percepția are și ea o componentă decizională. Există o problemă generală a soluțiilor bazate pe Deep Learning, anume faptul că nu îți dai seama care este motivul pentru care a fost luată decizia. Uneori, setul de date de antrenament conține o eroare. Pe de altă parte, metodele clasice nu îți oferă acuratețea necesară pentru a implementa o mașină ce funcționează autonom.
Când vom putea face un drum până la mare în care să dormim până la destinație?
Alexandru Cornea: Următorul deadline în conducerea autonomă este 2027-2028, dar eu cred că vom depăși acest deadline pentru a putea ajunge la mare, deși dormim tot drumul. Avem încercări legislative subțiri. Suntem doar la nivelul 2 și neoficial la 3. Când ajungem la nivelul 4 vom mai avea nevoie de 5-10 ani pentru autonomia totală (un drum complet nepregătit pe orice autostradă). Anul 2030 nu este fezabil pentru acest lucru.
Cum vezi contradicția dintre algoritmică și Machine Learning?
Răzvan Itu : Nu putem avea una fără alta. Fiecare se pretează la anumite taskuri. Cred că fuziunea este mai bună.
Cât de importante sunt hărțile de mare precizie?
Răzvan Itu: Nu le-am folosit foarte mult. Aici avem două direcții: fie folosim hărți existente, fie le creăm cartografiind mediul din jur. Noi am mers pe varianta a doua. Configurația drumului se poate schimba ușor. Hărțile ar trebui să fie un ghid nu o regulă.
Alexandru Condurache: Sunt mai multe tipuri de hărți, iar cele care ajută cel mai mult sunt hărțile care sunt actualizate online. Fiecare mașină ce poate înregistra scena înconjurătoare, poate trimite în cloud informațiile, iar acestea sunt actualizate cu fiecare mașină care trece prin acel loc.
Cum va influența tehnologia 5G dezvoltarea de mașini autonome?
Alexandru Condurache: Lucrurile merg mână în mână. 5G va permite interacțiunea între mașini.
Răzvan Itu: Fiecare producător va încerca să își impună un anumit standard pentru comunicare și formare de pachete. Probabil că vor colabora pentru elaborarea unui standard comun.
Cum vă testați produsele fizic? Am înțeles că se va realiza la Cluj un circuit pentru testarea mașinilor autonome.
Răzvan Itu: Nu sunt implicat în proiectul de realizare a acestui circuit, dar existența lui va aduce un mare avantaj. Momentan, avem un vehicul de test care e folosit pentru achiziția de imagini sau date senzoriale. Eu am lucrat pe partea de percepție și analiză a datelor, nu pe cea de control sau acționare a vehiculului. Pentru proiectele mele, am folosit orice vehicul pe care am montat camere. Am mers inclusiv pe varianta simplă, cu un telefon montat în spatele parbrizului. Am analizat datele offline în laborator. Un circuit ne-ar permite testarea acționării și a controlului vehiculului.
Alexandru Condurache: Unii algoritmi sunt puși în mașină. Avem unele vehicule speciale de test. Pentru unele aplicații mașina merge în trafic; în alte situații se folosesc zone speciale de test. Noi avem un circuit de testare închis.
Când vom avea o mașină precum Knight Rider?
Alexandru Condurache: Mi-e greu să speculez. Elon Musk spune că o vom avea anul viitor. Există pe piață mașini cu sisteme parțiale de conducere autonomă. Nivelele 1 și 2 sunt deja aici.
Răzvan Itu: Mai degrabă vom vedea automatizare care deservește anumite domenii (tramvaie, trenuri). Aici scenariile de test sunt destul de clare. De exemplu, un tramvai va merge pe aceeași rută. Aici putem vedea automatizare completă mai repede. Există anumite țări, anumite comunități unde oamenii nu sunt nevoiți să iasă din acel cartier. Acolo, cel mai probabil, vor fi folosite taxiuri autonome.
de Monica Chiș