1. A method of performing a face detection task as a plurality of sub-tasks, comprising: receiving a plurality of image frames in a video stream sequence of frames; and performing a first face detection sub-task on a single detection window at a first layer on a first one of the sequence of frames, the first layer having a first detection window size range corresponding to a first size of a portion of the first frame; performing a second face detection sub-task on a single detection window at a second layer different from the first layer on a second one of the sequence of frames subsequent to the first one of the sequence of frames, the second layer having a second detection window size range corresponding to a second size of a portion of the second frame different from the first size of the portion of the first one of the sequence of frames; performing a third face detection sub-task on a single detection window at a third layer different from the first layer and from the second layer on a third one of the sequence of frames subsequent to the second one of the sequence of frames, the third layer having a third detection window size range corresponding to a third size of a portion of the third frame different from the first size and from the second size, wherein the sub-tasks are distributed across multiple frames by performing only one sub-task on each frame; generating face detection data based on the performed face detection sub-tasks; and sending the face detection data to a data management module.