Tag Archives: OpenSource

Docker Image for LireSolr

Docker MobyWe all know that setting up a server application is a huge pain in the ass, but there’s hope: Docker is an open source project for packaging those things and making them runnable within containers. Only thing one needs to do is to create an image, which then can be used to create a container.

LireSolr now provides such a Docker image on Docker Hub. Basically you can install Docker, then use the docker command in the shell (Linux) or the PowerShell (MS Windows) to automatically download and run a container based on the image with a single command:

$> docker run -p 8983:8983 dermotte/liresolr:latest

What you need to do then is to index some images and take a look at the sample application. A detailed step-by-step howto is provided in the documentation.


LireSolr updated to Solr 6.3.0

By Source, Fair use, https://en.wikipedia.org/w/index.php?curid=10443585Apache Solr is a search server application widely in use around the world and LireSolr is the integration project of Lire into this search server. As a last work item of the year, we have updated LireSolr to work with Solr 6.3.0. This also involves the move to Lucene 6.3.0 for LIRE and — for both — Java 8 as minimum SDK version. LireSolr also found a new home on Github: https://github.com/dermotte/liresolr.

There’s detailed documentation on how to set up Solr, how to add a core, how to configure it for the use with LireSolr and there are even indexing tools to get your photos inside Solr. Give it a try at Github!

ICMR 2017 – Call for Open Source Software Papers

ICMR 2017 is calling for papers presenting significant and innovative open source contributions of researchers and software developers to advance the field of multimedia retrieval by providing the community with implementations of middleware, frameworks, toolkits, libraries, players, authoring tools, and other multimedia software. We strongly believe that making available open source resources significantly advances the field by providing a common set of tools for (i) building upon previous work, (ii) improving multimedia research prototypes and (iii) allowing others to replicate research results more easily.

Each open source software paper should not be longer than 4 pages.

Important Dates

Paper Submission: January 27, 2017
Notification of Acceptance: March 29, 2017
Camera-Ready Papers Due: April 26, 2017

More information …

Lire 0.9.3 released

I just uploaded Lire 0.9.3 to the all new Google Code page. This is the first version with full support for Lucene 4.0. Run time and memory performance are comparable to the version using Lucene 3.6. I’ve made several improvements in terms of speed and memory consumption along the way, mostly within the CEDD feature. Also I’ve added two new features:

  • JointHistogram – a 64 bit RGB color histogram joined with pixel rank in the 8-neighborhood, normalized with max-norm, quantized to [0,127], and JSD for a distance function
  • Opponent Histogram – a 64 bit histogram utilizing the opponent color space, normalized with max-norm, quantized to [0,127], and JSD for a distance function

Both features are fast in extraction (the second one naturally being faster as it does not investigate the neighborhood) and yield nice, visually very similar results in search. See also the image below showing 4 queries, each with the new features. The first one of a pair is always based on JointHistogram, the second is based on the OpponentHistogram (click ko see full size).



I also changed the Histogram interface to double[] as the double type is so much faster than float in 64 bit Oracle Java 7 VM. Major bug fix was in the JSD dissimilarity function. So many histograms now turned to use JSD instead of L1, depending on whether they performed better in the SIMPLIcity data set (see TestWang.java in the sources).

Final addition is the Lire-SimpleApplication, which provides two classes for indexing and search with CEDD, ready to compile with all libraries and an Ant build file. This may — hopefully — help those that still seek Java enlightenment 😀

Finally this just leaves to say to all of you: Merry Christmas and a Happy New Year!

LIRe, Caliph & Emir, Citations & GPL

Although I hate this posts … out of necessity I have to say it: LIRe and Caliph & Emir are open source software licensed under GPL. This is good on the one hand as it is free and will stay so, but it is bad in a way that the integration of sources and binaries of LIRe and Caliph & Emir are bound to certain restrictions. Note that it was not my decision to put the whole thing under GPL, it was necessary to get all involved parties to “freeing” the software.

The restrictions are – boldly stated: if you use Caliph, Emir, Lire or any source out of these projects, then your project has to be GPL too … and of course therefore open source.

A second issue is citations: While the software and its source is free to use it’d be great to be cited in research papers and articles that use my software. Such citations are highly appreciated as I’m a researcher and citations is one of many criteria to measure the contributions of an individual to  research.

So we kindly ask you to refer the following paper in any publication mentioning Lire:

Lux Mathias, Savvas A. Chatzichristofis. Lire: Lucene Image Retrieval – An Extensible Java CBIR Library. In proceedings of the 16th ACM International Conference on Multimedia, pp. 1085-1088, Vancouver, Canada, 2008

And we kindly ask you to refer the following paper in any publication mentioning Caliph & Emir:

Mathias Lux. Caliph & Emir: MPEG-7 photo annotation and retrieval. Proceedings of the seventeen ACM international conference on Multimedia, pp. 925-926, 2009, Beijing, China.

Finding duplicate code …

I recently found myself in a scenario, where I tried to figure out how implementation clusters have been implicitly created within a group of students. All of them were given a task (with 4 sub tasks) for a whole semester. Everyone was meant to do the task alone, but collaboration was allowed. However I needed to know who helped whom and – of course – who helped whom with source code.

A colleague had a similar problem and he pointed me to PMD CPD (= PMD Copy & Paste Detector) . This tool works lightning fast and has a GUI 🙂 Also its open source -> respect!


QT Jambi: Deployment and Web Start

I’m still having this strange idea to use QT Jambi one day for a Java project of mine 🙂 Jambi is a pack of Java bindings for the QT framework. Therefore one can use the QT GUI classes from within Java and need not to rely on the Swing, AWT or SWT toolkit. As it maps to native code it is also expected to be faster than Swing or AWT. Like QT it can be used for GPL based open source development fro free.

While the demos look fine I had some doubts regarding the applicability for deployment. Jambi definitely relies on the QT libraries, which – not surprisingly – depend on the target platform. So different pre compiled libraries have to be included for different platforms. For the open source windows edition the whole pack has 26.4 MB (compressed < 6 MB), which is not more but a reasonable addition compared to the size of a standard JRE (compressed < 20 MB). A minimal set for using the GUI (core, gui and mingw) has about 17.3 MB.

So my conclusion: It’s definitely usable. While you cannot create QT applets with Java, web start is possible. However if in a specific scenario – especially web start – size matters then you need think about compression (e.g. with jars).

Related links:

Small Games for Kids – New Release

Besides the two already existing games (GuessWhat and Soundmachine, more information here) I added a new one called SoundVis. The main idea is to animate a kid to make sounds by for instance clapping or yelling. The louder the sound the bigger the blue circle in the center gets. While this sounds trivial it is great fun 🙂 Note that the microphone has to be functional. A simple test is included in the start screen of SoundVis.


Find the new package (including source, licensed under GPL) here. Use 7-zip to unzip them. Launchers (.exe files) for windows are included. Linux users might peek at the included batch files to get a clue how to start the games.