Ho una grande serie di punti (ordine di 10k punti) formati da tracce di particelle (movimento nel piano xy nel tempo filmato da una telecamera, quindi fotogrammi 3d - 256x256px e ca 3k nel mio set di esempio) e rumore. Queste particelle viaggiano approssimativamente su linee rette approssimativamente (ma solo approssimativamente) nella stessa direzione, e quindi per l'analisi delle loro traiettorie sto cercando di adattare le linee attraverso i punti. Ho provato a usare Sequential RANSAC, ma non riesco a trovare un criterio per individuare in modo affidabile falsi positivi, così come T-e J-Linkage, che erano troppo lenti e anche non abbastanza affidabili.
Ecco un'immagine di una parte del set di dati con adattamenti positivi e negativi che ho ottenuto con Ransac sequenziale: sto usando i centroidi dei BLOB di particelle, le dimensioni dei BLOB variano tra 1 e circa 20 pixel.
Ho scoperto che anche i sottocampioni che utilizzano ad esempio solo ogni decimo frame hanno funzionato abbastanza bene, quindi la dimensione dei dati da elaborare può essere ridotta in questo modo.
Ho letto un post sul blog su tutto ciò che le reti neurali possono realizzare e vorrei chiederti se questa sarebbe un'applicazione fattibile per una prima di iniziare a leggere (vengo da un background non matematico, quindi dovrei fare abbastanza un po 'di lettura)?
O potresti suggerire un metodo diverso?
Grazie!
Addendum: ecco il codice per una funzione Matlab per generare una nuvola di punti campione contenente 30 linee rumorose parallele, che non riesco ancora a distinguere:
function coords = generateSampleData()
coords = [];
for i = 1:30
randOffset = i*2;
coords = vertcat(coords, makeLine([100+randOffset 100 100], [200+randOffset 200 200], 150, 0.2));
end
figure
scatter3(coords(:,1),coords(:,2),coords(:,3),'.')
function linepts = makeLine(startpt, endpt, numpts, noiseOffset)
dirvec = endpt - startpt;
linepts = bsxfun( @plus, startpt, rand(numpts,1)*dirvec); % random points on line
linepts = linepts + noiseOffset*randn(numpts,3); % add random offsets to points
end
end