Shadow detection is an important part of any surveillance system, as it makes object shape recovery possible in addition to improving accuracy of other statistics-collection systems. As most such systems assume video frames without shadows, shadows must be dealt with beforehand. This research proposed methods to distinguish between moving cast shadows and moving foreground objects in video sequences, including a multi-level shadow identification scheme that is generally applicable without restrictions on the number of light sources, illumination conditions, surface orientations, and object sizes. The first level used a background segmentation technique to identify foreground regions that include moving shadows. In the second step, pixel-based decisions were made by comparing the current frame with the background model to distinguish between shadows and actual foreground. In the third step, this result was improved using blob-level reasoning that works on the geometric constraints of identified shadow and foreground blobs. Results on various sequences under different illumination conditions showed the success of the proposed approach. Finally, the researchers proposed methods for physical placement of cameras in a site in order to make the most of the number of cameras available.