I need an app that can do live monitoring of whether each seat in an auditorium is occupied, so visitors can load the app and see where to sit.

The auditorium has a relatively flat ceiling 4m high, and the seats are .5m wide. The hardware cost per seat needs to be $5.

I'm looking for all solutions. Web cams, preasure sensors, sonars, lasers, arduino, pi, intel edison, anything.

Obviously there cannot be wires that people could trip over. Sensors on the ceiling could have wired networking. Sensors on the seat or floor would need to have wireless communication. sensors on the ceiling would need to consider occlusion by people sitting in the seats (think, if there is an empty spot between 2 people, can the sensor see it as empty)

In the end, the data needs to be collected as a simple list of which chairs are occupied/open

enter image description here

Possible solutions:

  • rasberry pi's on the ceiling every 8 seats with a camera.
  • pressure sensors under chair legs wired to pi's gpio
  • Drones flying around the auditorium :)

Any ideas?

Update (more constraints):

  • auditorium size is 400 seats
  • Installation costs should average 10 chairs per hour(400/10 = 40 hours)
  • as the picture shows, chairs are cushioned
  • regular maintenance should take no longer than 30 min. per 2-hour event(eg, batteries)
  • hardware should last 100 sessions
  • for auditorium cleaning, it should be possible to "disconnect" and "reconnect" the chairs with 4 hours of labor.
  • nice and interesting question, but totally offtopic here =)
    – lenik
    Commented Jan 14, 2014 at 23:40
  • Well, I figure "where on the internet are all the arduino/pi/sensor type of people". I figure "stackoverflow". I found Rasberry, and I believe this forum is appropriate for talking about problems that the Pi can solve, not just problems WITH the pi :) Commented Jan 14, 2014 at 23:42
  • could you please tell how large (wide) is the auditorium and how many seats (rows, columns) are there?
    – lenik
    Commented Jan 15, 2014 at 14:35
  • @lenik I added more details. I'd like a system that is not so dependent on rows and columns, but you CAN rely on that the rows are straight, not in a circle. Think 4 sections with about 8 rows of 12 chairs Commented Jan 15, 2014 at 17:00
  • Too bad about the cushions. I was thinking about adding reflectors to the seeds to improve camera detection accuracy. Second thing I thought about is how they read free parking spaces in Amsterdam. They have a unit, embedded in the ground, sending a signal to a satellite at regular intervals. When a car is parked above it, it will block the signal. Very simple and foolproof. You could try some very weak RF.
    – Gerben
    Commented Jan 15, 2014 at 19:10

4 Answers 4


In 'practical computer vision with simplecv' by Kurt Demaag et al. you can find an example of detecting the presence of a car in a specific spot of a car park (in chapter 5). This is done using a camera comparing a stored image of the empty spot and compare that to a (real time) image of the same spot. It should be easy to translate this to your situation. I would suggest you try this idea using simplecv and then switch to the c++ api of opencv and use the camera class found with here to use the rpi cam with opencv. If you are going to use a usb webcam you will not need this class.

  • Hm, hadn't seen simpleCV. I've been wanting to do a project in python (I come from a more c#, javascript world). I think this would work pretty well. do you know what type of filter is good to use if the light could vary from bright to dim? Commented Jan 15, 2014 at 17:07

One approach for the light difference could be to use two samples of the color or better maybe the hue of the seat. One of an empty seat in bright and one in dim circumstances. With hueDistance and an adequately chosen threshold you might be able to do the trick.


You could divide the room into clusters of seats and cover each cluster with a webcam attached to a RasPi and use motion detection to find significant changes in the picture.

If a change was detected and there is an event going on, post the image of the cluster to Amazon Mechanical Turk and let a human decide whether the seat is occupied. Update your app's backend when the results are in.

Not sure on the average response time on Mechanical Turk, though.


If you are going to make an app that people can use to see which seats are free. Why not add a feature to the app where people can "check-in" to a specific seat. Therefore eliminating the need for any sensors.

  • That's a good idea, and there are 2 reasons. First the age spectrum is complete, meaning there are lots of 60-80 year olds. 2nd, it's somewhat inconvenient if you are new (don't have the app) and you arrive early and just want to go sit down. Most likely the app would be used by a person at the door, helping people find seats when it's fuller, and actually I was thinking it would be good to put it up on a screen, next to the entrance. I think your idea would work great in a college setting, or certain business settings. Commented Jan 23, 2014 at 16:38
  • in a few years though, some kind of NFC chip in each chair where people just tap the chair with their phone when they arrive would work great. Commented Jan 23, 2014 at 16:42
  • The NFC technology already exists for android phones. You can buy nfc stickers and code them using an android app, e.g. code the individual seat numbers for each sticker on each seat. Then when the user taps them with their phone they have chosen their seat Commented Jan 24, 2014 at 11:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.