1. A method for estimating optical flow based on a first image frame and a second image frame of an input video stream, the method comprising the steps of: (a) generating a pyramid model for each of the first image frame and the second image frame, wherein each pyramid model comprises a plurality of levels; (b) performing color segmentation for each level of the pyramid models to produce a plurality of color-segmented regions; (c) estimating a forward optical flow between the first image frame and the second image frame, wherein the estimation comprises detecting at least one occluded region between the first image frame and the second image frame; (d) performing color-based bilateral filtering on the estimated forward optical flow; (e) estimating a backward optical flow between the second image frame and the first image frame, wherein the estimation comprises detecting at least one occluded region between the second image frame and the first image frame; (f) performing color-based bilateral filtering on the estimated backward optical flow; (g) refining the estimated forward optical flow and backward optical flow; and (h) generating a final estimated optical flow by performing steps (c)-(g) for each level of the pyramid.