Thanks for your question!
vision.ForegroundDetector provides a binary mask of "pixels" in the foreground of a video.
vision.PeopleDetector requires at least grayscale images, if not color, to detect upright standing people. It wasn't designed to be used in combination. Rather, it is a replacement.
If the camera is stationary, then vision.ForegroundDetector is much faster at detecting moving objects, including people. If the camera is moving, then that algorithm fails to detect people, but vision.PeopleDetector will still work.
Hope this helps!