Recognition of 3D objects from different viewpoints is a difficult problem. In this paper, we propose a new method to recognize 3D range images by matching local surface descriptors. The input 3D surfaces are first converted into a set of local shape descriptors computed on surface patches defined by detected salient features. We compute the similarities between input 3D images by matching their descriptors with a pyramid kernel function. The similarity matrix of the images is used to train for classification using SVM, and new images can be recognized by comparing with the training set. The approach is evaluated on both synthetic and real 3D data with complex shapes.