Building an Effective Visual Codebook: Is K-Means Clustering Useful?