接口简介
AI面诊接口主要通过拍摄面部图片进行识别,返回两颊、鼻子、眼睛、嘴唇的类型和对应的概率值,面诊的证型结论和对应的食疗方案
接口地址
访问地址:https://www.bjbayes.com/admin/api/face_analysis_v2
请求方式:POST
请求格式:application/x-www-form-urlencode
* 所有的请求和响应数据编码皆为utf-8格式,URL里的所有参数名和参数值请做URL编码
请求参数
字段 | 类型 | 是否必传 | 说明 |
---|---|---|---|
appid | String | 是 | 开放平台创建的appid |
imgpath | String | 是 | 传入进行识别的网络图片地址 |
timestamp | String | 是 | 请求端口的时间,时间格式yyyyMMddHHmmss |
version | String | 是 | api版本,默认为1.0 |
sign | String | 是 | 签名。先把timestamp用MD5进行加密加上appid对应的key,然后再次用MD5再次进行加密生成签名,所有的MD5加密为大写。 |
响应参数
字段 | 类型 | 说明 |
---|---|---|
msg | String | 响应信息,成功为ok,错误为对应的错误信息 |
code | Int | 响应码,200-成功 201-没有可用次数 400-参数缺失或错误 500-异常 |
data | json | 识别结果数据 |
data参数
字段 | 说明 |
---|---|
nose | 酒糟鼻,取值鼻头正常、有酒糟鼻症状及各自对应概率 |
hair | 发际线,取值发际线正常、发际线靠后及各自对应概率 |
faceColor | 面色,取值黑色、白色、黄色、红色、青色及各自对应概率 |
leftBanDian | 左脸斑点,取值左脸无斑点、左脸有斑点及各自对应概率 |
leftCuoChuang | 左脸痤疮,取值左脸无痤疮、左脸有痤疮及各自对应概率 |
rightBanDian | 右脸斑点,取值右脸无斑点、右脸有斑点及各自对应概率 |
rightCuoChuang | 右脸痤疮,取值右脸无痤疮、右脸有痤疮及各自对应概率 |
lipColor | 唇色,取值淡白、淡红、黑紫、深红及各自对应概率 |
lipWater | 唇部干裂,取值水润、干裂及各自对应概率 |
cropFaceUrl | 裁剪的人脸url地址 |
message参数
字段内容 | 说明 |
---|---|
调用成功 | 正常返回所有结果 |
图片读取失败 | 图像格式有误或其他原因导致无法打开 |
未检测到人脸 | 图片中未检测到人脸 |
检测到多个人脸 | 图片中包含多个人脸 |
检测到多个人脸 | 图片中包含多个人脸 |
人脸尺寸过小 | 人脸尺寸过小或者人脸越界 |
未摘下眼镜 | 未摘下眼镜 |
图片下载失败 | 原始图片url路径有误 |
服务器繁忙 | 服务器并发过高 |
返回结果示例:
{ "msg":"成功", "code":200, "data":{ "message":"调用成功", "nose":{ "鼻头正常":0.99979204, "有酒糟鼻症状":0.00020798302 }, "hair":{ "发际线正常":0.9778505, "发际线靠后":0.022149438 }, "faceColor":{ "黑色":0.41139233210500004, "白色":0.00448131606555, "黄色":0.005320582335, "红色":0.49493583250000006, "青色":0.00022487049200000002 }, "leftBanDian":{ "左脸无斑点":0.0038473506, "左脸有斑点":0.9961526 }, "leftCuoChuang":{ "左脸无痤疮":0.90414184, "左脸有痤疮":0.09585814 }, "rightBanDian":{ "右脸无斑点":0.045944422, "右脸有斑点":0.95405555 }, "rightCuoChuang":{ "右脸无痤疮":0.99999785, "右脸有痤疮":2.204213 }, "lipColor":{ "淡白":0.00017499177, "淡红":0.9997421, "黑紫":0.000003683799, "深红":0.00039005504 }, "lipWater":{ "水润":0.9998386, "干裂":0.00016144048 }, "cropFaceUrl":"xxx" } }
java调用代码示例
import com.alibaba.fastjson.JSON; import com.util.HttpClient; import java.io.IOException; import java.security.MessageDigest; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; public class DemoObj { public static String MD5(String data) throws Exception { System.out.println(data); MessageDigest md = MessageDigest.getInstance("MD5"); byte[] array = md.digest(data.getBytes("UTF-8")); StringBuilder sb = new StringBuilder(); for (byte item : array) { sb.append(Integer.toHexString((item & 0xFF) | 0x100).substring(1, 3)); } System.out.println(sb.toString().toUpperCase()); return sb.toString().toUpperCase(); } public static void main(String[] args) { DateFormat df = new SimpleDateFormat("yyyyMMddHHmmss"); String timestamp=df.format(new Date()); Mapbody = new HashMap<>(); body.put("appid", "你的APPID"); System.out.println(timestamp); body.put("timestamp", timestamp); body.put("version", "1.0"); body.put("imgpath", "舌头图片地址"); try { body.put("sign", MD5(MD5(timestamp)+"你的APPID对应的key")); } catch (Exception e) { e.printStackTrace(); } try { String s = new HttpClient().doPostMap("https://www.bjbayes.com/admin/api/face_analysis_v2", body); System.out.println(s); Map maps = (Map) JSON.parse(s); for (Object map : maps.entrySet()){ System.out.println(((Map.Entry)map).getKey()+" " + ((Map.Entry)map).getValue()); } } catch (IOException e) { e.printStackTrace(); } } }
python调用代码示例
import hashlib # 导入time模块 import time import requests import json def Md5(res): print(res) md = hashlib.md5() # 构造一个md5 md.update(res.encode(encoding='utf-8')) # 加密 print(md.hexdigest().upper()) return md.hexdigest().upper() def testapi(): tures={} restime=time.strftime('%Y%m%d%H%M%S', time.localtime(time.time())) # restime="20190829114035" #传入参数 tures['timestamp']=restime tures['appid']="你的APPID" tures['version']='1.0' tures['imgpath']='https://wxr-tongue.oss-cn-beijing.aliyuncs.com/images/tongue/IMG_20200913_134618.jpg' tures['sign']=Md5(Md5(restime)+"你的APPID对应的key") url = "https://www.bjbayes.com/admin/api/face_analysis_v2" response = requests.post(url, params=tures) # print(response.text) print(type(response.text)) load=json.loads(response.text) print(load)
C#调用代码示例
using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Net; using System.Security.Cryptography; using System.Text; namespace APITest { class Program { static void Main(string[] args) { DictionarymyDictionary = new Dictionary (); DateTime dt = DateTime.Now; string ds = dt.ToString("yyyyMMddHHmmss"); myDictionary.Add("timestamp",ds); myDictionary.Add("appid", "你的APPID"); myDictionary.Add("version","1.0"); myDictionary.Add("imgpath", "待测图片的云服务地址"); myDictionary.Add("sign",GetMD5(GetMD5(ds)+ "你的APPID对应的key")); string finalresult = Post("https://www.bjbayes.com/admin/api/face_analysis_v2",myDictionary); Object jo = JsonConvert.DeserializeObject(finalresult); //此处结果为最后的调用结果 Console.WriteLine(jo); Console.ReadKey(); } //构造MD5 public static string GetMD5(string sDataIn) { MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); byte[] bytValue, bytHash; bytValue = System.Text.Encoding.UTF8.GetBytes(sDataIn); bytHash = md5.ComputeHash(bytValue); md5.Clear(); string sTemp = ""; for (int i = 0; i < bytHash.Length; i++) { sTemp += bytHash[i].ToString("X").PadLeft(2, '0'); } return sTemp.ToUpper(); } /// /// 指定Post地址使用Get 方式获取全部字符串 /// /// 请求后台地址 ///public static string Post(string url, Dictionary dic) { string result = ""; HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; #region 添加Post 参数 StringBuilder builder = new StringBuilder(); int i = 0; foreach (var item in dic) { if (i > 0) builder.Append("&"); builder.AppendFormat("{0}={1}", item.Key, item.Value); i++; } byte[] data = Encoding.UTF8.GetBytes(builder.ToString()); req.ContentLength = data.Length; using (Stream reqStream = req.GetRequestStream()) { reqStream.Write(data, 0, data.Length); reqStream.Close(); } #endregion HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); Stream stream = resp.GetResponseStream(); //获取响应内容 using (StreamReader reader = new StreamReader(stream, Encoding.UTF8)) { result = reader.ReadToEnd(); } return result; } } }
javascript调用代码示例
$.ajax({ type: "POST", url: "https://www.bjbayes.com/admin/api/face_analysis_v2", data: { timestamp:restime, #restime时间格式为YYmmddHHMMSS appid='你的APPID', version='1.0', imgpath='https://wxr-tongue.oss-cn-beijing.aliyuncs.com/images/tongue/IMG_20200913_134618.jpg', sign=Md5(Md5(restime)+'你的APPID对应的key') }, success: function(msg) { console.log('返回的数据:'+msg); } });