A system comprising: a video input port to receive a video comprising a sequence of video frames; one or more processors; and memory storing instructions that, when executed by the one or more processors, configure the one or more processors to perform operations comprising: identifying object features in individual video frames of the sequence of the video frames; performing homographic estimation between video frames of the sequence of video frames to generate a modified sequence of video frames, wherein the homographic estimation is based, at least in part, on the identified object features and determines an original camera path formed by a sequence of camera poses defined using estimated homographies between each pair of neighboring video frames in the sequence of video frames; characterized in that the operations further comprise: applying adaptive path smoothing to the modified sequence of video frames to generate a smoothed sequence of video frames, wherein the adaptive path smoothing comprises determining a smoothed camera path given the original camera path by minimizing an objective function, the objective function comprising a data term that tends to constrain the smoothed camera path to be close to the original camera path, a smoothness term to stabilize the smoothed camera path, and an adaptive weight associated with the smoothness term that tends to preserve camera path discontinuity, wherein the adaptive weight is based, at least in part, on a function which provides a measurement of changes between two camera poses of the original camera path and on a function which computes a homography fitting error between two video frames subsequent to homography-based registration. a video input port to receive a video comprising a sequence of video frames; one or more processors; and memory storing instructions that, when executed by the one or more processors, configure the one or more processors to perform operations comprising: identifying object features in individual video frames of the sequence of the video frames; performing homographic estimation between video frames of the sequence of video frames to generate a modified sequence of video frames, wherein the homographic estimation is based, at least in part, on the identified object features and determines an original camera path formed by a sequence of camera poses defined using estimated homographies between each pair of neighboring video frames in the sequence of video frames; identifying object features in individual video frames of the sequence of the video frames; performing homographic estimation between video frames of the sequence of video frames to generate a modified sequence of video frames, wherein the homographic estimation is based, at least in part, on the identified object features and determines an original camera path formed by a sequence of camera poses defined using estimated homographies between each pair of neighboring video frames in the sequence of video frames; characterized in that the operations further comprise: applying adaptive path smoothing to the modified sequence of video frames to generate a smoothed sequence of video frames, wherein the adaptive path smoothing comprises determining a smoothed camera path given the original camera path by minimizing an objective function, the objective function comprising a data term that tends to constrain the smoothed camera path to be close to the original camera path, a smoothness term to stabilize the smoothed camera path, and an adaptive weight associated with the smoothness term that tends to preserve camera path discontinuity, wherein the adaptive weight is based, at least in part, on a function which provides a measurement of changes between two camera poses of the original camera path and on a function which computes a homography fitting error between two video frames subsequent to homography-based registration.