A little script that tries to detect people waving at a webcam. The debugging images below show the various stages of the computer vision pipeline.
It works by detecting a minimum number of rapid brightness transitions. View the source for more details.
Camera image | Diff with previous frame | Increase contrast |
Annotate 0 and 255 | Counts ( 0 1 2 3 4 5 6 7+ ) | count >= transition threshold |
Wave | ||
Contrast factor: | Larger values make the system more sensitive to poor lighting contrast but more prone to false positives | |
Max interval: | The maximum number of frames to wait between brightness transitions. Too low and the system can't see the relaxed and elderly. Too high and random fidgeting will be classes as a wave. | |
Transition count: | The number of consecutive transitions classified as a wave | |
Outlier threshold: | Ignore potential wave pixels if they have less than this number of wavey neighbours |