mirror of
https://github.com/opencv/opencv.git
synced 2024-12-12 23:49:36 +08:00
80c5d18f9c
Add support for 3D point cloud segmentation, using the USAC framework. * Modify the RANSAC framework in usac such that RANSAC can be used in 3D point cloud segmentation. * 1. Add support for 3D point cloud segmentation, using the USAC framework. 2. Add solvers, error estimators for plane model and sphere model. * Added code samples to the comments of class SACSegmentation. * 1. Update the segment interface parameters of SACSegmentation. 2. Fix some errors in variable naming. * Add tests for plane detection. * 1. Add tests for sphere segmentation. 2. Fix some bugs found by tests. 3. Rename "segmentation" to "sac segmentation". 4. Rename "detect" to "segment". TODO: Too much duplicate code, the structure of the test needs to be rebuilt. * 1. Use SIMD acceleration for plane model and sphere model error estimation. 2. Optimize the RansacQualityImpl#getScore function to avoid multiple calls to the error#getError function. 3. Fix a warning in test_sac_segmentation.cpp. * 1. Fix the warning of ModelConstraintFunction ambiguity. 2. Fix warning: no previous declaration for'void cv::usac::modelParamsToUsacConfig(cv::Ptr<cv::usac::SimpleUsacConfig>&, const cv::Ptr<const cv::usac::Model>& ) * Fix a warning in test_sac_segmentation.cpp about direct comparison of different types of data. * Add code comments related to the interpretation of model coefficients. * Update the use of custom model constraint functions. * Simplified test code structure. * Update the method of checking plane models. * Delete test for cylinder. * Add some comments about UniversalRANSAC. * 1. The RANSAC paper in the code comments is referenced using the bibtex format. 2. The sample code in the code comments is replaced using @snippet. 3. Change the public API class SACSegmentation to interface. 4. Clean up the old useless code. * fix warning(no previous declaration) in 3d_sac_segmentation.cpp. * Fix compilation errors caused by 3d_sac_segmentation.cpp. * Move the function sacModelMinimumSampleSize() from ptcloud.hpp to sac_segmentation.cpp. * 1. Change the interface for setting the number of threads to the interface for setting whether to be parallel. 2. Move interface implementation code in ptcloud_utils.hpp to ptcloud_utils.cpp. * SACSegmentation no longer inherits Algorithm. * Add the constructor and destructor of SACSegmentation. * 1. For the declaration of the common API, the prefix and suffix of the parameter names no longer contain underscores. 2. Rename the function _getMatFromInputArray -> getPointsMatFromInputArray. 3. Change part of CV_CheckDepth to CV_CheckDepthEQ. 4. Remove the doxygen flag from the source code. 5. Update the loop termination condition of SIMD in the point cloud section of 3D module. * fix warning: passing 'bool' chooses 'int' over 'size_t {aka unsigned int}' . * fix warning: passing 'bool' chooses 'int' over 'size_t {aka unsigned int}' .
98 lines
4.0 KiB
BibTeX
98 lines
4.0 KiB
BibTeX
@article{lepetit2009epnp,
|
|
title={Epnp: An accurate o (n) solution to the pnp problem},
|
|
author={Lepetit, Vincent and Moreno-Noguer, Francesc and Fua, Pascal},
|
|
journal={International journal of computer vision},
|
|
volume={81},
|
|
number={2},
|
|
pages={155--166},
|
|
year={2009},
|
|
publisher={Springer}
|
|
}
|
|
|
|
@article{gao2003complete,
|
|
title={Complete solution classification for the perspective-three-point problem},
|
|
author={Gao, Xiao-Shan and Hou, Xiao-Rong and Tang, Jianliang and Cheng, Hang-Fei},
|
|
journal={Pattern Analysis and Machine Intelligence, IEEE Transactions on},
|
|
volume={25},
|
|
number={8},
|
|
pages={930--943},
|
|
year={2003},
|
|
publisher={IEEE}
|
|
}
|
|
|
|
@inproceedings{hesch2011direct,
|
|
title={A direct least-squares (DLS) method for PnP},
|
|
author={Hesch, Joel and Roumeliotis, Stergios and others},
|
|
booktitle={Computer Vision (ICCV), 2011 IEEE International Conference on},
|
|
pages={383--390},
|
|
year={2011},
|
|
organization={IEEE}
|
|
}
|
|
|
|
@article{penate2013exhaustive,
|
|
title={Exhaustive linearization for robust camera pose and focal length estimation},
|
|
author={Penate-Sanchez, Adrian and Andrade-Cetto, Juan and Moreno-Noguer, Francesc},
|
|
journal={Pattern Analysis and Machine Intelligence, IEEE Transactions on},
|
|
volume={35},
|
|
number={10},
|
|
pages={2387--2400},
|
|
year={2013},
|
|
publisher={IEEE}
|
|
}
|
|
|
|
@inproceedings{Terzakis2020SQPnP,
|
|
title={A Consistently Fast and Globally Optimal Solution to the Perspective-n-Point Problem},
|
|
author={George Terzakis and Manolis Lourakis},
|
|
booktitle={European Conference on Computer Vision},
|
|
pages={478--494},
|
|
year={2020},
|
|
publisher={Springer International Publishing}
|
|
}
|
|
|
|
@inproceedings{strobl2011iccv,
|
|
title={More accurate pinhole camera calibration with imperfect planar target},
|
|
author={Strobl, Klaus H. and Hirzinger, Gerd},
|
|
booktitle={2011 IEEE International Conference on Computer Vision (ICCV)},
|
|
pages={1068-1075},
|
|
month={Nov},
|
|
year={2011},
|
|
address={Barcelona, Spain},
|
|
publisher={IEEE},
|
|
url={https://elib.dlr.de/71888/1/strobl_2011iccv.pdf},
|
|
doi={10.1109/ICCVW.2011.6130369}
|
|
}
|
|
|
|
@inproceedings{kinectfusion,
|
|
author = {Izadi, Shahram and Kim, David and Hilliges, Otmar and Molyneaux, David and Newcombe, Richard and Kohli, Pushmeet and Shotton, Jamie and Hodges, Steve and Freeman, Dustin and Davison, Andrew and Fitzgibbon, Andrew},
|
|
title = {KinectFusion: Real-time 3D Reconstruction and Interaction Using a Moving Depth Camera},
|
|
booktitle = {},
|
|
year = {2011},
|
|
month = {October},
|
|
abstract = {
|
|
KinectFusion enables a user holding and moving a standard Kinect camera to rapidly create detailed 3D reconstructions of an indoor scene.
|
|
Only the depth data from Kinect is used to track the 3D pose of the sensor and reconstruct, geometrically precise, 3D models of the physical scene in real-time.
|
|
The capabilities of KinectFusion, as well as the novel GPU-based pipeline are described in full. We show uses of the core system for low-cost handheld scanning,
|
|
and geometry-aware augmented reality and physics-based interactions. Novel extensions to the core GPU pipeline demonstrate object segmentation and user interaction directly
|
|
in front of the sensor, without degrading camera tracking or reconstruction. These extensions are used to enable real-time multi-touch interactions anywhere,
|
|
allowing any planar or non-planar reconstructed physical surface to be appropriated for touch.
|
|
},
|
|
publisher = {ACM},
|
|
url = {https://www.microsoft.com/en-us/research/publication/kinectfusion-real-time-3d-reconstruction-and-interaction-using-a-moving-depth-camera/},
|
|
address = {},
|
|
pages = {559-568},
|
|
journal = {},
|
|
volume = {},
|
|
chapter = {},
|
|
isbn = {978-1-4503-0716-1},
|
|
}
|
|
|
|
@article{fischler1981random,
|
|
title={Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography},
|
|
author={Fischler, Martin A and Bolles, Robert C},
|
|
journal={Communications of the ACM},
|
|
volume={24},
|
|
number={6},
|
|
pages={381--395},
|
|
year={1981},
|
|
publisher={ACM New York, NY, USA}
|
|
} |