A template creation apparatus comprising: a three-dimensional data acquisition unit configured to acquire three-dimensional data indicating a three-dimensional shape of an object that is a recognition target; a distance image creation unit configured to create, using three-dimensional data acquired by the three-dimensional data acquisition unit , distance images of the object viewed from predetermined viewpoints that have been set for the object ; a normal vector calculation unit configured to calculate, based on the three-dimensional data or based on the distance images created by the distance creation unit , one or multiple normal vectors at one or multiple feature points of the object viewed from a predetermined viewpoint that is set for the object; a normal vector quantization unit configured to quantize, for each viewpoint, the calculated one or multiple normal vectors by mapping the calculated one or multiple normal vectors to a reference region on a plane orthogonal to an axis that passes through the viewpoint, so as to acquire one or multiple quantized normal direction feature amounts, the plane being a plane that passes through the center of a unit sphere, the reference region including a central reference region corresponding to the vicinity of the axis and reference regions in the periphery of the central reference region, wherein the central reference region is set based on an angle Φ between the normal vector and the axis, wherein the central reference region is a circle that is obtained in a case where the angle Φ is set to a predetermined angle, and whose radius is sin Φ; a template creation unit configured to create, for each viewpoint, based on the acquired one or multiple quantized normal direction feature amounts, a template to be used for object recognition that is performed through template matching; and a template information output unit configured to output the created templates for the respective viewpoints. a three-dimensional data acquisition unit configured to acquire three-dimensional data indicating a three-dimensional shape of an object that is a recognition target; a distance image creation unit configured to create, using three-dimensional data acquired by the three-dimensional data acquisition unit , distance images of the object viewed from predetermined viewpoints that have been set for the object ; a normal vector calculation unit configured to calculate, based on the three-dimensional data or based on the distance images created by the distance creation unit , one or multiple normal vectors at one or multiple feature points of the object viewed from a predetermined viewpoint that is set for the object; a normal vector quantization unit configured to quantize, for each viewpoint, the calculated one or multiple normal vectors by mapping the calculated one or multiple normal vectors to a reference region on a plane orthogonal to an axis that passes through the viewpoint, so as to acquire one or multiple quantized normal direction feature amounts, the plane being a plane that passes through the center of a unit sphere, the reference region including a central reference region corresponding to the vicinity of the axis and reference regions in the periphery of the central reference region, wherein the central reference region is set based on an angle Φ between the normal vector and the axis, wherein the central reference region is a circle that is obtained in a case where the angle Φ is set to a predetermined angle, and whose radius is sin Φ; a template creation unit configured to create, for each viewpoint, based on the acquired one or multiple quantized normal direction feature amounts, a template to be used for object recognition that is performed through template matching; and a template information output unit configured to output the created templates for the respective viewpoints. <EOS>