Face++头像检测分析

想做一个微信朋友的头像分析,分析出使用头像的种类,如人像、卡通像、风景、表情图等。一开始用准备用opencv,但是在安装opencv时一直出错,一步一步的解决,第四遍时终于安装好了opencv,但是运行又发现 numpy包的版本不匹配。

种种问题,只好先放一放。想到了Face++,于是动手,边看文档边弄。以下是一些使用情况。

1)申请开发者帐号,api_key, api_secret
2)查看API文档说明
3)动手写代码测试

采用API调用的方式,比较简单,但是没有我之前预期的把图片分类。我使用是的Direct API,只能进行人脸检测和人脸分析。我只取两个数据:性别和年龄。即调用Face++ Direct API分析出头像的性格和年龄。看网站下还有一个数据,微笑的类别种类,如“似笑非笑”、“眉开眼笑”等,我没有找到相应的分类说明,这个数据抓取下来了也无法辨别。

Face++头像检测分析_第1张图片

测试很简单,POST请求,传递3个参数,app_key, app_secret, 需要检测的图片文件url,返回json数据,编程就是对数据进行解析。

curl -X POST "https://api-cn.faceplusplus.com/facepp/v3/detect" -F "api_key=gwFiGs7g3vbYQqLcwcdvieaEprbGbCXe" \
-F "api_secret=qVGtFiWRiQG7Wmy9uRrdZgm6PWEijEVU" \
-F "image_url=http://ol6pdll7a.bkt.clouddn.com/x_6.jpg" \
-F "return_landmark=0" \
-F "return_attributes=gender,age"

返回的json


{
    "image_id": "W30t6uOoAtiyx9n/kypZMg==",
    "request_id": "1486806689,22075b28-9daa-42d0-9341-305e8cb32f31",
    "time_used": 290,
    "faces": [
        {
            "attributes": {
                "gender": {
                    "value": "Female"
                },
                "age": {
                    "value": 37
                }
            },
            "face_rectangle": {
                "width": 49,
                "top": 37,
                "left": 45,
                "height": 49
            },
            "face_token": "325b034c1f0821af1898a0ec35ee3f16"
        }
    ]
}

发现在识别度上有这样几个问题:

  1. 拍摄得太远,人像太小,会无法识别
  2. 背影、侧面、剪影都无法识别
  3. 戴口罩的无法识别,戴墨镜的会识别出性别错误
  4. 卡通人物头像无法识别,但是照片素描化后是可以识别的

文档中对图片的要示是:最小48*48像素。

最后写了一段代码对1546个微信好友头像进行了检测分析:
女性210人,男性142人,没有检测出来(包括非人像图片头像)1149人。也就是使用清晰人像作为微信头像的占22.7%。
稍后,当然还有更多其他数据分析。

你可能感兴趣的:(Face++头像检测分析)