/Real-time-video-stitching

:telescope: This is a framework that combines multiple frames acquired from moving cameras

Primary LanguageC++

Real-time Video stitching Using Camera Path Estimation and Homography Refinement

This is a framework that combines multiple frames acquired from moving cameras

For reduce stitching time, we estimate homography using the optical-flow algorithm (Camera Path Estimation), then remove errors of homography using the block-matching (Homograpy Refinement).

Paper address link "Yoon, J., & Lee, D. (2017). Real-Time Video Stitching Using Camera Path Estimation and Homography Refinement. Symmetry, 10(1), 4."

Video address link

alt text

1. Abstract

We propose a novel real-time video stitching method using camera path estimation and homography refinement. The method can stably stitch multiple frames acquired from moving cameras in real time. In the proposed method, one initial between-camera (BC) homography and each camera path (CP) homography are used to estimate the BC homography at every frame. The BC homography is refined by using block matching to adjust the errors of estimated CPs (homography refinement). For fast processing, we extract features using the difference of intensities and use the optical flow to estimate camera motion (CM) homographies, which are multiplied with the previous CMs to calculate CPs (camera path estimations). In experiments, we demonstrated the performance of the CP estimation and homography refinement approach by comparing it with other methods. The experimental results show that the proposed method can stably stitch two image sequences at a rate exceeding 13 fps (frames per second).

2. Overall Method

head

3. Camera Path Estimation

3-1. Feature Extraction (diffrence of intensity on grid)

head

3-2. Feature Tracking (optical flow)

head

3-3. Result

head

4. Homography Refinement

4-1. Homography Refinement (block-matching)

head

4-2. Result

head

5. Result

  • Sample Result

head

head

Link : result video

  • Time

head

Code

It is based on OpenCV 2.4.1.1, MFC

Thanks to