百度智能小程序 人臉檢測

2020-09-05 14:16 更新

swan.ai.faceDetect

基礎(chǔ)庫 3.20.11 開始支持,低版本需做兼容處理。

解釋:人臉檢測,檢測圖片中的人臉并標(biāo)記出相應(yīng)的信息位置,同時可以展示出人臉的關(guān)鍵信息和屬性信息,比如年齡,性別等。使用本功能需要小程序開發(fā)者后臺登錄超級管理員賬號,點擊 云平臺付費鏈接 開通云賬號付費功能。

方法參數(shù)

Object object

object 參數(shù)說明

屬性名 類型 必填 默認(rèn)值 說明

image

String

圖片信息(總數(shù)據(jù)大小應(yīng)小于 10M),圖片上傳方式根據(jù) image_type 來判斷。

image_type

String

圖片類型。有效值:
· BASE64: 圖片的 base64 值,base64 編碼后的圖片數(shù)據(jù),編碼后的圖片大小不超過 2M;
· URL : 圖片的 URL 地址(可能由于網(wǎng)絡(luò)等原因?qū)е孪螺d圖片時間過長);
· FACE_TOKEN : 人臉圖片的唯一標(biāo)識,調(diào)用人臉檢測接口時,會為每個人臉圖片賦予一個唯一的 FACE_TOKEN,同一張圖片多次檢測得到的 FACE_TOKEN 是同一個。

face_field

String

包括 age,beauty,expression,face_shape,gender,glasses,landmark,
race,quality,eye_status,emotion,face_type 信息,逗號分隔。
默認(rèn)只返回 face_token、人臉框、概率和旋轉(zhuǎn)角度。

max_face_num

String

1

最多處理人臉的數(shù)目,默認(rèn)值為 1,僅檢測圖片中面積最大的那個人臉;最大值 10,檢測圖片中面積最大的幾張人臉。

face_type

String

LIVE

人臉的類型。有效值:
· LIVE 表示生活照 :通常為手機、相機拍攝的人像圖片、或從網(wǎng)絡(luò)獲取的人像圖片等;
· IDCARD 表示身份證芯片照 :二代身份證內(nèi)置芯片中的人像照片;
· WATERMARK 表示帶水印證件照 :一般為帶水印的小圖,如公安網(wǎng)小圖;
· CERT 表示證件照片 :如拍攝的身份證、工卡、護照、學(xué)生證等證件圖片;默認(rèn) LIVE。

success

Function

接口調(diào)用成功后的回調(diào)函數(shù)

fail

Function

接口調(diào)用失敗的回調(diào)函數(shù)

complete

Function

接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會執(zhí)行)

success 返回參數(shù)說明

參數(shù)名 參數(shù)類型 說明

log_id

Number

唯一的 log id,用于問題定位。

error_code

Number

錯誤碼,錯誤碼為 0 時,人臉檢測成功。

error_msg

String

錯誤描述信息,幫助理解和解決發(fā)生的錯誤。

result

Object

人臉屬性對象的集合。

result 參數(shù)說明

參數(shù)名 參數(shù)類型 說明

face_num

Number

檢測到圖片中的人臉數(shù)量

face_list

Array

人臉信息列表

face_list 參數(shù)說明

參數(shù)名 參數(shù)類型 說明

face_token

String

人臉圖片的唯一標(biāo)識

location

Object

人臉在圖片中的位置

face_probability

Number

人臉置信度,范圍[0~1],代表這是一張人臉的概率,0 最小、1 最大。

angel

Object

人臉旋轉(zhuǎn)角度參數(shù)

age

Number

年齡,當(dāng) face_field 包含 age 時返回。

beauty

Number

美丑打分,范圍 [0-100],越大表示越美,當(dāng) face_fields 包含 beauty 時返回。

expression

Object

表情,當(dāng) face_field 包含 expression 時返回。

face_shape

Object

臉型,當(dāng) face_field 包含 face_shape 時返回。

gender

Object

性別,face_field 包含 gender 時返回。

glasses

Object

是否帶眼鏡,face_field 包含 glasses 時返回。

eye_status

Object

雙眼狀態(tài)(睜開/閉合)face_field 包含 eye_status 時返回。

emotion

Object

情緒,face_field 包含 emotion 時返回。

race

Object

人種 face_field 包含 race 時返回。

face_type

Object

真實人臉/卡通人臉 face_field 包含 face_type 時返回。

landmark

Object

4 個關(guān)鍵點位置,左眼中心、右眼中心、鼻尖、嘴中心。face_field 包含 landmark 時返回。

quality

Object

