1. A method for activity monitoring using video data, the method comprising: a special purpose processor collecting video data from a plurality of dissimilar sources; the special purpose processor, in an iterative process, defining known foreground objects and newly emerged objects; the special purpose processor determining moving objects from the video data; the special purpose processor classifying the moving objects from the video data; the special purpose processor tracking the moving objects from the video data wherein tracking comprises receiving as input an instance of one object at one point in time and calculating its trajectory and shape over time, and for each new video frame attempting to match foreground objects with existing objects tracked in prior iterations of the iterative process; the special purpose processor processing the video data from the plurality of dissimilar sources to allow the video data from the plurality of dissimilar sources to be analyzed without dependence on a source of any of the video data; and the special purpose processor analyzing the video data to generate a count of a number of objects crossing a predetermined line in a time period.