Skip to content

hongjunsu/image-java-sdk-v2.0

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 

Repository files navigation

image-java-sdk-v2.0

腾讯云 万象优图(Cloud Image) SDK for JAVA

简介

java sdk for picture service of tencentyun.

maven信息:
GroupId: com.qcloud
ArtifactId:qcloud-image-sdk
Version: 2.0.1

产品文档地址
https://www.qcloud.com/product/ci

How to start

1. 在腾讯云申请业务的授权

授权包括:

APP_ID 
SECRET_ID
SECRET_KEY
BUCKET

2. 创建对应操作类的对象

如果要使用图片,需要创建图片操作类对象

ImageClient imageClient = new ImageClient(APP_ID, SECRET_ID, SECRET_KEY);
String bucketName = BUCKET;

3. 调用对应的方法

在创建完对象后,根据实际需求,调用对应的操作方法就可以了。sdk提供的方法包括:图片识别、人脸识别及人脸核身等。

3.1 图片识别

图片识别包括:图片鉴黄、图片标签、OCR-身份证识别及OCR-名片识别。

图片鉴黄
	// 1. url方式
	String[] pornUrlList = new String[3];
	pornUrlList[0] = "YOUR URL 1";
	pornUrlList[1] = "YOUR URL 2";
	pornUrlList[2] = "YOUR URL 3";
	PornDetectRequest pornReq = new PornDetectRequest(bucketName, pornUrlList);
	
	ret = imageClient.pornDetect(pornReq);
	System.out.println("porn detect ret:" + ret);
	
	//2. 图片内容方式
	String[] pornNameList = new String[3];
	String[] pornImageList = new String[3];
	try {
		pornNameList[0] = "test.jpg";
		pornImageList[0] = CommonFileUtils.getFileContent("F:\\pic\\test.jpg");
		pornNameList[1] = "hot1.jpg";
		pornImageList[1] = CommonFileUtils.getFileContent("F:\\pic\\hot1.jpg");
		pornNameList[2] = "hot2.jpg";
		pornImageList[2] = CommonFileUtils.getFileContent("F:\\pic\\hot2.jpg");
	} catch (Exception ex) {
		Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
	}
	
	pornReq = new PornDetectRequest(bucketName, pornNameList, pornImageList);
	ret = imageClient.pornDetect(pornReq);
	System.out.println("porn detect ret:" + ret);
图片标签
	// 1. url方式
	String tagUrl = "YOUR URL";
	TagDetectRequest tagReq = new TagDetectRequest(bucketName, tagUrl);
	ret = imageClient.tagDetect(tagReq);
	System.out.println("tag detect ret:" + ret);
	
	// 2. 图片内容方式
	byte[] tagImage = {0};
	try {
		tagImage = CommonFileUtils.getFileContentByte("F:\\pic\\test.jpg");
	} catch (Exception ex) {
		Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
	}

	tagReq = new TagDetectRequest(bucketName, tagImage);
	ret = imageClient.tagDetect(tagReq);
	System.out.println("tag detect ret:" + ret);
