Am avut parte de o discuție interesantă și plină de observații interesante despre industria automotive și condusul autonom. Alături de noi au fost:
Cătălin Golban - Computer Vision Head of Department @ Bosch ,
Ovidiu Mățan: Vă invit să realizați o scurtă introducere personală
Cătălin Golban: Lucrez la Bosch în proiecte de Automated Driving. Mă ocup de partea de Computer Vision și procesare de date.
Paul Stănescu: Dezvoltăm soluții Android pentru mașini de tip Renault. Sunt Solutions Architect pe Android Automative, dar firma P3 are o istorie de 25 de ani. P3 oferă momentan consultanță în domeniul Automotive, al bateriilor și al tehnologiilor aero-spațiale.
Cătălin, spune-ne mai multe despre echipa de AI pe care o coordonezi.
Cătălin Golban: Noi dezvoltăm de zece ani deja tehnologii pe bază de percepție video pentru conducerea automată. Suntem norocoși în sensul în care tehnologiile se tot schimbă și ne permit să nu ne plictisim. Acum zece ani lucram la algoritmi de procesare 3D, adică din imagini reconstruim 3D și scene de trafic pentru a putea determina spațiul liber din fața mașinii sau obiecte/mașini/pietoni. Atunci era ceva exotic să lucrezi la algoritmi pentru mașini, mai ales în contextul unei piețe de software development din Cluj unde se făcea web și mobile. Atunci AI însemna cu totul altceva și era greu să găsești pe cineva care știe C++ sau embeddings. AI-ul a început să fie folosit în Automotive prin 2015. Puteam face rețele neuronale, Deep Learning, dar totul supervizat. Trebuia făcut labelling la date, apoi antrenate rețelele neuronale care se rezolvau înainte cu algoritmi clasici de procesare. Am combinat metodele clasice cu aceste oportunități AI. Acum, vedem că vine un alt val și mai interesant unde AI-ul înseamnă altceva prin prisma faptului că apar rețele mai mari, metode noi. Toți se uită la LLMs și ChatGPT, dar sunt și Large Vision Models sau modele ce combină input multimodal. Practic, noile metode AI funcționează bine nu doar pe text, ci și pe date video, aspect care va aduce un plus de performanță. În primul val, o echipă adnota la nivel de pixel sau obiect, iar pe baza acestor adnotări se antrenau rețelele neuronale. În al doilea val, avem Self-Supervised Learning, adică nu mai trebuie să facem atât de multe adnotări, iar metodele și tehnicile proliferează constant. Dacă ar fi să ții pasul doar cu noile tehnici, nu ai mai apuca să faci nimic. Am 150 de colegi care se ocupă de metode inteligente de gestionare a bazelor de date cu AI. Momentan, trebuie să reprocesăm câțiva ani de date într-o săptămână. Gândiți-vă ce înseamnă acest lucru din perspectiva infrastructurii de calcul și a gradului de paralelizare pe care trebuie să îl ai în cloud pentru a procesa.
Când a luat avânt evoluția Android?
Paul Stănescu: În 2016 a început totul. Aș dori să clarific două concepte ca să ne asigurăm că nu ne încurcăm - Android Automotive și Android Auto. Sunt diferite, dar la un anumit punct se pot întrepătrunde. Android Auto este ceva familiar pentru posesorii de telefoane cu Android. Android Auto nu face altceva decât să aducă mașina în ecosistemul telefonului, începând cu Android 10. Practic, există aplicații ce pot rula în timp ce conduci. Android Automotive este sistemul de operare Android asupra căruia s-a făcut o extensie pentru a putea rula în mașină. Aici ne referim la diverse funcționalități de siguranță care să sporească securitatea șoferului. Noi lucrăm cu cât mai multe semnale care vin integrate în sistemul de operare, dar fiecare business își dorește ceva customizat. De aici, rezultă crearea de proprietăți specifice fiecărui vendor. Noi lucrăm cu Level 1, Level 2, parcări, procesări de date, cu sau fără librării de la client.
Dacă am o mașină compatibilă cu Android, pot, ca programator să îmi pun softul pe ea?
Paul Stănescu: Dacă creatorii softului au făcut lucrurile corect, nu vei putea. Certificarea Android se primește dacă dovedești că nu permiți să se întâmple așa ceva. Avem varianta GAS (Google Automotive Services) care vizează telefoanele și care permite utilizatorului să își instaleze programe din Google Store. În ce privește non-GAS, vin soluțiile custom de Play Store similare cu cele dezvoltate de Huawei.
Cătălin Golban: Mi-a plăcut ce ai spus și anume că aveți parteneri cu care vă integrați pe partea de parking. Mașina de afară are un ICU specializat , produs de Bosch. Ca posibilități următoare, dacă ne uităm la faptul că avem un sistem de operare în mașină, sistemul Infotainment în cazul de față, cu un computer de vehicul destul de puternic care poate să facă treaba, ne putem gândi că nu e nevoie de un ICU anume pentru parking, ci de un software care face parcare automată. Poate la un moment dat, vor veni niște funcționalități de parcare direct din Store. În Automotive începe să se decupleze partea de hardware de cea de software.
Veniți cu procesoarele voastre sau vă bazați pe ce este în mașină?
Cătălin Golban: Poți să ai procesorul tău sau te poți integra pe un ICU care nu e al tău.
Cât durează ca o funcționalitate să ajungă în producție? Care este procesul de validare?
Cătălin Golban: Poți pune o funcționalitate în producție într-un an sau într-o jumătate de an, dar poți și în doi ani. Totul depinde foarte mult de gradul de maturitate a sistemului cu care integrezi. Contează unde rulează, ce sistem de operare există, ce sistem de achiziție de la senzori ai. Cât despre procesul de validare, noi testăm inițial la nivel de development cu teste automate și/sau de performanță de unde rezultă niște KPIs și corner cases. Facem câteva iterații. În paralel, avem niște test drives pentru anduranță și HIL runs (hardware in the loop), adică punem un hardware și facem streaming de input pentru a vedea cum se comportă. Folosim date înregistrate anterior. La final, se fac teste mai mari, la nivel de sistem, când toate funcționalitățile sunt integrate atât la noi, cât și la client. Nu se fac teste pe drumuri publice până nu se obțin anumite certificări de securitate. O funcționalitate nouă care este un add-on la un sistem existent are nevoie de șase luni pentru a fi realizat, dar un sistem complet poate dura între 3-5 ani.
(Întrebare din public) În prezent, când se achiziționează vehicule, există subscripții la anumite servicii sau funcționalități la care utilizatorii pot renunța. Din această perspectivă, până unde se poate merge cu tipul de funcționalități ce pot fi activate/dezactivate printr-o subscripție?
Cătălin Golban: Dacă ne referim la BMW, acolo se activează sau se dezactivează niște funcții. Cred că s-ar putea face la fel și cu un software update, dar trebuie să te asiguri că, atunci când se instalează sau se dezinstalează o funcționalitate, nu apar erori. Ar trebui să ne asigurăm că o funcționalitate, cum e cea de securitate rămâne într-o stare consistentă. Nu știu dacă cineva ar risca să lase așa ceva în mâna unui utilizator.
Paul Stănescu: Noi avem o funcționalitate de genul acesta în producție. Cel pentru care l-am implementat a spus că ar dori să fie cinci ani gratuit, apoi să plătească clientul. Lucrăm acum la o soluție in-house pe care să o putem extinde doar pentru GAS, cea care are Google Automotive Services, deoarece acestea sunt conectate by default, printr-un SIM la Internet și atunci poți controla prin cloud dacă cineva are subscripție sau nu. Restul funcționalităților se bazează pe niște capabilități care nu sunt dinamice. De exemplu, nu poți avea aer condiționat într-o zi, apoi să nu ai. Pentru proiectul Renault am avut nevoie de doi ani să implementăm totul de la zero. Au lucrat 100 de oameni la implementare fără a-i calcula pe cei care fac teste în vehicul. Pentru produsele in-house avem partener pe QUALCOMM în domeniul senzorilor și plăcilor. Alți producători vin cu hardware-ul lor, iar noi trebuie să ne integrăm. Avem mulți parteneri din Germania, unul din SUA.
CPU-ul este similar cu cel de pe telefoane?
Paul Stănescu: Am avut recent un proiect unde trebuia să asigurăm o funcționare bună cu o memorie foarte scăzută, de exemplu, 3GB RAM cu un timp de răspuns de sub 1 secundă pentru fiecare aplicație. A fost o provocare. Momentan, am atins undeva la 780 de milisecunde. Provocarea vine din faptul că unele lucruri trebuie afișate imediat - presiunea la roți, problemele din zona de impact etc.
Ce integrări strategice aveți? Știu că la un moment dat era vorba de o integrare cu Microsoft.
Cătălin Golban: Colaborăm cu mai mulți furnizori hardware, dar nu pot să dau nume. În ce privește partea de ADAS, Microsoft este furnizorul preferat, dar avem și alți furnizori din zona de cloud. Fiecare furnizor de hardware vine cu particularitățile sale. Unii au partea de memorie mai aproape de accelerator sau de unitățile de calcul. E o luptă pentru costul produsului și nu mă surprinde că se dorește scăderea costurilor.
(Întrebare din public) Datele sunt foarte importante. Cum faceți să stocați datele din producție și cum faceți troubleshooting? Cum obțineți metricile rezultate din uzul real, din mașină?
Cătălin Golban: Avem module care țin loguri ce pot fi citite. Se citește cu un debugger zona de memorie, apoi mașina este chemată. Asta este varianta offline. Există apoi varianta conectată, dar acolo nu poți trimite câte date vrei tu, ci trebuie să trimiți date compacte și trebuie să faci o selecție a ceea ce vei trimite. Mai există și o variantă mai generoasă ce permite să faci field-data collection, adică, dacă întâlnești un corner case la partea de video reception, colectezi imaginea, niște frame-uri înainte și după acel moment, dar și niște metadate care sunt folosite pentru reantrenarea rețelelor neuronale. Este posibil ca, pe baza acestui corner case, să mai cauți date similare sau să creezi date sintetice cu scenarii similare.
Paul Stănescu: Perspectiva noastră este un pic diferită. Avem produse conectate la Internet, iar acolo avem soluția in-house pentru colectare de date care folosește servere din Europa pentru a respecta GDPR-ul. Acolo urmărim loguri, dar și lucruri precum număr de utilizatori din mașină, funcționalități utilizate, deoarece un proces poate fi omorât pentru că nu mai are memorie și trebuie să înțelegem de ce s-a întâmplat lucrul acela. Apoi avem scenariul în care nu avem conectivitate la Internet, unde nu putem colecta date, iar pentru asta putem rezolva doar la dealer, deoarece este nevoie de un stick semnat care extrage logurile, dar acestea sunt limitate. Când ajung rapoartele la noi, acestea sunt destul de detaliate și știm care e gradul de reproducere.
Când vom ajunge la Level 4?
Cătălin Golban: Level 4 înseamnă mașini echipate cu mulți senzori care pot conduce autonom într-un perimetru foarte bine delimitat. Nu este o tehnologie care să scaleze, adică pe care să o aibă fiecare acasă. În San Francisco există zeci de robotaxies care se plimbă, care pot fi comandate cu telefonul, care mai și greșesc. Sunt operatori care intră remote pentru a le debloca. E multă tehnologie. Cred că mai mult se consumă, decât se câștigă ca business. Pentru a scala, prima chestie pe care trebuie să o facem este Level 3. Ca industrie, dorim să extindem Level 3 la mașinile low și medium, nu doar la premium, poate cu senzori mai ieftini. O altă direcție este să creștem viteza la care operează, adică să facem highway pilot. Trebuie să creștem și availability, adică dacă sistemul îți spune că în 10 secunde trebuie să preiei controlul trebuie să o faci. O direcție mai nouă și interesantă pe care vedem că o cere piața este de a avea Level 2 sau Level 2+ în orașe. E greu de estimat când vom avea Level 4. Noi avem mașini Level 4 cu sisteme foarte scumpe, cu teleoperations, dar când facem Level 4 trebuie să ne gândim și la localizarea geografică. Nu vrem Level 4 doar în San Francisco, ci și în Cluj unde sunt alte particularități, alte scenarii. Mă gândesc că am putea avea Level 4 pe una din străzile pe care vii frecvent acasă. Pe aceea, o poți învăța bine. Există scenarii în care sistemul face matching între hartă și ceea ce preia de la senzori. Harta devine un fel de redundanță pentru senzori, iar Level 3 se face deja pe baza HD Mapping. Pe baza acestui stack de mapping, putem detecta hazarde, modificări. Când ne referim la hărți, ne referim și la short-term maps, adică hărți unde marcăm un eveniment precum săparea unei gropi. Noi integrăm camerele mobile, nu și camerele fixe. Mai avem și un proiect de tip Smart City în Oradea unde folosim o cameră de-a noastră 5G și detectăm parcări fără senzori, apoi facem o hartă a zonelor unde s-au ocupat parcările. Cred că în zece ani vom avea vreo zece camere cu surround view pe mașinile de serie, iar asta ne va permite nu doar conducere automată, ci multe alte funcționalități, mai ales în zona de procesare.
Cum va evolua Androidul la voi? Se poate schimba platforma?
Paul Stănescu: În momentul de față, înțelegerea cu Google este că putem face update din 2 în 2 versiuni. Am începute cu Android 9, apoi am ieșit cu Android 10, iar acum avem un proiect pe Android 14. Nu știu cum va suporta partea de hardware aceste modificări. Google încearcă să decupleze cât mai mult layerele, astfel încât de la o versiune anume să poată spune că nu se mai poate oferi suport pentru o versiune de Android, deoarece vehiculul este prea vechi. Poți customiza o soluție foarte mult, astfel încât clientul să nu își mai dea seama că este un Android în spate. Clientul poate avea parteneriat Android Automotive Services. La fel, nu poți obține Android Auto și Apple Card fără un parteneriat.
Există și pe motocicletă?
Paul Stănescu: Avem un concept pentru o companie, dar nu suntem în faza de producție. Am finalizat doar conceptul în care ecranul este rotund. Partea de design a fost o provocare, câtă vreme trebuie să arăți toate informațiile utile pentru client, dar să și respecți standarde Automotive precum a avea mereu navigația în bară.
Mai doriți să adăugați ceva?
Cătălin Golban: Cred că, pe viitor, impactul AI va fi puternic. Ne putem gândi la scenarii în care rețelele neuronale își iau input de la mai mulți senzori, nu doar de la unul singur. Ne putem gândi la antrenament efectuat nu pe date adnotate, ci în stil self supervised. Industria Automotive integrează descoperirile academice recente în implementările sale. Noi trebuie să mai și rescriem produse pentru a nu fi luați prin surprindere de revoluția tehnologică care se întâmplă în jurul nostru. O altă tendință ce merită investigată este partea de conectivitate. Multe mașini conectate în cloud, funcționând în zone 5G nu vor mai permite utilizatorului să își dea seama unde s-a făcut procesarea, în cloud sau local. Nu se va ști dacă o funcționalitate rulează datorită unei conectivități sau a unui feature de la bordul mașinii. Este important să ai un parteneriat cu sfera educațională pentru a beneficia de acces la ultimele metode care își au originea în mediul academic. Mă refer, în special la partea de cercetare fundamentală și teoretică. Noi, companiile, trebuie să mergem spre universități și să le spunem unde vedem că se îndreaptă industria, astfel încât studenții să fie instruiți și ghidați înspre direcții bune, relevante.
Paul Stănescu: Nu știm exact cum vor evolua lucrurile. Nu știm dacă vom avea software-defined vehicle/car. Avem un proiect intern unde încercăm să rulăm pe același controler și clusterul, și partea de HMI, apoi încercăm să comunicăm între cele două procese.