参见
涉及到一个软件pam-face-authentication,要修改一些东西,有空玩玩
系统OpenSUSE 11.3 milestone 5,KDE桌面:4.4.2,通过pam-face-authentication来实现su和桌面登陆的人脸识别。
1. 首先确认摄像头能用,如果不能用先安装驱动。可以使用软件cheese来检查摄像头驱动是否安装好,同时使用cheese来确定合理的摄像头分辨率。
在cheese的“编辑”->“首选项”里面,确定比较流畅的分辨率。我的摄像头在640x480以上分辨率时非常卡,但在320x240比较流畅。记住合适分辨率,后面要用到。
2. 安装pam-face-authentication
首先从官网上下载最新源代码:
wget
解压缩:
tar zxvf pam-face-authentication-0.3.tar.gz
cd pam-face-authentication-0.3/
修改源代码,设置合理的摄像头分辨率。默认情况下,摄像头分辨率没有设置,有时会比较卡,我这里的摄像头选用320x240分辨率比较好。
修改src/opencvWebcam.cpp
……
int opencvWebcam::startCamera()
{
// capture =cvCaptureFromAVI("/home/rohananil/ggm2.avi");
capture =cvCaptureFromCAM(0);
if(capture==0)
return 0;
else
// 添加下面两行内容
cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_WIDTH, 320);
cvSetCaptureProperty(capture, CV_CAP_PROP_FRAME_HEIGHT, 240);
return 1;
……
这里把截图时的分辨率设置为320x240,可以根据自己的实际情况修改。
编译安装:
cmake -DCMAKE_INSTALL_PREFIX=/usr
make
make install
这里有一点要注意,x86_64系统下,pam_face_authentication.so被安装到/lib/security/,需要把它移动到/lib64/security/下,不然无法启动人脸识别。
3. 如果是kdm作为登陆管理器,需要安装kdm-plugin-pam-face-authentication
wget
tar zxvf kdm-plugin-pam-face-authentication-0.1.tar.gz
cd kdm-plugin-pam-face-authentication-0.1/
cmake -DCMAKE_INSTALL_PREFIX=/usr
make
make install
设置kdm使用kgreeter插件,修改/usr/share/kde4/config/kdm/kdmrc
找到 PluginsLogin
取消行首的注释,改为
PluginsLogin=classic, faceauthenticate
注意,kdm的人脸识别在某些主题下无法使用,oxygen能用,继续修改:
Theme=/usr/share/kde4/apps/kdm/themes/oxygen
4.在pam中增加人脸识别:
1)如果要在使用su命令时,增加人脸识别功能,修改/etc/pam.d/su
在最前面(第二行)添加:
auth sufficient pam_face_authentication.so enableX
然后训练摄像头进行人脸识别,首先要进入su模式
su
qt-facetrainer
然后,训练摄像头进行人脸识别,图像界面的,比较好弄。
然后在konsole等虚拟终端中输入su,就会弹出人脸识别窗口,识别通过就进入su模式,无需输入密码,不过并不省时间,呵呵!
2)如果要在kdm登陆时使用人脸识别,添加/etc/pam.d/kde4-faceauthenticate,内容如下:
#%PAM-1.0
auth sufficient pam_face_authentication.so
account include system-auth
password include system-auth
session include system-auth
session optional pam_console.so
session optional pam_polkit_console.so
然后在当前用户下,同样运行qt-facetrainer训练摄像头。注销桌面就可使用人脸识别登陆了。
要注意的是,要进入哪个用户环境,就要在哪个用户环境下使用qt-facetrainer训练摄像头。
不过在opensuse下,桌面登陆认证默认是由xdm管理的,所以不需要添加/etc/pam.d/kde4-faceauthenticate,而是修改/etc/pam.d/xdm
在最前面(第二行)添加:
auth sufficient pam_face_authentication.so enableX
阅读(820) | 评论(0) | 转发(0) |