1. A method for identifying an object appearing in an image, the image having a plurality of pixels, each pixel having an image value, and containing at least one object of at least one type of object to be identified, each type of object to be identified represented by a 3-dimensional model, each 3-deminsional model including edges and spatial relationships between the edges, the method comprising: analyzing the plurality of pixels to determine a plurality of line-like features in the image; grouping at least some of the line-like features into at least one viewpoint-invariant line group, each determined viewpoint-invariant line group corresponding to at least one spatial relationship between edges of at least one of the 3-dimensional models; analyzing at least one determined viewpoint-invariant line group to identify, for each such determined viewpoint-invariant line group, a 2-dimensional projection of one of the at least one 3-dimensional models that corresponds to that determined viewpoint-invariant line group; and identifying, for at least one determined viewpoint-invariant line group for which there is a 2-dimensional projection of one of the at least one 3-dimensional models, that viewpoint-invariant line group as corresponding to an object appearing in the image.