We were able to iterate and improve on our goal of implementing a video stabilization algorithm in real time. While we were quickly able to identify the basic algorithm that we wished to implement, when we first tested our implementation we realized that we were dealing with far different constraints then explained in our readings. Since we wished to work in real time, we would have to highly prioritize the speed of our algorithm even at the expense of accuracy. In addition, we were dealing with an additional constraint of using a smartphone device which is less powerful than a computer. Therefore, our final result was finding a balance of having it accurate enough while still being pleasant to view. The most progress was made when we discovered that finding the descriptors and keypoints were the most expensive operations, and then we could identify ways to modify our algorithm to limit those operations.
This type of work is very relevant for a majority of users who record video on their phone by hand, as it is very hard to prevent shaking so some amount of video stabilization will be useful. In addition, the question of finding the most efficient algorithm would be of high interest to all smartphone producers.