[TESI] Consigli tesi matematica e grafica
Salve ragazzi, sono un laureando in informatica e vorrei fare una tesi che riguardi la matematica e la grafica. Mi spiego meglio: ho chiesto ad una professoressa di Analisi Numerica gli argomenti che proponeva per una possibile tesi e tra questi mi ha proposto calcolo parallelo e grafica, in particolare sulla grafica ha fatto accenno sul riconoscimento facciale tramite il calcolo di autovalori (correggetemi se sbaglio). Tuttavia il riconoscimento facciale sembra già abbastanza attuato da varie aziende come Facebook! Io vorrei fare qualcosa di innovativo che ancora è in fase sperimentale oppure che rientri in un campo "nuovo" in fase di "esplorazione".
Finita questa prefazione, la mia domanda è questa: Avete consigli e suggerimenti su possibili argomenti da affrontare che combinino argomenti di Analisi Numerica con la grafica?(ovviamente intendo programmazione e non utilizzo di software per la modellazione grafica)
Argomenti affrontati in Analisi Numerica:
Metodi diretti:
Risoluzione di sistemi triangolari, metodi di sostituzione in avanti e all’indietro, complessità
computazionale.
Metodo di eliminazione di Gauss e sua complessità computazionale.
Pivoting parziale e totale.
Fattorizzazione LU e PLU di una matrice, applicazioni.
Fattorizzazione di matrici tridiagonali: metodo di Thomas.
Fattorizzazione di matrici simmetriche definite positive: teorema di Cholesky (solo enunciato).
Metodi iterativi:
Metodo di Jacobi.
Metodo di Gauss-Seidel.
Metodi iterativi in forma matriciale, matrice di iterazione.
Teoremi di convergenza, costo computazionale.
Algoritmi basati su metodi iterativi: stima dell’errore e criteri d’arresto.
Memorizzazione di matrici sparse per i metodi iterativi.
Approssimazione di dati e di funzioni:
Scelta della classe delle funzioni approssimanti. Teorema di Weierstrass. Algoritmo di Horner
per la valutazione di un polinomio in un punto.
Interpolazione polinomiale: costruzione del polinomio interpolante mediante il metodo dei
coefficienti indeterminati, formula di interpolazione di Lagrange, rappresentazione dell’errore
(senza dim.). Convergenza: fenomeno di Runge, nodi di Chebychev. Teoremi di Faber e di
Bernstein.
Interpolazione con funzioni polinomiali a tratti. Definizione di funzioni splines.
Approssimazione nel senso dei minimi quadrati. Retta di regressione, polinomio dei minimi
quadrati. Problema dei minimi quadrati nella formulazione generale. Facoltativo: utilizzo
della fattorizzazione QR per il problema dei minimi quadrati.
Autovalori di matrici:
Definizione di autovalori e autovettori di una matrice, polinomio caratteristico. Metodi
iterativi: metodo delle potenze (con dimostrazione) e sue varianti: metodo delle potenze
inverse e metodo delle potenze per l’autovalore di minimo modulo. Algoritmo Page Rank di
Google. Similitudine tra matrici, idea dei metodi basati su trasformazioni di similitudine.
Metodo QR e QR con shift (caso reale).
Cenni sul calcolo parallelo:
Introduzione al calcolo parallelo. Tassonomia di Flynn. Strategie di parallelizzazione della
somma di N numeri su un'architettura di tipo MIMD a memoria distribuita. Valutazione di un
algoritmo parallelo: Speedup ed Efficienza, legge di Amdahl. Paradigma MPI. Algoritmo
parallelo per il prodotto matrice-vettore. Esecuzione di alcuni semplici programmi con un
emulatore di MPI.
P.S: Ho scritto questo post anche in un'altra sezione del forum che credo sia sbagliata per l'argomento, chiedo scusa
Finita questa prefazione, la mia domanda è questa: Avete consigli e suggerimenti su possibili argomenti da affrontare che combinino argomenti di Analisi Numerica con la grafica?(ovviamente intendo programmazione e non utilizzo di software per la modellazione grafica)
Argomenti affrontati in Analisi Numerica:
Metodi diretti:
Risoluzione di sistemi triangolari, metodi di sostituzione in avanti e all’indietro, complessità
computazionale.
Metodo di eliminazione di Gauss e sua complessità computazionale.
Pivoting parziale e totale.
Fattorizzazione LU e PLU di una matrice, applicazioni.
Fattorizzazione di matrici tridiagonali: metodo di Thomas.
Fattorizzazione di matrici simmetriche definite positive: teorema di Cholesky (solo enunciato).
Metodi iterativi:
Metodo di Jacobi.
Metodo di Gauss-Seidel.
Metodi iterativi in forma matriciale, matrice di iterazione.
Teoremi di convergenza, costo computazionale.
Algoritmi basati su metodi iterativi: stima dell’errore e criteri d’arresto.
Memorizzazione di matrici sparse per i metodi iterativi.
Approssimazione di dati e di funzioni:
Scelta della classe delle funzioni approssimanti. Teorema di Weierstrass. Algoritmo di Horner
per la valutazione di un polinomio in un punto.
Interpolazione polinomiale: costruzione del polinomio interpolante mediante il metodo dei
coefficienti indeterminati, formula di interpolazione di Lagrange, rappresentazione dell’errore
(senza dim.). Convergenza: fenomeno di Runge, nodi di Chebychev. Teoremi di Faber e di
Bernstein.
Interpolazione con funzioni polinomiali a tratti. Definizione di funzioni splines.
Approssimazione nel senso dei minimi quadrati. Retta di regressione, polinomio dei minimi
quadrati. Problema dei minimi quadrati nella formulazione generale. Facoltativo: utilizzo
della fattorizzazione QR per il problema dei minimi quadrati.
Autovalori di matrici:
Definizione di autovalori e autovettori di una matrice, polinomio caratteristico. Metodi
iterativi: metodo delle potenze (con dimostrazione) e sue varianti: metodo delle potenze
inverse e metodo delle potenze per l’autovalore di minimo modulo. Algoritmo Page Rank di
Google. Similitudine tra matrici, idea dei metodi basati su trasformazioni di similitudine.
Metodo QR e QR con shift (caso reale).
Cenni sul calcolo parallelo:
Introduzione al calcolo parallelo. Tassonomia di Flynn. Strategie di parallelizzazione della
somma di N numeri su un'architettura di tipo MIMD a memoria distribuita. Valutazione di un
algoritmo parallelo: Speedup ed Efficienza, legge di Amdahl. Paradigma MPI. Algoritmo
parallelo per il prodotto matrice-vettore. Esecuzione di alcuni semplici programmi con un
emulatore di MPI.
P.S: Ho scritto questo post anche in un'altra sezione del forum che credo sia sbagliata per l'argomento, chiedo scusa

