JAVA+SSM框架人脸识别小程序+地图签到

前言

随着人工智能的不断发展,人脸识别这门技术也越来越重要,很多人都开启了人脸识别算法学习,本文就介绍了基于百度人脸识别API使用的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、人脸识别开通服务

!!!小程序端demo属于github上所git
源码地址
本次使用人脸识别接口是基于百度的人脸识别服务,百度提供免费接口。

二、使用步骤

1、登录百度云

百度云

点击立即使用

2、创建应用

点击管理应用获取密钥

3、获取密钥

4、获取相应的JAR包

相应jar包获取方式如下:

1.直接下载

点击相应的下载方式

2.Maven方式

<dependency>
    <groupId>com.baidu.aip</groupId>
    <artifactId>java-sdk</artifactId>
    <version>${version}</version>
</dependency>

三、实现

1、工具类

client.java填入相应的密钥
public class Client {
	private static final String APP_ID = "123";
    private static final String API_KEY = "123";
    private static final String SECRET_KEY = "123";
    private static final String IMAGE_TYPE = "BASE64";
    private final AipFace aipFace;
    private String storagePath;
    public Client() {
        aipFace = new AipFace(APP_ID, API_KEY, SECRET_KEY);
        aipFace.setConnectionTimeoutInMillis(2000);
        aipFace.setSocketTimeoutInMillis(60000);
        
    }
    public Double match(byte[] img1, byte[] img2) {
        MatchRequest request1 = new MatchRequest(bytesToBase64(img1), IMAGE_TYPE);
        MatchRequest request2 = new MatchRequest(bytesToBase64(img2), IMAGE_TYPE);
        JSONObject jsonObject = aipFace.match(Arrays.asList(request1, request2));
        //System.out.println("查看返回结果"+jsonObject.toString());
        if (jsonObject.optString("error_msg", "").equalsIgnoreCase("SUCCESS")) {
            return jsonObject.optJSONObject("result").optDouble("score", 0D);
        }
        return 0D;
    }
    private String bytesToBase64(byte[] data) {
        if (data == null) {
            data = new byte[]{};
        }
        return Base64.getEncoder().encodeToString(data);
    }
    public byte[] readImage(HttpServletRequest request, String parameter) {
        try {
            String filename = request.getParameter(parameter);
            try (InputStream in = new FileInputStream(new File(this.storagePath, filename))
            ) {
                return IOUtils.toByteArray(in);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
   
}

2、上传相应文件

@ResponseBody
	@RequestMapping(value ="/picture")
    public String uploadPicture(HttpServletRequest request, HttpServletResponse response, @RequestParam("file") MultipartFile files,@RequestParam("id") String id) throws Exception {
       
        	
        	 
        	 System.out.println("图片上传请求成功"+files.getOriginalFilename());
            String type = files.getOriginalFilename().substring(files.getOriginalFilename().lastIndexOf("."));
            System.out.println("类型"+type);
            String path = "E:/Javadata/wechatWalkRest/WebContent/static/images/face";
           String a=files.getOriginalFilename();
           System.out.println(a);
            File targetFile = new File(path + "/",a);
            if (!targetFile.exists()) {
                targetFile.createNewFile();
            }
            files.transferTo(targetFile);
            User user=userinfoServiceImpl.query("11");
            System.out.println("路径为"+user.toString());
            byte[] imageLeft=readImage(path,a);
            byte[] imageRight =readImage1(path,user.getUrl());
            System.out.println(client.match(imageLeft, imageRight));
            System.out.println(targetFile.delete());
            return ""+client.match(imageLeft, imageRight);
        
        
    }
	public byte[] readImage(String path,String name) {
		try {
		 try (InputStream in = new FileInputStream(new File(path, name))
		            ) {
		                return IOUtils.toByteArray(in);
		            }
		        } catch (IOException e) {
		            e.printStackTrace();
		        }
		return null;
	}
	public byte[] readImage1(String path,String name) {
		try {
		 try (InputStream in = new FileInputStream(new File(path, name))
		            ) {
		                return IOUtils.toByteArray(in);
		            }
		        } catch (IOException e) {
		            e.printStackTrace();
		        }
		return null;
	}
		

3、小程序端

小程序端为github上面所git的demo

四、演示

展示

所选图片
所选图片
对比图片
两张相似度为百分之76.65333557
在这里插入图片描述

微信小程序反应
在这里插入图片描述

  • 8
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值