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(浏览器获取)
代码语言:javascript复制API Key、Secret Key 替换为自己创建应用的信息
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后面的值,保存备用
编写代码请求接口
代码语言:javascript复制需要额外的第三方库fastjson
/**
* @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"));
}
}
控制台输出的内容
代码语言:javascript复制1即为肤色等级
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时,能给出相应的置信度分数)