1. A method comprising: obtaining video data comprising a video stream of a person; classifying a first pixel in the video stream at an initial time instance of a time period as one of a foreground pixel or a background pixel; initializing a foreground history value associated with the first pixel to zero for the initial time instance; reclassifying the first pixel at each time instance subsequent to the beginning time instance in the time period as one of a foreground pixel or a background pixel; when reclassification indicates that the first pixel at a first time instance is a foreground pixel, setting the foreground history value associated with the first pixel to a non-zero value related to the first time instance; maintaining the foreground history value associated with the first pixel to the non-zero value related to the first time instance for a pre-determined time period; resetting the foreground history value to zero at a second time instance after the pre-determined time period expires; and generating a motion gradient vector for the video stream based on the foreground history value associated with the first pixel and foreground history values associated with other pixels over the time period.