Newsgroup: it.lavoro.informatica
Titolo: Visione artificiale

Cosa ne pensate della visione artificiale? Qualcuno lavora in questo campo?
La mia tesi di laurea verteva su questo, poi sono finito a fare tutt'altro.
La mia impressione è che sia un'argomento interessante dal punto di vista 
della ricerca, ma dal punto di vista del business sia un affare poco 
redditizio. Realizzare software di visione artificiale affidabili è qualcosa 
di estremamente costoso, e molto difficilmente si riescono a realizzare 
prodotti generici che possano andare bene, con poca personalizzazione, in 
più situazioni e con più clienti. La maggior parte dei software che ho visto 
sono stati scritti ad hoc per risolvere uno specifico problema in una 
particolare situazione.
Una persona che conosco ha messo su, insieme ad alcuni amici, una società 
che si occupa di visione, e mi ha confessato che non navigano nell'oro (ok, 
d'altra parte chi lo fa nell'IT?)
Cercare lavoro e specializzarsi in quest'ambito (cosa che forse potrei fare 
data la mia pregressa, seppure minima, esperienza) mi sembra una mossa 
azzardata.
Tralasciando discorsi di gusti personali, voi che ne pensate? Che sviluppi e 
possibilità di business vedete in questo mondo?
ps Per favore tralasciate risposte tipo: in tutta l'informatica non si 
guadagna niente, meglio fare l'idraulico e cose del genere. Già lo so. 

 Cosa ne pensate della visione artificiale? Qualcuno lavora in questo campo?
Mi sto occupando da qualche tempo, per mio interesse personale,
di questo settore, indubbiamente molto affascinante.
Ho trovato la libreria OpenCV e sto cercando di fare qualche
esperimento
con il mio pc e modeste telecamerine.
L'impressione che ho avuto è che manca ancora una teoria
"unificatrice".
Esistono molti singoli algoritmi che risolvono, più o meno
bene, certi problemi circoscritti. Ma poi manca la "colla teorica"
per mettere assieme il tutto e creare una vera visione artificiale
abbastanza
completa e generale. I vari algoritmi vengono messi insieme in
programmi
inevitabilmente molto specifici, come giustamente dici.
Penso che si svilupperà con una certa rapidità il settore
della videosorveglianza, oggi evidentemente di grande attualità
(riconoscimento delle targhe automobilistiche,
riconoscimento delle facce, ed altri).

Ciao, le OpenCV sono perfette per fare analisi di immagine, le ho
usate per la mia tesi. Però conta che per avere dei buoni risultati
serve un buon illuminatore (a differenza delle telecamere costano
oltre i 500 euro i modelli meno buoni) perchè ti consente di avere già
una immagine in ingresso molto buona quindi usare un semplice(=veloce)
algoritmo di riconoscimento.
Andrea
ispas ha scritto:


riconoscimento delle facce, ed altri).
Beh gli algoritmi sui grafi sono usabiliti in moltissimi ambiti della 
visione artificiale.
Le reti neurali anche possono essere impiegate in moltissimi problemi.
Le seconde potrebbero essere il collante per tutta l'intelligenza 
artificiale, ma e' chiaro che hanno limitazioni e problematiche non 
indifferenti, e quando saranno risolte, se saranno risolte, avremmo un 
cervello artificiale. Ma forse non avverra' mai.
Per quanto riguarda gli algoritmi specifichi (con grafi e/o statistici), e' 
chiaro che non puo' esistere una teoria unificatrice.
Come puo' un algoritmo specifico per la face detection essere riutilizzato 
nella face recognition ad esempio?
Non ha senso secondo me...
Detto questo esistono cmq algoritmi euristici, come quello delle max clique, 
che vengono utilizzati in molti ambiti dell'intelligenza artificiale e o 
visione artificiale, dal riconoscimento di oggetti, al clustering.


