当前位置 博文首页 > 50行Python代码识别杨超越的颜值_藩依然的博客:人脸检测颜值源

    50行Python代码识别杨超越的颜值_藩依然的博客:人脸检测颜值源

    作者:[db:作者] 时间:2021-07-31 21:25

    行哥又又又又拿杨超越做封面了,只因为昨天群里有小伙伴想学下人脸识别

    但是如果要详细介绍的话,那这个故事得从opencv的那个夏天说起,对于python小白来说,门槛有点高。所以行哥今天先给大家介绍一个几秒就可以上手的人脸识别案例,下次行哥再深入通过原理来介绍

    本次文章的案例就是使用百度的api来进行人脸识别,但凡你学过一点点Python,你就可以借助百度的力量来进行人脸识别并检测颜值、年龄等,你要知道现在百度搜索不要钱了

    0befa265f2ba523b1d5932f083aceb2a.png就像上图所示,只要你注册了百度开放平台的账号,获取百度api的参数APP_ID ,API_KEY ,SECRET_KEY上图里的所有功能随意你调用,很多接口甚至无限使用

    850a3501d87b6b38f2cf26ba32467b20.png

    所以行哥利用这个百度开发平台的接口,仅50行代码做一个颜值打分系统给大家分享

    1.先看效果图

    c65a06df692793daf3b1535501993f1e.png

    作为杨超越20年的铁粉,非常想看一下她的人脸识别结果,使用百度的接口代码可以预测杨超越的年龄是22岁,性别女,颜值79.95。不过这个颜值可能因为脸的角度和光线问题上下波动,所以杨超越的颜值打分还可以再提高的。

    65e57a9944d0e881032ab815ec4e6ad6.png

    后来,行哥用了下自己的照片进行颜值打分,识别效果还是蛮不错的。这里大家也可以用下面的代码来测测自己的颜值哦,如果太低的话可以多读书来提高

    2.no bb show your code

    关于百度API的使用方法可以参考这个视频网站:https://cloud.baidu.com/doc/APIGUIDE/s/Ek1mzbeek,只要了解一些http请求,基础Python知识就可以使用

    245ef4ecef468e99ad21474d43b2d9a6.png

    核心代码在这里,只使用了三个模块

    cv2模块导入图片

    base64模块进行图片编码

    aip接口进行人脸识别(安装命令pip install baidu-aip)

    import?base64

    from?aip?import?AipFace

    import?cv2

    options?=?{'face_field':?'age,gender,beauty',?"max_face_num":?10}

    img?=?cv2.imread(file_path)

    #?图片放文字

    #?设置文件的位置、字体、颜色等参数

    font?=?cv2.FONT_HERSHEY_DUPLEX

    #?font?=?ImageFont.truetype("simhei.ttf",?20,?encoding="utf-8")

    color?=?(0,?0,?255)

    for?item?in?result['result']['face_list']:

    x?=?int(item['location']['left'])

    y?=?int(item['location']['top'])

    w?=?item['location']['width']

    h?=?item['location']['height']

    age?=?item['age']

    beauty?=?item['beauty']

    gender?=?item['gender']['type']

    cv2.rectangle(img,?(x,?y),?(x?+?w,?y?+?h),?(255,?0,?0),?3)

    cv2.putText(img,?'age:%s'?%?age,?(x,?y?+?h?+?10),?font,?1,?color,?1)

    cv2.putText(img,?'beauty:%s'?%?beauty,?(x,?y?+?h?+?30),?font,?1,?color,?1)

    cv2.putText(img,?'gender:%s'?%?gender,?(x,?y?+?h?+?50),?font,?1,?color,?1)

    cv2.imshow('Image',?img)

    #?按任意键退出

    key?=?cv2.waitKey()

    if?key?==?27:

    #?销毁所有窗口

    cv2.destroyAllWindows()

    3.最后注意

    这个项目,只是利用百度提供了免费的人工智能接口来进行调用,学习和使用的门槛都很低。如果没学过人工智能只会一点python代码完全可以利用这个接口做一些有意思的项目

    但是,如果你想去面试一家算法的岗位,你要是想说调用百度接口做的人脸识别项目,行哥劝你还是尽早转行吧

    最后,完整代码后台回复【一行07】就可以领取,快看看有没有比杨超越颜值还高的人脸来告诉行哥

    cs