Inutile sprecare parole su quanto è già certamente noto, relativamente al progresso delle tecniche di intelligenza artificiale degli ultimi anni, associate a buzzwords (qualcuno certamente ne parla nei pub, tra una birra e un panino) come “deep learning”, “deep neural networks”, “deep convolutional neural networks”, “recurrent neural networks”, “deep reinforcement learning” e simili simpatiche espressioni...
L'osservazione porta a intuire che dietro le convolute buzzwords, si scorgono reali possibilità poco o affatto esplorate, che attendono di essere — sarà perdonato il gioco di parole — approfondite. Ogni avanzamento contribuisce ai miglioramenti della tecnica: persino il riuscire a far reinterpretare una foto a un computer, chiedendogli di dipingerla con lo “stile” di un quadro a scelta... ma questo già funziona abbastanza bene, e comunque non servirebbe particolarmente all'azienda. C'è invece una possibile applicazione di AI che sarebbe concretamente utile per l'azienda:
il progetto che si propone è basato sull'utilizzare tecniche di deep learning per fare in modo che, data una foto, l'Intelligenza Artificiale — opportunamente addestrata — possa riuscire nell'altrimenti (con altre tecniche) estremamente arduo compito di proporre una plausibile “depth-map” corrispondente a quella foto.
In altri termini: hai un'immagine, una foto. Guardala: come essere umano, anche se la foto è di fatto bidimensionale, sai “più o meno” come potrebbe essere la depth-map per quell'immagine: non l'effettiva depth-map originale della scena fotografata, ma una depth-map “plausibile”. Infatti, utilizzando strumenti di painting digitale, gli esseri umani sono in grado di disegnare mappe di profondità plausibili.
E se gli esseri umani sanno farlo, l'Intelligenza Artificiale può provare a farlo ugualmente bene, o persino anche meglio. Non è banale tuttavia: le “brave” Intelligenze Artificiali non spuntano come funghi (almeno finché non sarà stata creata un'AI in grado di autonomamente generare e addestrare intelligenze artificiali rispetto a compiti specifici).
Servono certamente due ingredienti fondamentali:
1. costruire bene la deep neural network
2. addestrare bene la deep neural network
Oltre che essere diretta proponente del progetto, l'azienda è decisamente in grado di dare importanti contributi — attivamente, e contributi concreti — su entrambi gli ingredienti. Lavorando insieme a persone in gamba, dal sodalizio sarà possibile ottenere risultati estremamente interessanti e immediatamente utili per l'azienda.
Per poter lavorare a tale progetto, è fondamentale che la compagine provenga da una formazione di scienze matematiche o fisiche, e di scienze dell'ingegneria. Tali figure potranno infatti meglio risuonare o almeno non sentirsi completamente spaesati tra concetti come “stochastic gradient descent”, “backpropagation”, “model”, “soluzione in forma chiusa”, “programmazione”, “efficienza computazionale”, “consumo di memoria”, “script”, “log”, “debug”, “stack overflow (.com)” e simili adorabili locuzioni.
Andando a ritroso, si può dire che il progetto da realizzare è codice per computer: ma per scrivere codice bisogna studiare e capire “cosa” scrivere, il che significa anche costruire una formulazione matematica che abbia senso ed efficacia rispetto alla specifica applicazione. Bisogna individuare i parametri di interesse. Bisogna anche trovare vie per ottimizzare ciò che si può scrivere in infiniti modi, che spesso naturalmente non sono equivalenti rispetto alla velocità di esecuzione, o ad altri parametri. Bisogna fare prove, testare, provare, provare, migliorare. Bisogna saper interagire a livello tecnico: con i colleghi del team, con l'azienda, e con i computer. Bisogna saper leggere testi in lingua inglese, e preferibilmente anche parlare in inglese (per quella skype organizzata con il ricercatore australiano, ecc.). Bisogna saper perdere, spesso. E rialzarsi più forti di prima.
E' quindi fortemente opportuno che a lavorare in tandem su questo progetto siano individui scientificamente creativi, e creativamente scientifici.
Chi ha letto fin qui, sa se sto parlando di lei, o di lui.
Sì, vorremmo collaborare con *te* e realizzare ciò che nessuno ha mai realizzato.
Il problema di generare automaticamente o semi-automaticamente una mappa di profondità da immagine singola ha sempre rappresentato una sfida ai limiti dell'impossibile. Un compito che per un essere umano era assolutamente “fattibile” (con la dovuta pazienza e investimento di tempo), non lo era affatto per una macchina, anche con i più sofisticati algoritmi.
Attenzione — diverso è il caso di input “stereo”, cioè una coppia di foto da posizioni leggermente diverse: in questo caso risulta più semplice chiedere ad una macchina di generare una depth-map. Sebbene possano apparire simili, di fatto si tratta di problematiche totalmente differenti: nel caso di input stereoscopico, si sta fornendo qualcosa che ha quasi “esplicitamente dichiarate” le informazioni di profondità delle diverse aree.
Certamente interessantissimo e utilissimo anche questo... ma non per noi.
Qui invece stiamo parlando di input “mono”. Una normale immagine, per intenderci: una foto, un'illustrazione... un'immagine tra le infinite normali, bidimensionali, immagini possibili.
Da parte di chi ha recentemente sperimentato con tecniche di deep learning in questo campo, sono stati presentati i primi — pochi ma chiari — segnali del fatto che questo può essere un giusto approccio al problema.
Lavorando a questo progetto potremo riuscire a risolvere un problema che fino all'altro ieri era considerato impossibile: da un'immagine singola, generare automaticamente o semi-automaticamente una mappa di profondità plausibile. Tale cioè da poter essere “applicata” all'immagine di input, ed ottenere una rappresentazione derivata di quella stessa scena ripresa da punti di vista leggermente differenti da quello originale effettivo.
Quindi: allo stesso tempo, una missione impossibile sarà compiuta — con un approccio innovativo che peraltro fornirà notevoli spunti di interesse anche in altri campi — e l'azienda potrà finalmente utilizzare i risultati del progetto all'interno del processo produttivo di immagini tridimensionali autostereoscopiche di sua produzione.
Tipologia di presenza: Team meeting periodici