Category Archives: Imaging

Moved ImageSeams to Google Code

With the v4 version I decided to put up a project at Google Code for the whole thing as I needed Subversion support and some way to handle the downloads. You’ll find all information on the project there.

Co-developers are of course welcome 🙂

Content Based Image Resizing (GPL, Java): Update to v4

I’ve just uploaded a maintenance release. Biggest change is that the seam table is now re-used. Therefore computation is somewhat faster. I’ve also cleaned out the code and made more ‘readable’. Fell free to download and comment:

Other tools (stand alone, plugins, etc.) are reviewed for instance here. Seems like there is a “war of seam carving tools” going on. Many of those are closed source, perhaps some people are trying to make money selling old shoes 😀 The roadmap for this implementation is clear: If the following two constraints are met development is going on:

  • Someone (including me) needs some feature / performance upgrade or finds some bug
  • Someone (possibly me) finds some time to implement the feature / performance upgrade

Here @ ACM Multimedia 2007

Currently listening to the last talk of this day for me I’ll try to put my impressions together to a full image of the first two days of the ACM Multimedia 2007. The location is quite charming: Augsburg is nice and the university here has a lot of nice ‘landscape’ (~green nothingness) around 🙂

The picture to the right shows W. Wahlster doing his keynote yesterday. While it was impressive how many parallel and interconnected  research activities can do with such an amount of  funding the content of the talk was more like selling an EU IP 😀

Todays first keynote was rather cool: R. Fageth from CeWe talked about their company and gave lots of impressive figures how people submit photos for printing. They for instance receive 4 TB of digital photos via upload for printing each day, while the mean image maximum age of an order is ~80 days.

The overall impression on the conference is: Many good contributions and lots of demos & posters to see. Many – but not all – present novelties or interesting ideas.  Also interestingis the mere number of posters/demos/papers dealing with social media. Seems to hit the research 🙂

Content Based Image Resizing (GPL, Java): Update to v4

I’ve just uploaded a new version of the seam carving application (v2 v3 v4). There is a performance increase and the result should be smoother now. It’s either available as Java Webstart or as compiled jar file to start the Swing GUI. Sources are included, license is GPL, Java 1.6 needed.

What does this application do?

ImageSeams accepts JPG and PNG images as input and re-targets the image. This means it cuts out the not interesting parts of an image automatically. The application is based on the findings of this group described in this paper. A visual introduction of the original application is given in this video.

Changes:

  • Bugfix: Bug fixed in seams backtracking, results are smoother now
  • Feature: Image can now be scrolled
  • Feature: About dialog showing version
  • Change: Speed up in image repaint: ~30% ~50% performance gain
  • Change: Icons for seam carving replaced
  • Chang: Animation is now smoother

Small tutorial:

  • Load an image with the leftmost button (jpg and png will work fine, try to use images not bigger than 800×800 for a start)
  • Set the preferred size using the spinners (Do not forget to hit enter if you type it in, otherwise Java won’t recognize it)
  • Hit the 2nd button in the tool bar and observe the effect
  • Tryout the image brushing (click and drag on the image) to retain certain parts (e.g. faces) within the image
  • Switch to the remove brush if you want to remove parts of the image before resizing.

Content Based Image Resizing: Webstart GUI

To allow easy tryouts I just uploaded a Java Webstart version of the ImageSeams GUI tool. You need to have Java 1.6 installed, then you just click here and the application should start right away.

If you just want to know what this is all about … here is a short flash demo showing the brush and resize trick.

First steps are:

  • Load an image with the rightmost button (jpg and png will work fine, try to use images not bigger than 800×800 for a start)
  • Set the preferred size using the spinners (Do not forget to hit enter if you type it in, otherwise Java won’t recognise it)
  • Hit the 2nd button in the toolbar and observe the effect
  • Tryout the image brushing (click and drag on the image) to retain certain parts (e.g. faces) within the image
  • Switch to the remove brush if you want to remove parts of the image before resizing.

Content Aware Image Resizing: GPL Implementation

sea.pngJust for the proof of concept I’ve implemented parts of the Content Aware Image Resizing algorithm (presented by Avidan, S. & Shamir, A.) shown here (covered also on Slashdot, Techcrunch, …) in Java (GPL). Currently image size can only be reduced.

The images on the left show results from the implementation. The source as well as the binaries can be downloaded here:
sea_carved.png

screenshot-carvergui.pngI’ve furthermore put up a GUI tool for loading and ‘carving’ images. It allows to mark areas for retaining (red brush) as well as for removal (green brush). The screenshot shows the application with area already colored. Download is here:

Content Aware Image Resizing

A small buzz around content aware image resizing has hit the media. This is fully understandable if you watch the short but impressive presentation.

More information as well as the paper describing the approach can be found on Ariel Shamir’s Homepage. The paper (20.48 MB) is available at ACM:

Avidan, S. & Shamir, A. Seam carving for content-aware image resizing SIGGRAPH ’07: ACM SIGGRAPH 2007 papers, ACM Press, 2007, 10

4th Carinthian Photowalk – Aug. 18th @ Night

Taken by zerokThe 4th Carinthian Photowalk has been announced. It will take place in Klagenfurt, starting on 18th of August 2007 at 9pm here. Main topic is night photography (well 9pm is a good time for that 😀 ). If you want to come, don’t forget your camera tripod.

If you want to know what people are doing on a photowalk, then check the results of for instance the 2nd photowalk or the 3rd photowalk.

Image to the right was taken by zerok, licensed under CC (THX to zerok).

How users think about image search …

There is an article about some new image classification and labeling system online: The UC San Diego has developed (together with Google, they brought in the data) a machine learning approach for automatic image labeling. Find the article here.

Well this is not the first image analysis engine that was created and it won’t be the last, but the discussion at slashdot was particulary funny. Some excerpts go here:

  • I remember when we had to go to a gas station and *buy* porn. Now you have computers out there finding porn for you. You kids today have it too easy!
  • If this doesn’t revolutionize the searching of online porn galleries, I don’t know what will.
  • … was similarly trained to recognize tanks in landscapes. […] Then they introduced it to a new batch of images and it fell apart. Turns out that the initial set of images had all the tanks shot on a sunny day and all the tankless images shot on a cloudy day (or vice versa). It had learned to tell a sunny day from a cloudy day. Ha ha.

  • Now I can search for porn stars that look like that girl in my English class!

Thanks to social software we now know how the ordinary talkative geek thinks about image search 😀

(thx to Roman for the hint on the article & the discussion)

Blobworld Testimonial

blobworld.jpg

One of the most famous services for image segmentation & retrieval is (or was) blobworld. The system was built for advanced image querying based on regions (blobs), which were identified automatically. For image retrieval one could select blobs and define whether color, texture or size and position were most relevant for the query. Based on the input several good matches were presented.

Over the years Blobworld became a de facto standard for showing the possibilities of content based image retrieval systems. Hopefully there will be more innovative applications like this one in the future.