Panoramic image stitcher based on 'Automatic Panoramic Image Stitching using Invariant Features' by Matthew Brown and David Lowe.
Using Python 3, install:
- numpy
- cv2
- argparse
- scipy
- ordered_set
python3 ./src/stitcher/main.py <path_to_input_images_directory>
- Extract SIFT features from all images
- Find similar SIFT features using KD tree
- Verify matches using RANSAC, more inliers = good match
- Iteratively add each image to the bundle adjuster (with the best matches being added first)
- Rotation matrix is converted to rotation vectors to allow the rotation to be parameterised with fewer variables in order to reduce the problem size
- Uses Symbolic differentiation to build the Jacobian matrix
- Optimises for the reprojection error between matches, this bundle adjuster does not take into account the 3D projections however this will be added as an option in the future
- The Adobe Panoramas Dataset has been used for testing: https://sourceforge.net/adobe/adobedatasets/panoramas/home/Home/
- Improve RANSAC speed
- Improve bundle adjustment speed
- Add spherical projection for output image
- Add gain compensation
- Add blending