I am working on bundle block adjustment for finding
- X,Y,Z values of image points
- Corrected values of camera characteristics(extrinsic parameters etc..)
- Corrected values of measurements
In my opinion BB Adjustment process is done by following these steps(camera intrinsics are given):
- Gather tie points( x,y for each image pair ) and ground control points( x,y and related X,Y,Z positions for each image )
- Calculate initial extrinsic parameters( camera pose ) for each view
- Calculate each tie point's initial real world position by using camera pose
- Execute sparse bundle adjustment step by using all these initial values and other parameters as inputs
- Use output of sparse bundle adjustment as accurate results of real world position, extrinsic characteristics and measurements.
One thing i want to ask is if that flow is correct. There are lots of methods for structure and motion estimation from views so i can not be so sure about that.
As i search through various resources i found that there are libraries that does each part of the block bundle adjustment operation. For each step:
- Image processing libraries like OpenCV may be used for automatic tie point collection
- cvFindExtrinsicCameraParams2 may be used for space resection ( but it requires 4 points, for block bundle adjustment it is mentioned that 3 Ground control points are enough for each view. Should i use another method like pose estimation from stereo views? )
- By using triangulation and projection methods of OpenCV, real world positions may be calculated
- SBA or SSBA is suitable for this operation
- N/A
One another question is that, if previously mentioned flow is right, is matched libraries are enough for implementing entire flow?( May be better advises for each part )
I am newbie in this field, so i appreciate any help in this subject, Thanks...