Home Games Projects Blog Contact Private
Network

Posts Tagged ‘maemo’

Maemo Face Detection/Tracking on HardWorkingBee.com

I recently wrote a short article on my face detection and tracking endeavors on the Maemo platform for the blog HardWorkingBee.com. Basically, it’s a summary of my two previous two blog posts here (1, 2). As the blog is only available in German (currently), the article is also written in German.

They split my original article in two parts:

The original article is this:

Im Rahmen meiner Diplomarbeit “Face Detection und Tracking für Computerspiele auf mobilen Endgeräten” habe ich mich damit beschäftigt, Gesichter in Bildern zu detektieren. Das hört sich erst mal nicht spannend an, ermöglicht aber interessante Anwendungen.

Als Plattform kommt das Nokia N900 zum Einsatz. Eine wichtige Voraussetzung ist eine Kamera auf der Vorderseite des Geräts, welche das N900 besitzt. In den durch die Kamera aufgenommenen Bildern wird jeweils die Position des Gesichts des Benutzers bestimmt. So kann das Gerät die Position des Benutzers relativ zum Gerät herausfinden und diese Position kann als Eingabe benutzt werden.

Als erste Anwendung habe ich ein einfaches Spiel mit dem Namen BurgerFace entwickelt. Das Ziel des Spiels ist, bestimmte Objekte (Burger) einzusammeln und anderen auszuweichen (Messer). Um das zu erreichen, muss der Spieler seinen Kopf relativ zum N900 bewegen. Das kann durch Bewegen des Kopfes selbst oder durch Bewegen des Geräts umgesetzt werden. Trotz dieses einfachen Spielprinzips haben die meisten Spieler sehr viel Spaß gehabt. Da das Spiel mit den eigenen Bewegungen gesteuert wird, ist es sehr intuitiv. Es ist nicht nötig, dass man vorher irgendwelche Tastenbelegungen erlernt.

Die zweite Anwendung ist ein einfacher, aber sehr eindrucksvoller 3D-Effekt. Er erweckt beim Benutzer den Eindruck, dass der Bildschirm des Geräts eine gewissen Tiefe hat. Unter bestimmten Umständen können Gegenstände auch so erscheinen, als würden sie aus dem Bildschirm herausragen. Der Bildschirm wirkt wie ein Fenster in eine virtuelle Welt.

Das Prinzip ist, dass die Position der Kamera, durch die die 3D-Szene aufgenommen wird, und die Projektion entsprechend der Position des Betrachters relativ zum Gerät angepasst werden. Setzt man das richtig um, wird die Sicht auf die 3D-Szene immer gerade so angepasst, wie sich auch die Sicht durch ein echtes Fenster ändern würde.

Abgesehen von den beiden vorgestellten Demos gibt es noch viele andere spannende Anwendungen. Ich habe auch bereits einige interessante Vorschläge bekommen. Derzeit überlege ich, was ich als nächstes mache.

Face Detection And Tracking On The Nokia N900

These last months I’ve been working on my Diplom Thesis and now it’s slowly coming to an end. The topic of my thesis is Face Detection and Tracking for Computer Games on Mobile Devices. I started out working on the Nintendo DSi, but then had to change to the Nokia N900 because the company I worked at went insolvent.

I’ve implemented two different face detection systems on the Nokia N900 of which one works pretty well. On top of that I’ve created a very simple game – a technology demo – that uses the player’s head position as the input. The game is called BurgerFace and looks like this:

BurgerFace Screenshot

BurgerFace Screenshot

The goal is to pick up the burgers that increase the score and dodge the knives that cost lives. I’ve also created a video that shows the game in action:

Now I need to evaluate how well this input method works and if it’s fun. For that, I need your help. I’ve put the game online. Download it here (764 KB). It’s a .deb package that can easily be installed on your N900 by opening the file after downloading it (it depends on SDL, SDL_mixer and SDL_ttf and yes, it’s optified). It can also be uninstalled easily through the application manager.

Please download the game and play it as much as you like. Afterwards, take the survey that asks you some questions about the game and the input method. You can either take part in the survey on your computer or directly on the N900. If you want to do it on your N900 you can easily open the survey directly from the game.

I’d be very happy if you played the game and took the survey as that would greatly improve my thesis. :-)

Update: I also posted this on Maemo Talk.

Update: The survey is closed now. Thanks to all participants! The download is still online though.

Running ESbox On An Up-To-Date Linux

I’m currently getting my feet wet in Maemo 5 development as I’ll soon be the proud owner of a Nokia N900 (maybe already tomorrow? Go, Amazon, go!). As an avid user of Arch Linux, I try to keep my installation current by running pacman -Syu every now and then. That sometimes leads to software that is too new…

