Stuff That'd Be Nice To Do

This list is a set of things that it would be really nice to do to make the tools and code that we have more accessible.

Sort out the feature vector and matcher code
The code is an interesting mix of C and C++, and there are many examples where the object-oriented method of code re-use would be a big help. In particular, the templates for feature vectors, and feature matchers are enormous, and are 80% full of helper functions for reading and writing numbers and strings to and from files and memory blobs.
Update: The code has indeed been sorted out, however, it has not been rolled into the Artiste system in its new object-oriented form.
Sort out the fvx and Multiscale code
Again, the code for the test harnesses is rather jumbled in places, and written in a way which makes it hard for integration of new vector types, and for alteration of the existing code. There are memory blocks which would be better served as structures or classes, and again duplication of code is a consideration.
Update: The Multiscale code has been updated based on the new code. Having all feature modules implement the interface defined in the FeatureVector class, allows all modules to be accessed in this manner. This requires only one instance of the retrieval function making it much easier to integrate code. Mike's cbir code uses this method also. fvx has not yet been updated to this method.
Directory functions
Again, part of the Multiscale program, assumes the location of feature vectors. It would be nice to be able to have a global repository of vectors, with the ability to test using a local set of vectors without infiltrating the global store. Similarly, Multiscale requires the files CCVDatabase.db and QueryDatabase.db to be built before running. This is awkward and quite unneccessary.
Update: Multiscale has now been updated to allow for any directory to be used as the Reference and Query image and ifo repository. The default names have changed to ReferenceImages/ and ReferenceDatabase.db. The databases still have to be built, however, and the setupdatabases tool has been updated accordingly.
Vector generation
Currently, you have to generate all your feature vectors using fvx and then run Multiscale on the results. This is pretty awkward, and it would be nice if Multiscale could generate vectors on the fly, if enabled.
Tools repository
It would be nice to have a globalised repository of helpful programming tools for Artiste developers. A histogram viewer, or shell scripts to generate the special database files that Multiscale requires. We already have libraries like xforms, and vips globally available, so it would be nice for some functions to be available.
Update: It turns out there sort-of-is a tools repository in /database/bin however, the tools aren't totally reliable, and it's a bit messy. There's a small repository of tools available as a tar from the main page.
The Makefiles currently available as part of the ImageProcessingClasses and ImageProcessingViewer archives are slightly clumsy. They're easy to edit to include new code, however, this could be made better for modularised code (e.g. code in other directories, like Mike's MNS code).
Update: The makefiles for the updated classes have been changed so that they are much easier to use and much easier to integrate new modules (just one line needs to be added). The Multiscale code has also been moved into a code subdirectory so that the Multiscale directory is less cluttered. The makefiles have been sorted out and also changed to use this system.
Java/Web based harness
Kirk's mentioned that a project student may be working on a better interface than the current Multiscale version we have now. Hopefully that will be easier to add new code, and generally better realised.
Update: Kirk's project student, Matt, definitely is working on such an interface, but it could be a while with his other responsibilities before this is available. Therefore, I'm also working on a simple interface to fvx from the database query page. Internally it can be reached from
Current site and code maintainer: David Dupplaw -
All code, data, files and information on this site is copyrighted by the respective owners, and may not be downloaded by unauthorised persons.