Category Archives: Imaging

LIRE v0.6 released: New Image Features

The new release contains three additional features: (i) Tamura texture features, (ii) Color and Edge Directivity Descriptor (CEDD) and (iii) a configurable color histogram implementation. While the last one was integrated for comparison only the other two provide additional improvements, especially the CEDD feature. Furthermore a FastMap implementation was included in the release for optimization of the indexing process in a later release. Also some bugs were fixed in the MPEG-7 EdgeHistogram descriptor provided in the cbir-library jar file and in color-only search. Note that due to the increased number of features the extensive document builder, which extracts all available features, needs significantly more time for extraction than in the last release.

Links:

Lire SVN build for Java 1.5

Due to requests I took some time and built a Java 1.5 version instead of the 1.6 versions. A simple compile with 1.5 wouldn’t help as I use the swing layout classes of NetBeans (now integrated in Java 1.6), so imports have to be re-adjusted and the library has to be added. Furthermore I created an explicit build target in Caliph to create a 1.5 version of the cbir jar file. This snapshot works fine with MacOS (as far as I’ve heard) and on Windows.

Files:

Lire development: a big next step ..

While it has been quiet for some time around Lire, recently development has been pushed forward. I switched to SVN for development and integrated simple RGB color histograms as a feature for comparison with the MPEG-7 features. Savvas Chatzichristofis (or on facebook, his image search engine) contributed the CEDD feature, which works great! Marko Keuschnig and Christian Penz contributed implementations for the Gabor texture feature and the Tamura texture features, where the latter is already in the SVN. I also integrated the new features in LireDemo. A new version – already compiled – can be downloaded here: liredemo-svn-2008-05-29-jdk16.tar.bz2 Note that Java 1.6 is required.

Image Mosaics with Ajax

Did you ever think image mosaics in a web application are something that can only be rendered on server side? Well a very interesting post gives an example for the generation of image mosaics with JavaScript and Ajax. The authors employs a JavaScript binary file reader and uses the raw values from greyscale BMPs to find the mosaic. The approach for mosaic creation is simply yet effective: The overall luminance of an image is taken as “single value descriptor” and single pixels are substituted by very small BMPs.

Related Links:

  • Ajax mosaic builder – The blog entry describing the Ajax way of mosaic creation
  • Lire Demo – The offline way for image mosaic creation (also featuring colored images and formats different from BMP)

img(Anaktisi) Image Search Engine

img-search.jpgSince Blobworld was down I was hoping for a new online CBIR system to show in lectures. Last week I received word about the img(Anaktisi) image search engine from Savvas Chatzichristofis. This search engine is based on 2 new content based descriptors that combine color and edge features. The results look promising!

There is also an offline sketch based retrieval system being developed. A screencast can be found on YouTube.

Related Links

SeamCarving Plugin for ImageJ

imagej-screen.pngUlf Dittmer has published a seam carving plugin for ImageJ today. ImageJ is a Java based image manipulation and processing tool with a very active developer community. It’s running on Windows, Linux and Mac and its open source.

Related links:

The iBlue 747 GPS Logger

iblue747.jpgRecently I bought the iBlue 747 GPS Logger after reading the review on Cool Tools. While most GPS devices sold here are based on the SiRF star III chip, the 747 is based on the MTK chipset. This allows the user to fill the internal memory easily before you run out of power instead of the other way round. For more detailed information I found a extensive review on gpspassion.com.

From my point of view the device is good enough. Memory holds up to 70.ooo waypoints and there is enough power for a long hike, walk or bike tour. The software however is somewhat limited. I recommend to use the Java open source software BT747 for downloading the track logs and allows to convert them to Google Earth files, Google Map HTMLs (for sending by email), GPX or NMEA. This tool is rather complicated to use but works fine as soon as you managed to let it do what you want. One will also need the driver, but all instructions are given in the howto of the bt747 software.

BT747 ScreenshotWhat took some time for me to realize was that the internal memory of the iBlue 747 was 16 Mbit, which is 2 MByte. This was quite a shock (as I misread it first), but as already mentioned its enough for ~ 70k track points. The GPS mouse function comes handy when navigating with my mobile phone, which – just to mention – has the same battery type as the gps device :) One thing that disturbs me somewhat: I’d like to have a device where track logs can be downloaded using plain USB (like from a USB storage device) not serial over USB, which is awfully slow. Also I’d like to have GPS that works inside the house too :-D

Geo tagging of photos also works fine, there are several tools available. I’ve tested the GPS Log Analyzer and GeoSetter, which both work fine. The locr tool seems to produce GPS Exif metadata that can’t be read from Google Picasa. Flickr recognizes the geo tags also, but you have to activate the import of those in your privacy settings.

Getting out the most: PNG

Many people think that standards are made to simplify and formalize certain formats or tasks. However most standards remain ambigous or “free to choose” in critical parts. This can happen due to political issues (several solutions exist and different companies want to bring in their own stuff) or due to simplicity (just use some other standard that already is ambiguous or disambiguation doesn’t pay off).

One fine example is PNG: The encoding process includes several options which allow for some tweaking. Color space and quantization for instance can be chosen by the encoder. If the encoder uses some standard quantization the encoding might result in a much larger file than needed. Another example is the deflate compression routine, where a trade off between expected file size and buffers can be made (larger buffers result in a higher compression rate but also in a larger memory consumption for decoding). More information can be found e.g. in A Guide to PNG optimization.

For those of you just wanting to optimize their PNGs here is a list of useful stuff:

Answers to Common Questions

Checking the proceedings after the ACM Multimedia reminded me of the las slide of Mike Gleicher. His paper was best paper nominee and dealt with post processing of videos to enhance the camera motion quality (straight motion and zoom, remove shaking etc.). He presented notable results and at the end of his talk he gave some answers:

  • I don’t know.
  • No, we don’t introduce cuts.
  • The details are in the paper, send me email if its not clear.
  • Friends in industry say they can do the camera motion estimation robustly, in real time.
  • Yes, I would like to go to Oktoberfest Friday.
  • Our in-painter builds a 4 second mosaic for each frame.
  • 2
  • Logarithms and exponents of 3×3 matrices can be computed robustly and efficiently with iterative methods.
  • Yes, this slide is an old joke –but I haven’t used it in years.

Ref. Michael Gleicher and Feng Liu. Re-Cinematography: Improving the Camera Dynamics of Casual Video. ACM Multimedia 2007, best paper nominee. September 2007. [on his homepage]