I was trying to install ESbox, an Eclipse plugin for Maemo development, but it wouldn’t work as my Eclipse version 3.5.1 was too new. I then tried to install an older version of Eclipse, but that wouldn’t run because my version of XULRunner was too new then. The error you then find in workspace/.metadata/.log look like this:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
!ENTRY org.eclipse.osgi 4 0 2009-12-06 19:37:24.648
!MESSAGE Application error
!STACK 1
org.eclipse.swt.SWTError: XPCOM error -2147467262
	at org.eclipse.swt.browser.Mozilla.error(Mozilla.java:1597)
	at org.eclipse.swt.browser.Mozilla.setText(Mozilla.java:1820)
	at org.eclipse.swt.browser.Browser.setText(Browser.java:737)
	at org.eclipse.ui.internal.intro.impl.presentations.BrowserIntroPartImplementation.generateContentForPage(BrowserIntroPartImplementation.java:252)
	at org.eclipse.ui.internal.intro.impl.presentations.BrowserIntroPartImplementation.dynamicStandbyStateChanged(BrowserIntroPartImplementation.java:451)
	at org.eclipse.ui.internal.intro.impl.presentations.BrowserIntroPartImplementation.doStandbyStateChanged(BrowserIntroPartImplementation.java:658)
	at org.eclipse.ui.internal.intro.impl.model.AbstractIntroPartImplementation.standbyStateChanged(AbstractIntroPartImplementation.java:249)
	at org.eclipse.ui.internal.intro.impl.model.IntroPartPresentation.standbyStateChanged(IntroPartPresentation.java:443)
	at org.eclipse.ui.intro.config.CustomizableIntroPart.standbyStateChanged(CustomizableIntroPart.java:266)
	at org.eclipse.ui.internal.ViewIntroAdapterPart$2.run(ViewIntroAdapterPart.java:74)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
[...]

By the way, grabbing the complete Eclipse install from the ESbox website doesn’t help when running a 64-bit system.

So here’s my way of getting it running anyway without harming the rest of my system:

  1. Get and install Eclipse IDE for C/C++ Developers version 3.4.2 / SR2. Of course, you can keep your current Eclipse installed.
  2. Get and unpack XULRunner 1.8.0.1, but don’t really install it. Just put it somewhere and memorize the path.
  3. Edit eclipse-install/eclipse.ini and append this line to the end:
    -Dorg.eclipse.swt.browser.XULRunnerPath=/path/to/your/old/xulrunner/

    (Thanks to this forum thread.)

  4. Go on and follow the normal ESbox installation instructions using Method 2: Eclipse Update Site.

I hope this helps someone.

Nokia N900 & Maemo: My Hope

As someone who most people would probably call a nerd, I do like smartphones. About two years ago I got a Windows Mobile phone (the HTC Herald) and now it’s slowly becoming time to make the switch to a new device. The reason for this post is that the smartphone scene has changed significantly in these past two years and here is my take on it (in reverse order of greatness):

Windows Mobile

  • Slow and clunky interface
  • Almost no customization
  • Most available applications (at least the free ones) are either unusable or you don’t really need them
  • Paying for applications is too difficult as there is no centralized shop
  • I think if Microsoft doesn’t do a major overhaul here soon Windows Mobile will be dead

Android

  • The idea of an Open Source system based on Linux is good
  • There seem to be good applications available and there is an easy way to get them
  • From what I hear, the interface is alright
  • For my taste, there is too much Java
  • Google is slowly becoming too ubiquitous and has a pretty tight hold on the platform1

iPhone

  • The interface is obviously great, but it’s customizable
  • There are so many applications available and they are easy to get
  • It’s a good platform for small developers to earn some money2
  • I don’t like Apple’s style of locking down the device
  • It’s starting to feel like everyone has an iPhone

Palm Pre

  • The interface looks great
  • There seems to be good support for Open Source applications
  • It’s pretty new
  • Come on, writing applications in HTML and Javascript only? And native applications only by trusted third-parties?
  • There are rumors that the Pre gathers user information and uploads it to Palm

Nokia N900 & Maemo

  • The idea of running Linux on a smartphone is just awesome
  • So there’s also very good support for Open Source software
  • The device is very powerful (real multi-tasking!), it really is a computer
  • The interface looks good and intuitive
  • Nokia seems to get the idea that openness is good

To me, the Nokia N900 and Maemo look like the best choice for a smartphone at the moment – if it will ever be released. And no, I won’t wait for the N900 Duke Nukem Forever edition.

  1. There are custom ROMs, but they are not as good as the official ones as they don’t include the closed-source Google applications which add a lot to the platform. ^
  2. Even though you have to stick to Macs and Objective-C. ^