Per la mia applicazione, ho analizzato la risoluzione spaziale di Kinect v2.Kinect v2: risoluzione spaziale/risoluzione profondità/calibrazione camera
Per analizzare la risoluzione spaziale, ho registrato un piano perpendicolare e planare a una data distanza e ho convertito la mappa di profondità del piano in una nuvola di punti. Poi paragono un punto ai suoi vicini calcolando la distanza euclidea.
Calcolando la distanza euclidea per questo caso (1 metro tra piano e cinto) la risoluzione è vicina a 3 mm tra i punti. Per un aereo con una distanza di 2 metri ho ottenuto una risoluzione fino a 3 mm.
Paragonandolo alla letteratura, penso che i miei risultati siano piuttosto negativi.
Ad esempio Yang et al. ottenuto per un aereo con distanza di 4 metri al kinect una media risoluzione di 4 mm (Evaluating and Improving the Depth Accuracy of Kinect for Windows v2)
qui un esempio per il punto di intorbidamento del piano planare (Distance 2 misuratore mio kinect):
Qualcuno ha fatto qualche osservazione riguardo alla risoluzione spaziale del Kinect v2 o un'idea del perché la mia risoluzione è cattiva come quella?
A mio parere penso che ci sia qualcosa di sbagliato quando si converte la mia immagine di profondità in coordinate mondiali. Quindi qui un codice snipped:
%normalize image points by multiply inverse of K
u_n=(u(:)-c_x)/f_x;
v_n=(v(:)-c_y)/f_y;
% u,v are uv-coordinates of my depth image
%calc radial distortion
r=sqrt(power(u_n,2)+power(v_n,2));
radial_distortion =1.0 + radial2nd * power(r,2) + radial4nd * power(r,4) + radial6nd * power(r,6);
%apply radial distortion to uv-coordinates
u_dis=u_n(:).*radial_distortion;
v_dis=v_n(:).*radial_distortion;
%apply cameramatrix to get undistorted depth point
x_depth=u_dis*f_x+c_x;
y_depth=v_dis*f_y+c_y;
%convert 2D to 3D
X=((x_depth(:)-c_x).*d(:))./f_x;
Y=((y_depth(:)-c_y).*d(:))./f_y;
Z=d; % d is the given depth value at (u,v)
EDIT: Finora ho anche cercato di includere i punti direttamente da coordinate mapper
senza ulteriori fasi di calibrazione.
I risultati relativi alla risoluzione sono rimasti gli stessi. Qualcuno ha qualche risultato di confronto?
Ho anche pensato all'approccio che salva cameraSpaceTable! Ma lo scartano perché ho letto che la calibrazione di fabbrica di Kinect v2 non è buona. Quindi voglio fare la mia calibrazione e aggiungerla alla mia applicazione. Ecco perché faccio il modo abbastanza più complicato di calcolare le coordinate del mio mondo! – JavaNullPointer
Dove l'hai letto? – 16per9
Titolo: Prime esperienze con il sensore Kinect v2 per modellazione 3d a breve distanza. Autori: Lachat, E .; Macher, H .; Link: http://www.int-arch-photogramm-remote-sens-spatial-inf-sci.net/XL-5-W4/93/2015/isprsarchives-XL-5-W4-93-2015.pdf – JavaNullPointer