Risposte
Di quale livello di laurea stiamo parlando? Triennale o specialistica? La complessità della tesi dipende infatti anche da questo: una tesi che può essere adatta per una triennale potrebbe essere troppo semplice per una specialistica e viceversa.
Detto questo: il riconoscimento facciale è tutt'altro che un problema risolto. Riconoscere una faccia non è semplice perché può apparire da diversi punti di vista ed essere modificata dalla presenza di occhiali, trucco.. o essere in parte nascosta da altri elementi dell'immagine. Compagnie come Facebook fanno uso di metodi di Machine Learning per il riconoscimento facciale. Sono metodi che richiedono una lunga fase di training, ma che sono poi in grado di dare una risposta abbastanza velocemente e con una buona precisione. Ovviamente Facebook ha accesso a tantissimi dati forniti dai propri utenti, mentre tu no.. Ci sono alcuni database pubblici, ma è forse meglio pensare ad altro.
Il problema è che esistono TANTISSIMI argomenti su cui potresti indirizzare la tua attenzione. Basta per esempio dare una occhiata ai paper presentati in una qualche conferenza come Siggraph, Eurographics.. Quali sono i tuoi interessi e quali i tuoi obiettivi futuri (in che settore vorresti lavorare ad esempio).
Detto questo: il riconoscimento facciale è tutt'altro che un problema risolto. Riconoscere una faccia non è semplice perché può apparire da diversi punti di vista ed essere modificata dalla presenza di occhiali, trucco.. o essere in parte nascosta da altri elementi dell'immagine. Compagnie come Facebook fanno uso di metodi di Machine Learning per il riconoscimento facciale. Sono metodi che richiedono una lunga fase di training, ma che sono poi in grado di dare una risposta abbastanza velocemente e con una buona precisione. Ovviamente Facebook ha accesso a tantissimi dati forniti dai propri utenti, mentre tu no.. Ci sono alcuni database pubblici, ma è forse meglio pensare ad altro.
io vorrei fare qualcosa di innovativo che ancora è in fase sperimentale oppure che rientri in un campo "nuovo" in fase di "esplorazione".
Il problema è che esistono TANTISSIMI argomenti su cui potresti indirizzare la tua attenzione. Basta per esempio dare una occhiata ai paper presentati in una qualche conferenza come Siggraph, Eurographics.. Quali sono i tuoi interessi e quali i tuoi obiettivi futuri (in che settore vorresti lavorare ad esempio).
Innanzitutto grazie per l'attenzione 
Si parla di laurea triennale. Lo sò che per una triennale non bisogna fare tesi troppo lunghe e complesse, anche perchè questa cosa me l'ha fatta capire fin troppo bene il prof. Il fatto è che vorrei fare un progetto che poi potrei portare avanti e non da usare solo per la tesi.
Per il riconoscimento facciale mi sto informando molto e ho visto che ci sono molti algoritmi, con pregi e difetti, da poter utilizzare in combinazione e magari potrei pure combinare l'intero progetto del riconoscimento facciale con il calcolo distribuito e parallelo e con android. Hai ragione Facebook ha dal canto suo un database di immagini immenso, però credo che con la giusta "struttura software" il database potrebbe essere costruito stesso dagli utenti della mia futura applicazione. Cosa ne pensi?
Un'altro argomento che vorrei provare sono le funzioni splines, però facendo delle ricerche non riesco a capire delle loro possibili applicazioni "utili" per un bel progettino di tesi, si accettano consigli
Il settore in cui vorrei dedicarmi è android in primis e in generale l'ambiente distribuito.
Ti vorrei chiedere prima di imbarcarmi in ricerche infinite, di cosa trattano le conferenze Siggraph e Eurographics?

Si parla di laurea triennale. Lo sò che per una triennale non bisogna fare tesi troppo lunghe e complesse, anche perchè questa cosa me l'ha fatta capire fin troppo bene il prof. Il fatto è che vorrei fare un progetto che poi potrei portare avanti e non da usare solo per la tesi.
Per il riconoscimento facciale mi sto informando molto e ho visto che ci sono molti algoritmi, con pregi e difetti, da poter utilizzare in combinazione e magari potrei pure combinare l'intero progetto del riconoscimento facciale con il calcolo distribuito e parallelo e con android. Hai ragione Facebook ha dal canto suo un database di immagini immenso, però credo che con la giusta "struttura software" il database potrebbe essere costruito stesso dagli utenti della mia futura applicazione. Cosa ne pensi?
Un'altro argomento che vorrei provare sono le funzioni splines, però facendo delle ricerche non riesco a capire delle loro possibili applicazioni "utili" per un bel progettino di tesi, si accettano consigli

Il settore in cui vorrei dedicarmi è android in primis e in generale l'ambiente distribuito.
Ti vorrei chiedere prima di imbarcarmi in ricerche infinite, di cosa trattano le conferenze Siggraph e Eurographics?
Sono conferenze di computer grafica. Trattano argomenti molto diversi tra di loro. L'idea era più che altro quella di mostrarti la vastità di un argomento come "grafica". In effetti non trattano neanche tutto quello che si potrebbe considerare grafica. L'analisi numerica tratta concetti e algoritmi che vengono usati un po' ovunque in settori come questo. Per cui non è facile trovare un argomento da consigliarti. Credo sarebbe più semplice se invece di partire da un argomento di analisi numerica, partissi da una qualche applicazione. Per cui non partissi ad esempio dal decidere che vuoi usare le spline per poi cercare dove applicarle (puoi applicarle ovunque), ma che partissi da qualcosa come riconoscimento facciale o animazione di personaggi 3D o simulazione fisica o .. per poi decidere l'effettivo metodo da usare per risolvere il tuo problema.
Il fatto è che temo di scegliere qualcosa sulla quale non si possano applicare i concetto studiati al corso :/
Mi sembra di capire che te ne intendi più di me su queste cose, non è che ti posso chiedere come enorme favore di farmi un possibile matching tra gli argomenti che ho studiato al corso(postato nel primo post) e possibili applicazioni in grafica? Lo sò che già mi hai detto che gli argomenti sono vastissimi, ma tra quelli che mi hai postato, quali possono matchare con gli argomenti del corso in generale e in particolare con le funzioni splines?
Mi sembra di capire che te ne intendi più di me su queste cose, non è che ti posso chiedere come enorme favore di farmi un possibile matching tra gli argomenti che ho studiato al corso(postato nel primo post) e possibili applicazioni in grafica? Lo sò che già mi hai detto che gli argomenti sono vastissimi, ma tra quelli che mi hai postato, quali possono matchare con gli argomenti del corso in generale e in particolare con le funzioni splines?

