There are provided systems and methods for an interactive synchronization of multiple videos. An example system includes a memory storing a first video and a second video, the first video including first video clips and the second video including second video clips. The system further includes a processor configured to calculate a histogram based on a number of features that are similar between the first video clips and the second video clips, generate a cost matrix based on the histogram, generate a first graph that includes first nodes based on the cost matrix, compute a path through the graph using the nodes, and align the first video with the second video using the path, where the path corresponds to playback speeds for the first video and the second video.
BACKGROUND(1) Aligning videos is a crucial task in computer graphics and vision, required for a wide range of applications. However, when aligning video frames, many problems may arise. For example, if a user tries to align videos taken from different camera trajectories and/or at different times, the scene content and appearance may vary greatly due to the change in perspective, the moving scene content, and lighting differences, and cause the video frames that are aligned to have arbitrarily different appearances.SUMMARY(2) The present disclosure is directed to an interactive synchronization of multiple video clips, substantially as shown in and/or described in connection with at least one of the figures, as set forth more completely in the claims.
1. A system comprising: a display; a memory storing a first video and a second video, the first video including first video frames and the second video including second video frames; and a processor configured to: calculate a histogram based on similar features between each of the first video frames and each of the second video frames, wherein the features are recorded in and are part of a scene in the first video and the second video; generate a first cost matrix using the histogram for aligning the first video frames with the second video frames; generate a first graph that is a graphical interpretation of the first cost matrix, wherein the graphical interpretation of the first cost matrix includes first nodes and first edges based on the first cost matrix, and wherein each of the first nodes is identified by its position in the first cost matrix and each of the first edges is an ordered pair of the first nodes; receive an input from a user for adding a constraint node to the graphical interpretation of the first cost matrix; compute a first path through the graphical interpretation of the first cost matrix using the first nodes and the constraint node, wherein the input from the user requires the processor to compute the first path to pass through the constraint node; align the first video with the second video using the first path; and synchronizingly play the first video and the second video on the display after aligning the first video with the second video using the first path.
9. A method for interactively synchronizing multiple videos in a system having a processor and a display, the method comprising: calculating, using the processor, a histogram based on similar features between each of the first video frames and each of the second video frames, wherein the features are recorded in and are part of a scene in the first video and the second video; generating, using the processor, a first cost matrix using the histogram for aligning the first video frames with the second video frames; generating, using the processor, a first graph that is a graphical interpretation of the first cost matrix, wherein the graphical interpretation of the first cost matrix includes first nodes and first edges based on the first cost matrix, and wherein each of the first nodes is identified by its position in the first cost matrix and each of the first edges is an ordered pair of the first nodes; receiving an input from a user for adding a constraint node to the graphical interpretation of the first cost matrix; computing, using the processor, a first path through the graphical interpretation of the first cost matrix using the first nodes and the constraint node, wherein the input from the user requires the processor to compute the first path to pass through the constraint node; aligning, using the processor, the first video with the second video using the first path; and synchronizingly playing the first video and the second video on the display after the aligning of the first video with the second video using the first path.