Soluții open-source pentru AI și robotică

Accelerarea dezvoltării de aplicații inteligente

by gabi

Soluții open-source pentru AI și robotică: accelerarea dezvoltării de aplicații inteligente — © AdobeStock_969206908 – Tria Technologies

Inteligența artificială (AI) avansează rapid în toate domeniile, de la utilizarea casnică la aplicații industriale, impulsionată de cercetarea intensă în învățarea profundă. Un avantaj major al acestui progres este disponibilitatea soluțiilor open-source pentru AI și robotică. Inginerii pot accesa modele pre-antrenate și hardware de înaltă performanță pentru a crea prototipuri și aplicații reale într-un timp record. Aceste resurse open-source facilitează lansarea rapidă a unor sisteme inteligente, reducând costurile și accelerând dezvoltarea în robotică și inteligență artificială.

Tehnologii AI

Unele dintre tehnologiile AI provin din domenii la care nu ne-am fi putut gândi. Modelele de difuzie, de exemplu, au fost impulsionate de aplicațiile de redare fotorealistă. Dar, datorită flexibilității multora dintre aceste modele, este ușor să se găsească noi utilizări pentru ele, cum ar fi furnizarea de aproximări ale fluxurilor complexe de fluide mai eficiente din punct de vedere al calculului, dar precise. Această flexibilitate permite ca sistemele să fie accesibile unei game mult mai largi de utilizatori și le sporește capacitatea de reacție în anumite medii.

Un exemplu cu relevanță directă pentru controlul embedded și robotică este oferit de un concurs lansat de Google pe Kaggle în 2023. Compania dorea să găsească modele AI care să poată converti în text semnele efectuate cu mâna și degetele surprinse de camere. Pentru a-i ajuta pe concurenți să își construiască soluțiile, Google a încărcat un set de date conținând trei milioane de caractere din limbajul american al semnelor (ASL – American Sign Language).

Proiectul Kaggle ASL

Una dintre intențiile din spatele proiectului Kaggle ASL a fost de a facilita interacțiunea cu dispozitive precum telefoanele inteligente, multe dintre acestea având acceleratoare integrate care acceptă limbaje AI utilizate pe scară largă, precum Tensorflow Lite și PyTorch. Comunicarea prin mișcarea mâinilor și a degetelor este doar un aspect al ASL. Limbajul folosește diferite forme ale mâinii și degetelor pentru a simboliza litere distincte, dar este frecvent utilizat pentru a comunica nume, adrese, numere de telefon și informații similare. Experimentele bazate pe această metodă care folosește limbajul american al semnelor (ASL) au demonstrat că viteza de scriere a mesajelor este mult mai mare decât cea tradițională de introducere a textelor utilizând tastatura unui telefon sau a unei tablete.

Aceleași tehnici pot fi utilizate pentru semnalizarea vehiculelor robotizate într-un mediu de lucru zgomotos. Aceasta poate fi o situație în care controlul vocal nu este practic și în care operatorii nu pot interacționa cu o tastatură sau cu o interfață cu ecran tactil din cauza murdăriei, a prafului și a contaminării cu grăsime.

Semnele făcute cu mâna oferă un mecanism de control al acestor vehicule simplu și eficient. O combinație de software (cu sursă deschisă) și hardware poate asigura suportul AI necesar pentru interpretarea semnalelor făcute cu mâna în fața unei camere și pentru transmiterea comenzilor către sistemele de mișcare ale unui robot.

Datorită proiectelor care includ setul de date al Google pentru ASL, materialul sursă este, de obicei, accesibil. Utilizatorii au opțiunea de a prelua modele derivate din aceste provocări sau de a utiliza seturile de date pentru a antrena modele cu arhitecturi adecvate pentru cazurile lor de utilizare, atât timp cât materialele sunt furnizate sub formă de software gratuit sau open-source.

Instrumente hardware și software

Instrumente precum platforma software unificată Vitis de la AMD facilitează accesul atât la performanța de procesare, cât și la mediile software care pot găzdui acest cod open-source, scris, în general, în TensorFlow Lite, PyTorch sau alte medii deschise de dezvoltare AI. Platforma Vitis permite inginerilor să dezvolte cod de aplicație C/C++, precum și blocuri IP care vizează sistemul multiprocesor pe cip (MPSoC) al AMD.

Soluția poate fi implementată, ulterior, cu ajutorul computerelor pe o singură placă (SBC) standard sau personalizate, cum ar fi Tria ZUBoard 1CG, care se bazează pe sistemul MPSoC Zynq UltraScale+. Aceste dispozitive de înaltă performanță combină procesoare multicore cu arhitectură Arm Cortex-A cu o serie de celule logice programabile. Hardware-ul rezultat nu numai că oferă performanța necesară pentru a rula aplicații de robotică care au nevoie de suport AI, dar încorporează, de asemenea, o logică programabilă foarte potrivită pentru implementarea algoritmilor sofisticați de control al motoarelor.

Placa de dezvoltare Tria ZUBoard 1CG bazată pe sistemul MPSoC Zynq UltraScale+ — © Tria Technologies