Le funzioni spline hanno applicazioni principalmente nei seguenti argomenti:
- Modellazione di curve/superfici in 3D. Si tratta di una applicazione immediata ed è la ragione per cui sono state inventate. Questo genere di modellazione è principalmente comune nei settori legati al design, industria e architettura. In altri settori l'applicazione è più limitata ad oggetti particolari come i capelli.
- Grafica vettoriale in 2D. Nella grafica vettoriale le forme sono descritte a partire da splines. Un caso particolare di questo argomento sono i font tipografici comunemente usati nei nostri computer.
- Animazione. Le curve spline sono spesso usate per indicare quantità che variano nel tempo. Si definiscono valori a specifici istanti temporali (a particolari frame) e i valori sono quindi interpolati usando curve splines.
- Morphing delle immagini. Le spline possono essere usate per indicare come i pixel di una immagine devono essere deformati.
- Approssimazione di funzioni. Di fatto si tratta di una applicazione di analisi numerica classica, ma ci possono essere diverse funzioni che sono troppo complicate da usare direttamente (o forse si hanno solo alcuni punti) e quindi le superfici spline possono essere usate per ottenere approssimazioni.
Probabilmente c'è altro ma per il momento mi viene in mente questo.
- Modellazione di curve/superfici in 3D. Si tratta di una applicazione immediata ed è la ragione per cui sono state inventate. Questo genere di modellazione è principalmente comune nei settori legati al design, industria e architettura. In altri settori l'applicazione è più limitata ad oggetti particolari come i capelli.
- Grafica vettoriale in 2D. Nella grafica vettoriale le forme sono descritte a partire da splines. Un caso particolare di questo argomento sono i font tipografici comunemente usati nei nostri computer.
- Animazione. Le curve spline sono spesso usate per indicare quantità che variano nel tempo. Si definiscono valori a specifici istanti temporali (a particolari frame) e i valori sono quindi interpolati usando curve splines.
- Morphing delle immagini. Le spline possono essere usate per indicare come i pixel di una immagine devono essere deformati.
- Approssimazione di funzioni. Di fatto si tratta di una applicazione di analisi numerica classica, ma ci possono essere diverse funzioni che sono troppo complicate da usare direttamente (o forse si hanno solo alcuni punti) e quindi le superfici spline possono essere usate per ottenere approssimazioni.
Probabilmente c'è altro ma per il momento mi viene in mente questo.
Grazie mille per la tua disponibilità
In questi giorni proporrò questi argomenti alla prof 
Grazie ancora


Grazie ancora

Vorrei farti notare comunque che gli argomenti da te fatti durante il corso sono cose che nessuno implementa nella pratica. Quello che intendo dire è che nessuno di facebook avrà implementato una funzione che calcola gli autovalori, ma avrà usato una libreria che ne occupa implementata da persone che sono specializzate in quello. Anzi, verosimilmente, avrà usato un qualche middleware di computer vision che richiama le librerie in questione. Analizzare questo tipo di problemi è quindi più un fatto teorico che qualcosa di realmente implementativo (al di là di un semplice codice matlab o python).
Nessuno degli argomenti che ho descritto possono comunque essere definiti "in fase di esplorazione". Sono infatti applicazioni classiche delle funzioni spline. Si possono trovare degli argomenti nuovi, ma non sono necessariamente semplici né legati alle funzioni spline.
Volendo trovare argomenti di grafica che siano in pieno sviluppo (e che potrebbero interessarti) potrei proporti i seguenti:
1. Realtà virtuale/aumentata. Nonostante esistano da parecchio tempo si stanno sviluppando completamente a livello consumer solo adesso e i cellulari (e quindi Android) sono al centro di questo sviluppo. Ovviamente si tratta di un argomento molto vasto ed è necessario focalizzarsi su un solo aspetto, ma credo possa dare diverse soddisfazioni e opportunità di portarlo avanti dopo la laurea.
2. Machine Learning. È un insieme di algoritmi basati sulla statistica che sono molto di moda ultimamente e stanno trovando diverse applicazioni in grafica (e non solo). Sono gli algoritmi alla base di quasi tutto quello che fanno Google, Facebook..
3. OpenCL/CUDA. Fare calcoli utilizzando la GPU continua ad essere un argomento abbastanza di moda anche se sono ormai diversi anni che c'è. Sono abbastanza sicuro che OpenCL sia ormai disponibile anche su Android (anche se forse non per tutte le GPU). Un'idea per una tesi potrebbe quindi essere quella di implementare qualcosa usando questo tipo di approccio.
Ci sono molti altri argomenti in piena diffusione ma che forse sono per te meno interessanti (e in alcuni casi molto poco adatti ad una tesi triennale):
1. Alcuni materiali sono ancora molto difficili da modellare correttamente (la pelle per esempio) e molta ricerca è fatta in questa direzione. Discorso simile vale per algoritmi che simulano correttamente l'interazione tra la luce e i materiali (simulando per esempio la luce come spettro e non più come tripletta di valori).
2. Molti fenomeni fisici non sono ancora simulabili in tempi accettabili. Per esempio fluidi, materiali granulari, gas, capelli, oggetti non rigidi.. Qualsiasi cosa che non siano corpi rigidi insomma. Esistono diversi algoritmi disponibili, ma c'è ancora molto da fare.
3. Vulkan. È appena uscita una nuova API grafica di più basso livello di nome Vulkan ed è quindi certamente di moda fare qualcosa che ne faccia uso.
4. Espressioni facciali. È molto difficile animare correttamente le espressioni facciali in quanto i dettagli sono molto importanti. Sto parlando di cose come le microespressioni di cui si parla per esempio nella serie televisiva Lie To Me. Considera che in alcuni studi hanno addirittura mostrato che piccole variazioni di aspetto della pelle dovute a spostamenti del sangue in zone diverse del viso possono contribuire alla nostra percezione di realtà di un viso.
Probabilmente c'è anche altro.
Volendo trovare argomenti di grafica che siano in pieno sviluppo (e che potrebbero interessarti) potrei proporti i seguenti:
1. Realtà virtuale/aumentata. Nonostante esistano da parecchio tempo si stanno sviluppando completamente a livello consumer solo adesso e i cellulari (e quindi Android) sono al centro di questo sviluppo. Ovviamente si tratta di un argomento molto vasto ed è necessario focalizzarsi su un solo aspetto, ma credo possa dare diverse soddisfazioni e opportunità di portarlo avanti dopo la laurea.
2. Machine Learning. È un insieme di algoritmi basati sulla statistica che sono molto di moda ultimamente e stanno trovando diverse applicazioni in grafica (e non solo). Sono gli algoritmi alla base di quasi tutto quello che fanno Google, Facebook..
3. OpenCL/CUDA. Fare calcoli utilizzando la GPU continua ad essere un argomento abbastanza di moda anche se sono ormai diversi anni che c'è. Sono abbastanza sicuro che OpenCL sia ormai disponibile anche su Android (anche se forse non per tutte le GPU). Un'idea per una tesi potrebbe quindi essere quella di implementare qualcosa usando questo tipo di approccio.
Ci sono molti altri argomenti in piena diffusione ma che forse sono per te meno interessanti (e in alcuni casi molto poco adatti ad una tesi triennale):
1. Alcuni materiali sono ancora molto difficili da modellare correttamente (la pelle per esempio) e molta ricerca è fatta in questa direzione. Discorso simile vale per algoritmi che simulano correttamente l'interazione tra la luce e i materiali (simulando per esempio la luce come spettro e non più come tripletta di valori).
2. Molti fenomeni fisici non sono ancora simulabili in tempi accettabili. Per esempio fluidi, materiali granulari, gas, capelli, oggetti non rigidi.. Qualsiasi cosa che non siano corpi rigidi insomma. Esistono diversi algoritmi disponibili, ma c'è ancora molto da fare.
3. Vulkan. È appena uscita una nuova API grafica di più basso livello di nome Vulkan ed è quindi certamente di moda fare qualcosa che ne faccia uso.
4. Espressioni facciali. È molto difficile animare correttamente le espressioni facciali in quanto i dettagli sono molto importanti. Sto parlando di cose come le microespressioni di cui si parla per esempio nella serie televisiva Lie To Me. Considera che in alcuni studi hanno addirittura mostrato che piccole variazioni di aspetto della pelle dovute a spostamenti del sangue in zone diverse del viso possono contribuire alla nostra percezione di realtà di un viso.
Probabilmente c'è anche altro.
[xdom="Raptorista"]Premesso che scrivere la stessa cosa in due stanze diverse è cattiva pratica
ricopio qua la mia risposta che avevo scritto nell'altra discussione. Per ovvi motivi manca di continuità con i post precedenti, che in gran parte non ho nemmeno letto.[/xdom]
La domanda è complicata, perché analisi numerica e grafica hanno poco in comune...
Escludo subito i soliti argomenti della serie "usare una decomposizione matriciale tipo SVD per comprimere un'immagine" e affini, che non sono molto interessanti.
La matematica è dietro la computer grafica, ma nei dettagli. C'è molta matematica nel calcolo della luminosità di un punto illuminato da un dato set di lampade, il cui valore viene calcolato con lunghe formulone, tipicamente integrali, ma questa è fisica matematica, non analisi numerica. L'analisi numerica rientra dalla finestra nel momento in cui devi calcolare il valore effettivo dell'integrale, ma quella è una cosa nota da molto tempo. Se sai qualcosa di programmazione per GPU [CUDA, OpenCL, OpenACC and friends] allora potresti puntare su un'implementazione efficiente di uno di questi algoritmi. Questo è fattibile o meno in base al fatto che la tua tesi debba essere più compilativa o di ricerca.
L'applicazione open source Blender permette modellazione e rendering di scene 3D, e utilizza il motore Cycles per il rendering fotorealistico. Una possibilità potrebbe essere di prendere un caso test e migliorare le performance attuali, un'altra potrebbe essere di implementare qualche funzionalità che al momento manca.
Questo sarebbe un progetto non tanto di analisi numerica quanto di calcolo scientifico, però è abbastanza vicino all'obiettivo.
Sono idee un po' alla rinfusa, ne parliamo più in dettaglio se ti interessa.

