O aplicație server-client care preia imagini de la robotul NAO, separă obiectele individuale folosind OpenCV, le clasifică pe baza culorii și le etichetează corespunzător. La cerere, aplicația poate fie să sorteze obiectele în grămezi în funcție de culoare, fie să ofere obiectele direct în mână utilizatorului.
- Mențiune: "Clientul" e o altă aplicație care rulează în Python 2.7 din cauza faptului că nu se poate rula cod scris de direct pe robot. Dar tot vor fi două aplicații care vor comunica prin sockets: Server-side care face interpretarea și va rula pe ultima versiune Python și Client-side care va fi rulat pe Python 2.7 pentru a apela funcții NAOqi și va face comunicarea cu robotul. În scope-ul diagramei, clientul E robotul deși aplicația Client funcțional va avea rol de interfață laptop - robot.
Algoritmul meu are doua etape, cea de procesare si preprocesare. Scopul lui e detectarea culori obiectului de interes.
- Simplificare si aplicare filtre de thresholding: Aplic filtre pentru simplificarea imaginii si extrag contururile detectate.
- Praguri pentru binarizare (valoare hue) : 50-200
- Iterații de aplicare a morfologiei: 10
- Mărimea matricei folosite la morfologie: ELLIPSE 7x7
- Găsesc cel mai lung contur din imaginea preprocesată.
- Fac media aritmetică a pixelilor lui pentru fiecare canal RGB.
- La final, încadrăm valorile RGB în niște praguri pentru a obține culoarea.
- Alternativ, punem valorile RGB intr-un model de retea neuronala pentru a aproxima culoarea
Original | Preprocessed | End Result |
---|---|---|
- NAO Robot API (Python sdk) (ONLY CLIENTSIDE)
- Python sockets library
- OpenCV