OCR-身份证识别
	// 1. url方式,识别身份证正面
	String[] idcardUrlList = new String[2];
	idcardUrlList[0] = "YOUR URL A";
	idcardUrlList[1] = "YOUR URL B";
	
	IdcardDetectRequest idReq = new IdcardDetectRequest(bucketName, idcardUrlList, 0); 
	ret = imageClient.idcardDetect(idReq);
	System.out.println("idcard detect ret:" + ret);
	
	//识别身份证反面
	idcardUrlList[0] = "YOUR URL C";
	idcardUrlList[1] = "YOUR URL D";
	
	idReq = new IdcardDetectRequest(bucketName, idcardUrlList, 1);   
	ret = imageClient.idcardDetect(idReq);
	System.out.println("idcard detect ret:" + ret);
	
	//2. 图片内容方式,识别身份证正面
	String[] idcardNameList = new String[2];
	String[] idcardImageList = new String[2];
	try {
		idcardNameList[0] = "id6_zheng.jpg";
		idcardImageList[0] = CommonFileUtils.getFileContent("F:\\pic\\id6_zheng.jpg");
		idcardNameList[1] = "id2_zheng.jpg";
		idcardImageList[1] = CommonFileUtils.getFileContent("F:\\pic\\id2_zheng.jpg");
	} catch (Exception ex) {
		Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
	}
	
	idReq = new IdcardDetectRequest(bucketName, idcardNameList, idcardImageList, 0);
	ret = imageClient.idcardDetect(idReq);
	System.out.println("idcard detect ret:" + ret);
	
	//识别身份证反面
	try {
		idcardNameList[0] = "id5_fan.png";
		idcardImageList[0] = CommonFileUtils.getFileContent("F:\\pic\\id5_fan.jpg");
		idcardNameList[1] = "id7_fan.jpg";
		idcardImageList[1] = CommonFileUtils.getFileContent("F:\\pic\\id7_fan.png");
	} catch (Exception ex) {
		Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
	}
	
	idReq = new IdcardDetectRequest(bucketName, idcardNameList, idcardImageList, 1);
	ret = imageClient.idcardDetect(idReq);
	System.out.println("idcard detect ret:" + ret);
OCR-名片识别
	 // 1. url方式
	String[] namecardUrlList = new String[2];
	namecardUrlList[0] = "YOUR URL A";
	namecardUrlList[1] = "YOUR URL B";
	NamecardDetectRequest nameReq = new NamecardDetectRequest(bucketName, namecardUrlList, 0);

	ret = imageClient.namecardDetect(nameReq);
	System.out.println("namecard detect ret:" + ret);

	//2. 图片内容方式
	String[] namecardNameList = new String[2];
	String[] namecardImageList = new String[2];
	try {
		namecardNameList[0] = "name2.jpg";
		namecardImageList[0] = CommonFileUtils.getFileContent("F:\\pic\\name2.jpg");
		namecardNameList[1] = "名片.jpg";
		namecardImageList[1] = CommonFileUtils.getFileContent("F:\\pic\\名片.jpg");
	} catch (Exception ex) {
		Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
	}
	
	nameReq = new NamecardDetectRequest(bucketName, namecardNameList, namecardImageList, 0);
	ret = imageClient.namecardDetect(nameReq);
	System.out.println("namecard detect ret:" + ret);;

3.2 人脸识别

人脸识别包括:人脸检测、五官定位、个体信息管理、人脸验证、人脸对比及人脸检索。

人脸检测

	// 1. url方式
	String faceDetectUrl = "YOUR URL";
	FaceDetectRequest faceDetectReq = new FaceDetectRequest(bucketName, faceDetectUrl, 1);

	ret = imageClient.faceDetect(faceDetectReq);
	System.out.println("face detect ret:" + ret);
	
	 //2. 图片内容方式
	String faceDetectName  = "";
	String faceDetectImage = "";
	try {
		faceDetectName = "face1.jpg";
		faceDetectImage = CommonFileUtils.getFileContent("F:\\pic\\face1.jpg");
	} catch (Exception ex) {
		Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
	}
	
	faceDetectReq = new FaceDetectRequest(bucketName, faceDetectName, faceDetectImage, 1);
	ret = imageClient.faceDetect(faceDetectReq);
	System.out.println("face detect ret:" + ret);
五官定位
	// 1. url方式
	String faceShapeUrl = "YOUR URL";
	FaceShapeRequest faceShapeReq = new FaceShapeRequest(bucketName, faceShapeUrl, 1);

	ret = imageClient.faceShape(faceShapeReq);
	System.out.println("face shape ret:" + ret);
	
	 //2. 图片内容方式
	String faceShapeName  = "";
	String faceShapeImage = "";
	try {
		faceShapeName = "face1.jpg";
		faceShapeImage = CommonFileUtils.getFileContent("F:\\pic\\face1.jpg");
	} catch (Exception ex) {
		Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
	}
	
	faceShapeReq = new FaceShapeRequest(bucketName, faceShapeName, faceShapeImage, 1);
	ret = imageClient.faceShape(faceShapeReq);
	System.out.println("face shape ret:" + ret);   