La domanda è complicata, perché analisi numerica e grafica hanno poco in comune...
Escludo subito i soliti argomenti della serie "usare una decomposizione matriciale tipo SVD per comprimere un'immagine" e affini, che non sono molto interessanti.
La matematica è dietro la computer grafica, ma nei dettagli. C'è molta matematica nel calcolo della luminosità di un punto illuminato da un dato set di lampade, il cui valore viene calcolato con lunghe formulone, tipicamente integrali, ma questa è fisica matematica, non analisi numerica. L'analisi numerica rientra dalla finestra nel momento in cui devi calcolare il valore effettivo dell'integrale, ma quella è una cosa nota da molto tempo. Se sai qualcosa di programmazione per GPU [CUDA, OpenCL, OpenACC and friends] allora potresti puntare su un'implementazione efficiente di uno di questi algoritmi. Questo è fattibile o meno in base al fatto che la tua tesi debba essere più compilativa o di ricerca.
L'applicazione open source Blender permette modellazione e rendering di scene 3D, e utilizza il motore Cycles per il rendering fotorealistico. Una possibilità potrebbe essere di prendere un caso test e migliorare le performance attuali, un'altra potrebbe essere di implementare qualche funzionalità che al momento manca.
Questo sarebbe un progetto non tanto di analisi numerica quanto di calcolo scientifico, però è abbastanza vicino all'obiettivo.
Sono idee un po' alla rinfusa, ne parliamo più in dettaglio se ti interessa.
"Raptorista":
[xdom="Raptorista"]Premesso che scrivere la stessa cosa in due stanze diverse è cattiva praticaricopio qua la mia risposta che avevo scritto nell'altra discussione. Per ovvi motivi manca di continuità con i post precedenti, che in gran parte non ho nemmeno letto.[/xdom]
La domanda è complicata, perché analisi numerica e grafica hanno poco in comune...
Escludo subito i soliti argomenti della serie "usare una decomposizione matriciale tipo SVD per comprimere un'immagine" e affini, che non sono molto interessanti.
La matematica è dietro la computer grafica, ma nei dettagli. C'è molta matematica nel calcolo della luminosità di un punto illuminato da un dato set di lampade, il cui valore viene calcolato con lunghe formulone, tipicamente integrali, ma questa è fisica matematica, non analisi numerica. L'analisi numerica rientra dalla finestra nel momento in cui devi calcolare il valore effettivo dell'integrale, ma quella è una cosa nota da molto tempo. Se sai qualcosa di programmazione per GPU [CUDA, OpenCL, OpenACC and friends] allora potresti puntare su un'implementazione efficiente di uno di questi algoritmi. Questo è fattibile o meno in base al fatto che la tua tesi debba essere più compilativa o di ricerca.
L'applicazione open source Blender permette modellazione e rendering di scene 3D, e utilizza il motore Cycles per il rendering fotorealistico. Una possibilità potrebbe essere di prendere un caso test e migliorare le performance attuali, un'altra potrebbe essere di implementare qualche funzionalità che al momento manca.
Questo sarebbe un progetto non tanto di analisi numerica quanto di calcolo scientifico, però è abbastanza vicino all'obiettivo.
Sono idee un po' alla rinfusa, ne parliamo più in dettaglio se ti interessa.
Innanzitutto scusami per quella por...ta che ho fatto con i post. Detto questo, certo che mi interessa parlarne più in dettaglio

Tra gli argomenti di analisi numerica che si avvicinano alla grafica sono anche le funzioni spline... Va bè il fatto è che potremo stare ore e giorni a parlare di queste cose

1)Uso di spline e B-spline per la costruzione di immagini;
2)metodi paralleli per problemi a grandi dimensioni, con implementazione su architetture a memoria distribuita e su GPU (su scheda grafica Nvidia e linguaggi come CUDA, Python e altri);
3)Risoluzione di sistemi lineari mediante metodi iterativi o diretti, con applicazione a problemi reali (es. equazione del calore, equazione delle onde);
4)Applicazione dell’interpolazione per la crittografia;
Questi sono gli esempi fatti da lei che mi interessano (li ho elencati anche in ordine di interesse). I primi due argomenti sono quelli che mi interessano di più, perchè vorrei dedicarmi alla computer grafica, soprattutto se si possono combinare con android sarebbe il Top! Per costruzione di immagini però non ho ben capito cosa vorrebbe intendere, all'inizio avevo letto ri-costruzione delle immagini e quindi ho pensato alla ri-elaborazione di immagini sgranate etc etc che poteva ben ricollegarsi al riconoscimento facciale... Bè sto divagando molto

