人脸识别分析

调用

腾讯AI人脸识别接口

测试应用

纯py文件测试照片

# -*- coding: utf-8 -*-
import json from tencentcloud.common import credential
from tencentcloud.common.exception.tencent_cloud_sdk_exception import TencentCloudSDKException
# 导入对应产品模块的 client models。
from tencentcloud.common.profile.client_profile import ClientProfile
from tencentcloud.iai.v20180301 import iai_client, models
import base64 def get_json(img_dir):
with open(img_dir, 'rb') as f:
base64_data = base64.b64encode(f.read())
base64_code = base64_data.decode()
try:
# 实例化一个客户端配置对象,可以指定超时时间等配置
clientProfile = ClientProfile()
clientProfile.signMethod = "TC3-HMAC-SHA256" # 指定签名算法
# 实例化一个认证对象,入参需要传入腾讯云账户 secretId,secretKey
cred = credential.Credential(secretId, secretKey)
client = iai_client.IaiClient(cred, "ap-guangzhou", clientProfile)
# 实例化一个请求对象
req = models.DetectFaceRequest() # 人脸检测参数
req.MaxFaceNum = 1
req.Image = base64_code
req.NeedFaceAttributes = 1
req.NeedQualityDetection = 0 # 通过 client 对象调用想要访问的接口,需要传入请求对象
resp = client.DetectFace(req)
# 输出 JSON 格式的字符串回包
json_data = resp.to_json_string() return json_data except TencentCloudSDKException as err:
print(err)
return None secretId = '你的id'
secretKey = '你的key'
img_dir = "img\dlrb.jpg"
json_data = get_json(img_dir)
data=json.loads(json_data) data2=data["FaceInfos"]
data2=str(data2)
data3=data2[1:-1].replace("'", "\"").replace("False","\"False\"").replace("True","\"True\"") data4=json.loads(data3) face=data4["FaceAttributesInfo"]
people={}
if face["Gender"]>50:
people["Gender"]="男性"
else:
people["Gender"]="女性"
people["Age"]=face["Age"]
if face["Expression"]>50:
people["smile"]="大笑"
else:
people["smile"]="微笑"
if face["Glass"]=="False":
people["Glass"]="未戴眼镜"
else:
people["Glass"]="戴眼镜"
people["Beauty"]=face["Beauty"]
if face["Hat"]=="False":
people["Hat"]="未戴帽子"
else:
people["Hat"]="戴帽子"
if face["Mask"]=="False":
people["Mask"]="未戴口罩"
else:
people["Mask"]="戴口罩"
hair=face["Hair"] str="" if hair["Bang"]==0:
str="有刘海"
else:
str="无刘海" if hair["Color"]==0:
str=str+"黑色"
elif hair["Color"]==1:
str=str+"金色"
elif hair["Color"]==2:
str=str+"棕色"
elif hair["Color"]==3:
str=str+"灰白色" if hair["Length"]==0:
str=str+"光头"
elif hair["Length"]==1:
str=str+"短发"
elif hair["Length"]==2:
str=str+"中发"
elif hair["Length"]==3:
str=str+"长发"
elif hair["Length"] == 4:
str=str+"绑发" people["Hair"]=str if face["EyeOpen"]=="True":
people["EyeOpen"]="睁着眼"
else:
people["EyeOpen"] = "闭着眼" print(data)
print(people)

输出结果:

实例应用-web界面上传照片后可进行人来你分析

界面展示

操作步骤

用户上传小于3M的照片后,进行智能判断即可分析人脸的属性

代码流程

①写个界面,包含图片上传以及属性input表格

②进行后端照片的存储,存储到本地,并将图片路径返回到界面,存储在一个hidden标签内

③当用户点击“智能判断”后,将图片路径返回后端,后端通过上面的纯py代码进行分析,将结果返回,然后呈现到界面上

实际测试

找了几个舍友和张一凡还有鞠婧祎进行测试

鞠婧祎:

张一凡:

