ETH Zurich

Department of Computer Science

Institute for Pervasive Computing


Visual Code Recognition for Camera-Equipped Mobile Phones

In this project we evaluate the feasibility of using the CCD cameras built into off-the-shelf mobile phones to act as sensors for 2-dimensional visual codes. The codes can be attached to physical objects and act as a key to access object-related information and functionality. The use of mobile phones is interesting in this scenario, because mobile phones are ubiquitously available devices providing constant wireless connectivity, and models with integrated cameras are getting more and more popular. Using the integrated camera as a sensor thus offers a natural way of detecting objects in the user's immediate surroundings. More background information is given in the references section. A non-technical German introduction into the project is available here.

Visual Code Recognizer

Test application for recognizing visual codes. Written by Beat Gfeller and Michael Rohs.

Visual code recognizer Visual code recognizer Visual code recognizer

Creating Visual Codes

Visual codes can be created here, by entering a decimal or hexadecimal number into the text box below the image.

Code value:

Item Selection using Relative Focus Position, Rotation Angle, and Tilting Determination

The following videos demonstrate some of the interaction possibilities of the visual code system that are enabled by using the position of the camera focus, the rotation of the code in the image, and the amount of tilting of the code plane relative to the image plane as additional input parameters. Each code introduces a code coordinate system with its origin at the upper left edge of the code and one unit corresponding to a single code bit element. The code coordinate system is independent of the orienation of the code in the image. The recognition algorithm is able to map points in the image plane to points in the code plane and vice versa.

With visual codes, areas in printed documents can be linked to online content. Paper documents thus become interactive media. Imagine a cinema magazine, in which physical hyperlinks connect words and images to movie trailers, background information about the actors, and the local cinema's booking system. Such physical hyperlinks can be conveniently selected with a camera-phone that is in reach of its user most of the time.

In newspapers, visual codes can be used to store or rate newspaper articles, to get background information related to advertisements, and for updates on information which quickly gets obsolete, like stock quotes and weather forecasts. If physical hyperlinks are associated with points and regions on the page, the camera-phone can follow the hyperlink, fetch the additional information and display them. In the video, the camera-phone retrieves the current snow conditions for various regions of Switzerland by moving the camera focus across the corresponding table entries on a newspaper page. Since the rotation of the code in the image is provided as an additional parameter, multiple aspects can be associated with a single point or region. As shown in the video, when the camera is rotated by a certain amount, the display changes to indicate the current temperature instead of the snow depths.

Selecting online information related to different regions

ETHOC Client

Scanning the visual code of an ETHOC ID triggers the phone's WAP browser and shows the associated information.

Various ETHOC codes
Scanning an ETHOC code WAP browser displays associated ETHOC page
ETHOCClient.SIS

Visual Code Dialer for Symbian OS v7.0s

Automatic dialling of phone numbers that are encoded in visual codes. Phone number codes can be created with the form shown above in the following way: Phone number 0041 1 632 08 59 has to be encoded as 0xf004116320859.

Dialling a selected phone number Dialling a selected phone number Dialling a selected phone number
Encoded phone numbers (using error protected codes)
Dialer_v70s.SIS

Visual Code Dialer for Symbian OS v6.1

Dialling of phone numbers that are encoded in visual codes.

Encoded phone numbers Dialling a selected phone number
Dialer.SIS

Profile Selector for Nokia 7650

Allows to set the current phone profile (general, pager, silent, etc.) by scanning a menu associated with a visual code.

Menu of phone profiles "Meeting" phone profile "Pager" phone profile
PhoneProfile.SIS

Visual Code Orientation

Shows the orientation of the recognized code on the bottom of the screen in the following way:

Orientation of the recognized code
variable value
orientation l, r, t, b, or c, if the code is viewed from left, right, top, bottom, or center, respectively
tilting amount of tilting of the image plane relative to the code plane (no tilting: t = 0)
rotation rotation of the code in degrees (increasing clockwise)
center coordinates of the screen center in the code coordinate system (origin of code coordinate system is upper left edge of code, lower right edge has code coordinates (10,10))
Orientation.SIS

Camera-Controlled Pong

Symbian version of the classic Pong game. The green ball bounces back from the walls. The red slider is controlled by the orientation of the phone relative to the background. Moving the phone to the right moves the slider to the right - and vice versa. It implements a kind of "virtual mouse" with the integrated camera. A video that shows how this might be used for interaction with large-scale displays is available here (1.4 MB, wmv).

Camera-controlled Pong
Pong.SIS

Camera-Controlled 3-D Wireframe

Draws a 3-dimensional wireframe of a house which is rotated along the x-axis and y-axis depending on the orientation of the phone. The integrated camera is used to compute the orientation.

Camera-controlled 3-D wireframe
Haus.SIS

Camera-Controlled Map

Displays a tram map of Zurich. Moving the phone updates the part of the map which is displayed.

Camera-controlled map
TramMap.SIS

Pen Tracking

Tracks the tip of a pen as it is moved in front of the camera.

Pen tracking
Pen.SIS

Visual Code Applications for Symbian OS v6.1 and v7.0s

Note: These demo applications have been developed for Symbian v6.1 and tested on a Nokia 7650. Except for the Recognizer_v70s.SIS which has been tested on a Nokia 6600, they will not run on Symbian v7.0s and later, because the camera API has changed. Updated versions for Symbian v7.0s will be available soon.

How to access the mobile phone's camera under Symbian OS. An overview of Symbian OS phones is available here.

References

Contact

The visual code and its recognition algorithm was designed and implemented by Beat Gfeller and Michael Rohs. If you have any questions regarding this project, please feel free to contact Michael Rohs or Friedemann Mattern.

Top of page.

Last modified: May 26th, 2006. mr

ETH Zurich

Department of Computer Science

Institute for Pervasive Computing