libvot icon indicating copy to clipboard operation
libvot copied to clipboard

CPP API of VLFeat for covdet feature and kd-tree

Open willard-yuan opened this issue 9 years ago • 10 comments

This is the cpp api of VLFeat for covdet feature and kd-tree. I have tested covdet feature and kd-tree, and the result is right (I have used it for image retrieval with BoW). but the code still need to improve. I also write the RANSAC-like reranking method based on matrix lib of Armadillo, and I will pull request if I have improved the code of reranking method.

willard-yuan avatar May 26 '16 06:05 willard-yuan

Thank you so much for the contribution. And glad that you are aware of the feature branch :) I saw you have used cv:: method, but opencv is not supposed to be supported for the next release. For VLfeat I have already imported into the third-party libs. My plan would be make a new folder called 'feature' under the 'src' folder, where all the feature-related APIs would reside. Take a look at the roadmap for the next major release if you are interested. I will do a review about this PR soon and see how this can be imported. Thanks!

hlzz avatar May 26 '16 06:05 hlzz

The goal of Version 0.2 is a great goal. I have seen that deep learning method will be support in the next version. But as far as I know, deep learning doesn't solve object retrieval well so far. The object retrieval still heavily depends on SIFT-based feature method.

willard-yuan avatar May 26 '16 06:05 willard-yuan

@willard-yuan Then this will be a bit of on the research side. My plan would be importing this method: Dong, Jingming, and Stefano Soatto. “Domain-size pooling in local descriptors: DSP-SIFT.” Anyway, this could also be a feature-level improvement. I don't know how well it works, but the deep learning method support is going to be a trend. So the sooner it goes into libvot the better.

hlzz avatar May 26 '16 07:05 hlzz

I read the paper of DSP-SIFT last year, and I also test it. I found the DSP-SIFT extraction is slow than SIFT, i.e. it obtains high precision with the loss of time. I have used CPP to implement a BoW model base on the visualindex, and the MAP is very promising on Oxford building dataset (80%+, 1M words). I think the MAP is a important evaluation for us when we develop the libvot. By the way, I think OpenCV is really a good tool to process image.

willard-yuan avatar May 26 '16 07:05 willard-yuan

@willard-yuan I agree. Statistics like MAP are important for development. That's one of goals for the next release - adding benchmark dataset results :) OpenCV would benefit us in the long run. But it is also has a huge codebase, while the design philosophy for livot is to be as much self-contained as possible. Maybe I can tweak an option in the cmake files to use opencv, optionally. The negative side for this is that libvot would require more and more dependencies to work.

Look like you have much experience in image retrieval, MoBai! libvot is intended to be used in the production level, but also cutting-edge for research. So mature techniques like vocabulary tree and state-of-the-art methods like DL are both interested to me.

hlzz avatar May 26 '16 07:05 hlzz

Awesome! I can't agree with the goal of libvot any more: libvot is intended to be used in the production level. The computation of MAP can be written using Python. I can do it for libvot. By the way, would we find someplace to speak in Chinese?

willard-yuan avatar May 26 '16 07:05 willard-yuan

@willard-yuan haha, of course, sent you an email.

hlzz avatar May 26 '16 07:05 hlzz

@willard-yuan covdet is now supported in libvot at part of vlfeat api, see https://github.com/hlzz/libvot/blob/master/src/feature/vlfeat_libvot_api.cpp#L65

hlzz avatar Oct 06 '16 06:10 hlzz

@hlzz Awesome! I saw the update part in the morning. I have a plan to build a QT image retrieval engine based on the libvot. haha.

willard-yuan avatar Oct 06 '16 06:10 willard-yuan

@willard-yuan cool! A visual UI based on qt is what I yearn for. Feel free to ping me if you need any help.

hlzz avatar Oct 06 '16 06:10 hlzz