Face++ Java 简单实例

本文介绍了使用Face++ Java SDK进行人脸识别的简单实例,通过访问官网获取资源并实现基础的人脸检测与识别功能。
摘要由CSDN通过智能技术生成

Face++ 官网 http://www.faceplusplus.com.cn/
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

这里写图片描述

11.jpg
这里写图片描述

import java.nio.charset.Charset;
import java.util.ArrayList;

import org.json.JSONException;
import org.json.JSONObject;

import com.facepp.error.FaceppParseException;
import com.facepp.http.HttpRequests;
import com.facepp.http.PostParameters;

/*
 * 先识别了一张照片,得出3个人脸,然后创建了3个Person,把这些人脸加入到对应的Person中,再把这些Person加入一个Group中。
 * 通过调用train和recognition来演示人脸识别API。最后删除了创建的Person
 */
public class Test {
   

    public static void main(String[] args) {

        //初始化函数HttpRequests,传入四个参数依次是API_Key,API_Secret,是否使用CN服务器,是否使用HTTP模式连接。

        //replace api_key and api_secret here (note)
        HttpRequests httpRequests = new HttpRequests("your APIkey", "your API Secret", true, true);

        JSONObject result = null;

        try {

            System.out.println(Charset.forName("UTF-8").name());

            System.out.println("FacePlusPlus API Test:");

            //detection/detect
            //识别图片
            result = httpRequests.detectionDetect(new PostParameters().setUrl("http://cn.faceplusplus.com/wp-content/themes/faceplusplus/assets/img/demo/11.jpg"));
            System.out.println(result);

            System.out.println(result.getJSONArray("face").getJSONObject(0).getJSONObject("position").getJSONObject("center"));

            //创建Person,通过personAddFace添加人脸,通过setPersonName添加中文姓名,最后通过personGetInfo得到每一个Person的信息输出。
            //-----------------Person-----------------
            //person/create
            System.out.println("\nperson/create");
            for (int i = 0; i < result.getJSONArray("face").length(); ++i)
                System.out.println(httpRequests.personCreate(new PostParameters().setPersonName("person_n"+i)));

            new PostParameters().setPersonName("person_n"+0).setFaceId(
                    result.getJSONArray("face").getJSONObject(0).getString("face_id")).getMultiPart().writeTo(System.out);

            //person/add_face
            System.out.println("\nperson/add_face");
            for (int i = 0; i < result.getJSONArray("face").length(); ++i)
                System.out.println(httpRequests.personAddFace(new PostParameters().setPersonName("person_n"+i).setFaceId(
                        result.getJSONArray("face").getJSONObject(i).getString("face_id"))));

            //person/set_info
            System.out.println("\nperson/set_info");
            for (int i = 0; i < result.getJSONArray("face").length(); ++i) {
                new PostParameters().setPersonName("person_n"+i).setTag("china tag_"+i).getMultiPart().writeTo(System.out);
                System.out.println(httpRequests.personSetInfo(new PostParameters().setPersonName("person_n"+i).setTag("china tag_"+i)));
            }

            //person/get_info
            System.out.println("\nperson/get_info");
            for (int i = 0; i < result.getJSONArray("face").length(); ++i)
                System.out.println(httpRequests.personGetInfo(new PostParameters().setPersonName("person_n"+i)));

            //创建Faceset,此处和创建Person基本一致。
            //-----------------Faceset-----------------
            //faceset/create
            System.out.println("\nfaceset/create");
            for (int i = 0; i < result.getJSONArray("face").length(); ++i)
                System.out.println(httpRequests.facesetCreate(new PostParameters().setFacesetName("faceset_n"+i)));

            //faceset/add_face
            System.out.println("\nfaceset/add_face");
            for (int i = 0; i < result.getJSONArray("face").length(); ++i)
                System.out.println(httpRequests.facesetAddFace(new PostParameters().setFacesetName("faceset_n"+i).setFaceId(
                        result.getJSONArray("face").getJSONObject(i).getString("face_id"))));

            //faceset/set_info
            System.out.println("\nfaceset/set_info");
            for (int i = 0; i < result.getJSONArray("face").length(); ++i) {
                new PostParameters().setFacesetName("faceset_n"+i).setTag("china tag_"+i).getMultiPart().writeTo(System.out);
                System.out.println(httpRequests.facesetSetInfo(new PostParameters().setFacesetName("faceset_n"+i).setTag("china tag_"+i)));
            }

            //faceset/get_info
            System.out.println("\nfaceset/get_info");
            for (int i = 0; i < result.getJSONArray("face").length(); ++i)
                System.out.println(httpRequests.facesetGetInfo(new PostParameters().setFacesetName("faceset_n"+i)));

            //创建一个Group,把所有Person加入到Group中去。
            //-----------------Group-----------------
            //group/create
            System.out.println("\ngroup/create");
            System.out.println(httpRequests.groupCreate(new PostParameters().setGroupName("group0")));

            //group/add_person
            System.out.println("\ngroup/add_person");
            ArrayList<String> personList = new ArrayList<String>();
            for (int i = 0; i < result.getJSONArray("face").length(); ++i)
                personList.add("person_n"+i);

            new PostParameters().setGroupName("group0").setPersonName(personList).getMultiPart().writeTo(System.out);
            System.out.println(httpRequests.groupAddPerson(new PostParameters().setGroupName("group0").setPersonName(personList)));

            //group/set_info
            System.out.println("\ngroup/set_info");
            System.out.println(httpRequests.groupSetInfo(new PostParameters().setGroupName("group0").setTag("group tag")));

            //group/get_info
            System.out.println("\ngroup/get_info");
            System.out.println(httpRequests.groupGetInfo(new PostParameters().setGroupName("group0")));

            //通过trainIdentify建立人脸标识模型,再通过trainVerify建立人脸验证模型。
            //-----------------Recognition-----------------

            //recognition/train
            JSONObject syncRet = null; 

            System.out.println("\ntrain/Identify");
            syncRet = httpRequests.trainIdentify(new PostParameters().setGroupName("group0"));
            System.out.println(syncRet);
            System.out.println(httpRequests.getSessionSync(syncRet.getString("session_id")));

            System.out.println("\ntrain/verify");
            for (int i = 0; i < result.getJSONArray("face").length(); ++i) {
                syncRet = httpRequests.trainVerify(new PostParameters().setPersonName("person_n" + i));
                System.out.println(httpRequests.getSessionSync(syncRet.get("session_id").toString()));
            }

            //recognition/recognize
            System.out.println("\nrecognition/identify");
            System.out.println(httpRequests.recognitionIdentify(
                    new PostParameters().setGroupName("group0").setUrl("http://cn.faceplusplus.com/wp-content/themes/faceplusplus/assets/img/demo/5.jpg")));

            //recognition/verify
            System.out.println("\nrecognition/verify");
            System.out.println(
                    httpRequests.recognitionVerify(new PostParameters().setPersonName("person_n0").setFaceId(
                            result.getJSONArray("face").getJSONObject(0).getString("face_id"))));
            System.out.println(
                    httpRequests.recognitionVerify(new PostParameters().setPersonName("person_n1").setFaceId(
                            result.getJSONArray("face").getJSONObject(0).getString("face_id"))));

            //-----------------Info-----------------
            //info/get_app
            System.out.println("\ninfo/get_app");
            System.out.println(httpRequests.infoGetApp());

            //info/get_face
            System.out.println("\ninfo/get_app");
            System.out.println(httpRequests.infoGetFace(new PostParameters().setFaceId(
                    result.getJSONArray("face").getJSONObject(0).getString("face_id"))));

            //info/get_group_list
            System.out.println("\ninfo/get_group_list");
            System.out.println(httpRequests.infoGetGroupList());

            //info/get_image
            System.out.println("\ninfo/get_image");
            System.out.println(httpRequests.infoGetImage(new PostParameters().setImgId(
                    result.getString("img_id"))));

            //info/get_person_nlist
            System.out.println("\ninfo/get_person_nlist");
            System.out.println(httpRequests.infoGetPersonList());

            //info/get_quota
            System.out.println("\ninfo/get_quota");
            System.out.println(httpRequests.infoGetQuota());

            //info/get_session
            System.out.println("\ninfo/get_session");
            System.out.println(httpRequests.infoGetSession(new PostParameters().setSessionId(
                    result.getString("session_id"))));


            //-----At last----
            //person/remove_face
            System.out.println("\nperson/remove_face");
            System.out.println(httpRequests.personRemoveFace(
                    new PostParameters().setPersonName("person_n0").setFaceId(
                            result.getJSONArray("face").getJSONObject(0).getString("face_id"))));

            //group/delete
            System.out.println("\ngroup/delete");
            System.out.println(httpRequests.groupDelete(new PostParameters().setGroupNam
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值