A 3D model generating system comprising: image acquiring means for acquiring a plurality of images respectively capturing different directions in a space surrounded by a plurality of surfaces; partial model generating means for generating a partial model for each of the plurality of images, each of the partial models representing a portion of the surfaces captured in the images; and overall model generating means for generating an overall model representing an entire surface based on the partial models generated by the partial model generating means, wherein the partial model generating means is configured to: specify segments in the each of the plurality of images by performing edge detection processing on the each of the plurality of images, take areas surrounded by extended lines of the segments as candidates of walls, acquire vanishing points from the each of the plurality of images based on the specified segments, generate orientation maps of the each of the plurality of images based on positional relationships between the segments and the vanishing points, specify the areas of the walls based on a degree of matching calculated by comparing directions of the candidates of the walls with the directions indicated by the orientation maps in the candidates, and perform a predetermined coordinate conversion on the specified areas to generate the partial model for each of the plurality of images. image acquiring means for acquiring a plurality of images respectively capturing different directions in a space surrounded by a plurality of surfaces; partial model generating means for generating a partial model for each of the plurality of images, each of the partial models representing a portion of the surfaces captured in the images; and overall model generating means for generating an overall model representing an entire surface based on the partial models generated by the partial model generating means, wherein the partial model generating means is configured to: specify segments in the each of the plurality of images by performing edge detection processing on the each of the plurality of images, take areas surrounded by extended lines of the segments as candidates of walls, acquire vanishing points from the each of the plurality of images based on the specified segments, generate orientation maps of the each of the plurality of images based on positional relationships between the segments and the vanishing points, specify the areas of the walls based on a degree of matching calculated by comparing directions of the candidates of the walls with the directions indicated by the orientation maps in the candidates, and perform a predetermined coordinate conversion on the specified areas to generate the partial model for each of the plurality of images. specify segments in the each of the plurality of images by performing edge detection processing on the each of the plurality of images, take areas surrounded by extended lines of the segments as candidates of walls, acquire vanishing points from the each of the plurality of images based on the specified segments, generate orientation maps of the each of the plurality of images based on positional relationships between the segments and the vanishing points, specify the areas of the walls based on a degree of matching calculated by comparing directions of the candidates of the walls with the directions indicated by the orientation maps in the candidates, and perform a predetermined coordinate conversion on the specified areas to generate the partial model for each of the plurality of images.