Detecció i inferència d’objectes usant núvol de punts amb càmera 3D
La detecció i identificació d’objectes i persones utilitzant un núvol de punts és un dels majors punts de contenció en la implementació de sistemes amb un cert nivell d’autonomia, i és sens dubte un dels temes amb major repercussió en el món de la visió per computador.
Una correcta detecció i inferència és clau per a poder dur a terme tasques com a navegació autònoma, assistència de braços robot, videovigilància o, com en el nostre cas, detecció de defectes.
Què és un núvol de punts?
Un núvol de punts és un sistema de representació d’una superfície a través d’un conjunt de vèrtexs (X, Y, Z) en un sistema tridimensional i està composta d’un conjunt de punts que contenen la informació necessària per a generar un model virtual.
On s’utilitza un núvol de punts?
Trobem indústries que depenen dels núvols de punts i exemples són l’enginyeria civil, cartografia, geologia, monitoratge ambiental, arquitectura, arqueologia, inspeccions estructurals en edificis, topografia, …
Maneres d’enfocar la detecció d’objectes
A continuació veurem quina és la millor càmera de núvol de punts. Existeixen fonamentalment, dues maneres d’enfocar la detecció d’objectes.
La primera es basa en la utilització de càmeres monoculars (cambres normals, com les dels nostres mòbils), que proporcionen imatges en dues dimensions. A aquestes imatges se’ls aplica una sèrie d’algorismes, que poden ser molt variats, amb l’objectiu d’obtenir una “caixa” o delimitació que indiqui la presència i localització en la imatge de l’objecte a detectar.
La segona es basa en la utilització de càmeres 3D que, com el nom indica, a més de la imatge en 2 dimensions afegeixen una tercera dimensió: la profunditat. Gràcies a això podem crear núvols de punts, com la de la Imatge 1. En INLOC estem usant aquest segon mètode per a percebre l’entorn.
L’algorisme aplicat sobre el núvol de punts
En aquest post volem ensenyar el resultat de detectar una tassa de cafè concatenant dos algorismes ben senzills: primer, apliquem un detector de vores al núvol de punts original. Això ens permet exposar la geometria bàsica de la majoria dels elements; i segon, ho passem per un algorisme RANSAC, que ens farà una estimació dels paràmetres de la geometria que millor s’adapti a les esmentades vores del núvol de punts.
Quina geometria usar dependrà del problema.
En el cas de la Imatge 1, l’objectiu és detectar la tassa de cafè sobre la taula, per la qual cosa estimar els paràmetres d’un cercle és el més lògic.
Fent servir aquest mètode s’aconsegueix una detecció reeixida de la tassa, com es pot observar en la Imatge 2.
El que té de bo aquest mètode és que, si l’objecte que es desitja detectar és raonablement simple, la detecció d’objectes no solament és senzilla sinó també ràpida.
Tal com veiem en la imatge 1, el núvol de punts s’obté de la càmera 3D. Noti’s la tassa de cafè damunt de la taula, amb la paret i objectes del fons com a soroll.
En la imatge 2 observem el núvol de punts original amb la tassa de cafè detectada i localitzada. Els punts originals estan en blau, les vores en rosa, i en grisa els punts que cauen dins de la caixa (en vermell) que engloba la tassa.
No és, no obstant això, robusta: quan en el núvol de punts 3D hi ha objectes amb geometries complexes o moltes instàncies d’objectes similars en forma, les probabilitats de trobar objectes no desitjats són altes.
Per a aquests casos cal explorar solucions híbrides, en les quals la imatge RGB de cada candidat a objecte es passi a altres algorismes com a xarxes neuronals convolucionals, que tenen major capacitat d’abstracció i generalització, malgrat ser molt més complexos i lents.
Però aquesta és una història per a un altre post!
Esperem que t’hagi estat útil aquest article. Si tens entre mans algun projecte d’enginyeria i creus que podem ajudar-te, aquí et deixo l’enllaç on ens podràs contactar i explicar-nos més a prop d’això.