System for detecting hand gestures in a 3D space, comprising: a 3D imaging unit configured to capture 3D images of a scene, wherein each of the 3D images comprises a 2D intensity image and a depth map of the scene, the 2D intensity image comprising intensity values indicating signal strength of incoming light signals to the 3D imaging unit, and a processing unit coupled to the 3D imaging unit, wherein the processing unit is configured to receive the 3D images from the 3D imaging unit, use at least one of the 3D images to classify the at least one 3D image, and detect a hand gesture in the 3D images based on the classification of the at least one 3D image, wherein the processing unit is further configured to generate a foreground map of the at least one 3D image by segmenting foreground from background, wherein the processing unit is further configured to generate a 3D sub-image of the at least one 3D image that includes the image of a candidate hand, wherein the processing unit is further configured to generate the 3D sub-image by scaling the 2D intensity image, the depth map and the foreground map of the at least one 3D image such that the 3D sub-image has a predetermined size and by rotating the 2D intensity image, the depth map and the foreground map of the at least one 3D image such that a principal axis of the hand is aligned to a predetermined axis in the 3D sub-image, wherein the processing unit is further configured to use the 2D intensity image and the depth map of the 3D sub-image for the classification of the at least one 3D image, wherein classifying the at least one 3D image comprises distinguishing the hand in the 2D intensity image of the 3D sub-image from other body parts and other objects, and wherein the processing unit is further configured to use a convolutional neural network for the classification of the at least one 3D image, wherein the input images are processed by a number of convolutional kernels. a 3D imaging unit configured to capture 3D images of a scene, wherein each of the 3D images comprises a 2D intensity image and a depth map of the scene, the 2D intensity image comprising intensity values indicating signal strength of incoming light signals to the 3D imaging unit, and a processing unit coupled to the 3D imaging unit, wherein the processing unit is configured to receive the 3D images from the 3D imaging unit, use at least one of the 3D images to classify the at least one 3D image, and detect a hand gesture in the 3D images based on the classification of the at least one 3D image, wherein the processing unit is further configured to generate a foreground map of the at least one 3D image by segmenting foreground from background, wherein the processing unit is further configured to generate a 3D sub-image of the at least one 3D image that includes the image of a candidate hand, wherein the processing unit is further configured to generate the 3D sub-image by scaling the 2D intensity image, the depth map and the foreground map of the at least one 3D image such that the 3D sub-image has a predetermined size and by rotating the 2D intensity image, the depth map and the foreground map of the at least one 3D image such that a principal axis of the hand is aligned to a predetermined axis in the 3D sub-image, wherein the processing unit is further configured to use the 2D intensity image and the depth map of the 3D sub-image for the classification of the at least one 3D image, wherein classifying the at least one 3D image comprises distinguishing the hand in the 2D intensity image of the 3D sub-image from other body parts and other objects, and wherein the processing unit is further configured to use a convolutional neural network for the classification of the at least one 3D image, wherein the input images are processed by a number of convolutional kernels.