diff --git a/source/node-reference/nodes/CameraCalibration.rst b/source/node-reference/nodes/CameraCalibration.rst index cef108e..2030ad8 100644 --- a/source/node-reference/nodes/CameraCalibration.rst +++ b/source/node-reference/nodes/CameraCalibration.rst @@ -9,9 +9,7 @@ CameraCalibration This node just needs a bit more work before using it directly into the Meshroom graph. If someone is interested to contribute to this feature, we would be glad to provide assistance. -The internal camera parameters can be calibrated from multiple views of a checkerboard. This allows to retrieve focal length, principal point and distortion parameters. A detailed explanation is presented in [opencvCameraCalibration]. - -[opencvCameraCalibration] http://docs.opencv.org/3.0-beta/doc/tutorials/calib3d/camera_calibration/camera_calibration.html +The internal camera parameters can be calibrated from multiple views of a checkerboard. This allows to retrieve focal length, principal point and distortion parameters. A detailed explanation is presented in :cite:`OpenCVcameraCalibration`. ========================= ============================================================================================================================= Name Description diff --git a/source/node-reference/nodes/CameraLocalization.rst b/source/node-reference/nodes/CameraLocalization.rst index ab61e4e..cfd04e2 100644 --- a/source/node-reference/nodes/CameraLocalization.rst +++ b/source/node-reference/nodes/CameraLocalization.rst @@ -8,9 +8,7 @@ retrieve the motion of an animated camera in the scene of the 3D reconstruction. This is very useful for doing texture reprojection in other software as part of a texture clean up pipeline. Could also be used to leverage Meshroom as a 3D camera tracker as part of a VFX -pipeline. - -https://alicevision.github.io/#photogrammetry/localization +pipeline. :cite:`AVCameraLocalization` settings diff --git a/source/node-reference/nodes/DepthMap.rst b/source/node-reference/nodes/DepthMap.rst index 74c0eba..4400924 100644 --- a/source/node-reference/nodes/DepthMap.rst +++ b/source/node-reference/nodes/DepthMap.rst @@ -46,17 +46,11 @@ Output Output folder for generated depth maps **Detailed description** -For all cameras that have been resolved by SfM, we want to retrieve the depth value of each pixel. Many approaches exist, like Block Matching, Semi-Global Matching (SGM) [Hirschmüller2005], [Hirschmüller2008] or ADCensus [Xing2011]. We will focus on the SGM method implemented in AliceVision. +For all cameras that have been resolved by SfM, we want to retrieve the depth value of each pixel. Many approaches exist, like Block Matching, Semi-Global Matching (SGM) :cite:`Hirschmüller2005`, :cite:`Hirschmüller2008` or ADCensus :cite:`Mei2011`. We will focus on the SGM method implemented in AliceVision. For each image, we select the N best/closest cameras around. We select fronto-parallel planes based on the intersection of the optical axis with the pixels of the selected neighboring cameras. This creates a volume W, H, Z with many depth candidates per pixel. We estimate the similarity for all of them. The similarity is computed by the Zero Mean Normalized Cross-Correlation (ZNCC) of a small patch in the main image reprojected into the other camera. This create a volume of similarities. For each neighboring image, we accumulate similarities into this volume. This volume is very noisy. We apply a filtering step along X and Y axes which accumulates local costs which drastically reduce the score of isolated high values. We finally select the local minima and replace the selected plane index with the depth value stored into a depth map. This depth map has banding artifacts as it is based on the original selection of depth values. So a refine step is applied to get depth values with sub-pixel accuracy. All these depth maps can be computed independently in parallel. Then we apply a filtering step to ensure consistency between multiple cameras. A compromise is chosen based on both similarity value and the number of coherent cameras to keep weakly supported surfaces without adding artefacts. -================== ============================================================================================================================================= -[Hirschmüller2005] Accurate and efficient stereo processing by semi-global matching and mutual information, H. Hirschmüller. CVPR 2005 -[Hirschmüller2008] Stereo processing by semiglobal matching and mutual information, H. Hirschmüller, 2008 -[Strecha2006] Combined depth and outlier estimation in multi-view stereo, C. Strecha, R. Fransens, and L. Van Gool, CVPR 2006 -[Scharstein2002] A taxonomy and evaluation of dense two-frame stereo correspondence algorithms, D. Scharstein and R. Szeliski, 2002 -[Xing2011] On building an accurate stereo matching system on graphics hardware. Xing, M., Xun, S., Mingcai Z., Shaohui J., Haitao, W., Xiaopeng Z., 2011 -================== ============================================================================================================================================= +Additional references: :cite:`Strecha2006`, :cite:`Scharstein2002` diff --git a/source/refs.bib b/source/refs.bib index ae121c3..9fcd90e 100644 --- a/source/refs.bib +++ b/source/refs.bib @@ -1,12 +1,77 @@ +@misc{AVCameraLocalization, + title = {AlicevisionCameraLocalization}, + url = { https://alicevision.github.io/#photogrammetry/localization}, + howpublished = {alicevision.github.io}, + publisher = {Alicevision} +} @inproceedings{Kneip2011, -author = {Kneip, Laurent and Scaramuzza, Davide and Siegwart, Roland}, -year = {2011}, -month = {06}, -pages = {2969-2976}, -title = {A novel parametrization of the perspective-three-point problem for a direct computation of absolute camera position and orientation}, -booktitle = {CVPR, IEEE Computer Society Conference on Computer Vision and Pattern Recognition. IEEE Computer Society Conference on Computer Vision and Pattern Recognition}, -journal = {Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition}, -doi = {10.1109/CVPR.2011.5995464} + author = {Kneip, Laurent and Scaramuzza, Davide and Siegwart, Roland}, + year = {2011}, + month = {06}, + pages = {2969-2976}, + title = {A novel parametrization of the perspective-three-point problem for a direct computation of absolute camera position and orientation}, + booktitle = {Proceedings of the IEEE Computer Society Conference on Computer Vision and Pattern Recognition}, + doi = {10.1109/CVPR.2011.5995464} +} + +@misc{OpenCVcameraCalibration, + title = {Camera calibration With OpenCV}, + url = {http://docs.opencv.org/3.0-beta/doc/tutorials/calib3d/camera_calibration/camera_calibration.html; https://web.archive.org/web/20200528170603/https://docs.opencv.org/3.0-beta/doc/tutorials/calib3d/camera_calibration/camera_calibration.html}, + howpublished = {Camera calibration With OpenCV - OpenCV 3.0.0-dev documentation}, publisher = {OpenCV} +} + +@inproceedings{Hirschmüller2005, + doi = {10.1109/cvpr.2005.56}, + year = {2005}, + publisher = {{IEEE}}, + author = {H. Hirschmuller}, + title = {Accurate and Efficient Stereo Processing by Semi-Global Matching and Mutual Information}, + booktitle = {2005 {IEEE} Computer Society Conference on Computer Vision and Pattern Recognition ({CVPR}{\textquotesingle}05)} +} + +@article{Hirschmüller2008, + doi = {10.1109/tpami.2007.1166}, + year = {2008}, + month = feb, + publisher = {Institute of Electrical and Electronics Engineers ({IEEE})}, + volume = {30}, + number = {2}, + pages = {328--341}, + author = {H. Hirschmuller}, + title = {Stereo Processing by Semiglobal Matching and Mutual Information}, + journal = {{IEEE} Transactions on Pattern Analysis and Machine Intelligence} } +@inproceedings{Strecha2006, + doi = {10.1109/cvpr.2006.78}, + year = {2006}, + publisher = {{IEEE}}, + author = {C. Strecha and R. Fransens and L. Van Gool}, + title = {Combined Depth and Outlier Estimation in Multi-View Stereo}, + booktitle = {2006 {IEEE} Computer Society Conference on Computer Vision and Pattern Recognition - Volume 2 ({CVPR}{\textquotesingle}06)} +} + +@article{Scharstein2002, + doi = {10.1023/a:1014573219977}, + year = {2002}, + title = {A Taxonomy and Evaluation of Dense Two-Frame Stereo Correspondence Algorithms}, + publisher = {Springer Science and Business Media {LLC}}, + volume = {47}, + number = {1/3}, + pages = {7--42}, + author = {Daniel Scharstein and Richard Szeliski}, + journal = {International Journal of Computer Vision} +} + +@inproceedings{Mei2011, + doi = {10.1109/iccvw.2011.6130280}, + year = {2011}, + month = nov, + publisher = {{IEEE}}, + author = {Xing Mei and Xun Sun and Mingcai Zhou and Shaohui Jiao and Haitao Wang and Xiaopeng Zhang}, + title = {On building an accurate stereo matching system on graphics hardware}, + booktitle = {2011 {IEEE} International Conference on Computer Vision Workshops ({ICCV} Workshops)} +} + +