人脸识别分析小Demo的更多相关文章

  1. 人脸识别ArcFace C#DEMO 开发应用全过程

    手上有一个项目,需要检验使用本程序的,是否本人!因为在程序使用前,我们都已经做过头像现场采集,所以源头呢是不成问题的,那么人脸检测,人脸比对,怎么办呢?度娘了下,目前流行的几个人脸检测,人脸比对核心, ...

  2. 虹软人脸识别——官方 Qt Demo 移植到 Linux

    一.前言 最近需要在 Linux 平台下开发一个人脸识别相关的应用,用到了虹软的人脸识别 SDK.之前在 Windows 平台用过,感觉不错,SDK 里面还带了 Demo 可以快速看到效果.打开 Li ...

  3. 基于Arcface 免费离线人脸识别 2.0 Demo C#

    本来打算做个C#版demo,但没用成功.使用虹软最新人脸识别技术开发完成 过程如下: 1. 传入一张单人脸照片: 2.调用检测人脸函数ASFDetectFaces,成功返回人脸信息的指针: 3.使用 ...

  4. 人脸识别最新开发经验demo分享

    本来打算做个C#版demo,但没用成功,基于虹软的免费人脸识别技术 过程如下: 1. 传入一张单人脸照片: 2.调用检测人脸函数ASFDetectFaces,成功返回人脸信息的指针: 3.使用 Mar ...

  5. Android静态图片人脸识别的完整demo(附完整源码)

    Demo功能:利用android自带的人脸识别进行识别,标记出眼睛和人脸位置.点击按键后进行人脸识别,完毕后显示到imageview上. 第一部分:布局文件activity_main.xml < ...

  6. C# ArcFace 免费人脸识别 2.0 demo

    **配置过程:** 1. 到[虹软官网](https://ai.arcsoft.com.cn/index.htm?utm_source=csdn&utm_medium=referral)下载S ...

  7. 基于百度AI人脸识别技术的Demo

    编写demo之前首先浏览官方API:http://ai.baidu.com/docs#/Face-API/top 下面是源码: package com.examsafety.test; import ...

  8. 人脸识别&ORC的Demo

    一.用到的jar包: face_sdk-1.3.4.jar json-20160810.jar ocr_sdk-1.3.4.jar 下载地址:https://files.cnblogs.com/fil ...

  9. Android开发 打开已存在的项目(以虹软人脸识别sdk的demo为例)

    详细流程参考博客https://blog.csdn.net/z979451341/article/details/79468785 个人遇到的问题与注意点 1.下载Demo后忘记修改appid和sdk ...

随机推荐

  1. HDU 6852 Increasing and Decreasing 构造

    题意: 给你一个n,x,y.你需要找出来一个长度为n的序列,使得这个序列满足最长上升子序列长度为x,最长下降子序列长度为y.且这个序列中每个数字只能出现一次 且要保证最后输出的序列的字典序最小 题解: ...

  2. Paths on a Grid POJ - 1942 排列组合

    题意: 从左下角移动到右上角.每次只能向上或者向右移动一格.问移动的轨迹形成的右半边图形有多少种 题解: 注意,这个图形就根本不会重复,那就是n*m的图形,向上移动n次,向右移动m次. 从左下角移动到 ...

  3. 20162017-acmicpc-south-pacific-regional-contest-sppc-16 B.Ballon Warehouse

    题意:给你一个无限长且元素均为\(0\)的排列,每次给你一对\((x,y)\),表示在所有\(x\)的后面插入一个元素\(y\),最后给你一个区间\((l,r)\),输出\([l,r-1]\)中的所有 ...

  4. Linux系统编程【2】——编写who命令

    学到的知识点 通过实现who命令,学到了: 1.使用man命令寻找相关信息 2.基于文件编程 3.体会到c库函数与系统调用的不同 4.加深对缓冲技术的理解 who命令的作用 who命令的使用 在控制终 ...

  5. C#之字符编码

    在 Windows Vista 及之后的版本中,每个Unicode字符都使用UTF-16编码,UTF的全称是 Unicode Transformation Format(Unicode 转换格式).U ...

  6. ApiPost V5 升级指南

    同旧版本相比,ApiPost V5 (以下简称V5)重新规划了底层架构,大大降低了内存使用率:并加入了大量新功能,用户体验也有了全新的提升.但是同旧版相比,很多使用方式有所不同,本文重点讲解以下用户升 ...

  7. Redis的主从架构+哨兵模式

    Redis主从架构 redis主从架构搭建,配置从节点步骤: 1.复制一份redis.conf文件的目录 cd /usr/local/java cp -a redis redis_6380 2.将相关 ...

  8. 部署开源IP管理工具phpIPAM

    一.安装环境程序: yum install httpd mariadb-server php php-cli php-gd php-common php-ldap php-pdo php-pear p ...

  9. GoAccess 监控工具

    GoAccess 基本概述 简易的统计访问量的软件,官方安装教程 GoAccess 安装 # 下载包 [root@web01 ~]# wget http://tar.goaccess.io/goacc ...

  10. scu-4445

    Right turn frog is trapped in a maze. The maze is infinitely large and divided into grids. It also c ...