对接阿里人脸识别及OSS对象存储java代码

本文档介绍了如何将前端上传的图片通过阿里云OSS存储,并利用阿里云人脸识别服务进行1:N搜索。首先,前端将图片发送至后台,后台调用OSS接口存储图片并获取URL。接着,使用该URL调用人脸搜索API,返回人脸匹配信息。配置中涉及的依赖包括阿里云的各种SDK。代码示例展示了文件上传和图片识别的实现过程,注意在使用前需在人脸库中添加人脸信息。

近期项目对接阿里 人脸识别(人脸搜索1:N),然后查看api中请求的是图片url。然后一整阿里云。找到对象存储OSS。对象存储OOS及人脸识别可以自行开通并创建,这里只关注代码实现

大致流程

自己在 processon在线平台画的。整体流程为:1.前端传输图片到后台 2.后台拿到图片调用阿里云对象存储接口(putObject)并返回图片的路径。3.然后根据配置信息及拿到的图片url调用阿里人脸搜索1:N接口(getAcsResponse)返回人脸库中对应的信息。
在这里插入图片描述

maven配置

全配置具体版本可以查看阿里云java JDK参考

<dependency>
			<groupId>com.aliyun</groupId>
			<artifactId>aliyun-java-sdk-core</artifactId>
			<version>4.1.1</version>
		</dependency>
		<dependency>
			<groupId>com.aliyun</groupId>
			<artifactId>aliyun-java-sdk-green</artifactId>
			<version>3.6.1</version>
		</dependency>
		<dependency>
			<groupId>com.aliyun.oss</groupId>
			<artifactId>aliyun-sdk-oss</artifactId>
			<version>3.10.2</version>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.4</version>
		</dependency>
		<dependency>
			<groupId>com.aliyun</groupId>
			<artifactId>aliyun-java-sdk-facebody</artifactId>
			<version>1.0.8</version>
		</dependency>
		<dependency>
			<groupId>com.aliyun</groupId>
			<artifactId>aliyun-java-sdk-core</artifactId>
			<version>4.5.10</version>
			<exclusions>
				<exclusion>
					<groupId>org.json</groupId>
					<artifactId>json</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>com.aliyun</groupId>
			<artifactId>aliyun-java-sdk-ram</artifactId>
			<version>3.1.0</version>
		</dependency>
		<dependency>
			<groupId>com.aliyun</groupId>
			<artifactId>aliyun-java-sdk-kms</artifactId>
			<version>2.11.0</version>
		</dependency>

配置类信息

这边只说下个人AccessKey 获取,登陆账号后控制台界面汇总点击个人头像时会有AccessKey 管理选项。进入后可以创建。

上代码

文件上传方法传入(文件名,流信息):

public static String uploadFile(String fileName,FileInputStream fis) {
		PropertiesUtils proper = new PropertiesUtils();
		String url = "";
		// 创建OSSClient实例。
		OSS ossClient = new OSSClientBuilder().build("<OOS上传网址如上海区:http://oss-cn-shanghai.aliyuncs.com>", "<accessKeyId>","<accessSecret>");
	
					String objectName = "<文件名路径>" + fileName;
					PutObjectResult result = ossClient.putObject("<Bucket名称>", objectName, fis);
					// 设置连接1天有效期
					Date expiration = new Date(new Date().getTime() + 3600l * 1000 * 24);
					// 返回上传文件下载路径
					url = ossClient.generatePresignedUrl("<Bucket 名称>", objectName, expiration).toString();
		// 关闭OSSClient。
		ossClient.shutdown();
		return url;
	}

图片识别代码块调用上面文件上传方法:

DefaultProfile profile = DefaultProfile.getProfile("<开通区域如上海:cn-shanghai>", "<accessKeyId>","<accessSecret>");
		IAcsClient client = new DefaultAcsClient(profile);
		SearchFaceRequest request = new SearchFaceRequest();
		//本地文件做测试
		File file = new File("D:\\xxx.png");
		file.getName();
		FileInputStream fis = new FileInputStream(file);
		//调用上面上传文件方法
		request.setImageUrl(uploadFile(file.getName(), fis));
		request.setDbName("default");
		request.setLimit(1);
		try {
			SearchFaceResponse response = client.getAcsResponse(request);
			//输出对比返回信息
			System.out.println(new Gson().toJson(response));
		} catch (ServerException e) {
			e.printStackTrace();
		} catch (ClientException e) {
			System.out.println("ErrCode:" + e.getErrCode());
			System.out.println("ErrMsg:" + e.getErrMsg());
			System.out.println("RequestId:" + e.getRequestId());
		}

注:在使用人脸对比之前需要在人脸库数据库中填加人脸信息。

over

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值