iMagine - share, browse and organize your images

  1. Sanaz Ahmadi
  2. Teemu Kinnunen
  3. Jukka Lankinen

Idea

Organize images using only visual information, so that the user can find particular type of images easily. The system will organize images on the 2D map in the way that similar images are close to each other. Advantage of visual information is that user does not need to label all of his/her images to make searches.

Features

User can

  • Get a list of similar images from the server using visual information and visualize it
  • Browse image collection (Image map/gallery)
  • Sync the image collection with the server with many devices

Optional features

  • Share images with other users directly using mobile devices
  • Image tagging and automatic learning of labels (image categories)

Implementation Plan and Goals

Server

  • Image categorization using bag-of-words model (DONE)
  • Syncing with clients (DONE)
  • Set up the server in the Internet (DONE)

Client

  • Syncing with server (DONE)
  • User interface design (DONE)
  • Settings page
    • Image folder (kind of DONE!)
    • User information (user id, password) (DONE)
    • Server settings (host address) (DONE)
  • Image categorization (DONE)

Design

The framework

The overview

The protocol

The protocol

Server

Apache server with PHP responding to queries from user using HTTP. User information is stored in a database so new users can be easily added. We also have a bunch of binaries which do the heavy image processing operations.

Client

For client, we used Qt. We had two views: main view and image view. User interfaces were very simple and dynamic, so we decided the build them by coding them instead of using Qt Creator. The connection between Qt Creator and code was bit confusing thus generating layouts and views manually was easy choice.

Main view uses a scrollable area and a grid layout that is inside the scrollable area. Inside grid nodes, we have added home brew custom widgets. These custom widgets stack multiple images together to illustrate some example images from the virtual directory.

In image view, we use 2×3 (rows x cols) grid layout where left and right buttons are in the top left top right cells and home button is in the bottom left node. The image tooks two columns from the middle.

QT Mobility pack We are using core gui and network packages.

Screen shots

Our Main view stacks groups of similar images into kind of virtual directories. User can go inside the virtual directory by clicking it. Main view

In Image view we show images inside a virtual directory. User can browse these virtual directories using (<) left and right (>) buttons. Image view

Project Artefacts

Presentation slides

Our presentation slides in pdf format can be downloaded from here.

Report document

Report document: here and brochyre: here

Source Package

Still WIP, but here: Latest version

How to run software

  1. Download and unzip the package
  2. Compile source and run!
  3. Register new user account at the http://hive.dy.fi/~users/qtcodecamp/qtcodecamp.php
  4. If you get “REGISTER 1”, It means your registration was successful!
  5. Open the application and fill in the user name, password and image directory.
  6. BROWSE image stacks.
  7. open stacks by clicking and browse stack contents.

If you encounter any problems, please send email to Jukka Lankinen or Teemu Kinnunen!

Conclusion