开放能力
开发平台
行业应用
生态合作
开发与教学
资讯 社区 控制台
技术能力
语音技术
图像技术
文字识别
人脸与人体识别
视频技术
AR与VR
自然语言处理
知识图谱
数据智能
场景方案
部署方案
行业应用
智能教育
智能医疗
智能零售
智能工业
企业服务
智能政务
智能农业
信息服务
智能园区
智能硬件
人脸识别

    黑眼圈眼袋检测(邀测)

    如果您对文档内容有任何疑问,可以通过以下几种方式联系我们:

    • 在百度云控制台内提交工单,咨询问题类型请选择人工智能服务
    • 如有需要讨论的疑问,欢迎进入AI社区 与其他开发者们一同交流
    • 特效用户交流QQ群:583486416

    能力介绍

    通过AI技术,对人脸眼周的黑眼圈及眼袋进行高精度检测和识别

    • 识别轮廓:精准识别左右眼黑眼圈与眼袋轮廓,可检测识别细分类别轮廓,分割IoU业界领先
    • 精细分割:对人脸左右眼黑眼圈与眼袋实现像素级语义分割,分割边缘平滑流畅,明显增强黑眼圈与眼袋边缘细节能力,解决硬分割问题

    调用方式

    请求URL数据格式

    向API服务地址使用POST发送请求,必须在URL中带上参数access_token,可通过后台的API Key和Secret Key生成,具体方式请参考“Access Token获取”。

    示例代码

    #!/bin/bash
    curl -i -k 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【百度云应用的AK】&client_secret=【百度云应用的SK】'
    <?php
    function request_post($url = '', $param = '') {
            if (empty($url) || empty($param)) {
                return false;
            }
            
            $postUrl = $url;
            $curlPost = $param;
            $curl = curl_init();//初始化curl
            curl_setopt($curl, CURLOPT_URL,$postUrl);//抓取指定网页
            curl_setopt($curl, CURLOPT_HEADER, 0);//设置header
            curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);//要求结果为字符串且输出到屏幕上
            curl_setopt($curl, CURLOPT_POST, 1);//post提交方式
            curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
            $data = curl_exec($curl);//运行curl
            curl_close($curl);
            
            return $data;
        }
    
        $url = 'https://aip.baidubce.com/oauth/2.0/token';
        $post_data['grant_type']       = 'client_credentials';
        $post_data['client_id']      = '你的 Api Key';
        $post_data['client_secret'] = '你的 Secret Key';
        $o = "";
        foreach ( $post_data as $k => $v ) 
        {
            $o.= "$k=" . urlencode( $v ). "&" ;
        }
        $post_data = substr($o,0,-1);
        
        $res = request_post($url, $post_data);
    
        var_dump($res);
    
    ?>
    package com.baidu.ai.aip.auth;
    
    import org.json.JSONObject;
    
    import java.io.BufferedReader;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;
    import java.util.List;
    import java.util.Map;
    
    /**
     * 获取token类
     */
    public class AuthService {
    
        /**
         * 获取权限token
         * @return 返回示例:
         * {
         * "access_token": "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567",
         * "expires_in": 2592000
         * }
         */
        public static String getAuth() {
            // 官网获取的 API Key 更新为你注册的
            String clientId = "百度云应用的AK";
            // 官网获取的 Secret Key 更新为你注册的
            String clientSecret = "百度云应用的SK";
            return getAuth(clientId, clientSecret);
        }
    
        /**
         * 获取API访问token
         * 该token有一定的有效期,需要自行管理,当失效时需重新获取.
         * @param ak - 百度云官网获取的 API Key
         * @param sk - 百度云官网获取的 Securet Key
         * @return assess_token 示例:
         * "24.460da4889caad24cccdb1fea17221975.2592000.1491995545.282335-1234567"
         */
        public static String getAuth(String ak, String sk) {
            // 获取token地址
            String authHost = "https://aip.baidubce.com/oauth/2.0/token?";
            String getAccessTokenUrl = authHost
                    // 1. grant_type为固定参数
                    + "grant_type=client_credentials"
                    // 2. 官网获取的 API Key
                    + "&client_id=" + ak
                    // 3. 官网获取的 Secret Key
                    + "&client_secret=" + sk;
            try {
                URL realUrl = new URL(getAccessTokenUrl);
                // 打开和URL之间的连接
                HttpURLConnection connection = (HttpURLConnection) realUrl.openConnection();
                connection.setRequestMethod("GET");
                connection.connect();
                // 获取所有响应头字段
                Map<String, List<String>> map = connection.getHeaderFields();
                // 遍历所有的响应头字段
                for (String key : map.keySet()) {
                    System.err.println(key + "--->" + map.get(key));
                }
                // 定义 BufferedReader输入流来读取URL的响应
                BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                String result = "";
                String line;
                while ((line = in.readLine()) != null) {
                    result += line;
                }
                /**
                 * 返回结果示例
                 */
                System.err.println("result:" + result);
                JSONObject jsonObject = new JSONObject(result);
                String access_token = jsonObject.getString("access_token");
                return access_token;
            } catch (Exception e) {
                System.err.printf("获取token失败!");
                e.printStackTrace(System.err);
            }
            return null;
        }
    
    }
     # encoding:utf-8
    import requests 
    
    # client_id 为官网获取的AK, client_secret 为官网获取的SK
    host = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【官网获取的AK】&client_secret=【官网获取的SK】'
    response = requests.get(host)
    if response:
        print(response.json())
    #include <iostream>
    #include <curl/curl.h>
    #include <json/json.h>
    #include "access_token.h"
    // libcurl库下载链接:https://curl.haxx.se/download.html
    // jsoncpp库下载链接:https://github.com/open-source-parsers/jsoncpp/
    // 获取access_token所需要的url
    const std::string access_token_url = "https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials";
    // 回调函数获取到的access_token存放变量
    // static std::string access_token_result;
    /**
     * curl发送http请求调用的回调函数,回调函数中对返回的json格式的body进行了解析,解析结果储存在result中
     * @param 参数定义见libcurl库文档
     * @return 返回值定义见libcurl库文档
     */
    static size_t callback(void *ptr, size_t size, size_t nmemb, void *stream) {
        // 获取到的body存放在ptr中,先将其转换为string格式
        std::string s((char *) ptr, size * nmemb);
        // 开始获取json中的access token项目
        Json::Reader reader;
        Json::Value root;
        // 使用boost库解析json
        reader.parse(s,root);
        std::string* access_token_result = static_cast<std::string*>(stream);
        *access_token_result = root["access_token"].asString();
        return size * nmemb;
    }
    
    /**
     * 用以获取access_token的函数,使用时需要先在百度云控制台申请相应功能的应用,获得对应的API Key和Secret Key
     * @param access_token 获取得到的access token,调用函数时需传入该参数
     * @param AK 应用的API key
     * @param SK 应用的Secret key
     * @return 返回0代表获取access token成功,其他返回值代表获取失败
     */
    int get_access_token(std::string &access_token, const std::string &AK, const std::string &SK) {
        CURL *curl;
        CURLcode result_code;
        int error_code = 0;
        curl = curl_easy_init();
        if (curl) {
            std::string url = access_token_url + "&client_id=" + AK + "&client_secret=" + SK;
            curl_easy_setopt(curl, CURLOPT_URL, url.data());
            curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);
            curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0);
            std::string access_token_result;
            curl_easy_setopt(curl, CURLOPT_WRITEDATA, &access_token_result);
            curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, callback);
            result_code = curl_easy_perform(curl);
            if (result_code != CURLE_OK) {
                fprintf(stderr, "curl_easy_perform() failed: %s\n",
                        curl_easy_strerror(result_code));
                return 1;
            }
            access_token = access_token_result;
            curl_easy_cleanup(curl);
            error_code = 0;
        } else {
            fprintf(stderr, "curl_easy_init() failed.");
            error_code = 1;
        }
        return error_code;
    }
    using System;
    using System.Collections.Generic;
    using System.Net.Http;
    
    namespace com.baidu.ai
    {
        public static class AccessToken
    
        {
            // 调用getAccessToken()获取的 access_token建议根据expires_in 时间 设置缓存
            // 返回token示例
            public static String TOKEN = "24.adda70c11b9786206253ddb70affdc46.2592000.1493524354.282335-1234567";
    
            // 百度云中开通对应服务应用的 API Key 建议开通应用的时候多选服务
            private static String clientId = "百度云应用的AK";
            // 百度云中开通对应服务应用的 Secret Key
            private static String clientSecret = "百度云应用的SK";
    
            public static String getAccessToken() {
                String authHost = "https://aip.baidubce.com/oauth/2.0/token";
                HttpClient client = new HttpClient();
                List<KeyValuePair<String, String>> paraList = new List<KeyValuePair<string, string>>();
                paraList.Add(new KeyValuePair<string, string>("grant_type", "client_credentials"));
                paraList.Add(new KeyValuePair<string, string>("client_id", clientId));
                paraList.Add(new KeyValuePair<string, string>("client_secret", clientSecret));
    
                HttpResponseMessage response = client.PostAsync(authHost, new FormUrlEncodedContent(paraList)).Result;
                String result = response.Content.ReadAsStringAsync().Result;
                Console.WriteLine(result);
                return result;
            }
        }
    }
    var https = require('https');
    var qs = require('querystring');
    
    const param = qs.stringify({
        'grant_type': 'client_credentials',
        'client_id': '您的 Api Key',
        'client_secret': '您的 Secret Key'
    });
    
    https.get(
        {
            hostname: 'aip.baidubce.com',
            path: '/oauth/2.0/token?' + param,
            agent: false
        },
        function (res) {
            // 在标准输出中查看运行结果
            res.pipe(process.stdout);
        }
    );

    注意access_token的有效期为30天,切记需要每30天进行定期更换,或者每次请求都拉取新token

    例如此接口,使用HTTPS POST发送:

    https://aip.baidubce.com/rest/2.0/face/v1/eyesattr?access_token=24.f9ba9c5341b67688ab4added8bc91dec.2592000.1485570332.282335-8574074

    POST中Body的参数,按照下方请求参数说明选择即可。

    提示:如果您为百度云老用户,正在使用其他非AI的服务,可以参考百度云AKSK鉴权方式发送请求,虽然请求方式鉴权方法和本文所介绍的不同,但请求参数和返回结果一致。

    请求说明

    注意事项

    • 请求体格式化:Content-Type为application/json,通过json格式化请求体。
    • Base64编码:请求的图片需经过Base64编码,图片的base64编码指将图片数据编码成一串字符串,使用该字符串代替图像地址。您可以首先得到图片的二进制,然后用Base64格式编码即可。需要注意的是,图片的base64编码是不包含图片头的,如data:image/jpg;base64,
    • 图片格式:现支持PNG、JPG、JPEG、BMP,不支持GIF图片

    请求示例

    HTTP方法:POST

    请求URL:https://aip.baidubce.com/rest/2.0/face/v1/eyesattr

    URL参数:

    参数
    access_token 通过API Key和Secret Key获取的access_token,参考“Access Token获取

    Header:

    参数
    Content-Type application/json

    Body中放置请求参数,参数详情如下:

    请求参数

    参数 必选 类型 说明
    appid string app标识 (由数字、字母、下划线组成),长度限制48B
    image string 图片信息(数据大小应小于10M 分辨率应小于1920*1080)
    image_type string 图片类型
    BASE64:图片的base64值;
    URL:图片的 URL( 下载图片时可能由于网络等原因导致下载图片时间过长)
    FACE_TOKEN: 人脸标识
    max_face_num uint32 最多处理人脸的数目. 默认值为1(仅检测图片中面积最大的那个人脸) 最大值10

    示例代码

    {
        "image": "027d8308a2ec665acb1bdf63e513bcb9",
        "image_type": "FACE_TOKEN",
        "max_face_num": 5
    }

    返回说明

    返回参数

    • 返回结果
    字段 必选 类型 说明
    face_num int 图片中的人脸数量
    face_list array 人脸信息列表 字段信息见下
    —————— —— —— ——————————
    face_token string 人脸标志
    location array 人脸在图片中的位置
    +left double 人脸区域离左边界的距离
    +top double 人脸区域离上边界的距离
    +width double 人脸区域的宽度
    +height double 人脸区域的高度
    +degree int 人脸框相对于竖直方向的顺时针旋转角,[-180,180]
    eyesattr array 眼睛属性信息
    +dark_circle_left_type array 左眼黑眼圈类型:0 色素型,1 阴影型,2血管型
    +dark_circle_right_type array 右眼黑眼圈类型:0 色素型,1 阴影型,2血管型
    +dark_circle_left array 左眼黑眼圈
    +++x double 黑眼圈离左边界的距离
    +++y double 黑眼圈离上边界的距离
    +dark_circle_right array 右眼黑眼圈
    +++x double 黑眼圈离左边界的距离
    +++y double 黑眼圈离上边界的距离
    +eye_bags_left array 左眼眼袋
    +++x double 眼袋离左边界的距离
    +++y double 眼袋离上边界的距离
    +eye_bags_right array 右眼眼袋
    +++x double 眼袋离左边界的距离
    +++y double 眼袋离上边界的距离
    • 返回示例
    {
     "error_code": 0,
     "error_msg": "SUCCESS",
     "log_id": 1048325060,
     "timestamp": 1584091048,
     "cached": 0,
     "result": {
       "face_num": 2,
       "face_list": [
           {
               "face_token": "3bc1c35d3d0df595ed7649d3fd9d9d47",
               "location": {
                   "left": 69.53,
                   "top": 121.81,
                   "width": 73,
                   "height": 68,
                   "degree": -3
               },
               "eyesattr": {
                   "dark_circle_left_type": [0],
                   "dark_circle_right_type": [],
                   "dark_circle_left": [
                       [
                           {
                               "x": 1,
                               "y": 54
                           },
                           {
                               "x": 1,
                               "y": 55
                           },
                           {
                               "x": 1,
                               "y": 56
                           },
                           {
                               "x": 1,
                               "y": 57
                           },
                           {
                               "x": 1,
                               "y": 58
                           },
                           {
                               "x": 1,
                               "y": 59
                           },
                           {
                               "x": 1,
                               "y": 60
                           },
                           {
                               "x": 1,
                               "y": 61
                           },
                           {
                               "x": 1,
                               "y": 62
                           },
                           {
                               "x": 1,
                               "y": 63
                           },
                           {
                               "x": 1,
                               "y": 64
                           },
                           {
                               "x": 1,
                               "y": 65
                           },
                           {
                               "x": 1,
                               "y": 66
                           },
                           {
                               "x": 1,
                               "y": 65
                           },
                           {
                               "x": 1,
                               "y": 64
                           },
                           {
                               "x": 1,
                               "y": 63
                           },
                           {
                               "x": 1,
                               "y": 62
                           },
                           {
                               "x": 1,
                               "y": 61
                           },
                           {
                               "x": 1,
                               "y": 60
                           },
                           {
                               "x": 1,
                               "y": 59
                           },
                           {
                               "x": 1,
                               "y": 58
                           },
                           {
                               "x": 1,
                               "y": 57
                           },
                           {
                               "x": 1,
                               "y": 56
                           },
                           {
                               "x": 1,
                               "y": 55
                           }
                       ]
                   ],
                   "dark_circle_right": [],
                   "eye_bags_left": [],
                   "eye_bags_right": [
                       [
                           {
                               "x": 2,
                               "y": 60
                           },
                           {
                               "x": 2,
                               "y": 61
                           },
                           {
                               "x": 2,
                               "y": 62
                           },
                           {
                               "x": 2,
                               "y": 63
                           },
                           {
                               "x": 2,
                               "y": 64
                           },
                           {
                               "x": 2,
                               "y": 65
                           },
                           {
                               "x": 2,
                               "y": 66
                           },
                           {
                               "x": 2,
                               "y": 65
                           },
                           {
                               "x": 2,
                               "y": 64
                           },
                           {
                               "x": 2,
                               "y": 63
                           },
                           {
                               "x": 2,
                               "y": 62
                           },
                           {
                               "x": 2,
                               "y": 61
                           }
                       ]
                   ]
               }
           },
           {
               "face_token": "e57ca08b40bf2c073c278b5d30e76ebc",
               "location": {
                   "left": 220.73,
                   "top": 87.92,
                   "width": 67,
                   "height": 67,
                   "degree": 0
               },
               "eyesattr": {
                   "dark_circle_left_type": [],
                   "dark_circle_right_type": [],
                   "dark_circle_left": [],
                   "dark_circle_right": [],
                   "eye_bags_left": [],
                   "eye_bags_right": []
               }
           }
       ]
    }
    }
    上一篇
    皱纹检测(邀测)
    下一篇
    发际线编辑(邀测)