1) Secondo voi posso proporre qualche argomento alla prof? Ovviamente che comprenda gli argomenti studiati al corso;
2) Applicazioni attuali degli argomenti di cui lei mi ha fatto degli esempi? Soprattutto per le spline e i metodi paralleli;
3) Blender mi interesserebbe anche perchè ci ho avuto a che fare però solo a scopo amatoriale. Quello che mi preoccupa è:
- 3-1)Quanto potrebbe essere oneroso aggiungere funzionalità a Blender? (non che non voglia lavora non capire male, ma il problema è che se mi imbarco in qualcosa di eternamente lungo?)
3-2)Che linguaggio di programmazione supporta Blender?(Sapevo che Blender usa anche Python)
3-3)Secondo te si possono combinare gli argomenti studiati al corso a queste possibili funzionalità da aggiungere a Blender?[/list:u:j3mx7kcl]
4) Sugli argomenti 3 e 4 sapreste propormi dei possibili argomenti interessanti per una tesi? Magari se si possono ricollegare alla computer grafica e android sarebbe stupendo! (in questo caso mi interessa più il 3° argomento, la crittografia non tanto mi interessa ma comunque non sarebbe banale da trattare dato che è comunque una branchia dell'informatica sempre in continua evoluzione);
Per il momento non mi viene nient'altro in mente...
P.S: senti mica vado contro le regole se ti chiedo un contatto (che sia Facebook, whatsapp o altri) in modo da avere interazioni più veloci insomma, perchè vedo che te ne intendi più di me di queste cose

1) La tesi è tua, non della tua relatrice. Puoi proporre tutti gli argomenti che vuoi, ovviamente lei sarà poi libera di accettare o meno di seguirti nella tesi da te scelta.
2) Gli argomenti che ti ha fornito mi sembrano molto, forse troppo, generici. Il primo punto non è molto chiaro. Suppongo si riferisca all'uso di curve spline per la modellazione di curve/superfici in 3D oppure alla grafica vettoriale. Il secondo argomento può riferirsi a qualsiasi cosa. Algoritmi paralleli di questo tipo sono infatti usati nella simulazione fisica, nel rendering, nell'elaborazione e composizione delle immagini, nell'animazioni dei personaggi, nell'intelligenza artificiale, nel tracking di elementi nella scena.. Ti ha insomma lasciato libero di scegliere quello che preferisci.
3-1) Dipende dalla funzionalità scelta. Un possibile punto di partenza potrebbe essere dare una occhiata ai progetti proposti per il [url=http://wiki.blender.org/index.php/Dev:Ref/GoogleSummerOfCode/2015/Ideas]Google Summer of Code[/url] (non è nuovissimo per cui dovresti guardare cosa è stato già fatto). Nota che i progetti sono stati pensati per essere svolti in una estate (3 mesi) di lavoro a tempo pieno. Ci sono tuttavia alcuni punti in cui sono suggeriti piccoli progetti. Ti consiglio di dare una occhiata a quelli. Alla fine della pagina trovi anche consigli su come iniziare a programmare per Blender.
3-2) Da quanto ne so, principalmente C e C++. Il python è principalmente usato per parti dell'applicazione troppo di alto livello per rientrare in una tesi di analisi numerica.
3-3) Credo di sì, ma potrebbe non essere facile. Considera soprattutto che Blender è un software ormai abbastanza maturo per cui molte funzionalità di base sono già state implementate.
4) Sono sempre argomenti molto generici. Mi vengono in mente problemi legati alla simulazione fisica o di cinematica inversa.
2) Gli argomenti che ti ha fornito mi sembrano molto, forse troppo, generici. Il primo punto non è molto chiaro. Suppongo si riferisca all'uso di curve spline per la modellazione di curve/superfici in 3D oppure alla grafica vettoriale. Il secondo argomento può riferirsi a qualsiasi cosa. Algoritmi paralleli di questo tipo sono infatti usati nella simulazione fisica, nel rendering, nell'elaborazione e composizione delle immagini, nell'animazioni dei personaggi, nell'intelligenza artificiale, nel tracking di elementi nella scena.. Ti ha insomma lasciato libero di scegliere quello che preferisci.
3-1) Dipende dalla funzionalità scelta. Un possibile punto di partenza potrebbe essere dare una occhiata ai progetti proposti per il [url=http://wiki.blender.org/index.php/Dev:Ref/GoogleSummerOfCode/2015/Ideas]Google Summer of Code[/url] (non è nuovissimo per cui dovresti guardare cosa è stato già fatto). Nota che i progetti sono stati pensati per essere svolti in una estate (3 mesi) di lavoro a tempo pieno. Ci sono tuttavia alcuni punti in cui sono suggeriti piccoli progetti. Ti consiglio di dare una occhiata a quelli. Alla fine della pagina trovi anche consigli su come iniziare a programmare per Blender.
3-2) Da quanto ne so, principalmente C e C++. Il python è principalmente usato per parti dell'applicazione troppo di alto livello per rientrare in una tesi di analisi numerica.
3-3) Credo di sì, ma potrebbe non essere facile. Considera soprattutto che Blender è un software ormai abbastanza maturo per cui molte funzionalità di base sono già state implementate.
4) Sono sempre argomenti molto generici. Mi vengono in mente problemi legati alla simulazione fisica o di cinematica inversa.
"chaw359":
2)metodi paralleli per problemi a grandi dimensioni, con implementazione su architetture a memoria distribuita e su GPU (su scheda grafica Nvidia e linguaggi come CUDA, Python e altri);
CUDA sarà il primo, ma OpenCL è a mio avviso la scelta attualmente più appropriata: sono molto simili e OpenCL va, oltre che su Nvidia, anche sulle GPU AMD e Intel, sui processori x86 e x64, sugli ARM (sia cpu che sulla gpu Mali), sui processori Cell, su intel xeon phi e su vari altri processori.
Mi sfugge cosa Python abbia a che fare con la GPU. Piuttosto ci sono C++ AMP, OpenACC, SyCL e similari se non vuoi gestire tu la complessità inerente all'uso della GPU.
Detto questo, implementare qualcosa in CUDA o OpenCL, se non ne sei stato già introdotto, è qualcosa che non si può fare da un giorno all'altro. Devi conoscere il linguaggio, l'architettura di base delle GPU ed inoltre devi conoscere molto bene l'algoritmo che vai a scrivere con questi linguaggi. Il rischio è di fare programmi terribilmente lenti, potenzialmente persino più lenti della versione di controllo. Insomma non è come scrivere un algoritmo in matlab.
Quello che intendo dire è che non è facile come sembra e che, se lo vuoi fare, probabilmente non arriverai a produrre nulla che possa avere la parola "efficiente" nel nome. Inoltre è difficile trovare qualcosa che non sia già stato implementato e su cui non esistano vari paper tra gli argomenti che hai fatto a lezione. D'altra parte l'esperienza con questi linguaggi potrebbe essere apprezzata a livello lavorativo, quindi come tesi non farebbe brutta figura.
"chaw359":
3)Risoluzione di sistemi lineari mediante metodi iterativi o diretti, con applicazione a problemi reali (es. equazione del calore, equazione delle onde);
L'unica cosa che potresti raggiungere con questo punto sono 5 pagine di banalità e un codice python/matlab di 4 righe. L'argomento è poco interessante persino all'interno dell'ambito delle tesi compilative. Lo considererei poco originale persino per un progetto di fine corso. L'utilizzo dei metodi lineari per risolvere problemi reali è il metodo standard. Dove non viene usato è perché non è stabile. E se finisci in uno di questi casi allora la tua tesi implementativa si trasformerebbe in un attimo in una tesi teorica sulla PDE in questione, argomento su cui immagino tu non sia proprio ferrato (e che immagino troveresti piuttosto noioso).
Insomma a mio avviso il rischio è che il tuo lavoro non venga apprezzato, a meno forse di trovare un'applicazione molto particolare.
"chaw359":
4)Applicazione dell’interpolazione per la crittografia;
Ammetto che di questa applicazione dell'interpolazione non né avevo mai sentito parlare, ma non conosco bene il settore della crittografia. Da una breve ricerca su google mi sembra un settore piuttosto nuovo. Sinceramente ho l'impressione possa essere un po' ostico, forse non a livello triennale.
Non smetterò mai di ringraziarvi per l'interesse 
Rispondo ad apatriarca:
Prima non ti ho risposto subito su Vulkan perchè l'ho sorvolato completamente
. Comunque sono andato sul sito di Nvidia dove parla di Vulkan, sembra davvero interessante, e in questo caso potrei combinarlo con il calcolo parallelo, magari, per creare un programma di simulazione.
Poi ho fatto un giro sul sito del Google Summer of Code e non sono riuscito a trovare la sezione relativa ai nuovi progetti, per caso è la sezione "Ideas" del link che mi hai dato? Se si, quello che potrebbe interessarmi potrebbe essere questa:
Tuttavia questo mi lascia molte perplessità. Se decido di intraprendere questa strada, come faccio a dire che ho preso in carico il progetto? Da dove parto? Sicuramente ci sarà del codice. Questa strada sembra troppo onerosa e infinita per una tesi triennali
Rispondo a vict85:
Sono molto sagge le tue parole, in effetti hai ragione. Potrei usare le librerie OpenCL su android magari per creare qualche app che trasformi le immagini 2D in immagini digitalizzate 3D... Ora vedo se esistono
Grazie ragazzi per queste risposte, ora ho mandato una e-mail alla prof per chiederle delle precisazioni sugli argomenti che mi ha proposto, poi proverò a proporle argomenti che mi avete suggerito, soprattutto Vulkan e le simulazioni per quanto riguarda il calcolo parallelo