Bè, se si vuole costruire una vera visione artificiale in qualche modo
bisogna
sviluppare il riconoscimento di un oggetto generico,
tra cui ci può essere una faccia ma anche una targa auto, un segnale
stradale, una figura umana, ecc. Chissà se ci si arriverà mai?
Da quel pochissimo che so gli algoritmi genetici richiedono una lunga
fase di training con centinaia di immagini specifiche dell'oggetto da
riconoscere. Cosa non molto pratica se si vuol far riconoscere oggetti
abbastanza diversi. E' così?

abbastanza diversi. E' così?
Si, il training set, ovvero l'insieme degli input campione scelti per 
allenare la rete neurale o il sistema, e' un punto cruciale. Non solo devono 
essere in numero sufficiente, ma devono anche essere scelti molto 
accuratamente per non risultare contradditori e fuorvianti.
Ad esempio nella face detection (localizzazione delle facce in un immagine), 
si possono dare in input anche faccie leggermente ruotate per rendere il 
sistema piu' tollerante alle rotazioni delle suddette. Se pero' si eccede 
oltre i 15 gradi di rotazione, la rete non riesce piu' ad apprendere bene 
cosa e' una faccia. D'altro canto se mostriamo solo facce a 0 gradi, non 
risonoscera' una faccia anche solo leggermente inclinata (10 gradi?). Quindi 
e' piuttosto complicata la faccenda.
Stessa cosa dicasi per le luci le rotazioni nel piano, il colore della pelle 
ecc.
Daltra parte non vedo soluzioni alternative...anche noi funzioniamo cosi'. 
La grossa differenza tra un cervello naturale ed un sistema di intelligenza 
artificiale secondo me e' dato soprattutto dall'esperienza, non intesa solo 
come storia, ma anche come possibilita' di vedere il mondo esterno 
costantemente e ricevere una marea di input da elaborare giornalmente. Cosa 
che un computer stando dove sta non puo' fare :).
Per quanto perfette siano le macchine e gli algoritmi avranno sempre questo 
tallone d'achille. Daltronde e' impensabile allo stato attuale che una 
macchina sia capace di uscire fuori apprendere tutto.
Quindi avere un qualcosa che funzioni per tutto la vedo impossibile al 
momento.

cicap ha scritto:

Secondo me , è da rivedere proprio l'architettura interna di un
computer per questi tipi di problemi: è impensabile che il cervello
umano faccia delle elaborazioni deterministiche e sequenziali per
riconoscere un'immagine , ne che possa trattare numerosi scambi di
informazioni tra parti del cervello..se non erro, l'informazione
dovrebbe essere codificata nella rete stessa.. ( non sono un'esperto
in materia )
Comunque sono fiducioso, ricordiamoci che l'informatica e elettronica
sono discipline relativamente recenti in confronto alla fisica ,
chimica ecc..
[OT]
Che un giorno si riesca a dimostrare che P=NP ? Credo che ci sia in
palio anche un milione di dollari a chi ci riesce.. poco eh ?! :-)
[/OT]

 [/OT]

 momento.
e soprattutto non serve a nulla!
Sono cose che vanno viste nello specifico, nei vari campi.
Piccole componenti che aiutano l'occhio umano. Voler far tutto in blocco 
   serve a poco. In giappone sono piuttosto avanti con queste cose :-)
ma il limite è ancora nel discernere quali informazioni usare e quali 
scartare, e soprattutto come catalogare le info acquisite!
Stimolante come campo, comunque!
ciao

 e che ci vuole?
hem! ho dimenticato la faccina :-)
la metto prima che qualcuno mi prenda sul serio :-)
BTW secondo me P != NP

 wrote:

A parte l'ironia... ci sono riusciti , o meglio hanno trovato
un'algoritmo che colloca finalmente il problema della primalità in P,
solo che usa delle strutture dati troppo complesse per essere
applicato.. L'algoritmo è quello AKS ( Agrawal, Kayal, Saxena) ,
lavora con tempo al massimo polinomiale rispetto alla lunghezza di N.
Dovrebbe essere un O( ( log N) ^ 11)) ..
Ma questo non pone P=NP, ma dice che ci siamo sbagliati, il problema
della primalità appartiene a P..

 cosa si intende "componente principale", ovviamente ;-)
