MichaelAlissa: Difference between revisions
imported>Student221 No edit summary |
imported>Student221 No edit summary |
||
| Line 12: | Line 12: | ||
===3D Point Cloud Construction=== | ===3D Point Cloud Construction=== | ||
With a two sets equivalent points described in each camera’s xyz coordinate system, we used an approach outlined in ref[] to calculate the rotation matrix and translation vector, allowing us to transform points in one camera’s coordinate system to the coordinate system of a second camera. For 3 x n matrices A and B, which represent similar sets of 3D points for camera 1 and camera 2, respectively, this approached can outlined as follows: | |||
# Calculate the centroid for each set of points, given by the equation <math>A_{centroid} = \frac{1}{N}\sum^N_{i=1}{A_i}</math>. Shown in Figure #, this is simply the average of the x, y, and z values for all points in a set. | |||
# Center both sets of points at the origin (Figure #). This is accomplished subtracting the centroid of each set from all the points in the corresponding set. | |||
# To find the rotation from A to B in Figure #, we take the singular value decomposition (SVD) of the cross-covariance matrix of A and B. This cross covariance matrix can be calculated as <math>H = (A_{centered}){(B_{centered})}^T</math>. We can then take the SVD of this cross-covariance matrix <math>Q_1 \Sigma Q_2 = SVD(H)</math>. Since we are assuming a rigid transformation (no scaling or shearing), the <math>\Sigma</math> term can be neglected. The rotation matrix <math>R</math>I s then given as <math>(Q_1){(Q_2)}^T </math>. This rotation can be applied to A to so that it possesses the same orientation as B, as shown in Figure #. | |||
# To determine the translation vector <math>t</math>, we find the vector joining the B and the rotated set A, seen in Figure#: <math>t = (B_{centroid}) – (R)(A_{centroid})</math>. | |||
== Results == | == Results == | ||
| Line 24: | Line 29: | ||
===3D Point Cloud Construction=== | ===3D Point Cloud Construction=== | ||
== Conclusions == | == Conclusions == | ||
Revision as of 22:11, 12 December 2019
Introduction
Background
Methods
Accuracy and Temporal Noise Characterization

To establish a baseline of the error present in the point cloud construction from multi-camera setup, we first characterized the accuracy and temporal noise for a single camera. To accomplish this, we designed an experimental rig—depicted in Figures # and #—which allowed the imaging plane of the camera and the surfaced of the wall to oriented parallel to each other. The camera could then be adjusted to different distances from the wall while maintaining this orientation. We performed recordings ranging from 0.2 – 2 meters at increments of 0.2 meters. Five, 1-minute recording with a sampling rate of 90 frames per second were taken at each measurement distance, analysis for all recordings was confined to the same section of wall, which possessed a matte, textured finish.
Camera Calibration
3D Point Cloud Construction
With a two sets equivalent points described in each camera’s xyz coordinate system, we used an approach outlined in ref[] to calculate the rotation matrix and translation vector, allowing us to transform points in one camera’s coordinate system to the coordinate system of a second camera. For 3 x n matrices A and B, which represent similar sets of 3D points for camera 1 and camera 2, respectively, this approached can outlined as follows:
- Calculate the centroid for each set of points, given by the equation . Shown in Figure #, this is simply the average of the x, y, and z values for all points in a set.
- Center both sets of points at the origin (Figure #). This is accomplished subtracting the centroid of each set from all the points in the corresponding set.
- To find the rotation from A to B in Figure #, we take the singular value decomposition (SVD) of the cross-covariance matrix of A and B. This cross covariance matrix can be calculated as . We can then take the SVD of this cross-covariance matrix . Since we are assuming a rigid transformation (no scaling or shearing), the term can be neglected. The rotation matrix I s then given as . This rotation can be applied to A to so that it possesses the same orientation as B, as shown in Figure #.
- To determine the translation vector , we find the vector joining the B and the rotated set A, seen in Figure#: Failed to parse (syntax error): {\displaystyle t = (B_{centroid}) – (R)(A_{centroid})} .
Results
Accuracy and Temporal Noise Characterization

With the recordings described in the Methods section, two metrics were calculated: (1) depth error and (2) temporal noise. Depth error, which relates the camera’s ability to accurately determine an object’s distance, can be described as
which is simply average of differences between the wall depths reported by the camera and true distance to the wall. Temporal noise, which characterizes the spread of depth values on an object over the duration of a recording, is calculated as
where is the standard deviation of the
pixel over a recording. Plots of these calculations at different distances can be viewed in Figure #. As seen in these figures, both depth error and temporal noise increase as the square of the distance between the wall and the camera, which—as described below—impacts the ability of these cameras to accurately reconstruct 3D point clouds from this data.

While performing these calculations, we also analyzed the effect that different surfaces had on camera error. Examining a painted section of wall, shown in Figure #, the temporal noise at 2 meters was evaluated. A heat map of the pixel standard deviations over the minute-long recording can be viewed in Figure #. From this heat map, glossier areas (such as the brown trees in Figure #) create significantly more temporal noise than areas with matte finish. This highlights the d435’s susceptibility to increased error in highly reflective environments, a fact which must be considered whenever recordings are performed.
Camera Calibration
3D Point Cloud Construction
Conclusions
Appendix
You can write math equations as follows:
You can include images as follows (you will need to upload the image first using the toolbox on the left bar, using the "Upload file" link).
[[File:Screen_Shot_2016-11-29_at_7.05.37_PM.png|200px]