Für meine Anwendung analysierte ich die räumliche Auflösung der Kinect v2.Kinect v2: Räumliche Auflösung/Tiefenauflösung/Kamerakalibrierung
Um die räumliche Auflösung zu analysieren, zeichnete ich eine senkrechte und plane Ebene zu einer gegebenen Entfernung auf und wandelte die Tiefenkarte der Ebene in eine Punktwolke um. Dann vergleiche ich einen Punkt mit seinen Nachbarn, indem ich die euklidische Distanz berechne.
Berechnung der euklidischen Entfernung für diesen Fall (1 Meter zwischen Ebene und Kinect) die Auflösung ist nahe 3 mm zwischen den Punkten. Für ein Flugzeug mit 2 Metern Abstand habe ich eine Auflösung von bis zu 3 mm.
Vergleicht man dies mit der Literatur, denke ich, dass meine Ergebnisse ziemlich schlecht sind.
Zum Beispiel Yang et al. bekam für ein Flugzeug mit Abstand von 4 m bis zum kinect eines mittlere Auflösung von 4 mm (Evaluating and Improving the Depth Accuracy of Kinect for Windows v2)
Hier ist ein Beispiel für meine Punktwolke der planaren Ebene (2 Meter Entfernung zu meinem kinect):
Hat jemand eine Beobachtung bezüglich der räumlichen Auflösung der Kinect v2 gemacht oder eine Idee, warum meine Auflösung so schlecht ist?
Meiner Meinung nach ist bei der Umwandlung meines Tiefenbildes in Weltkoordinaten etwas falsch gelaufen. Deshalb hier ein Code 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: Bisher habe ich auch versucht, die Punkte enthalten, um direkt von coordinate mapper
ohne weitere Kalibrierungsschritte.
Die Ergebnisse bezüglich der Auflösung sind immer noch gleich. Hat jemand irgendwelche Vergleichsergebnisse?
Ich dachte auch über den Ansatz Speichern der KameraSpaceTable nach! Aber ich verwerfe es, weil ich gelesen habe, dass die Werkskalibrierung von Kinect v2 nicht so gut ist. Also möchte ich meine eigene Kalibrierung machen und sie meiner Anwendung hinzufügen. Deshalb mache ich die kompliziertere Art, meine Weltkoordinaten zu berechnen! – JavaNullPointer
Wo hast du es gelesen? – 16per9
Titel: Erste Erfahrungen mit Kinect v2-Sensor für die 3D-Modellierung im Nahbereich. Autoren: Lachat, E .; Macher, H .; Link: http://www.int-arch-photogramm-remote-sens-spatial-inf-sci.net/XL-5-W4/93/2015/iscrsarchives-XL-5-W4-93-2015.pdf – JavaNullPointer