Rispondo ad apatriarca:
Prima non ti ho risposto subito su Vulkan perchè l'ho sorvolato completamente

Poi ho fatto un giro sul sito del Google Summer of Code e non sono riuscito a trovare la sezione relativa ai nuovi progetti, per caso è la sezione "Ideas" del link che mi hai dato? Se si, quello che potrebbe interessarmi potrebbe essere questa:
Curve tools
Blender's curve tools aren't very advanced compared to vector editors like inkscape, while its not the purpose of Blender to be a full vector graphics editor, there are areas we could improve.
Freehand drawing (additionally to draw over existing curves, pressure sensitivity use for radius/weight...) - similar to vector drawing applications.
Support for vertex weights. (as mesh & lattice do, support in the modifier stack).
Optimize 3d text (tessellate characters only once), sounds simple but involves re-working curve-code..
Misc tools missing from other areas (vertex slide, decimate/simplify)
Tuttavia questo mi lascia molte perplessità. Se decido di intraprendere questa strada, come faccio a dire che ho preso in carico il progetto? Da dove parto? Sicuramente ci sarà del codice. Questa strada sembra troppo onerosa e infinita per una tesi triennali

Rispondo a vict85:
Sono molto sagge le tue parole, in effetti hai ragione. Potrei usare le librerie OpenCL su android magari per creare qualche app che trasformi le immagini 2D in immagini digitalizzate 3D... Ora vedo se esistono

Grazie ragazzi per queste risposte, ora ho mandato una e-mail alla prof per chiederle delle precisazioni sugli argomenti che mi ha proposto, poi proverò a proporle argomenti che mi avete suggerito, soprattutto Vulkan e le simulazioni per quanto riguarda il calcolo parallelo

Si, era la pagina del link. Tra non molto dovrebbero uscire nuove idee perché partirà la nuova edizione del progetto. Sono sicuramente più impegnative di una laurea triennale, erano infatti per un progetto di tre mesi a tempo pieno. Quelle sono semplicemente idee di cose che potrebbero interessare a quelli di Blender, sono un quindi potenzialmente un punto di partenza per decidere cosa puoi fare per il progetto. Nel caso decidessi di portare avanti qualcosa del genere, dovresti contattare gli sviluppatori di Blender sui canali ufficiali (che non conosco però non avendo mai lavorato per loro).
Allora ho appena ricevuto l'email di risposta dalla mia prof. Bè sulla computer grafica mi ha lasciato campo libero almeno da quanto ho capito, perchè mi ha chiesto di portarle le ricerche che ho fatto e partire da quelle. Il fatto è che la computer grafica sembra un campo molto vasto e già pienamente sviluppato, voglio dire, dopo varie ricerche, che effettivamente esistono già un'immensità di programmi sia commerciali che open abbastanza potenti. Mi avete consigliato:
1)Aggiungere funzionalità a Blender, ma non sembra una cosa da poco e tanto meno che posso fare in singolo, anche se è stato un bel consiglio perchè davvero mi sarebbe interessato. E poi non credo che io, ultimo fesso sulla faccia della terra, possa migliorare il lavoro effettuato da migliaia di programmatori che ci lavorano da anni, quindi la scarterei
2)Il machine learning sembra più qualcosa di statistica che di analisi numerica, correggimi se sbaglio
3)La realtà virtuale è anche questo un bell'argomento, però credo che mi serva soprattutto qualcuno che mi disegni le scene 3D e altro per una possibile applicazione android o sistema operativo generico;
4)La modellazione di superfici tramite curve spline mi interesserebbe davvero tanto, ma come potrei applicarla a qualcosa che ancora non esiste? Sarebbe bello come progetto creare un app che da una foto costruisca il modello 3D di tale foto, però credo che per questo avrei bisogno di tanti di quei concetti che forse è meglio prima se mi prendo una laurea in grafica ahah
5)Vulkan insieme a CUDA e OpenCL sembrano i più attuabili
Infine ecco cosa intende la prof per problemi di grandi dimensioni:
Per problemi a grandi dimensioni intendiamo per lo più problemi di algebra lineare con matrici grandi (sistemi lineari, autovalori, operazioni matriciali), con applicazioni a problemi reali.
Secondo voi quali potrebbero essere i problemi reali a cui si possono applicare questi concetti? Con gli autovalori abbiamo parlato di riconoscimento facciale, ma altri campi applicazione?
1)Aggiungere funzionalità a Blender, ma non sembra una cosa da poco e tanto meno che posso fare in singolo, anche se è stato un bel consiglio perchè davvero mi sarebbe interessato. E poi non credo che io, ultimo fesso sulla faccia della terra, possa migliorare il lavoro effettuato da migliaia di programmatori che ci lavorano da anni, quindi la scarterei

2)Il machine learning sembra più qualcosa di statistica che di analisi numerica, correggimi se sbaglio

3)La realtà virtuale è anche questo un bell'argomento, però credo che mi serva soprattutto qualcuno che mi disegni le scene 3D e altro per una possibile applicazione android o sistema operativo generico;
4)La modellazione di superfici tramite curve spline mi interesserebbe davvero tanto, ma come potrei applicarla a qualcosa che ancora non esiste? Sarebbe bello come progetto creare un app che da una foto costruisca il modello 3D di tale foto, però credo che per questo avrei bisogno di tanti di quei concetti che forse è meglio prima se mi prendo una laurea in grafica ahah
5)Vulkan insieme a CUDA e OpenCL sembrano i più attuabili