人臉質(zhì)量信息,face_field 包含 quality 時返回。

location 返回值說明

參數(shù)名 參數(shù)類型 說明

left

Number

人臉區(qū)域離左邊界的距離

top

Number

人臉區(qū)域離上邊界的距離

width

Number

人臉區(qū)域的寬度

height

Number

人臉區(qū)域的高度

rotation

Number

人臉框相對于豎直方向的順時針旋轉(zhuǎn)角,[-180,180]。

angel 返回值說明

參數(shù)名 參數(shù)類型 說明

yaw

Number

三維旋轉(zhuǎn)之左右旋轉(zhuǎn)角[-90(左), 90(右)]。

pitch

Number

三維旋轉(zhuǎn)之俯仰角度[-90(上), 90(下)]。

roll

Number

平面內(nèi)旋轉(zhuǎn)角[-180(逆時針), 180(順時針)]。

expression 返回值說明

參數(shù)名 參數(shù)類型 說明

type

String

none:不笑;smile:微笑;laugh:大笑。

probability

Number

表情置信度,范圍 [0~1],0 最小、1 最大。

face_shape 返回值說明

參數(shù)名 參數(shù)類型 說明

type

String

square:正方形;triangle:三角形;oval:橢圓;heart:心形;round:圓形。

probability

Number

置信度,范圍 [0~1],代表這是人臉形狀判斷正確的概率,0 最小、1 最大。

gender 返回值說明

參數(shù)名 參數(shù)類型 說明

type

String

male:男性;female:女性。

probability

Number

性別置信度,范圍[0~1],0 代表概率最小、1 代表最大。

glasses 返回值說明

參數(shù)名 參數(shù)類型 說明

type

String

none:無眼鏡;common:普通眼鏡;sun:墨鏡。

probability

Number

眼鏡置信度,范圍 [0~1],0 代表概率最小、1 代表最大。

eye_status 返回值說明

參數(shù)名 參數(shù)類型 說明

left_eye

Number

左眼狀態(tài) [0,1] 取值,越接近 0 閉合的可能性越大。

right_eye

Number

右眼狀態(tài) [0,1] 取值,越接近 0 閉合的可能性越大。

emotion 返回值說明

參數(shù)名 參數(shù)類型 說明

type

String

angry:憤怒;disgust:厭惡;fear:恐懼;happy:高興;sad:傷心;surprise:驚訝;neutral:無情緒。

probability

Number

情緒置信度,范圍 0~1。

race 返回值說明

參數(shù)名 參數(shù)類型 說明

type

String

yellow:黃種人;white:白種人;black:黑種人;arabs:阿拉伯人。

probability

Number

人種置信度,范圍[0~1],0 代表概率最小、1 代表最大。

face_type 返回值說明

參數(shù)名 參數(shù)類型 說明

type

String

human:真實人臉;cartoon:卡通人臉。

probability

Number

人臉類型判斷正確的置信度,范圍[0~1],0 代表概率最小、1 代表最大。

landmark 返回值說明

參數(shù)名 參數(shù)類型 說明

landmark72

Array

72 個特征點位置 face_field 包含 landmark72 時返回。

landmark150

Array

150 個特征點位置 face_field 包含 landmark150 時返回。

quality 返回值說明

參數(shù)名 參數(shù)類型 說明

occlusion

Number

人臉各部分遮擋的概率,范圍 [0~1],0 表示完整,1 表示不完整。

blur

Number

人臉模糊程度,范圍 [0~1],0 表示清晰,1 表示模糊。

illumination

Number

取值范圍在 [0~255], 表示臉部區(qū)域的光照程度越大表示光照越好。

completeness

Number

人臉完整度,0 或 1, 0 為人臉溢出圖像邊界,1 為人臉都在圖像邊界內(nèi)。

occlusion 返回值說明>

參數(shù)名 參數(shù)類型 說明

left_eye

Number

左眼遮擋比例,[0-1],1 表示完全遮擋。

right_eye

Number

右眼遮擋比例,[0-1],1 表示完全遮擋。

nose

Number

鼻子遮擋比例,[0-1],1 表示完全遮擋。

left_cheek

Number

左臉頰遮擋比例,[0-1],1 表示完全遮擋。

right_cheek

Number

右臉頰遮擋比例,[0-1],1 表示完全遮擋。

chin

Number

下巴遮擋比例,[0-1],1 表示完全遮擋。

示例


圖片示例

代碼示例 1:image_type 為 BASE64 

在開發(fā)者工具中打開

