看手相不?【Java】【人体分析-手部关键点】
置顶
756665228 发布于2019-07-15 23:20 浏览:2568 回复:17
2
收藏
最后编辑于2020-05-19

小帅拿到了一个手部关键点识别的内测接口。已经有开发者写了PHP的示例。小帅就来写个Java的示例哈。方便咱们Java开发者们哦

  • 百科手相的资料

手相其源有西洋、印度和中国三支,中国民间的手相学源远而流长,终成博杂大观。

掌纹也会随着时间发生变化。看手相分男左女右,拿男生举例子,35岁之前看左手,35之后看右手(女生相反)

  • 本文其实只是拿关键点简单做一个分析,并不是代表接口所支持功能哦

接口说明可以参考 https://ai.baidu.com/docs#/Body-API/2757b503

基于现有sdk版本进行 实现此接口调用 调用前请自行确认是否已经找梅姐申请了接口权限哦

使用Maven搭建一个工程

pom引入百度Java sdk

// gradle
compile group: 'com.baidu.aip', name: 'java-sdk', version: '4.11.3'
//xml格式会丢失标签。社区技术要看一下哦。语言最好也支持xml 开发者们自行访问以下地址 复制maven的xml配置内容即可
https://mvnrepository.com/artifact/com.baidu.aip/java-sdk/4.11.3

创建一个类来实现手部关键点接口调用
其实就是继承sdk的AipBodyAnalysis

import com.baidu.aip.bodyanalysis.AipBodyAnalysis;
import com.baidu.aip.error.AipError;
import com.baidu.aip.http.AipRequest;
import com.baidu.aip.util.Base64Util;
import com.baidu.aip.util.Util;
import org.json.JSONObject;

import java.io.IOException;
import java.util.HashMap;

public class AipBodyAnalysisInvitation extends AipBodyAnalysis{
    //手部关键点识别
    static final String HAND_ANALYSIS = "https://aip.baidubce.com/rest/2.0/image-classify/v1/hand_analysis";

    public AipBodyAnalysisInvitation(String appId, String apiKey, String secretKey) {
        super(appId, apiKey, secretKey);
    }

    /**
     * 手部关键点识别方法
     * @param image 手部图片本地路径
     * @param options 其他参数
     * @return
     */
    public JSONObject handAnalysis(String image, HashMap options) {
        AipRequest request = new AipRequest();
        preOperation(request);
        try {
            byte[] data = Util.readFileByBytes(image);
            String base64Content = Base64Util.encode(data);
            request.addBody("image", base64Content);
            if (options != null) {
                request.addBody(options);
            }
            request.setUri(HAND_ANALYSIS);
            postOperation(request);
            return requestServer(request);
        } catch (IOException e) {
            e.printStackTrace();
            return AipError.IMAGE_READ_ERROR.toJsonResult();
        }
    }
  
}

准备一个手掌图片

小帅离而立之年还有很久。基于百科所说明,那就使用左手图片

小插曲。如果颜色有问题。会导致识别为空。这个要找梅姐反馈一下。

我这用社区兑换单反相机 对着自己的左手拍了好几张才有一张符合要求识别出来。

开始用接口去获取手部关键点
Java代码

import org.json.JSONObject;

import java.util.HashMap;

public class TestBody {
    public static void main(String[] args) throws Exception{
        //自己应用的appid apikey secretkey
        AipBodyAnalysisInvitation body = new AipBodyAnalysisInvitation("","","");
        //本地图片路径
        String path = "/Users/xiaoshuai/Downloads/DSC00286.JPG";
        HashMap options = new HashMap();
        JSONObject object = body.handAnalysis(path,options);
        //输出接口识别内容
        System.out.println("object = " + object);
    }
}

 返回的json数据

21个骨节点坐标信息 过多 就不格式化显示了

{"log_id":88272290779127183,"hand_info":[{"hand_parts":{"11":{"score":0.8971255421638489,"x":491,"y":536},"12":{"score":0.8390465974807739,"x":491,"y":440},"13":{"score":0.7221894264221191,"x":588,"y":845},"14":{"score":0.8876256346702576,"x":588,"y":710},"15":{"score":0.8863898515701294,"x":588,"y":594},"16":{"score":0.8520171642303467,"x":549,"y":498},"17":{"score":0.7608776092529297,"x":684,"y":923},"18":{"score":0.8419321775436401,"x":665,"y":826},"19":{"score":0.8592996597290039,"x":665,"y":749},"0":{"score":0.7820904850959778,"x":472,"y":1444},"1":{"score":0.6027116775512695,"x":317,"y":1251},"2":{"score":0.6802216172218323,"x":240,"y":1096},"3":{"score":0.8013773560523987,"x":259,"y":942},"4":{"score":0.8201335668563843,"x":298,"y":807},"5":{"score":0.7507212162017822,"x":395,"y":845},"6":{"score":0.8637937307357788,"x":395,"y":691},"7":{"score":0.8144635558128357,"x":414,"y":594},"8":{"score":0.8497185111045837,"x":414,"y":498},"9":{"score":0.7746249437332153,"x":491,"y":826},"20":{"score":0.9296111464500427,"x":665,"y":652},"10":{"score":0.8292614221572876,"x":491,"y":671}},"location":{"score":0.9971377849578857,"top":408,"left":182,"width":584,"height":1029}}],"hand_num":1}

