OE 22. Module Point Cloud - alalek/opencv GitHub Wiki
Introduce a point cloud processing module in opencv
- Author: Vadim Pisarevsky
- Link: The feature request
- Status: Draft
- Platforms: All
- Complexity: a few man-months
Introduction and Rationale
In opencv_contrib there is rgbd module that does some point cloud processing. Besides, there is well-known Point Cloud Library under BSD license, which contains a lot of good stuff that can be ported to OpenCV. While we do not need to move every single piece of the code around the world into OpenCV, it makes sense to build a better foundation for 3D vision and robotics in OpenCV.
Proposed solution
Create a dedicated pclouds
module in the main repository with some assorted algorithms from rgbd
, calib3d
and maybe PCL
. Some initial set of functionality may include:
- algorithm to compute surface normals
- RGBD/visual odometry (compute camera trajectory based on the sequence of RGBD frames it observes)
- registration of (establishing correspondence between) RGB data and depth data coming from different sensors
- 3D filtering (smooth surfaces)
- 3D feature detection (corners)
- maybe kinect fusion (?)
- maybe DTAM
- ICP or such
- surface registration (there is dedicated module in opencv_contrib, but it implements a patented algorithm, maybe there are non-patented alternatives)
- 3D shape fitting
- structure from motion? (there is dedicated
sfm
module in opencv_contrib for that) - building blocks for SLAM (or make it a separate module?)
- ...
Impact on existing code, compatibility
Overall, this is a loosely covered part of CV in OpenCV, so it's unlikely that many people use the existing rgbd
module.
Possible alternatives
Perhaps, it should be more than 1 module and perhaps sfm
and some other parts should stay in opencv_contrib for now.
References
TBD