投稿人:才能我浪费99
AI在民间的认知度最高的项目,或许就是图片特效了
本期活动,小帅就来带开发者们快速上手肤色检测API
各位开发者,接口文档一定要看哦
接口文档 https://ai.baidu.com/ai-doc/FACE/2k7zyhuev
如何创建应用。获取accesstoken 记得一定要看文档的接入指南哦。官方已经给了图文教程。小帅这里就不再重复说明了。AI接入指南
申请邀测能力开通
注意:需提供信息,appid、需开通接口、公司名称、联系人及电话、具体应用场景。
接口能力简介
业务能力 通过AI技术对图片中的人脸进行肤色检测,支持1-6挡,数字越小颜色越浅
- 肤色检测:支持多档位肤色检测,数字越小颜色越浅
- 图片质量控制:对输入的图片进行质量判断,支持包含图片本身大小、清晰度、光照等标准定制及控制
- 人脸角度判断:对图片中的人脸进行多种姿态角度判断
接口调用造起来
获取AccessToken(浏览器获取)
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后面的值
{
“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
/**
• @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”));
}
}控制台输出的内容
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
1 即为肤色等级
转存失败
重新上传
取消
接口结构体
{
“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 小帅分别给的中文描述为(仅作为参考):十分浅、浅、中等、深、十分深、深不可测
在线体验演示图
微信小程序搜索-有点小帅AI
应用场景
智能医美
支持上传或配合采集工具实时拍摄照片,后对皮肤颜色及质量进行深度分析,实现比对和肤色档位输出
互动娱乐
可用于各类短视频产品,或互动营销方案中提供趣味的体验
大屏互动
可用于各类商场大屏互动体验。根据肤色推荐不同的护肤产品
看法&建议
1.接口未对性别进行分别评测
2.返回的肤色等级过于简单(建议:color为1时,能给出相应的置信度分数)
本次新品体验到此结束