> -----Original Message-----
> From:  Miguel A Figueroa-Villanneva

> 1. I would like to know if these functions are well developed or are they
> still at an early experimental stage? Also, are there any other packages
> that I might have overlooked that will help me solve the problem?

ipts contains some relatively simple implementations of published algorithms. It isn't under active research development, because the research group at Manchester isn't doing deep research into new interest point detectors, but how existing published detectors can be used for appearance modelling, object location, detection, etc. I believe that the code in oxl has been stable for some time.

> 2. Is there any interest on your (vxl developers) part for the view
> morphing functionality to be contributed to vxl? If so, is there any
> documentation or guidelines on how to do this (i.e. who do I submit code
> to, and what programming guidelines besides those in the VXL Book should I
> follow)?

We are always interested in new code. The book is the primary reference, but a few other things can be found in the vxl/core/doc directory, including records of style decisions taken at the Zurich meeting a few years ago. If you are providing an add-on library, there are few aditional restrictions. It should compile, preferably without warnings, on the platforms on our dashboard. It should contain lots of API level documentation. Changes/additions to core libraries are treated a bit more strictly, and often subject to post-submission ad-hoc, but friendly, peer review. To actually submit stuff, get yourself a SourceForge username, and we will add you to the commit list. Finally, subscribe to the vxl-maintainers list, where you should send any questions about submissions, etc.

> 3. Since my application needs to run in real-time, I would like to ask if
> anybody has any feedback on preformance comparisons of vxl and intel
> opencv. I think vxl is a more complete package, however, I'm working on a
> performance critical application. Any objective feedback will be
> appreciated.

OpenCV probably has more "published computer vision" algorithms in it, whereas VXL was designed from the ground up as a series of complete core libraries. Given the effort Intel have put into optimising those algorithms, I would imagine that most comparable complex algorithms probably run a bit faster in OpenCV. I would be surprised if the difference is more than a small constant factor. One area that has been measured was comparing Intel's precompiled implementation of BLAS (the MKL math library I think is used by OpenCV) with gcc -O3 and icc -O3 compilation of VXL's math library vnl. For vector-vector and vector-matrix operations VXL was generally faster, with no consistent difference between gcc and icc. As with all computation, the best way to get speed is to write your program as simply and algorithmically efficiently as possible, compile it with the best compiler you have. Then profile it, and spend a bit of effort fiddling with the small number of inner loops where your program spends 90% of it's time. This approach has resulted in several important bits of VXL being optimised to the point (on x86 anyway) where the inner loop's compilation looks identical to what a hand written assembler version would look like.

Ian Scott
University of Manchester