百度AI - 人脸识别

AI现在是很火的词,BAT三家公司也都陆续走上了AI开源的道路,目前百度在AI方面走的稍微靠前一些。

今天利用百度AI开放平台提供的功能,来实现一下人脸检测功能。

接口文档: http://ai.baidu.com/docs#/Face-Python-SDK/top


在开始之前,首先得申请一个应用,这个应用拥有使用百度AI的一些权限。

具体看这个网址,很简单:  https://ai.baidu.com/docs#/Begin/top


还需要准备一些python库:

pip install baidu-aip

pip install Pillow


根据百度AI平台提供的文档,我们要做的其实就是构建一个AipFace,然后调用detect方法。

直接上脚本: (detect.py)

# -- coding: utf-8 --

from aip import AipFace

from PIL import Image, ImageDraw

import sys

# 检测参数,如果没有图片路径则返回

if len(sys.argv) <= 1:

    print 'Now params are: ', sys.argv,len(sys.argv)

    print "You should input a imagepath!"

    exit(0)

# 获取图片内容

filepath = sys.argv[1]

with open(filepath, 'rb') as fp:

    image = fp.read()

# 打开ai的客户端,下面的参数分别是申请应用后获取的:AppID, API Key, Secret Key

client = AipFace(' AppID ', ' API Key ',' Secret Key ')

# 填充参数,这里只检测一张人脸

options = {}

options['max_face_num'] = 1

options['face_fields'] = {'age'}

# 调用ai客户端的detect方法,这个方法返回的结果就是对人脸检测后的数据

result = client.detect(image, options)

print result

# 解析返回数据中的位置参数,获取到人脸的矩形信息

location = result['result'][0]['location']

width = location['width']

height = location['height']

left = location['left']

top = location['top']

right = left + width

bottom = top + height

# 使用PIL重新打开图片,绘制出人脸所在的矩形框

img = Image.open(filepath)

imgDraw = ImageDraw.Draw(img)

imgDraw.rectangle(((left, top), (right, bottom)), outline=(255, 0, 0))

img.show()

执行命令:

python detect.py your_img_path

其中检测返回的结果如下:

{

  u'log_id': 3799754530011917,

  u'result_num': 1,

  u'result': [

    {

      u'rotation_angle': -5,

      u'yaw': -10.247494697571,

      u'age': 22,

      u'location': {

        u'width': 197,

        u'top': 94,

        u'height': 177,

        u'left': 72

      },

      u'pitch': 7.9190526008606,

      u'roll': -5.076274394989,

      u'face_probability': 1

    }

  ]

}

对比下前后的结果:




从上面可以看出,检测基本是准确的。

从我测试了多组图片发现,检测结果都略微靠下一点。


其它参考文档:

图片处理框架PIL: http://effbot.org/imagingbook/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容