Infine ecco cosa intende la prof per problemi di grandi dimensioni:
Per problemi a grandi dimensioni intendiamo per lo più problemi di algebra lineare con matrici grandi (sistemi lineari, autovalori, operazioni matriciali), con applicazioni a problemi reali.
Secondo voi quali potrebbero essere i problemi reali a cui si possono applicare questi concetti? Con gli autovalori abbiamo parlato di riconoscimento facciale, ma altri campi applicazione?
Io direi che è molto difficile riuscire a fare qualcosa di nuovo in qualsiasi campo, non solo nella computer grafica. Soprattutto per una tesi triennale in cui non c'è il tempo per approfondire a sufficienza i necessari prerequisiti. Il mio primo consiglio è quindi quello di abbassare un po' le tue aspettative da questo punto di vista.
1) Aggiungere funzionalità a Blender non è necessariamente difficile. Dipende dal tipo di funzionalità che si desidera implementare. Non saresti inoltre da solo, gli sviluppatori dei progetti open source sono infatti spesso molto disponibili verso i nuovi arrivati. Tuttavia è prima di tutto necessario imparare come funziona il programma e questo può richiedere un po' di tempo.
2) Machine Learning è sicuramente qualcosa di "statistica" ma fa uso di parecchi strumenti di analisi numerica per arrivare ai risultati. Ma è pur sempre vero che si fa normalmente uso di librerie già fatte per questo tipo di cose.
3) Dipende dal tipo di funzionalità che desideri implementare nell'ambito della realtà virtuale. Se non vuoi realizzare scene 3D puoi comunque volgere la tua attenzione sulla realtà aumentata. Si tratta di aggiungere elementi al mondo che ci circonda (ripreso dalla telecamera del tuo cellulare ad esempio). Esempi potrebbero essere: giochi interattivi che facciano uso del mondo ripreso dalla telecamera, tracciamento posizione mani, riconoscimento visi in tempo reale, riconoscimento oggetti, aggiunta informazioni sul mondo.. Al posto di una scena 3D per la realtà virtuale si può anche usare un filmato ripreso con una telecamera o un rig per le riprese a 360 gradi in cui aggiungi elementi 3D interattivi. Tali telecamere costano ma se sei fortunato potrebbe averla comprata qualche professore che si interessa di questo argomento.
4) Un modello 3D da una singola foto non è più di tanto fattibile, ci vogliono normalmente almeno due foto per avere una idea di profondità. Ma normalmente si fa uso di centinaia di foto o di un video. Il settore si chiama fotogrammetria e a dire il vero non fa affatto uso di superfici spline. Gli oggetti sono rappresentati come nuvole di punti che vengono poi trasformate in mesh poligonali. PhotoScan è un esempio di programma per fare quello che hai proposto (credo ci siano anche prodotti open source ma non li conosco).
5) Sono attuabili a patto di implementare qualche algoritmo già descritto da qualche parte. Se vuoi fare qualcosa di nuovo non te lo consiglio.
Lavoro nel campo FEM e direi che tutte le simulazioni che vengono fatte rientrano nella tua descrizione. Si parla di matrici (sparse) con qualche milione di righe/colonne. Immagino siano abbastanza grandi
. Non hanno nulla a che fare con la grafica però e sinceramente non mi viene in mente nulla di simile a quello che hai descritto.
1) Aggiungere funzionalità a Blender non è necessariamente difficile. Dipende dal tipo di funzionalità che si desidera implementare. Non saresti inoltre da solo, gli sviluppatori dei progetti open source sono infatti spesso molto disponibili verso i nuovi arrivati. Tuttavia è prima di tutto necessario imparare come funziona il programma e questo può richiedere un po' di tempo.
2) Machine Learning è sicuramente qualcosa di "statistica" ma fa uso di parecchi strumenti di analisi numerica per arrivare ai risultati. Ma è pur sempre vero che si fa normalmente uso di librerie già fatte per questo tipo di cose.
3) Dipende dal tipo di funzionalità che desideri implementare nell'ambito della realtà virtuale. Se non vuoi realizzare scene 3D puoi comunque volgere la tua attenzione sulla realtà aumentata. Si tratta di aggiungere elementi al mondo che ci circonda (ripreso dalla telecamera del tuo cellulare ad esempio). Esempi potrebbero essere: giochi interattivi che facciano uso del mondo ripreso dalla telecamera, tracciamento posizione mani, riconoscimento visi in tempo reale, riconoscimento oggetti, aggiunta informazioni sul mondo.. Al posto di una scena 3D per la realtà virtuale si può anche usare un filmato ripreso con una telecamera o un rig per le riprese a 360 gradi in cui aggiungi elementi 3D interattivi. Tali telecamere costano ma se sei fortunato potrebbe averla comprata qualche professore che si interessa di questo argomento.
4) Un modello 3D da una singola foto non è più di tanto fattibile, ci vogliono normalmente almeno due foto per avere una idea di profondità. Ma normalmente si fa uso di centinaia di foto o di un video. Il settore si chiama fotogrammetria e a dire il vero non fa affatto uso di superfici spline. Gli oggetti sono rappresentati come nuvole di punti che vengono poi trasformate in mesh poligonali. PhotoScan è un esempio di programma per fare quello che hai proposto (credo ci siano anche prodotti open source ma non li conosco).
5) Sono attuabili a patto di implementare qualche algoritmo già descritto da qualche parte. Se vuoi fare qualcosa di nuovo non te lo consiglio.
Lavoro nel campo FEM e direi che tutte le simulazioni che vengono fatte rientrano nella tua descrizione. Si parla di matrici (sparse) con qualche milione di righe/colonne. Immagino siano abbastanza grandi

Quello che sto tenendo in conto dai vostri consigli è la realtà virtuale e la modellazione 2D.
In particolare stavo pensando di fare un gioco che faccia uso, prettamente, delle curve spline. Tipo non sò, magari una macchinina che corre su un percorso pieno di curve e l'utente in tempo reale deve scegliere una serie di punti per far fare a questa macchina la curva senza uscire di strada. Quindi si va su un gioco arcade etc etc.
Si accettano consigli, anche su un uso maggiormente scientifico delle spline
La realtà virtuale sembra un bel campo, anche se non sò come applicare le spline al suo interno, quello che mi viene in mente è come hai detto tu, un gioco interattivo sul quale non mi vengono idee. Però queste che mi hai suggerito non sono male: tracciamento posizione mani, riconoscimento visi in tempo reale, riconoscimento oggetti, aggiunta informazioni sul mondo
Però quello che vorrei è creare un'applicazione o uno strumento che abbia una funzione più scientifica che di intrattenimento, o anche di lavorare sopra uno di questi strumenti, mi hai consigliato Blender, ma la cosa mi spaventa un pò, perchè penso sempre al fatto che se una community di programmatori non è riuscita a completare alcuni elementi della ToDo list con che prerogativa dovrei arrivare io e migliorare la situazione?
Insomma se avete consigli per un ambito più scientifico per l'utilizzo delle spline, tipo simulazioni, grafici o altro non sò. Tipo esiste un calcolatore di spline? XD
Sennò mi oriento sul calcolo parallelo con i problemi di grandi dimensioni di cui parla la mia prof
In particolare stavo pensando di fare un gioco che faccia uso, prettamente, delle curve spline. Tipo non sò, magari una macchinina che corre su un percorso pieno di curve e l'utente in tempo reale deve scegliere una serie di punti per far fare a questa macchina la curva senza uscire di strada. Quindi si va su un gioco arcade etc etc.
Si accettano consigli, anche su un uso maggiormente scientifico delle spline