Suportul pentru controlul roboților este, în prezent, accesibil și datorită sistemului ROS (Robot Operating System), creat inițial de un grup de la Universitatea Stanford, dar care este gestionat acum de fundația OSRF (Open Source Robotics Foundation).

ROS2

Odată cu lansarea ROS2 au apărut modificări ale capabilităților care permit ca acest software să devină o alegere viabilă pentru controlul industrial și operarea dronelor comerciale, datorită includerii unor funcții pentru securitate și pentru procesarea mișcărilor în timp real. AMD a portat codul ROS2 pe sistemul de operare PetaLinux care rulează pe hardware-ul sistemului MPSoC cu scopul de a facilita integrarea acestuia de către clienți.

Cu ROS2, dezvoltatorii construiesc aplicații robotice utilizând grafuri ușor de înțeles aranjate într-un flux editor-abonat, un model de proiectare care se utilizează frecvent în sistemele de control industriale și auto. În aceste grafuri, furnizorii de date și de intrări sunt tratați ca noduri editor (publisher nodes) care transmit informații pe teme specifice nodurilor abonat (subscriber nodes), responsabile de procesarea acestora.

© AdobeStock_662670375 – Tria Technologies

Structura permite integrarea ușoară a modulelor necesare pentru asamblarea unui sistem robotic funcțional. Camerele conectate la interfețele MIPI standard pot transmite date către noduri care rulează software de procesare a imaginilor, cum ar fi OpenCV capabil să ajusteze luminozitatea, contrastul și să efectueze alte funcții de îmbunătățire, pentru a furniza o succesiune de cadre de înaltă calitate către un model de clasificare a imaginilor. Acest model publică, apoi, rezultate sub formă de text care sunt utilizate de software-ul de control al mișcării utilizat de robot.

În cazul aplicației bazate pe ASL, tehnica de scriere prin mișcarea mâinilor și a degetelor spune robotului să se întoarcă, să avanseze și să se oprească. Odată asamblată, compilată și descărcată pe robot, aplicația nu trebuie privită ca fiind fixă (sau permanentă), aceasta putând fi adaptată sau actualizată ulterior.

Optimizarea sistemelor

Ritmul rapid de dezvoltare a software-ului open-source pentru AI și controlul roboților oferă dezvoltatorilor posibilitatea de a-și optimiza sistemele. Demonstrația Tria a unui robot controlat de ASL a utilizat inițial un model de clasificare a semnelor mâinii bazat pe arhitectura VGG-16 și antrenat pe setul de date de la Google. În urmă cu un deceniu, cercetătorii din cadrul Grupului de Geometrie Vizuală de la Universitatea din Oxford au dezvoltat această rețea neurală convoluțională profundă, foarte apreciată, pentru a oferi o precizie bună într-o gamă largă de sarcini de recunoaștere a imaginilor. Principalul avantaj al modelului VGG-16 constă în stiva sa de straturi convoluționale urmate de o serie de straturi “max-pooling” de dimensiuni reduse, dar cu o adâncime mai mare (n. red.: straturile max-pooling au rolul de a reduce dimensiunea (rezoluția) caracteristicilor extrase din imagine, păstrând în același timp informațiile cele mai importante).

Acest lucru ajută modelul să învețe reprezentări ierarhice ale caracteristicilor vizuale, un atribut adecvat pentru recunoașterea semnelor făcute cu ajutorul mâinii, unde modelul trebuie să detecteze mai întâi o formă validă a mâinii în cadrul camerei și, pe baza acesteia, să determine aranjamentul degetelor care reprezintă un caracter ASL.

Concluzii

Deși VGG-16 oferă performanțe bune și a demonstrat fezabilitatea prototipului, orice platformă embedded poate fi îmbunătățită prin creșterea eficienței. Dezvoltatorii Tria au obținut acest lucru prin înlocuirea soluției VGG-16 cu un model de clasificare mai recent, MobileNet V2. Acesta este o stivă mai complexă din punct de vedere arhitectural, cu peste o sută de straturi convoluționale, de pooling și așa-numitele straturi bottleneck.

MobileNet V2 obține o precizie mai mare în sarcina de clasificare ASL decât VGG-16 cu mult mai puține operații de calcul per imagine. Acest lucru permite rularea modelului pe Tria ZUBoard 1CG cu peste douăzeci de cadre pe secundă, față de doar două sau trei în cazul VGG-16. (n. red.: bottleneck layers: straturi care reduc dimensiunea intermediară a datelor pentru eficiență).

Exemplul arată cât de puternică poate fi combinația de hardware, open software și AI atunci când se implementează concepte de sisteme inovatoare. Prin alegerea unui hardware care are un grad ridicat de compatibilitate cu mediile de dezvoltare disponibile în prezent pentru aplicații robotice și AI, dezvoltatorii pot obține un avantaj semnificativ în ceea ce privește timpul de lansare pe piață a ideilor de pionierat.

Autor: Jim Beneke, Vice President, Tria

Tria

S-ar putea să vă placă și

Adaugă un comentariu