Дело было днем на работе, пока конпелялось ядро для СБИС, набросал из экзампла на опенcv концепт.
https://github.com/nekromant/facelockd
В общем, оно хватает поток с камеры, ищет лицо. Если лицо есть, ничего не делает. Если пропадает на больше чем n кадров, то вызывает скрипт facelock с опцией lock, а когда лицо появляется на threshold кадров - тому же скрипту кидает unlock.
Настраивается в исходнике, вот этими переменными:
int maxfails=120;
int unlockthrshld=10;
int framedelay = 100;
int capx = 320;
int capy = 240;
Сборка: make
Запуск: ./a.out ./haarcascade_frontalface_alt2.xml
На вход можно дать любой haart каскад, пусть хоть средний палец в камеру ищет.
В общем, пруф оф концепт, не более, все захардкожено и на хаках, на выходных причешу, добавлю возможность искать по нескольким каскадам (профиль и анфас).
Юзаю, чтобы ставить музыку на паузу, когда отхожу от компа, авось кому сгодится.