Page({
    faceDetect() {
        swan.chooseImage({
            success: res => {
                let image = res.tempFilePaths[0];
                // AI系列的api有宿主使用限制,只可在百度App中使用,建議使用時加一層判斷防止代碼報未知錯誤
                let host = swan.getSystemInfoSync().host;
                if (host === 'baiduboxapp') {
                    swan.ai.faceDetect({
                        image,
                        image_type: 'BASE64',
                        face_field: 'age,beauty,angle,expression,face_shape,gender,glasses,eye_status,race,quality',
                        max_face_num: '1',
                        face_type: 'LIVE',
                        success: res => {
                            console.log(res.face_list);
                    },
                    fail: err => {
                            console.log( err);
                        }
                    });
                }
                else {
                    swan.showToast({
                        title: '此api目前僅可在百度App上使用',
                        icon: 'none'
                    });
                }
            }
        })
    }
});

代碼示例 2:image_type 為 URL 

在開發(fā)者工具中打開

Page({
    faceDetect() {
        swan.chooseImage({
            success: res => {
                let image = res.tempFilePaths[0];
                // AI系列的api有宿主使用限制,只可在百度App中使用,建議使用時加一層判斷防止代碼報未知錯誤
                let host = swan.getSystemInfoSync().host;
                if (host === 'baiduboxapp') {
                    swan.ai.faceDetect({
                        image:'https://b.bdstatic.com/miniapp/image/faceDetect.png',
                        image_type: 'URL',
                        face_field: 'age,beauty,angle,expression,face_shape,gender,glasses,eye_status,race,quality',
                        max_face_num: '1',
                        face_type: 'LIVE',
                        success: res => {
                            console.log(res.face_list);
                        },
                        fail: err => {
                                console.log( err);
                        }
                    });
                }
                else {
                    swan.showToast({
                        title: '此api目前僅可在百度App上使用',
                        icon: 'none'
                    });
                }
            }
        })
    }
});

代碼示例 3:image_type 為 FACE_TOKEN 

在開發(fā)者工具中打開

Page({
    faceDetect() {
        swan.chooseImage({
            success: res => {
                let image = res.tempFilePaths[0];
                // AI系列的api有宿主使用限制,只可在百度App中使用,建議使用時加一層判斷防止代碼報未知錯誤
                let host = swan.getSystemInfoSync().host;
                if (host === 'baiduboxapp') {
                    swan.ai.faceDetect({
                        image:'4160b708a826b18de95fe5c9a098a436', //可由之前圖片檢測的返回值中獲得
                        image_type: 'FACE_TOKEN',
                        face_field: 'age,beauty,angle,expression,face_shape,gender,glasses,eye_status,race,quality',
                        max_face_num: '1',
                        face_type: 'LIVE',
                        success: res => {
                            console.log(res.face_list);
                        },
                        fail: err => {
                                console.log( err);
                        }
                    });
                }
                else {
                    swan.showToast({
                        title: '此api目前僅可在百度App上使用',
                        icon: 'none'
                    });
                }
            }
        })
    }
});

返回值示例

{    
  "face_num": 1,
  "face_list": [
        {
            "face_token": "35235asfas21421fakghktyfdgh68bio",
            "location": { 
                "left": 117,
                "top": 131,
                "width": 172,
                "height": 170,
                "rotation": 4
            },
            "face_probability": 1,
            "angle" :{
                 "yaw" : -0.34859421849251
                 "pitch" 1.9135693311691  
                 "roll" :2.3033397197723  
            }
            "landmark": [  
                {
                    "x": 161.74819946289,
                    "y": 163.30244445801
                },
                ...
            ],
            "landmark72": [ 
                {
                    "x": 115.86531066895,
                    "y": 170.0546875
                },
                ...
            ],
            "age": 29.298097610474,
            "beauty": 55.128883361816,
            "expression": {
                "type": "smile",
                "probability" : 0.5543018579483
            },
            "gender": {
                "type": "male",
                "probability": 0.99979132413864
            },
            "glasses": {
                "type": "sun",
                "probability": 0.99999964237213
            },
            "race": {
                "type": "yellow",
                "probability": 0.99999976158142
            },
            "face_shape": {
                "type": "triangle",
                "probability": 0.5543018579483
            }
            "quality": {
                "occlusion": {
                    "left_eye": 0,
                    "right_eye": 0,
                    "nose": 0,
                    "mouth": 0,
                    "left_cheek": 0.0064102564938366,
                    "right_cheek": 0.0057411273010075,
                    "chin": 0
                },
                "blur": 1.1886881756684e-10,
                "illumination": 141,
                "completeness": 1
            }
        }
    ]
}


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號