# Lisp/Visione in Lisp

Lisp
Copertina Tutti i moduli · Sviluppo
* Breve storiaLisp/Breve storia
* Per iniziareLisp/Per iniziare
* S-expressionLisp/S-expression
* Tipi dati nel LispLisp/Tipi dati nel Lisp
* Garbage CollectorLisp/Garbage Collector
* Variabili nel LISPLisp/Variabili nel LISP
* NumeriLisp/Numeri
* Stringhe
* Array
* ListeLisp/Liste
* Visione in LispLisp/Visione in Lisp
* Web e LispLisp/Web e Lisp
* TCP e LispLisp/TCP e Lisp
Modifica il sommario
La visione artificiale è resa possibile da potenti strumenti del Lisp a mezzo di algoritmi dedicati alla interpretazione binaria delle immagini. All'inizio si lavorava con immagini binarie composte da array bidimensionali di stati binari (pixel on/pixel off). Nel tempo l'evoluzione ha comportato miglioramenti nella gestione adattativa dell'immagine tali da ricavare da immagini a colori più informazioni sulla tipologia di oggetti nel campo visivo. l'introduzione della vista binoculare ha inoltre consentito agli algoritmi di estrarre oggetti 3D nello spazio di visione con riferimento a solidi simulati che orientassero poi sistemi decisionali di analisi del comportamento ed azione in uno spazio virtuale ricostruito.
L'immagine binaria può essere rappresentata da un array binario come questo
Array di dimensione finite 800x600 che rappresenta la risoluzione del sistema di visione. In Linux esiste un set di strumenti per convertire immagini da vari formati al formato testuale Lisp per leggerlo ed eseguire le vostre prove (guardare sulla vostra distribuzione Linux i comandi pgmtolispm <--> lispmtopgm e formati grafici collegati a tiff, gif, png, bmp, ecc.).
Un esempio di integrazione Lisp su Linux con acquisizione da WebCam e rilevazione dei profili in tempo reale

## Algoritmi di estrazione delle informazioni di oggetti presenti su un piano di visione

Blob.lsp racchiude in se una serie di algoritmi che ritorna una lista di oggetti estratti da una immagine che ha subito una manipolazione dell'informazione mediante una filtrazione del contenuto e una definizione dei contorni con un algoritmo di level detection. Dopo questa azione il sistema identifica nella lista i singoli oggetti ricavando ( posizione x, y, dimensione, area, perimetro, orientazione, assi morfologici, peso caratteristico della forma ) e pone tutte le informazioni ricavate nella forma di lista S-expression.

## Algoritmi per riconoscimento tridimensionale di oggetti con telecamera binoculare

L'analisi di una forma tridimensionale basandosi sulla vista binoculare presenta alcuni problemi superabili con l'adozione di una tecnica mista di marcatura laser della scena con un reticolo di punti di riferimento generati da un apposito ologramma. Nella visione senza i marker un piano inclinato bianco che occupa totalmente l'area di visione è un problema, la mancanza di elementi quali la valutazione del riflesso e della discontinuità del colore sono superati dai marker del laser. Con l'inserimento dei punti del retinolo di marcatura laser il piano viene descritto in modo perfetto sia nella distanza dal sistema di visione sia nel verso di orientazione delle superfici inscritte nel campo visivo. La proiezione dei punti assume un andamento prospettico tale che agli algoritmi agganciano i punti del marker laser e da questi estraggono le posizioni nello spazio del piano o di oggetti in esso contenuti. La traduzione avviene assimilando le forme a piani, cilindri, sfere, coni, tronchi di cono, mezze sfere o porzioni, piramidi, tronchi di piramide e toroidi. Il sistema aggiorna una lista di oggetti ogni tash di fine identificazioni oggetti.
Esempio di lista generata dopo il riconoscimento delle due videocamere con due oggetti il piano ed il cilindro in linguaggio VRLM .