【关于肤色的一切】【肤色检测】【Java】肤色深浅一测

2021-12-28 13:16:01 浏览数 (1)

AI在民间的认知度最高的项目,或许就是图片特效了

本期活动,小帅就来带开发者们快速上手肤色检测API

各位开发者 接口文档一定要看哦

接口文档 https://ai.baidu.com/ai-doc/FACE/2k7zyhuev

如何创建应用。获取accesstoken 记得一定要看文档的接入指南哦。官方已经给了图文教程。小帅这里就不再重复说明了。AI接入指南

申请邀测能力开通

登录控制台填工单提交 https://ticket.bce.baidu.com/?_=1583756196861&fromai=1#/ticket/list

注意:需提供信息,appid、需开通接口、公司名称、联系人及电话、具体应用场景。

接口能力简介

业务能力 通过AI技术对图片中的人脸进行肤色检测,支持1-6挡,数字越小颜色越浅

  • 肤色检测:支持多档位肤色检测,数字越小颜色越浅
  • 图片质量控制:对输入的图片进行质量判断,支持包含图片本身大小、清晰度、光照等标准定制及控制
  • 人脸角度判断:对图片中的人脸进行多种姿态角度判断

接口调用造起来

获取AccessToken(浏览器获取)

API Key、Secret Key 替换为自己创建应用的信息

代码语言:javascript复制
https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=API Key&client_secret=Secret Key

使用最快速的方式获取AccessToken

将以上替换后的URL。直接粘贴到浏览器地址栏回车即可。得到如下字段。我们只需要access_token后面的值

代码语言:javascript复制
{
  "refresh_token": "25.6973e8f0835d6458b46a12b52f008a1b.315360000.1903242650.282335-123456798",
  "expires_in": 2592000,
  "session_key": "9mzdDxEUo4Lny4jBhrHfOfoZgeqAphy5iTvSQgDWubDduWwGNzoQpCLC 1IEnGDlbFAD4q1Roty5O2DrloahXAgLuwZH",
  "access_token": "24.458cd6570f77221a5837e0185dce0ab6.2592000.1590474650.282335-123456798",
  "scope": "............",
  "session_secret": "878013faa3981961862ca61280eaa9e9"
}

得到access_token后面的值,保存备用

编写代码请求接口

需要额外的第三方库fastjson

代码语言:javascript复制
/**
 * @author 小帅丶
 * @className SkinColorSample
 * @Description 肤色检测
 * @Date 2020/4/26
 **/
public class SkinColorSample {
    /**
     * 重要提示代码中所需工具类
     * FileUtil,Base64Util,HttpUtil请从
     * https://ai.baidu.com/file/658A35ABAB2D404FBF903F64D47C1F72
     * https://ai.baidu.com/file/C8D81F3301E24D2892968F09AE1AD6E2
     * https://ai.baidu.com/file/544D677F5D4E4F17B4122FBD60DB82B3
     * 下载
     */
    public static void main(String[] args) throws Exception {
        //请将API地址替换为肤色检测所提供的API地址
        String url ="https://aip.baidubce.com/rest/2.0/face/v1/skin_color";
        //请将应用的APPID填入
        String appid = "【应用的AppID】";
        //图片类型 BASE64:图片的base64值; URL:图片的 URL( 下载图片时可能由于网络等原因导致下载图片时间过长) FACE_TOKEN: 人脸标识
        String image_type = "BASE64";
        //access_token获取方法请详见API使用说明,请注意access_token有效期为30天
        String access_token="【access_token】";
        //修改图片地址,测试不同图片
        byte[] file = FileUtil.readFileByBytes("【本地图片地址】");
        //参数image:图像base64编码
        String image = Base64Util.encode(file);
        //Body中放置请求参数
        String params = "{"appid":"" appid "","image_type":"" image_type "","image":"" image ""}";
        String result = HttpUtil.post(url, access_token, params);
        //输出识别结果
        System.out.println(result);
        //输出肤色
        JSONObject object = JSON.parseObject(result);
        //拿到第一个face_list
        Object face_list = object.getJSONObject("result").getJSONArray("face_list").get(0);
        //第一个face_list转JSONObject
        JSONObject skin = JSON.parseObject(face_list.toString());
        //获取skin对象中color的值 即肤色等级数值 越小肤色越浅
        System.out.println(skin.getJSONObject("skin").get("color"));
    }
}

控制台输出的内容

1即为肤色等级

代码语言:javascript复制
null--->[HTTP/1.1 200 OK]
Server--->[Apache]
Access-Control-Allow-Origin--->[*]
Access-Control-Allow-Methods--->[GET,POST,OPTIONS]
Connection--->[keep-alive]
P3p--->[CP=" OTI DSP COR IVA OUR IND COM ", CP=" OTI DSP COR IVA OUR IND COM "]
Date--->[Sun, 26 Apr 2020 06:55:14 GMT]
Access-Control-Allow-Headers--->[X-Requested-With]
Appid--->[18904875]
Tracecode--->[33143086990229861130042614]
Vary--->[Accept-Encoding]
Set-Cookie--->[BAIDUID=8D8D939FA8FDA44F6A54BB25D6F2137C:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2145916555; path=/; domain=.baidu.com; version=1, BAIDUID=1411AFDFE1A4CEA572EA46302B9FE029:FG=1; expires=Mon, 26-Apr-21 06:55:14 GMT; max-age=31536000; path=/; domain=.baidu.com; version=1]
Content-Length--->[279]
Content-Type--->[application/json]
result:{"error_code":0,"error_msg":"SUCCESS","log_id":2584651013510,"timestamp":1587884114,"cached":0,"result":{"face_num":1,"face_list":[{"face_token":"9ac4c972ff3d48afd4e6b6631be93202","location":{"left":444.61,"top":483.45,"width":420,"height":424,"degree":-2},"skin":{"color":1}}]}}

1
代码语言:javascript复制
{
    "error_code":0,
    "error_msg":"SUCCESS",
    "log_id":2584651013510,
    "timestamp":1587884114,
    "cached":0,
    "result":{
        "face_num":1,
        "face_list":[
            {
                "face_token":"9ac4c972ff3d48afd4e6b6631be93202",
                "location":{
                    "left":444.61,
                    "top":483.45,
                    "width":420,
                    "height":424,
                    "degree":-2
                },
                "skin":{
                    "color":1
                }
            }
        ]
    }
}

肤色分级

肤色分级,1~6,越小肤色越浅 1-6 小帅分别给的中文描述为(仅作为参考):十分浅、浅、中等、深、十分深、深不可测

在线体验

应用场景

智能医美 支持上传或配合采集工具实时拍摄照片,后对皮肤颜色及质量进行深度分析,实现比对和肤色档位输出 互动娱乐 可用于各类短视频产品,或互动营销方案中提供趣味的体验 大屏互动 可用于各类商场大屏互动体验。根据肤色推荐不同的护肤产品

看法&建议

1.接口未对性别进行分别评测 2.返回的肤色等级过于简单(建议:color为1时,能给出相应的置信度分数)

0 人点赞