老铁们 大神们,,我这里这个怎么抢救啊 我调了 百度的API 然后想拿到这个识别
结果 我是前台浏览器JS 脚本拍的图片 BASE 64 转码到后台 放到百度去识别 我确信
我拍的是我自己图片 结果每次 pic
String url = "https://aip.baidubce.com/rest/2.0/face/v3/search";
//请求的url,可以查看官方文档查看不同请求的url
// String flag = request.getParameter("flag");
Map<String, Object> map = new HashMap<>();
map.put("image", request.getParameter("base"));//获取前台的人脸识别后发送的base64
map.put("group_id_list", "itcast");//之前创建的人脸库,可以在百度云的管理控制台查看用户组,face1是之前命名好的
map.put("image_type", "BASE64");//照片类型为base64
// map.put("quality_control", "NORMAL");
String param = GsonUtils.toJson(map);
// 注意这里仅为了简化编码每一次请求都去获取access_token,线上环境access_token有过期时间, 客户端可自行缓存,过期后重新获取。
String accessToken = GetToken.getAuth();
String result = null;
try {
result = HttpUtil.post(url, accessToken, "application/json", param);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("识别结果为:"+result);
前台代码
function takePhoto() {
//获得Canvas对象
var video = document.getElementById('video');
var canvas = document.getElementById('canvas');
var ctx = canvas.getContext('2d');
// ctx.drawImage(video, 0, 0, 500, 500);
// toDataURL --- 可传入'image/png'---默认, 'image/jpeg'
var img = document.getElementById('canvas').toDataURL("image/png");
var base = img.split("base64,")[1];
// alert(base);
console.log(base);
// 这里的img就是得到的图片
// console.log('img-----', img);
/*
* 发送这个数据
* */
$.ajax({
type:"post",
url:"testServlet",
data:{
"base":base,
"flag":"queryfacekey"
},
dataType: "json",
success:function(json){
location.href = "index.html";
// if("登录成功"==json.mess){
// window.parent.location.replace("<%=path%>/main.jsp");
// }else{
// $.MsgBox.Alert("消息",json.mess);
//
location.href = "login.html";
},
error:function(){
alert("error");
}
});
// document.getElementById('imgTag').src=img;
}
// 关闭摄像头
function closeMedia() {
mediaStreamTrack.stop();
}
为啥报这个错result:{"error_code":222202,"error_msg":"pic not has face","log_id":8494947994101,"timestamp":1588490657,"cached":0,"result":null}
图片没有脸,你找示例图片或者网上多试几个搜到的看看,还有图片质量