Hey, ::: so, basically i've created a simple hadoop pipes that uses various image processing libraries (implemented in c/c++) to extract features of images (e.g. SIFT) that are stored on HDFS in sequencefiles. The output of this pipe is are pairs of <Text, VectorWritable> where text is the filename of the image and VectorWritable contains the extracted feature vector. After this i run clustering on the acquired features, where i basically generate a codebook (the cluster centers) and encode the original feature vectors with this codebook. So this step basically will provide me the so called visual-words for the images. once i have the output of clustering (visual-words) then i'm running the TF(IDF) vectorizer that i've written. TF = visual word frequency in the image, i.e. how many times a given cluster point is present in the given image. idf is analogous.... this method was first introduced in: G. Csurka, C. Dance, L.X. Fan, J. Willamowski, and C. Bray (2004). "Visual categorization with bags of keypoints". Proc. of ECCV International Workshop on Statistical Learning in Computer Vision http://www.xrce.xerox.com/content/download/20785/148346/file/2004_010.pdf
basically ever since this has become a standard method in computer vision. There are of course various modifications of it (especially how the clustering part are done). and of course for example opencv library has an implementation of it as well. the reason i'm using mahout/hadoop is of course because i'm working with huge datasets. After i've got the TF(IDF) vectors i'm using it for classification, e.g. classify natural images by their content by using machine learning algorithms. basically that's it. cheers, viktor On 7/02/2012, at 5:32 PM, Jeff Eastman wrote: > Sure, love to hear more about your use case and pipeline. Can you describe > the steps you are performing and how the results get utilized? > > Jeff > > On 2/7/12 9:28 AM, Viktor Gal wrote: >> Hi, >> >> ::: i'm using mahout for computer vision, so my pipeline is a bit different >> from the text processing pipeline, i.e. after i've acquired the feature >> vectors i'm doing a clustering and after i've got the cluster centers and >> clustered the original feature vectors i'm doing the TF(IDF) vector >> calculation. This is a quite standard thing nowadays in computer vision... >> >> so i've implemented the part for creating TF(IDF) vectors from the cluster >> output, based on DocumentVectorizer class. if anybody thinks that it'd be >> good to have this tool in mahout let me know so i'll create an issue for it >> JIRA and upload there my patches. >> >> cheers, >> viktor >> >