个体信息管理
    //个体创建,创建一个Person,并将Person放置到group_ids指定的组当中,不存在的group_id会自动创建。
	// 1. url方式
	String personNewUrl = "YOUR URL";
	String[] groupIds = new String[2];
	groupIds[0] = "group3";
	groupIds[1] = "group22";
	String personName = "yangmi";
	String personId = "personY";
	String personTag = "star";
	
	FaceNewPersonRequest personNewReq = new FaceNewPersonRequest(bucketName, personId, groupIds, personNewUrl, personName, personTag);
	ret = imageClient.faceNewPerson(personNewReq);
	System.out.println("person new  ret:" + ret);
	
	 //2. 图片内容方式
	String personNewName  = "";
	String personNewImage = "";
	groupIds[0] = "group11";
	groupIds[1] = "group33";
	personName = "yangmi";
	personId = "persony";
	personTag = "star";
	try {
		personNewName = "yang.jpg";
		personNewImage = CommonFileUtils.getFileContent("F:\\pic\\yang.jpg");
	} catch (Exception ex) {
		Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
	}
	
	personNewReq = new FaceNewPersonRequest(bucketName, personId, groupIds, personNewName, personNewImage, personName, personTag);
	ret = imageClient.faceNewPerson(personNewReq);
	System.out.println("person new ret:" + ret); 

	//增加人脸,将一组Face加入到一个Person中
	 // 1. url方式;
	String[] addFaceUrlList = new String[2];
	addFaceUrlList[0] = "YOUR URL A";
	addFaceUrlList[1] = "YOUR URL B";
	String addfacePersonId = "personY";
	String addfacePersonTag = "star1";
	
	FaceAddFaceRequest addFaceReq = new FaceAddFaceRequest(bucketName, addFaceUrlList, addfacePersonId, addfacePersonTag); 
	ret = imageClient.faceAddFace(addFaceReq);
	System.out.println("add face ret:" + ret);
	
	//2. 图片内容方式;
	String[] addFaceNameList = new String[2];
	String[] addFaceImageList = new String[2];
	addfacePersonId = "personY";
	addfacePersonTag = "actor";
	try {
		addFaceNameList[0] = "yang2.jpg";
		addFaceImageList[0] = CommonFileUtils.getFileContent("F:\\pic\\yang2.jpg");
		addFaceNameList[1] = "yang3.jpg";
		addFaceImageList[1] = CommonFileUtils.getFileContent("F:\\pic\\yang3.jpg");
	} catch (Exception ex) {
		Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
	}
	
	addFaceReq = new FaceAddFaceRequest(bucketName, addFaceNameList, addFaceImageList, addfacePersonId, addfacePersonTag);
	ret = imageClient.faceAddFace(addFaceReq);
	System.out.println("add face ret:" + ret);

	// 删除人脸,删除一个person下的face
	String delFacePersonId = "personY";
	String[] delFaceIds = new String[2];
	delFaceIds[0] = "1831408218312574949";
	delFaceIds[1] = "1831408248150847230";
	
	FaceDelFaceRequest delFaceReq = new FaceDelFaceRequest(bucketName, delFacePersonId, delFaceIds);
	ret = imageClient.faceDelFace(delFaceReq);
	System.out.println("face del  ret:" + ret);
	
	//设置信息
	String setInfoPersonId = "personY";
	String setInfoPersonName = "mimi";
	String setInfoTag = "actress";
	
	FaceSetInfoRequest setInfoReq = new FaceSetInfoRequest(bucketName, setInfoPersonId, setInfoPersonName, setInfoTag);
	ret = imageClient.faceSetInfo(setInfoReq);
	System.out.println("face set info  ret:" + ret);

	//获取信息
	String getInfoPersonId = "personY";
	FaceGetInfoRequest getInfoReq = new FaceGetInfoRequest(bucketName, getInfoPersonId);
	ret = imageClient.faceGetInfo(getInfoReq);
	System.out.println("face get info  ret:" + ret);

	//获取组列表
	FaceGetGroupIdsRequest getGroupReq = new FaceGetGroupIdsRequest(bucketName);
	ret = imageClient.faceGetGroupIds(getGroupReq);
	System.out.println("face get group ids  ret:" + ret);

	//获取人列表
	String getPersonGroupId = "group1";
	FaceGetPersonIdsRequest getPersonIdsReq = new FaceGetPersonIdsRequest(bucketName, getPersonGroupId);
	ret = imageClient.faceGetPersonIds(getPersonIdsReq);
	System.out.println("face get person ids  ret:" + ret);

	//获取人脸列表
	String getFacePersonId = "personY";
	FaceGetFaceIdsRequest getFaceIdsReq = new FaceGetFaceIdsRequest(bucketName, getFacePersonId);
	ret = imageClient.faceGetFaceIds(getFaceIdsReq);
	System.out.println("face get face ids  ret:" + ret);

	//获取人脸信息
	 String getFaceId = "1830582165978517027";
	FaceGetFaceInfoRequest getFaceInfoReq = new FaceGetFaceInfoRequest(bucketName, getFaceId);	
	ret = imageClient.faceGetFaceInfo(getFaceInfoReq);
	System.out.println("face get face info  ret:" + ret);

	//删除个人
	String delPersonId = "personY";
	FaceDelPersonRequest delPersonReq = new FaceDelPersonRequest(bucketName, personId);
	ret = imageClient.faceDelPerson(delPersonReq);
	System.out.println("face del  person ret:" + ret);
