An object recognition system, comprising: an object recognition apparatus and a classification tree learning apparatus, the object recognition apparatus comprising; an input unit configured to receive, as an input, a depth image representing an object to be analyzed; a processing unit configured to recognize a visible object part and a hidden object part of the object, from the depth image, using a classification tree (1001, 1002), wherein each leaf node of the classification tree comprises visible object part data, hidden object part data, and a difference value between a depth value of the visible object part data and a depth value of the hidden object part data; a volume constructing unit configured to construct a volume of the object in a single data space, based on the recognized visible object part and the recognized hidden object part; wherein the volume constructing unit constructs the volume, based on a relative depth value stored in a leaf node of the classification tree, and wherein the relative depth value indicates a difference value between a depth value of the recognized visible object part and a depth value of the recognized hidden object part, wherein the classification tree is obtained from the classification tree learning apparatus configured for generating the classification tree, the classification tree learning apparatus comprising a learning unit configured to generate the classification tree using training data associated with the object; a casting unit configured to cast rays towards a plurality of voxels of a three-dimensional object model of the object, using a virtual camera; an image layer generating unit configured to generate a plurality of image layers sequentially every time the rays penetrate a surface of the 3D object model; a capturing unit configured to capture a depth value and a voxel identifier of the surface, for each of the plurality of image layers, and to store the captured depth value and the captured voxel ID in each of the plurality of image layers; and a training data generating unit configured to set an image layer with a minimum distance from the virtual camera to be visible object part data associated with the visible object part, to set the other image layers to be hidden object part data associated with the hidden object part, and to generate the training data. an input unit configured to receive, as an input, a depth image representing an object to be analyzed; a processing unit configured to recognize a visible object part and a hidden object part of the object, from the depth image, using a classification tree (1001, 1002), wherein each leaf node of the classification tree comprises visible object part data, hidden object part data, and a difference value between a depth value of the visible object part data and a depth value of the hidden object part data; a volume constructing unit configured to construct a volume of the object in a single data space, based on the recognized visible object part and the recognized hidden object part; wherein the volume constructing unit constructs the volume, based on a relative depth value stored in a leaf node of the classification tree, and wherein the relative depth value indicates a difference value between a depth value of the recognized visible object part and a depth value of the recognized hidden object part, wherein the classification tree is obtained from the classification tree learning apparatus configured for generating the classification tree, the classification tree learning apparatus comprising a learning unit configured to generate the classification tree using training data associated with the object; a casting unit configured to cast rays towards a plurality of voxels of a three-dimensional object model of the object, using a virtual camera; an image layer generating unit configured to generate a plurality of image layers sequentially every time the rays penetrate a surface of the 3D object model; a capturing unit configured to capture a depth value and a voxel identifier of the surface, for each of the plurality of image layers, and to store the captured depth value and the captured voxel ID in each of the plurality of image layers; and a training data generating unit configured to set an image layer with a minimum distance from the virtual camera to be visible object part data associated with the visible object part, to set the other image layers to be hidden object part data associated with the hidden object part, and to generate the training data. a casting unit configured to cast rays towards a plurality of voxels of a three-dimensional object model of the object, using a virtual camera; an image layer generating unit configured to generate a plurality of image layers sequentially every time the rays penetrate a surface of the 3D object model; a capturing unit configured to capture a depth value and a voxel identifier of the surface, for each of the plurality of image layers, and to store the captured depth value and the captured voxel ID in each of the plurality of image layers; and a training data generating unit configured to set an image layer with a minimum distance from the virtual camera to be visible object part data associated with the visible object part, to set the other image layers to be hidden object part data associated with the hidden object part, and to generate the training data.