La realtà virtuale sembra un bel campo, anche se non sò come applicare le spline al suo interno, quello che mi viene in mente è come hai detto tu, un gioco interattivo sul quale non mi vengono idee. Però queste che mi hai suggerito non sono male: tracciamento posizione mani, riconoscimento visi in tempo reale, riconoscimento oggetti, aggiunta informazioni sul mondo
Però quello che vorrei è creare un'applicazione o uno strumento che abbia una funzione più scientifica che di intrattenimento, o anche di lavorare sopra uno di questi strumenti, mi hai consigliato Blender, ma la cosa mi spaventa un pò, perchè penso sempre al fatto che se una community di programmatori non è riuscita a completare alcuni elementi della ToDo list con che prerogativa dovrei arrivare io e migliorare la situazione?

Insomma se avete consigli per un ambito più scientifico per l'utilizzo delle spline, tipo simulazioni, grafici o altro non sò. Tipo esiste un calcolatore di spline? XD
Sennò mi oriento sul calcolo parallelo con i problemi di grandi dimensioni di cui parla la mia prof

Nessuno ha cercato di portare a termine quei progetti.. Erano idee che la community ha tirato fuori da far fare agli studenti del google summer of code (ma non essendo stata scelta per il progetto sono rimaste solo idee). Non sono certamente le priorità su cui lavorano i programmatori principali.
Al contrario di quello che è successo l'anno scorso, Blender è stato appena accettato al Google Summer of Code di quest'anno. C'è una nuova pagina delle [url=http://wiki.blender.org/index.php/Dev:Ref/GoogleSummerOfCode/2016/Ideas]idee[/url], migliore di quella dell'anno scorso, ma in un certo senso non puoi più decidere di portare avanti una di queste idee autonomamente. Il Google Summer of Code è infatti un progetto di Google che da agli studenti selezionati una certa cifra (intorno ai 5000$ quando l'avevo fatto io se non ricordo male) per lavorare nei mesi estivi (statunitensi per cui da metà maggio a metà agosto) su un progetto open source. Nel prossimo mese circa gli studenti interessati andranno nelle pagine dei progetti (quindi anche Blender) per parlare con gli sviluppatori e preparare le loro proposte. Quelle idee sono alla base della maggior parte delle proposte per cui non puoi lavorarci. Se insomma vuoi fare qualcosa che sia in quelle idee le alternative sono due:
1. Provare a partecipare al progetto
2. Aspettare di vedere le proposte accettate all'interno del progetto.
Visti i tuoi interessi l'idea "Improvements for Bezier Curves" potrebbe interessarti.
1. Provare a partecipare al progetto
2. Aspettare di vedere le proposte accettate all'interno del progetto.
Visti i tuoi interessi l'idea "Improvements for Bezier Curves" potrebbe interessarti.
Innanzitutto ancora grazie (si non finirò mai di ringraziarvi
)
Allora in questi giorni ho parlato con la prof, la quale è rimasta colpita dalle ricerche che ho fatto sulle spline utilizzate nella computer grafica e sul riconoscimento facciale (grazie anche a voi che mi avete indirizzato un pò)
La prof mi ha detto che per lei sono il primo a chiederle tesi di questo genere, sia sulla computer grafica sia sul riconoscimento facciale (il chè mi piace
). Il progetto di Google sembra davvero, ma davvero ideale! Prenderei tirocinio e tesi con un unico colpo ( e potrei dire di aver fatto anche un tirocinio con i contro-coglioni, rispetto a quelli che ci fanno fare qui all'Università), però ho vari problemi:
1)3 esami da dare, ma sono l'ultimo dei miei pensieri considerando il tirocinio;
2)Conoscenza fin troppo basilare dell'inglese, da tenere fin troppo in conto dato che dovrò lavorare con altre persone e dubito che parleranno italiano;
3)Per 3d-math penso che intendano conoscenza della matematica tridimensionale, conoscenze che non ho!
4)L'unica cosa che soddisfo e una buona conoscenza del C ahah
Quindi lascerei stare questo progetto anche se sarebbe stato bellissimo, magari quando perfezionerò l'inglese lo terrò in conto per la magistrale
(grazie vivamente per il consiglio)
Credo che ora studierò il materiale che la prof mi ha consegnato sulle spline e sul riconoscimento facciale e vedrò dove orientarmi! Ma all'80% sono orientato più sulle spline e la loro applicazione nella computer grafica, ho intenzione di fare un giochino oppure un applicativo che ne faccia uso ottimizzando qualche calcolo o cose del genere.
Per il riconoscimento facciale sono un pò demotivato dal fatto che sembra quasi non fattibile quello che vorrei fare io, cioè costruire un modello tri-dimensionale della faccia e dare quindi la possibilità all'app di riconoscere un tizio da qualsiasi angolazione,forse è dovuto anche al fatto che non ho ben approfondito le ricerche sui possibili algoritmi di costruzione di un modello tri-dimensionale di un volto... chissà se esistono piu che altro!
Se avete altri consigli sono ben accetti! Anzi più che ben accetti!
Intanto vi ringrazio infinitamente per l'aiuto

Allora in questi giorni ho parlato con la prof, la quale è rimasta colpita dalle ricerche che ho fatto sulle spline utilizzate nella computer grafica e sul riconoscimento facciale (grazie anche a voi che mi avete indirizzato un pò)
La prof mi ha detto che per lei sono il primo a chiederle tesi di questo genere, sia sulla computer grafica sia sul riconoscimento facciale (il chè mi piace

1)3 esami da dare, ma sono l'ultimo dei miei pensieri considerando il tirocinio;
2)Conoscenza fin troppo basilare dell'inglese, da tenere fin troppo in conto dato che dovrò lavorare con altre persone e dubito che parleranno italiano;
3)Per 3d-math penso che intendano conoscenza della matematica tridimensionale, conoscenze che non ho!
4)L'unica cosa che soddisfo e una buona conoscenza del C ahah
Quindi lascerei stare questo progetto anche se sarebbe stato bellissimo, magari quando perfezionerò l'inglese lo terrò in conto per la magistrale

Credo che ora studierò il materiale che la prof mi ha consegnato sulle spline e sul riconoscimento facciale e vedrò dove orientarmi! Ma all'80% sono orientato più sulle spline e la loro applicazione nella computer grafica, ho intenzione di fare un giochino oppure un applicativo che ne faccia uso ottimizzando qualche calcolo o cose del genere.
Per il riconoscimento facciale sono un pò demotivato dal fatto che sembra quasi non fattibile quello che vorrei fare io, cioè costruire un modello tri-dimensionale della faccia e dare quindi la possibilità all'app di riconoscere un tizio da qualsiasi angolazione,forse è dovuto anche al fatto che non ho ben approfondito le ricerche sui possibili algoritmi di costruzione di un modello tri-dimensionale di un volto... chissà se esistono piu che altro!
Se avete altri consigli sono ben accetti! Anzi più che ben accetti!

Intanto vi ringrazio infinitamente per l'aiuto