人脸验证

给定一个Face和一个Person,返回是否是同一个人的判断以及置信度

	// 1. url方式
	String  faceVerifyPersonId = "person1";
	String faceVerifyUrl = "YOUR URL";
	FaceVerifyRequest faceVerifyReq = new FaceVerifyRequest(bucketName, faceVerifyPersonId, faceVerifyUrl);

	ret = imageClient.faceVerify(faceVerifyReq);
	System.out.println("face verify ret:" + ret);
	
	//2. 图片内容方式
	String faceVerifyName  = "";
	String faceVerifyImage = "";
	faceVerifyPersonId = "person3111";
	try {
		faceVerifyName = "yang3.jpg";
		faceVerifyImage = CommonFileUtils.getFileContent("F:\\pic\\yang3.jpg");
	} catch (Exception ex) {
		Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
	}
	
	faceVerifyReq = new FaceVerifyRequest(bucketName, faceVerifyPersonId, faceVerifyName, faceVerifyImage);
	ret = imageClient.faceVerify(faceVerifyReq);
	System.out.println("face verify ret:" + ret);
人脸检索

对于一个待识别的人脸图片,在一个Group中识别出最相似的Top5 Person作为其身份返回,返回的Top5中按照相似度从大到小排列。

	// 1. url方式
	 String  faceIdentifyGroupId = "group1";
	String faceIdentifyUrl = "YOUR URL";
	FaceIdentifyRequest faceIdentifyReq = new FaceIdentifyRequest(bucketName, faceIdentifyGroupId, faceIdentifyUrl);

	ret = imageClient.faceIdentify(faceIdentifyReq);
	System.out.println("face identify ret:" + ret);
	
	//2. 图片内容方式
	String faceIdentifyName  = "";
	String faceIdentifyImage = "";
	try {
		faceIdentifyName = "yang4.jpg";
		faceIdentifyImage = CommonFileUtils.getFileContent("F:\\pic\\yang4.jpg");
	} catch (Exception ex) {
		Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
	}
	
	faceIdentifyReq = new FaceIdentifyRequest(bucketName, faceIdentifyGroupId, faceIdentifyName, faceIdentifyImage);
	ret = imageClient.faceIdentify(faceIdentifyReq);
	System.out.println("face identify ret:" + ret);
