1. A system comprising: one or more computer processors configured to: (a) receive data relating to a plurality of polygons, the polygons representing one or more of a surveillance area, a non-surveillance area, a blank area, and an obstacle; (b) select one or more initial cameras, including one or more initial camera positions, initial camera orientations, and initial camera features, wherein the initial camera positions and the initial camera orientations cause one or more fields of view of the initial cameras to cover at least a part of the surveillance area; (c) alter one or more of a number of cameras, an orientation of the cameras, a location of the cameras, a type of the cameras, and a crossover of two or more cameras; (d) use a fitness function to evaluate all of the cameras, including the features of the cameras and the coverage areas of the cameras; and (e) select one or more cameras and the locations and orientations of the one or more cameras as a function of the fitness function.