Computing the optical flow between images is a common technique used to infer the apparent motion between the images and compute a motion field for image processing and computer graphics applications, such as for optical flow registration, which is useful for image tracking, motion segmentation, and other motion processing applications. A motion determination between images can be utilized to track object motion, such as in video frames. For example, in a robotics application, cameras may capture two or more separate images of a scene and/or subject from slightly different perspectives and combine the separate images into one image to smooth and/or reduce noise in the images.
Conventional optical flow algorithms do not account for haze caused by atmospheric particles that obscure images of outdoor scenes, such as fog and smoke. Standard processing ignores the presence of haze that can degrade images, and computes the optical flow between images assuming that the images are free of haze, fog, smoke, and the like. The conventional optical flow algorithms also assume color consistency and image contrast between images, which also assumes that consecutive image frames have consistent haze interference in the presence of haze. However, an object may appear differently from one image to the next due to motion of the object and/or fog or smoke drift that changes the visual appearance of the object, which may not be recognized as the same object from one image to the next. For example, a car may appear blurry in fog in one image and suddenly part of the car is clear in a next image as the car emerges from the fog. The image pixels that display as the part of the car emerging from the fog change color consistency and contrast, and may not be recognized for pixel correspondence during image processing as the same car from one image to the next.
Techniques for haze removal are used with graphics and computer vision applications to improve the quality and visibility of images or videos. Haze removal techniques (also referred to as de-hazing) can also serve as a preprocessing step for improving high-level vision or graphics applications, such as for feature extraction, image correspondence, object recognition, image editing, and the like. However, applying haze removal algorithms or techniques to image sequences or video frames can cause incoherent results across the sequences or frames, where single image de-hazing does not take temporal consistency into consideration.