Automatic composition of video with dynamic background and composite frames selected based on frame criteria
A processing device generates composite images from a sequence of images. The composite images may be used as frames of video. A foreground/background segmentation is performed at selected frames to extract a plurality of foreground object images depicting a foreground object at different locations as it moves across a scene. The foreground object images are stored to a foreground object list. The foreground object images in the foreground object list are overlaid onto subsequent video frames that follow the respective frames from which they were extracted, thereby generating a composite video.
1. A method for generating a composite output video from an input video having a sequence of frames, the method comprising:
receiving a current video frame for processing from the sequence of frames;
determining, by a processing device, whether the current video frame meets first criteria;
responsive to the current video frame meeting the first criteria, performing, by the processing device, a foreground/background segmentation based on a predictive model to extract a foreground object image from the current video frame, the foreground object image comprising a representation of a foreground object depicted in the current video frame with background pixels subtracted, and storing the foreground object image to a foreground object list that stores a plurality of previously extracted foreground object images;
overlaying each of the foreground object images in the foreground object list onto the current video frame to generate a composite video frame;
determining whether the current video frame meets second criteria; and
responsive to the current video frame meeting the second criteria, updating the predictive model.
2. The method of claim 1 , further comprising:
training the predictive model based on a plurality of training video frames, the predictive model to predict whether a pixel in a given video frame belongs to a background model or the foreground object.
3. The method of claim 1 , wherein determining whether the current video frame meets the first criteria comprises:
determining if a frame number of the current video frame is a multiple of a predefined integer Y.
4. The method of claim 1 , wherein determining whether the current video frame meets second criteria comprises:
determining if a frame number of the current video frame is a multiple of a predefined integer X.
5. The method of claim 1 , wherein performing the foreground/background segmentation comprises:
obtaining a preliminary foreground object image;
applying a filter to reduce noise in the preliminary foreground object image to generate a filtered image;
detecting a filled convex hull region in the preliminary foreground object image;
adding extra pixels from the filtered image to the preliminary foreground object image to generate a temporary image;
discarding pixels in the temporary image outside the filled convex hull region to generate a noisy convex hull image; and
closing gaps in foreground regions of the noisy convex hull image to generate the foreground object image.
6. The method of claim 1 , wherein the predictive model comprises an adaptive Gaussian Mixture Model.
7. A non-transitory computer-readable storage medium storing instructions for generating a composite output video from an input video having a sequence of frames, the instructions when executed by a processor causing the processor to perform steps comprising:
receiving a current video frame for processing from the sequence of frames;
determining whether the current video frame meets first criteria;
responsive to the current video frame meeting the first criteria, performing a foreground/background segmentation based on a predictive model to extract a foreground object image from the current video frame, the foreground object image comprising a representation of a foreground object depicted in the current video frame with background pixels subtracted, and storing the foreground object image to a foreground object list that stores a plurality of previously extracted foreground object images;
overlaying each of the foreground object images in the foreground object list onto the current video frame to generate a composite video frame;
determining whether the current video frame meets second criteria; and
responsive to the current video frame meeting the second criteria, updating the predictive model.
8. The non-transitory computer-readable storage medium of claim 7 , wherein the instructions when executed further cause the processor to perform steps including:
training the predictive model based on a plurality of training video frames, the predictive model to predict whether a pixel in a given video frame belongs to a background model or the foreground object.
9. The non-transitory computer-readable storage medium of claim 7 , wherein determining whether the current video frame meets the first criteria comprises:
determining if a frame number of the current video frame is a multiple of a predefined integer Y.
10. The non-transitory computer-readable storage medium of claim 7 , wherein determining whether the current video frame meets second criteria comprises:
determining if a frame number of the current video frame is a multiple of a predefined integer X.
11. The non-transitory computer-readable storage medium of claim 7 , wherein performing the foreground/background segmentation comprises:
obtaining a preliminary foreground object image;
applying a filter to reduce noise in the preliminary foreground object image to generate a filtered image;
detecting a filled convex hull region in the preliminary foreground object image;
adding extra pixels from the filtered image to the preliminary foreground object image to generate a temporary image;
discarding pixels in the temporary image outside the filled convex hull region to generate a noisy convex hull image; and
closing gaps in foreground regions of the noisy convex hull image to generate the foreground object image.
12. The non-transitory computer-readable storage medium of claim 7 , wherein the predictive model comprises an adaptive Gaussian Mixture Model.
13. A system comprising:
one or more processors; and
a non-transitory computer-readable storage medium storing instructions for generating a composite output video from an input video having a sequence of frames, the instructions when executed by the one or more processors causing the one or more processors to perform steps comprising:
receiving a current video frame for processing from the sequence of frames;
determining whether the current video frame meets first criteria;
responsive to the current video frame meeting the first criteria, performing a foreground/background segmentation based on a predictive model to extract a foreground object image from the current video frame, the foreground object image comprising a representation of a foreground object depicted in the current video frame with background pixels subtracted, and storing the foreground object image to a foreground object list that stores a plurality of previously extracted foreground object images;
overlaying each of the foreground object images in the foreground object list onto the current video frame to generate a composite video frame;
determining whether the current video frame meets second criteria; and
responsive to the current video frame meeting the second criteria, updating the predictive model.
14. The system of claim 13 , wherein the instructions when executed further cause the one or more processors to perform steps including:
training the predictive model based on a plurality of training video frames, the predictive model to predict whether a pixel in a given video frame belongs to a background model or the foreground object.
15. The system of claim 13 , wherein determining whether the current video frame meets the first criteria comprises:
determining if a frame number of the current video frame is a multiple of a predefined integer Y.
16. The system of claim 13 , wherein determining whether the current video frame meets second criteria comprises:
determining if a frame number of the current video frame is a multiple of a predefined integer X.
17. The system of claim 13 , wherein performing the foreground/background segmentation comprises:
obtaining a preliminary foreground object image;
applying a filter to reduce noise in the preliminary foreground object image to generate a filtered image;
detecting a filled convex hull region in the preliminary foreground object image;
adding extra pixels from the filtered image to the preliminary foreground object image to generate a temporary image;
discarding pixels in the temporary image outside the filled convex hull region to generate a noisy convex hull image; and
closing gaps in foreground regions of the noisy convex hull image to generate the foreground object image.
18. The system of claim 13 , wherein the predictive model comprises an adaptive Gaussian Mixture Model.