package cn.xsshome.taip.face;
import java.util.ArrayList;
import java.util.List;
import cn.xsshome.taip.base.BaseClient;
import cn.xsshome.taip.http.TAipEBodyFormat;
import cn.xsshome.taip.http.TAipRequest;
import cn.xsshome.taip.sign.TencentAISignSort;
import cn.xsshome.taip.util.Base64Util;
import cn.xsshome.taip.util.FileUtil;
import cn.xsshome.taip.util.RandomNonceStrUtil;
/**
* 计算机视觉人脸识别模块
* @author 小帅丶
* @version 4.1.0
*/
public class TAipFace extends BaseClient{
public TAipFace(String app_id, String app_key) {
super(app_id, app_key);
}
/**
* 人脸检测与分析
* 识别上传图像上面的人脸信息
* @param image - 二进制图像数据
* @return String
* @throws Exception
*/
public String detect(byte[] image) throws Exception{
TAipRequest request = new TAipRequest();
String result ="";
String time_stamp = System.currentTimeMillis()/1000+"";
request.addBody("app_id", app_id);
request.addBody("time_stamp", time_stamp);
request.addBody("nonce_str", RandomNonceStrUtil.getRandomString());
String base64Content = Base64Util.encode(image);
request.addBody("image", base64Content);
request.addBody("mode", "1");
String sign = TencentAISignSort.getSignature(request.getBody(),app_key);
request.addBody("sign",sign);
request.setUri(FaceConsts.FACE_DETECT);
request.setBodyFormat(TAipEBodyFormat.FORM_KV);
result = requestServer(request);
return result;
}
/**
* 人脸检测与分析
* 识别上传图像上面的人脸信息
* 暂时不可以使用
* @param url - 图像网络地址
* @return String
* @throws Exception
*/
@Deprecated
public String detectByUrl(String url) throws Exception{
TAipRequest request = new TAipRequest();
String result ="";
String time_stamp = System.currentTimeMillis()/1000+"";
request.addBody("app_id", app_id);
request.addBody("time_stamp", time_stamp);
request.addBody("nonce_str", RandomNonceStrUtil.getRandomString());
request.addBody("image_url", url);
request.addBody("mode", "1");
String sign = TencentAISignSort.getSignature(request.getBody(),app_key);
request.addBody("sign",sign);
request.setUri(FaceConsts.FACE_DETECT);
request.setBodyFormat(TAipEBodyFormat.FORM_KV);
result = requestServer(request);
return result;
}
/**
* 人脸检测与分析
* 识别上传图像上面的人脸信息
* @param filePath - 本地路径图像文件
* @return String
* @throws Exception
*/
public String detect(String filePath) throws Exception{
byte[] image = FileUtil.readFileByBytes(filePath);
return detect(image);
}
/**
* 多人脸检测
* 识别上传图像上面的人脸位置,支持多人脸识别。
* @param image - 二进制图像数据
* @return String
* @throws Exception
*/
public String detectMulti(byte[] image) throws Exception{
TAipRequest request = new TAipRequest();
String result ="";
String time_stamp = System.currentTimeMillis()/1000+"";
request.addBody("app_id", app_id);
request.addBody("time_stamp", time_stamp);
request.addBody("nonce_str", RandomNonceStrUtil.getRandomString());
String base64Content = Base64Util.encode(image);
request.addBody("image", base64Content);
String sign = TencentAISignSort.getSignature(request.getBody(),app_key);
request.addBody("sign",sign);
request.setUri(FaceConsts.FACE_DETECTMULTI);
request.setBodyFormat(TAipEBodyFormat.FORM_KV);
result = requestServer(request);
return result;
}
/**
* 多人脸检测
* 识别上传图像上面的人脸位置,支持多人脸识别。
* @param filePath - 本地路径图像文件
* @return String
* @throws Exception
*/
public String detectMulti(String filePath) throws Exception{
byte[] image = FileUtil.readFileByBytes(filePath);
return detectMulti(image);
}
/**
* 人脸对比
* 对请求图片进行人脸对比
* @param image_a - 二进制图像数据A
* @param image_b - 二进制图像数据B
* @return String
* @throws Exception
*/
public String faceCompare(byte[] image_a,byte[] image_b) throws Exception{
String result ="";
TAipRequest request = new TAipRequest();
String time_stamp = System.currentTimeMillis()/1000+"";
request.addBody("app_id", app_id);
request.addBody("time_stamp", time_stamp);
request.addBody("nonce_str", RandomNonceStrUtil.getRandomString());
String base64ContentA = Base64Util.encode(image_a);
String base64ContentB = Base64Util.encode(image_b);
request.addBody("image_a", base64ContentA);
request.addBody("image_b", base64ContentB);
String sign = TencentAISignSort.getSignature(request.getBody(),app_key);
request.addBody("sign",sign);
request.setUri(FaceConsts.FACE_COMPARE);
request.setBodyFormat(TAipEBodyFormat.FORM_KV);
result = requestServer(request);
return result;
}
/**
* 人脸对比
* 对请求图片进行人脸对比
* @param filePathA - 本地路径图像文件A
* @param filePathB - 本地路径图像文件B
* @return String
* @throws Exception
*/
public String faceCompare(String filePathA,String filePathB) throws Exception{
byte[] imageA = FileUtil.readFileByBytes(filePathA);
byte[] imageB = FileUtil.readFileByBytes(filePathB);
return faceCompare(imageA,imageB);
}
/**
* 跨年龄人脸识别
* 上传两张人脸照,返回最相似的两张人脸及相似度。
* @param source_image - 二进制待比较图片图像数据
* @param target_image - 二进制待比较图片图像数据
* @return String
* @throws Exception
*/
public String detectCrossage(byte[] source_image,byte[] target_image) throws Exception{
String result ="";
TAipRequest request = new TAipRequest();
String time_stamp = System.currentTimeMillis()/1000+"";
request.addBody("app_id", app_id);
request.addBody("time_stamp", time_stamp);
request.addBody("nonce_str", RandomNonceStrUtil.getRandomString());
String base64ContentA = Base64Util.encode(source_image);
String base64ContentB = Base64Util.encode(target_image);
request.addBody("source_image", base64ContentA);
request.addBody("target_image", base64ContentB);
String sign = TencentAISignSort.getSignature(request.getBody(),app_key);
request.addBody("sign",sign);
request.setUri(FaceConsts.FACE_DETECTCROSSAGE);
request.setBodyFormat(TAipEBodyFormat.FORM_KV);
result = requestServer(request);
return result;
}
/**
* 跨年龄人脸识别
* 上传两张人脸照,返回最相似的两张人脸及相似度。
* @param source_imagefilePath - 本地路径待比较图片图像文件
* @param target_imagefilePath - 本地路径待比较图片图像文件
* @return String
* @throws Exception
*/
public String detectCrossage(String source_imagefilePath,String target_imagefilePath) throws Exception{
byte[] imageA = FileUtil.readFileByBytes(source_imagefilePath);
byte[] imageB = FileUtil.readFileByBytes(target_imagefilePath);
return detectCrossage(imageA,imageB);
}
/**
* 五官定位
* 对请求图片进行五官定位
* @param image - 二进制图像数据
* @return String
* @throws Exception
*/
public String faceShape(byte[] image) throws Exception{
String result ="";
TA
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
taip-master.zip (47个子文件)
taip-master
pom.xml 4KB
LICENSE 9KB
.settings
org.eclipse.m2e.core.prefs 90B
org.eclipse.wst.jsdt.ui.superType.name 6B
org.eclipse.wst.common.project.facet.core.xml 296B
org.eclipse.wst.common.component 648B
org.eclipse.wst.jsdt.ui.superType.container 49B
org.eclipse.wst.validation.prefs 50B
.jsdtscope 597B
org.eclipse.jdt.core.prefs 736B
src
main
webapp
WEB-INF
web.xml 215B
java
cn
xsshome
taip
vision
VisionConsts.java 527B
TAipVision.java 6KB
face
TAipFace.java 25KB
FaceConsts.java 2KB
base
BaseClient.java 3KB
sign
TencentAISignSort.java 10KB
MD5.java 1KB
ptu
TAipPtu.java 11KB
PtuConsts.java 975B
nlp
NLPConsts.java 2KB
TAipNlp.java 15KB
http
TAipHttpMethodName.java 99B
TAipClientConfiguration.java 1KB
TAipRequest.java 5KB
TAipHttpCharacterEncoding.java 236B
TAipResponse.java 1KB
TAipEBodyFormat.java 101B
TAipHeaders.java 1KB
TAipHttpContentType.java 292B
TAipHttpClient.java 4KB
speech
SpeechConsts.java 896B
TTSResponse.java 941B
TAipSpeech.java 22KB
error
ErrorTAip.java 970B
ocr
OcrConsts.java 1KB
TAipOcr.java 13KB
imageclassify
TAipImageClassify.java 13KB
ImageClassifyConsts.java 999B
util
Base64Util.java 2KB
RandomNonceStrUtil.java 1KB
TransConstant.java 3KB
Util.java 6KB
FileUtil.java 1KB
.project 1KB
.classpath 992B
.gitignore 9B
共 47 条
- 1
资源评论
m0_72731342
- 粉丝: 2
- 资源: 1832
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功