Home Software Articles Photos

Voter friendly voting system for competitions, demoparties

How does it work

  1. first you generate and print voting sheets (example, example)
  2. then people vote (by checking checkboxes)
  3. you take photos of all sheets (example - this quality is sufficient)
  4. finally software analyzes photos and generates competition results

+ approx. 99% (for 2MPx camera, 99.5% for 4MPx) of checkboxes recognized correctly, the rest may be fixed in interactive mode by simple point and click (suspicious checkboxes are highlighted)
+ system is fast, making photos takes 2sec per sheet, optional human supervising and fixing takes approx 4sec per sheet
- forms are generated by changing constants and recompiling
+ succesfully used on 6-8 demoparties (Avalcon, Fiasko, Syndeecate) since 1998

How photos are analyzed (step 4 in detail)

  1. Program detects centers of black points by floodfilling black areas. Points are black areas with roughly expected size and expected edge length.
  2. Randomly found points are matched to 'real' points (relative coords of real points are known from time when voting sheet was generated). Some points are bigger, so it's clear where is page top, what is bottom, even if image is rotated/upside down.
  3. coordinates of all checkboxes are known now, they are calculated from points
  4. For each box, colors are normalized to 0..255 range and 'darkness' inside box is calculated. Normalization uses some treshhold valus found in experiments.
  5. For each row of 5 boxes, one should be much darker than the others - it is checked. Probabilities of other possible results are considered - none checked, multiple checked.
  6. Optional interactive mode: sheet is displayed with normalized checkbox colors and with marks around checked boxes. Uncertain results are highlighted, so it takes no time to look over sheet and check validity of all red results and possibly correct them by clicking correct box.
  7. Results are saved to text files, one per voting sheet.
  8. Other tool builds results (1 file) from individual results (1 per voting sheet).

Comparison of voting systems

A. Fully digital voting, no paper sheets

Requires lots of input devices (terminals?) for voters. Difficult to vote immediately during show without own terminal. Reliability = 100%.

B. Paper sheets digitized by humans

Processing 100 voting sheets takes 200 man-minutes. Verification adds 200 man-minutes. Reliability = 90-99%, depends on operator's concentration, nearly 100% after verification.

C. Paper sheets digitized by this system

Processing 100 voting sheets takes 15 man-minutes. Verification adds 5 man-minutes. Reliability = ~99.5% in unsupervised mode, nearly 100% after verification.