TSM - Viziunea artificială în domenii non-automotive

Carmen Hosu - Software Engineer @ Centrul de Inginerie Bosch Cluj


Pe lângă senzorii precum RADAR, LiDAR și ultrasunete, viziunea artificială este intens folosită în ultimii douăzeci de ani în automotive, pentru a realiza partea de percepție. Aceasta este o tehnologie esențială în momentul dezvoltării sistemelor de confort și siguranță, atât pentru situații de parcare, cât și pentru scenarii de conducere pe care le regăsim în oraș, autostrăzi sau drumuri extra-urbane și rurale. Figura 1 ilustrează diverse funcții de conducere asistată și automată precum și nivelul de automatizare asociat acestora în funcție de gradul de complexitate și de necesitatea de a fi supervizate de către un șofer. Deși tehnologiile de percepție sunt dezvoltate anume pentru scenarii de trafic, metodele și tehnicile de viziune artificială folosite pentru conducerea automată sunt general valabile și complet reutilizabile și în alte domenii.

Practic, folosind metode de viziune artificială, transformăm o cameră (senzor video) dintr-un dispozitiv de făcut poze într-un dispozitiv de detecție și măsurare. Camera este transformată într-un dispozitiv de detecție pentru că din imaginile acesteia se identifică și se clasifică diverse obiecte din scenă. (În cazul conducerii automate este vorba de entități precum marcaje rutiere, mașini, pietoni, cicliști, animale adică orice tip de obiecte generice care obstrucționează traiectoria mașinii sau diferite semne de circulație, semafoare, elemente de infrastructură precum sensuri giratorii, balustrade laterale, marcaje ale zonelor aflate în construcție etc.) Camera devine un dispozitiv de măsurare deoarece pentru entitățile detectate se determină atribute 3D, trecându-se astfel din spațiul bidimensional al imaginii în spațiul tridimensional unde estimăm structura scenei (exemple din automotive: ecuația suprafeței drumului, ecuații 3D pentru marcaje rutiere sub forma unor linii poligonale sau ecuații polinomiale, mișcarea camerei - numita și odometrie, poziții 3D ale oricărui obiect detectat, distanțe longitudinale, distanțe laterale, înălțimile și lățimile obiectelor, viteze, accelerații etc.

Figura 1 - Exemple de funcții de conducere și parcare automată

Percepție 3D și inteligență artificială

Abordările algoritmice relevante, ca detecția de obiecte și segmentare semantică pe baza de rețele neuronale convoluționale (Figura 2), sunt intens studiate în ultimii cinci ani, existând în consecință numeroase resurse detaliate care ajută la studiul și înțelegerea acestora [1].

Figura 2 - Segmentare semantică folosind rețele neuronale convoluționale (deep learning) [4]

Figura 3 - Fluxul optic reprezentând mișcarea aparentă a pixelilor în imagine [4]

La fel de importante sunt metodele de reconstrucție 3D. Practic, pe baza mișcării aparente a pixelilor în imagine (Figura 3) și pe baza mișcării camerei (odometrie) se estimează structura 3D a scenei. Pentru resurse publice unde sunt prezentate mai detaliat astfel de metode facem referire înspre [2] si [3], dar considerăm că principiile de bază merită analizate intuitiv, într-o variantă simplificată și ușor de înțeles. Vom face acest lucru în continuare.

Figura 4 - Intuiția efectului de eliminare a distorsiunilor pentru o imagine cu o tablă de șah (folosită des în procesul de calibrare)

Figura 5 - Modelul de proiecție al perspectivei, valabil după eliminarea distorsiunilor. Punctul P marcat cu albastru în figură se proiectează pe imagine în pixelul marcat cu verde, unind punctul P cu centrul O de proiecție al camerei.

Orice cameră poate fi calibrată, astfel încât modul în care aceasta vizualizează o scenă 3D din lumea reală să se facă pe baza unui model de proiecție perspectivă. Această calibrare constă practic în determinarea coeficienților de distorsiune ai lentilelor, precum și a punctului principal și a distanțelor focale. Există numeroase aplicații publice care să efectueze acest proces de calibrare pentru orice cameră [7], [8], [9]. Pe baza coeficienților de distorsiune imaginea achiziționată de cameră se re-mapează pentru a elimina efectul acestora (Figura 4), iar pentru o imagine re-mapată modelul de proiecție perspectivă este valid (Figura 5). Acesta este un procedeu general valabil, independent de domeniul aplicațiilor pe care le rezolvăm cum metode de viziunea artificială. În cazul unei camere aflate în mișcare, folosind mișcarea pixelilor în imagine putem deduce reconstrucția 3D a scenei (Figura 6).

Figura 6 - Ecuațiile de reconstrucție 3D în cazul unei mișcări în lungul axei optice

Considerăm o vizualizare top-view a unei camere al cărei centru se deplasează cu ∆d din O în O', și proiecțiile p și p' ale unui punct P în cele două poziții succesive ale camerei. Coordonatele punctului P sunt (x,z) în sistemul de coordonate al camerei O, respectiv (x,z-∆d) în sistemul de coordonate al camerei O'. Folosind triunghiuri asemenea, se pot deduce ecuațiile (*) si (*). Observam că dacă u, u' (capetele unui vector de flux optic - vezi Figura 3) și ∆d* (mișcarea camerei) sunt cunoscute, atunci putem calcula valorile (x,z) reprezentând poziția 3D a acestuia. Ecuații similare se pot scrie pentru o proiecție laterală a scenei, rezultând și coordonata y a punctului P(x,y,z). Desigur că în realitate modeulul matematic se complică, mișcarea nu va fi pe o singură axă ci va fi compunerea unei rotații și a unei translații, iar determinarea punctului 3D trebuie să considere precizia cu care estimăm capetele vectorului de flux optic.

Exemple de domenii și aplicații conexe

Viziunea artificială și-a găsit aplicabilitatea în numeroase domenii. Pe lângă percepție pentru conducere automată, se aplică și pentru diverse mașini industriale, camere de supraveghere, drone, sub-marine, roboți care să navigheze în spații in care poziționarea pe bază de sateliți nu este disponibilă, endoscopie etc. Lista este foarte lungă deoarece camerele video sunt dispozitive relativ ieftine și practic, datorită noilor tehnologii de procesare, video orice dispozitiv care are atașată o cameră poate să devină un dispozitiv inteligent. În continuare prezentăm pe scurt niște aplicații noi inspirate din proiectele pe care le avem in Centrul de Inginerie din Cluj-Napoca.

Exemple de aplicații pentru trenuri inteligente

Unul dintre primele proiecte non-automotive din Centrul de Inginerie din Cluj-Napoca unde am folosit viziune artificială, proiect care totuși rămâne în sfera soluțiilor de mobilitate este legat de sisteme pentru trenuri și tramvaie. Principalul obiectiv pentru trenurile și tramvaiele autonome constă în operarea pe infrastructura existentă, evitarea accidentelor precum și optimizarea vitezei și fluidizarea traficului, ceea ce conduce la o mai bună regularitate și punctualitate a trenurilor. De asemenea energia consumată va fi mai scăzută.

Figura 7 - Sisteme de siguranta pentru tramvaie

Din perspectiva metodelor de viziune artificială folosite, chiar dacă obiecte precum mașini sau pietoni rămân în continuare relevante, problema devine diferită din două motive principale. În primul rând, detecția benzii de mers se reduce la detecția șinelor pe care trenul sau tramvaiul va merge, iar interpretarea dinamicii scenei este ghidată de aceasta traiectorie pe care trenul sau tramvaiul implicit o va urma (Figura 7). De asemenea, întreaga semnalizare feroviară este complet diferită de cea rutieră. Prin urmare, metode precum detecția și clasificarea semafoarelor sunt adaptate la noile cerințe (Figura 8). Dezvoltarea unor astfel e tehnologii permite progresul în toate domeniile cheie pentru viitorul tren autonom, incluzând detectarea obstacolelor, geolocalizare, supravegherea mediului și a trenurilor, servicii pentru clienți și gestionarea evenimentelor neașteptate.

Figura 8 - semafoare și tăblițe de semnalizare pentru scenarii feroviare

Provocări în instalarea camerelor inteligente pe motociclete

Tranziția de la camere inteligente pentru mașini la camere inteligente pentru motociclete este una relativ simplă. Considerând dinamica unei motociclete, cu siguranță vor apărea viteze și accelerații relativ mai mari, precum și o înclinație a motocicletei față de drum, mai mare decât în cazul unei mașini [6]. Astfel, toți algoritmii inteligenți trebuie ajustați în așa fel încât să se țină cont de aceste particularități (ex: detecție de obiecte când avem o înclinație laterală de 20-25 de grade).

Figura 9 - Senzori video folosiți cu scop de detecție și măsurare pentru motociclete

Sisteme multi-camera pentru utilaje industriale

Figura 10 - Imagine panoramică construită pe baza unui sistem de patru camere [5]

Un alt exemplu de reutilizare a tehnologiei automotive în alte domenii este legat de folosirea camerelor de parcare, pentru utilaje industriale. La fel ca și în cazul sistemelor de asistență la parcare, pe baza a patru camere poziționate pentru a acoperi 360 de grade în jurul utilajului, se creează o imagine panoramică top-view (Figura 10). Desigur că, având atât imaginile celor patru camere, cât și combinația panoramică a acestora, multitudinea de funcții pe care ni le putem imagina din detecțiile și măsurătorile care se pot face dintr-o astfel de reprezentare este foarte mare (ex: avertismente pentru a evita accidentele, vizualizări avansate), totul culminând în a avea hale industriale prin care navighează roboți industriali complet automatizați (Figura 11).

Figura 11 - Viziunea de a avea spații industriale prin care navighează roboți industriali automatizați

Concluzii

Deși metodele avansate de inteligență și viziune artificială sunt intens folosite în anumite domenii precum percepția pentru conducere automată, principiile teoretice pe care se bazează acestea sunt general valabile: orice dispozitiv căruia îi este atașată o cameră poate să devină un dispozitiv inteligent. În plus, aceste metode pot fi oricând utilizate off-line, pentru procesarea și extragerea de informație din imagini sau date video înregistrate anterior. Datorită creșterii puterii de calcul și a dezvoltării accentuate a domeniului, favorizată de investiții masive în cercetare și dezvoltare, oportunitatea de a dezvolta produse și tehnologii noi este mai mare ca niciodată.

Referințe

[1] https://www.deeplearning.ai/deep-learning-specialization/

[2] https://paperswithcode.com/task/depth-and-camera-motion

[3] https://towardsdatascience.com/structure-from-motion-311c0cb50e8d

[4] https://www.bosch.com/stories/mpc3-self-driving-car-camera/

[5] https://www.bosch-presse.de/pressportal/de/en/bosch-makes-driving-forklifts-even-safer-209088.html

[6] https://www.bosch.com/stories/motorcycle-safety-systems/

[7] Z Zhang. A Flexible New Technique for Camera Calibration. IEEE Transactions on Pattern Analysis and Machine Intelligence, 22(11):1330-1334, 2000

[8] J. Bouguet, Camera calibration toolbox for matlab

[9] Camera Calibration and 3D Reconstruction, OpenCV Documentation