调用虹软 SDK 实现人脸识别登录 mes 系统
一:实现步骤:
1. 下载 SDK 集成到项目;
去官网下载相应的SDk(https://ai.arcsoft.com.cn/product/arcface.html),项目中引入 arcsoft-sdk-face-3.0.0.0.jar,代码中指定.dll路径加载相关dll文件。
2. 人脸注册;
在用户管理界面选中一条用户,点击人脸注册调用摄像头拍照将人脸照片信息传到后台,保存到数据库大字段,使用户信息和人脸信息关联。
![image.png](http://119.96.220.140:9099/upload/2020/08/image-d32e53dc.png)
//这段代 主要是获取摄像头的视频流并显示在Video 签中
function camera() {
var canvas = document.getElementById("canvas"),
context = canvas.getContext("2d"),
video = document.getElementById("video"),
videoObj = { "video": true },
errBack = function (error) {
console.log("Video capture error: ", error);
};
//拍照按钮
$("#snap").click(function ()
{
context.drawImage(video, 0, 0, 330, 250);
catchCode();
})
//更新兼容火狐浏览器
if (navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia) {
navigator.getUserMedia=navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
navigator.getUserMedia(videoObj, function (stream) {
video.srcObject = stream;
video.play();
mediaStreamTrack = stream;
}, errBack);
}
};
function dataURItoBlob(base64Data) {
var byteString;
if (base64Data.split(',')[0].indexOf('base64') >= 0)
byteString = atob(base64Data.split(',')[1]);
else
byteString = unescape(base64Data.split(',')[1]);
var mimeString = base64Data.split(',')[0].split(':')[1].split(';')[0];
var ia = new Uint8Array(byteString.length);
for (var i = 0; i < byteString.length; i++) {
ia[i] = byteString.charCodeAt(i);
}
return new Blob([ia], {type:mimeString});
}
//上传服务器
function catchCode()
{
var canvans = document.getElementById("canvas");
var selRows = $("#userGrid").grid("selRow");
//获取浏览器页面的画布对象
//以下开始编 数据
var imageBase64 = canvans.toDataURL();
var blob = dataURItoBlob(imageBase64); // 上一步中的函数
var fd = new FormData();
fd.append("the_file", blob, 'image.png');
fd.append("userId", selRows[0]);
$.ajax({
type:"POST",
url:"pmbbEmployeeController!registerFace.m",//请求后台的保存方法
enctype:"multipart/form-data",
processData: false, // 必须
contentType: false, // 必须
data:fd,
datatype: "json",
success:function(data){
$.eh.ajax.ajaxSuccess("注册成功!");
$("#registerFaceDialog").dialog("close");
}
});
}
3. 人脸识别登录;
在mes系统登录页点击人脸识别,调用摄像头定时拍照将照片传到后台和用户表中人脸信息匹配,匹配相似度系数大于0.7时,若有多条大于0.7,则取系数最大的。取相应用户的账号,密码信息调用平台自动登录地址登录到系统。
![image.png](http://119.96.220.140:9099/upload/2020/08/image-dcc8b939.png)
4. 摄像头调用失败的解决办法。
配置浏览器相关设置
1. 在 chrome 中 输入 chrome://flags/#unsafely-treat-insecure-origin-as-secure
2. 查找 Insecure origins treated as secure 属性
3. 添加你要信任的地址 例如:http://192.168.1.8:8080
4. 然后点击右下角的 重启 就 ok
5. 图像质量要求
建议待检测的图像人脸角度上、下、左、右转向小于30度;
图片中人脸尺寸不小于50 x 50像素;
图片大小小于10MB;
图像清晰;