人脸对比
	 // 1. url方式
	String urlA = "YOUR URL A";
	String urlB = "YOUR URL B";
	FaceCompareRequest faceCompareReq = new FaceCompareRequest(bucketName, urlA, urlB);
	
	ret = imageClient.faceCompare(faceCompareReq);
	System.out.println("face compare ret:" + ret);
	
	//2. 图片内容方式
	String[] compareNameList = new String[2]; 
	String[] compareImageList = new String[2];
	try {
		compareNameList[0] = "zhao1.jpg";
		compareNameList[1] = "zhao2.jpg";
		compareImageList[0] = CommonFileUtils.getFileContent("F:\\pic\\zhao1.jpg");
		compareImageList[1] = CommonFileUtils.getFileContent("F:\\pic\\zhao2.jpg");
	} catch (Exception ex) {
		Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
	}
	
	faceCompareReq = new FaceCompareRequest(bucketName, compareNameList, compareImageList);
	ret = imageClient.faceCompare(faceCompareReq);
	System.out.println("face compare ret:" + ret);

3.3 人脸核身

用户上传照片与高清身份证照片比对
	// 1. url方式
	String  idcardNumber = "ID CARD NUM";
	String  idcardName = "NAME";       
	String idcardCompareUrl = "YOUR URL";
	FaceIdCardCompareRequest idCardCompareReq = new FaceIdCardCompareRequest(bucketName, idcardNumber, idcardName, idcardCompareUrl);

	ret = imageClient.faceIdCardCompare(idCardCompareReq);
	System.out.println("face idCard Compare ret:" + ret);
	
	 //2. 图片内容方式
	String idcardCompareName  = "";
	String idcardCompareImage = "";
	try {
		idcardCompareName = "idcard.jpg";
		idcardCompareImage = CommonFileUtils.getFileContent("F:\\pic\\idcard.jpg");
	} catch (Exception ex) {
		Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
	}
	
	idCardCompareReq = new FaceIdCardCompareRequest(bucketName, idcardNumber, idcardName, idcardCompareName, idcardCompareImage);
	ret = imageClient.faceIdCardCompare(idCardCompareReq);
	System.out.println("face idCard Compare ret:" + ret);
活体检测—获取唇语验证码
	String seq = "";
	FaceLiveGetFourRequest getFaceFourReq = new FaceLiveGetFourRequest(bucketName, seq);        
	ret = imageClient.faceLiveGetFour(getFaceFourReq);
	System.out.println("face live get four  ret:" + ret);
	
	String validate = "";
	JSONObject jsonObject = new JSONObject(ret);
	JSONObject data = jsonObject.getJSONObject("data");
	if (null != data) {
		validate = data.getString("validate_data");
	}
活体检测-视频与身份证高清照片的比对
	//
	String  liveDetectIdcardNumber = "ID CARD NUM";
	String  liveDetectIdcardName = "NAME";  
	String  video = "";
	try {
		video = CommonFileUtils.getFileContent("F:\\pic\\ZOE_0171.mp4");
	} catch (Exception ex) {
		Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
	}
	
	FaceIdCardLiveDetectFourRequest liveDetectReq = new FaceIdCardLiveDetectFourRequest(bucketName, validate, video, liveDetectIdcardNumber, liveDetectIdcardName, seq);
	ret = imageClient.faceIdCardLiveDetectFour(liveDetectReq);
	System.out.println("face idCard live detect four ret:" + ret);
活体检测-视频与用户照片的比对
	String  liveDetectVideo = "";
	String  liveDetectImage = "";
	String liveDetectVvalidate = "123456";        
	boolean compareFlag  = true;
	try {
		liveDetectVideo = CommonFileUtils.getFileContent("F:\\pic\\ZOE_0171.mp4");
		liveDetectImage = CommonFileUtils.getFileContent("F:\\pic\\zhao2.jpg");
	} catch (Exception ex) {
		Logger.getLogger(Demo.class.getName()).log(Level.SEVERE, null, ex);
	}
	
	FaceLiveDetectFourRequest faceLiveDetectReq = new FaceLiveDetectFourRequest(bucketName, validate, compareFlag, video, liveDetectImage, seq);
	ret = imageClient.faceLiveDetectFour(faceLiveDetectReq);
	System.out.println("face  live detect four ret:" + ret);
	
	// 关闭释放资源
	imageClient.shutdown();
	System.out.println("shutdown!");

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%