Feature matching plays an important role in many image processing applications. To match a feature point in the query image is to find a correspondent feature point (i.e., the nearest neighbor) extracted from the target image. Edges, corners and DoG (difference of Gaussian) are most common adopted features in recent year. How to represent features is also very important in which SIFT (Scale Invariant Feature Transform) is one of the state-of-art. SIFT, proposed by Lowe [1], usually results feature vectors with high dimension such as 128. Thus how to efficiently find the nearest neighbor of a query feature point in the target image becomes essential. Kd- tree is often used to find the nearest neighbor in dimension higher than two. However, kd- tree needs many backtrackings to find the nearest neighbor when dimension gets higher. In this paper, we propose a multiple kd-trees method to efficiently search the nearest neighbor for high dimension feature points. First, we project feature points to three hyper-planes which have greatest variances. Second, for points projected on each splitting hyper-plane, two kd-trees are built that one is the conventional kd-tree and the other has first split on the hyper-plane with second largest variance. So total of six kd-trees are built. By this way, these kd-trees are searched for the nearest neighbor through different hyper-planes to compensate the deficiency of projection. The experiment showed that our method, under the same number of backtracks, indeed improves the accuracy rate of searching the nearest neighbor.