基于javaweb实现人脸识别
生活随笔
收集整理的這篇文章主要介紹了
基于javaweb实现人脸识别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
基于javaweb實現人臉識別
人臉識別庫用百度的人臉API,廢話少說,代碼如下
前端html頁面,樣式根據自己的愛好定義
js代碼
document.getElementById('play').onclick = () => {let constraints = {// video屬性設置video: {width: 300,height: 300},// audio屬性設置//audio: true}var mediaStreamTrack;navigator.mediaDevices.getUserMedia(constraints).then(mediaStream => {// mediaStreamTrack = typeof mediaStream.stop === 'function' ? mediaStream : mediaStream.getTracks()[1];mediaStreamTrack = mediaStream.getTracks()[0]// 成功返回promise對象,接收一個mediaStream參數與video標簽進行對接document.getElementById('video').srcObject = mediaStreamdocument.getElementById('video').play()}).catch(function(err) {console.log(err);})//獲取人臉失敗function getFace(){let canvas = document.getElementById("canvas");let ctx = document.getElementById("canvas").getContext('2d')ctx.drawImage(document.getElementById("video"), 0, 0, 300, 300)let img = canvas.toDataURL('image/jpg')sendBase64(img)}//重復執行某個方法var t1 = window.setInterval(getFace,500);// var t2 = window.setInterval("hello()",3000);//去掉定時器的方法//window.clearInterval(t1);let ctx = document.getElementById("canvas").getContext('2d')ctx.drawImage(document.getElementById("video"), 0, 0, 300, 300)function sendBase64(img){$.ajax({url: '/faceQuery',data:{imagebase64:img,},type: 'POST',dataType: 'json',success: function(res){if(res.error_msg == 'SUCCESS'){window.clearInterval(t1);//關閉攝像頭mediaStreamTrack.stop();console.log("登陸成功")}},error: function(res){console.log(res)}});}}java代碼,百度云里面的sdk也有代碼,按要求復制粘貼即可
public static final String APP_ID = "你的APP_ID";public static final String API_KEY = "你的API_KEY";public static final String SECRET_KEY = "你的SECRET_KEY ";AipFace client = new AipFace(APP_ID, API_KEY, SECRET_KEY);//人臉搜索public String faceQuery(String imagebase64){//System.out.print(imgName);int index = imagebase64.lastIndexOf(",");if(index != -1) {imagebase64 = imagebase64.substring(index+1);}//去除ata:image/jpeg;base64,前綴//Base64.Decoder decode = Base64.getDecoder();//byte[] byteImg = decode.decode(imagebase64);//把base64轉成字節碼// 傳入可選參數調用接口HashMap<String, String> options = new HashMap<String, String>();options.put("max_face_num", "3");options.put("match_threshold", "70");options.put("quality_control", "NORMAL");options.put("liveness_control", "LOW");options.put("user_id", "1719050104");options.put("max_user_num", "3");String image = imagebase64;String imageType = "BASE64";String groupIdList = "001";// 可選:設置網絡連接參數client.setConnectionTimeoutInMillis(2000);client.setSocketTimeoutInMillis(60000);// 人臉搜索JSONObject res = client.search(image, imageType, groupIdList, options);System.out.println(res.toString(2));return res.toString();}到這就完了,后端代碼sdk文檔里面有現成的,最主要的是前端代碼,需要開啟攝像頭,獲取實時圖片轉換成base64字符上傳到后端,或者有其他更簡單地方式,沒有深入研究了。
總結
以上是生活随笔為你收集整理的基于javaweb实现人脸识别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 简单的嵌入式人脸识别系统
- 下一篇: 人脸识别示例代码解析(二)——人脸识别解