Quindi semprerebbe trattarsi di pre-processing in sostanza. Allineo le 
immagini e poi le passo alla rete normalizzate, in modo da rendere la fase 
di apprendimento piu' robusta.
Cmq dubito che sia un procedimento cosi' effettivo...rimane un euristica e 
certamente bisogna ancora stare attenti a non portare immagini troppo 
diverse.
Se veramente riuscisse ad allinearle con precisione, beh allora 
significherebbe che ha gia' riconosciuto la faccia e che tutto il resto non 
serve ;) 

 serve ;) 
non è che allinea con precisione, allinea l'asse principale delle 
componenti selezionate. Ma questo è solo un modo d'utilizzo. Per 
catalogare le facce, dai uno sguardo all'egeinface, ad esempio anche su 
wikipedia: 
http://en.wikipedia.org/wiki/Eigenface
Per allinearli, comunque ci stanno vari approcci, ad esempio 
registrazioni iterative, tipo quelle basate su AAM o ASM di tim cootes 
(
http://www.isbe.man.ac.uk/~bim/
).
Insomma, le vie del signore sono infinite :-)
Però sono molto specifiche, fare una cosa *in generale* la vedo una cosa 
   alla fin fine possibile, ma...... ce n'è di strada da fare! E 
comunque è poco utile per applicazioni specifiche, tipo aereonautiche, 
spaziali, di videosorveglianza, etc.

 della primalità appartiene a P..
ma, se non ricordo male, si dimostrava che i problemi NP erano 
riconducibili polinomialmente uno all'altro, quindi trovata la soluzione 
ad uno, trovata la soluzione a tutti! E ricordavo che la primalità era 
NP..... mi son perso qualcosa? :-)

 bhe, per essere robusto č robusto.
ops... ti riferivi alla PCA in preprocessing!
per quello hai ragione, si, non č che sia robustissimo.... o meglio, ci 
sono tanti metodi migliori! Io volevo solo far vedere che insomma il 
problema della testa storta non era poi cosě grave.... e che un rimedio 
semplice semplice c'era :-))
Poi, non č che sia tanto usato per allineare le immagini, dati dei 
punti! E' utile quando le immagini hanno dimensioni diverse, sono 
diverse, ma hanno dei tratti in comune... come ad esempio la testa piegata!

 era poi cosě grave.... e che un rimedio semplice semplice c'era :-))
Si certamente. Il mio cmq era solo un esempio di quanto delicate sono le 
reti neurali. La rotazione di una faccia alla fine e' una trasformazione 
lineare (giusto?), ma ci sono tante altre cose non facilmnete risolubili.
Ad esempio la rotazione nel piano (ovvero rotazione della testa nell'asse 
delle z), questa no che non e' riconducile ad una trasformazinoe lineare. 
Allora il pre-processing e' molto difficile o impossibile, e bisogna cercare 
di insegnare alla rete o al modello probabilistico anche questi casi, con 
molta attenzione. 

tirzanello ha scritto:

E' appunto questo il problema.. questo vale per problemi strettamente
in NP e non P ( se non ricordo male)...
http://www.cse.iitk.ac.in/news/primality.pdf
http://fatphil.org/maths/AKS/

 molta attenzione.
questo è sacrosanto e siamo d'accordo dall'inizio! ;-)
è l'esempio della rotazione che non fila :-)))
Non so con le reti neurali, ma con qualche (anche semplice) modello
probabilistico, puoi anche coprirti parzialmente la faccia, fare le
boccacce,gli occhi strabici.... nei limiti della decenza e senza far
miracoli, continua a riconoscerti!
Certo che se ti giri di nuca non ti riconosce più come volto.... ma è
anche normale, direi!

miracoli, continua a riconoscerti!
Bisogna vedere di che immagini si parla. Risoluzione ecc...da quello che 
dici sembra che la face detection e' un problema ampiamente risolto, quando 
non mi pare i test mostrino successi al 100% (siamo al 90 e qualcosa mi 
pare).