Patent ID: 8867789

Claim:
A non-transitory computer-readable medium embodying a program executable in a computing device, comprising: code that obtains a plurality of video frames of a video comprising an object; code that obtains data from a user identifying an initial outline of the object in one of the video frames; code that tracks the object across a plurality of the video frames in a first temporal direction to generate a first tracking result; code that determines a tracking confidence level of the first tracking result for a plurality of the video frames, the tracking confidence level being based on a plurality of probability values for a plurality of pixels; code that stops the code that tracks the object in the first temporal direction upon an occurrence of a first predefined event, the first predefined event being based on a changing rate of tracking confidence levels of successive frames; code that obtains data identifying an outline of the object upon the tracking of the object in the first temporal direction being stopped, the data being obtained from a user; code that tracks the object across a plurality of video frames in a second temporal direction to generate a second tracking result, the second temporal direction being an opposite direction of the first temporal direction; and code that generates a refined tracking result based on at least a portion of the first tracking result from the code that tracks the object in the first temporal direction and at least a portion of the second tracking result from the code that tracks the object in the second temporal direction; wherein the code that tracks the object in the first temporal direction and the code that tracks the object in the second temporal direction are based on an estimated motion vector of at least one pixel, a color distribution for the object, an intensity gradient for the object, or a combination thereof.