21个骨节点手相学的图示和标注图示

接下来咱们就拿着坐标去看个手相

返回的数据如下。从心理自我认为看出。还是很符合小帅的性格的哈。

{
    "plam":{
        "title":"手相分析",
        "tag":"木形手",
        "intro":"手相有阴阳男女之分,大小之别,手形之论,金木水火土是手形的基本分法。手形代表着人的吉凶富贵。",
        "dec":[
            "你的手形为木形手,木形手属于感性,唯美主义,有创造能力的手形。 具此手型的人,智慧颇高,好学深思,冷静善于分析事理,有独立思想,忍耐力特强,受得起沉重打击,不会稍遇挫败便心灰意冷,善于组织,为人慷慨大方,对金钱绝不吝啬,但会留意琐事,这类手型者多为懮思伤脾,甚则肺肾受累。"
        ]
    },
    "score":{
        "title":"手相分数分析",
        "score":91,
        "level":"非常好"
    }
}

手相详细分析仅作于本帖。娱乐而已。不提供具体接口地址。请知悉

整体来说。接口还是可以的。

梅姐是否考虑增加手掌各个纹理的位置返回呢。这样生命线、事业线、感情线、智慧线就通通都有了。可以让很多产品落地了。哈哈

 

体验可以用微信扫一扫如下图片

收藏
点赞
2
个赞
共17条回复 最后由756665228回复于2020-05-19 17:50
#14756665228回复于2019-07-26 16:53:01
#13 武云业回复
请问下面手相分析的接口有吗

下面的仅作为娱乐。百度接口没有提供这样的功能接口。

如果需要请私聊 小帅丶 QQ:783021975

1
#18756665228回复于2020-05-19 17:50:17
#17 晴空xwx回复
python运行的时候显示:'AipBodyAnalysis' object has no attribute 'handAnalysis'。请问您知不知道是什么原因呢,非常感谢!
展开

直接群里问一下群管。python我不会。

1
#17晴空xwx回复于2020-05-19 17:07:19

python运行的时候显示:'AipBodyAnalysis' object has no attribute 'handAnalysis'。请问您知不知道是什么原因呢,非常感谢!

0
#16进985回复于2020-05-12 21:18:14

哈哈,有意思

0
#15爱摄影cshaitao回复于2019-12-16 16:21:32

电脑半仙吗,

呵呵,强大.

0
#13武云业回复于2019-07-26 15:29:01

请问下面手相分析的接口有吗

0
#12果断叫小黑回复于2019-07-26 12:45:15

不是关键点分析厉害。二十这个手相分析厉害了。

0
#11rose20135188回复于2019-07-22 10:27:15

来来来,看手相了,看看你的命格如何.

0
#10756665228回复于2019-07-22 09:45:35
#7 coolwangbin回复
    点赞!  本质:分析局部细节关键点,并做出相应的反馈!   能不能帮我看一下我的提问?
展开

你的提问?

1
#9wangwei8638回复于2019-07-21 22:23:23

机器人也能扮半仙

0
#8rose20135188回复于2019-07-20 20:51:33

谢谢楼主的分享。

0
#7coolwangbin回复于2019-07-20 09:32:36

    点赞!  本质:分析局部细节关键点,并做出相应的反馈!

  能不能帮我看一下我的提问?

0
#6756665228回复于2019-07-18 21:56:09
#5 随意永钚泣回复
怎么开通接口测试权限

找梅姐申请接口权限。

图像识别或人体分析qq群。群管 找梅姐

群号在百度ai官网底部各个模块都有提供

1
#5随意永钚泣回复于2019-07-18 15:48:00

怎么开通接口测试权限

0
#4随意永钚泣回复于2019-07-18 15:46:31

怎么开通接口测试权限

0
#3756665228回复于2019-07-16 10:56:44
#2 melissayoung回复
手掌纹理这个有点难啊……泪奔

可以针对于这个纹理做直线处理。20个坐标点差不多就行。不够继续加。最终这些点连接起来就是纹理曲线了应该。

{
    "lifeline":{
        "x":[
            181,
            174,
            171,
            168,
            165,
            160,
            156,
            153,
            146,
            137,
            130,
            124,
            118,
            113,
            109,
            104,
            102,
            100,
            100,
            102
        ],
        "y":[
            254,
            259,
            262,
            265,
            268,
            272,
            276,
            278,
            287,
            296,
            306,
            314,
            323,
            333,
            342,
            355,
            367,
            379,
            390,
            402
        ]
    }
}
1
#2melissayoung回复于2019-07-16 10:41:21

手掌纹理这个有点难啊……泪奔

0
TOP
切换版块