opexcel.py

import xlrd
import xlwt
from xlutils.copy import copy
class Operatingexcel():def get_excel_dic(self,filename,sheetname):# filename 文件名# sheetname 表单名# 返回字典格式dic = {}data = xlrd.open_workbook(filename, 'r', encoding_override='utf-8')table = data.sheet_by_name(sheetname)for i in range(1, table.nrows):for y in range(len(table.row_values(0))):if table.row_values(i)[y] != "":dic.setdefault(table.row_values(0)[y], []).append(table.row_values(i)[y])return dicdef get_excel_list(self,filename,sheetname):# filename 文件名# sheetname 表单名# 返回列表格式list = []data = xlrd.open_workbook(filename, 'r', encoding_override='utf-8')table = data.sheet_by_name(sheetname)for y in range(table.nrows):for x in range(len(table.row_values(0))):if table.row_values(y)[x] != "":list.append(table.row_values(y)[x])return listdef set_excel_dic(self,dic,filename,sheet_index,start_r):# filename 文件名# sheet_index第几个工作表格# start_r那一列x = start_rfor k in dic.keys():list = []list.append(k)for v in dic[k]:list.append(v)self.set_excel_list(list,filename,sheet_index,x)x = x + 1def set_excel_list(self,list,filename,sheet_index,start_r):# filename 文件名# sheet_index第几个工作表格# start_r那一列# 读取excel文件r_xls = xlrd.open_workbook(filename)# 将xlrd的对象转化为xlwt的对象excel = copy(r_xls)table = excel.get_sheet(sheet_index)for y in range(len(list)):table.write(y,start_r,str(list[y]))excel.save(filename)

Draw.py

from pyecharts.charts import Pie
from pyecharts import options as opts
from pyecharts.charts import Line
class Draw():def drawpie(attr,value,name):list1 = [list(z) for z in zip(attr,value)]# 图表初始化配置init_opts = opts.InitOpts(page_title=name)pie = Pie(init_opts=init_opts)# 标题配置title = opts.TitleOpts(title=name,pos_left='center')# 图例配置legend_opts = opts.LegendOpts(orient="vertical",pos_top="20%",pos_left="15%")# 工具箱配置# feature = opts.ToolBoxFeatureOpts(save_as_image=True, restore=True, data_view=True, data_zoom=True)# 工具箱配置toolbox_opts = opts.ToolboxOpts(orient="vertical",pos_top="25%",pos_right="15%")pie.set_global_opts(title_opts=title,legend_opts=legend_opts,toolbox_opts=toolbox_opts)# 标签配置项pie.add("",list1,radius=[30, 75],center=['50%', '70%'],rosetype="area",label_opts=opts.LabelOpts(position="outside",formatter="{b|{b}: }{c}  {per|{d}%}  ",background_color="#eee",border_color="#aaa",border_width=1,border_radius=4,rich={"a": {"color": "#999", "lineHeight": 22, "align": "center"},"abg": {"backgroundColor": "#e3e3e3","width": "100%","align": "right","height": 22,"borderRadius": [4, 4, 0, 0],},"hr": {"borderColor": "#aaa","width": "100%","borderWidth": 0.5,"height": 0,},"b": {"fontSize": 16, "lineHeight": 33},"per": {"color": "#eee","backgroundColor": "#334455","padding": [2, 4],"borderRadius": 2,},},),)pie.render('{0}.html'.format(name))# 趋势图def drawline(list1,list4,name):# 图表初始化配置init_opts = opts.InitOpts(page_title=name)line = Line(init_opts=init_opts)# 标题配置title = opts.TitleOpts(title=name,pos_left="10%")# 图例配置legend_opts = opts.LegendOpts(orient="horizontal",pos_top="5%",pos_right="15%")# 工具箱配置# feature = opts.ToolBoxFeatureOpts(save_as_image=True, restore=True, data_view=True, data_zoom=True)# 工具箱配置toolbox_opts = opts.ToolboxOpts(orient="vertical",pos_bottom="15%",pos_left="90%",)line.set_global_opts(title_opts=title,legend_opts=legend_opts,toolbox_opts=toolbox_opts,yaxis_opts=opts.AxisOpts(name="单位:岁",# axislabel_opts=opts.LabelOpts(formatter="{value}例",),xaxis_opts=opts.AxisOpts(name="日期"),datazoom_opts = opts.DataZoomOpts(orient="vertical"),)line.add_xaxis(list4, )line.add_yaxis(name, list1, is_smooth=True, linestyle_opts=opts.LineStyleOpts(color="#E83132", width="4"))line.render('{0}.html'.format(name))

统计人脸.py

"""
author:魏振东
date:20200331
func:腾讯优图人脸识别
"""
import TencentYoutuyun
import os
from tencent.Draw import Draw
from opdata.opexcel import Operatingexcel# 输入路径返回有效数据
def youtu(image_path):appid = '10151047'secret_id = 'AKID59AA4pi1Sis5GIS2tdCe1b7W2T2asTjr'secret_key = 'N5mMxsiO6zjIk7Kj3DIPPLG4mOvOjvpk'userid = '924271966'end_point = TencentYoutuyun.conf.API_YOUTU_END_POINT  # 优图开放平台youtu = TencentYoutuyun.YouTu(appid, secret_id, secret_key, userid, end_point)req = youtu.DetectFace(image_path=image_path, mode=0, data_type=0)return req# 以字典形式返回有效数据,以及所有图片的长度
def youtu_face():# 获取所有文件名称imgs = os.listdir("img")dic_face = {}# 分析人脸,并把人脸数据存储到字典中for i in imgs:path = "img/{0}".format(i)req = youtu(path)if req["face"] != [] and req["face"][0] != {}:dic_face.setdefault("人脸", []).append(req)return dic_face["人脸"],len(imgs)# gender Int 性别[0/(female)~100(male)]
def data_gender(list):female = 0male = 0for i in list:if int(i)>=50:male = male + 1else:female = female + 1return female,male# glasses    Int 眼镜[0不戴眼镜 1戴眼镜 2戴墨镜] 注:替代原glass(Bool)字段
def data_glasses(list):glasses0 = 0glasses1 = 0glasses2 = 0for i in list:if int(i)==0:glasses0 =  glasses0 + 1elif int(i)==0:glasses1 = glasses1 + 1else:glasses2 = glasses2 + 1return glasses0,glasses1,glasses2if __name__ == '__main__':d = Drawog = Operatingexcel()dic_face,len_img = youtu_face()""""下载一些图片,包括人像,动物,花朵还有你自己的相片,编程实现识别识别人像,统计人像图片的个数,用饼状图表示占比。"""attr = ['人像', '非人像']value = [len(dic_face), len_img-len(dic_face)]d.drawpie(attr, value,"人像比例")# 因为每次分析数据比较麻烦,所以吧数据保存到excel中# dict = {}# for i in dic_face:#     dict.setdefault("性别", []).append(i["face"][0]["gender"])#     dict.setdefault("年龄", []).append(i["face"][0]["age"])#     dict.setdefault("微笑", []).append(i["face"][0]["expression"])#     dict.setdefault("魅力", []).append(i["face"][0]["beauty"])#     dict.setdefault("眼镜", []).append(i["face"][0]["glasses"])# print(dict)# 保存到文件中# og.set_excel_dic(dict, "统计信息.xlsx", 0, 0)""""对文件夹中的人像图片,测颜值、是否带帽子、戴眼镜等属性并输出。"""dicc = og.get_excel_dic("统计信息.xlsx", "Sheet1")"""性别比例饼状图"""female,male = data_gender(dicc["性别"])attr = ['female', 'male']value = [female, male]d.drawpie(attr, value,"男女比例饼状图")""""年龄折线图"""l = [str(x) for x in range(len(dicc["年龄"]))]d.drawline(list1=dicc["年龄"],list4=l,name="年龄折线图")"""微笑人数饼图"""female,male = data_gender(dicc["微笑"])attr = ['笑', '不笑']value = [female, male]d.drawpie(attr, value,"微笑人数饼图")"""魅力值折线图"""l = [str(x) for x in range(len(dicc["魅力"]))]d.drawline(list1=dicc["魅力"],list4=l,name="魅力值")""""眼镜饼状图"""glasses0,glasses1,glasses2 = data_glasses(dicc["眼镜"])attr = ['不戴眼镜', '戴眼镜', '戴墨镜']value = [glasses0,glasses1,glasses2]d.drawpie(attr, value,"眼镜饼状图")




https://github.com/lofxve/youtu

Python调用腾讯优图进行人脸检测分析,并可视化相关推荐

  1. Python调用腾讯优图OCR通用API实现文字识别

    API地址:https://ai.qq.com/doc/ocrgeneralocr.shtml 腾讯优图的API比较复杂的就是生成签名,不过不知道腾讯的服务器出什么问题了,调用的时候一直提示504,演 ...

  2. 腾讯优图实现人脸对比

    1.腾讯优图的开发者申请,通过QQ号登陆并绑定邮箱后,在应用管理中查看申请得到的AppID,SecretID以及SecretKey. 2.通过http进行请求发送时,都需要在请求头中添加对应信息.对签 ...

  3. 调用腾讯优图OCR手写体文字识别接口

    一.百度搜索:腾讯优图·AI开放平台: 二.点击技术体验中心,可以体验一下效果: 三.点击开发者中心,左侧找到"API文档"里面的"通用手写体文字识别".这里面 ...

  4. CVPR2018 | 摆好Pose却没管理好面部表情?腾讯优图Facelet-Bank人脸处理技术了解一下...

    选自arXiv 作者:Ying-Cong Chen等 机器之心编译 参与:乾树.王淑婷 拍的照片看起来太严肃?蓄着胡子有点老?没关系,Facelet-Bank 可以通通帮你解决.近日,腾讯优图研发出一 ...

  5. 调用腾讯优图开放平台进行人脸识别-Java调用API实现

    第一步:鉴权服务技术方案 Java代码实现如下 import java.util.Date; import com.baidu.aip.util.Base64Util; /** * 获取Authori ...

  6. Python调用笔记本摄像头,并实现人脸检测功能

    回家第一天感觉好无聊,一天睡了十几个小时,电视剧也看完了,就玩玩Python调用笔记本摄像头并实现人脸检测. 我们使用的是Python中的opencv库实现人脸检测,前面已经有一篇博客介绍如何下载op ...

  7. 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源...

    雷锋网(公众号:雷锋网) AI 科技评论按:近年来,卷积神经网络在人脸检测中取得了很大的成功,然而这些方法在处理人脸中多变的尺度,姿态,遮挡,表情,光照等问题时依然比较困难.为此,腾讯优图推出名为 D ...

  8. 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源

    雷锋网(公众号:雷锋网) AI 科技评论按:近年来,卷积神经网络在人脸检测中取得了很大的成功,然而这些方法在处理人脸中多变的尺度,姿态,遮挡,表情,光照等问题时依然比较困难.为此,腾讯优图推出名为 D ...

  9. 重磅!刷新两项世界纪录的腾讯优图人脸检测算法DSFD开源了!

    近日,知名开源社区Github上有个名为DSFD(Dual Shot Face Detector)的算法引起了业内关注,它正是来自于腾讯优图.目前,该算法已经被计算机视觉顶级会议CVPR 2019接收 ...

最新文章

  1. 【seaborn】(1) 数据可视化,绘图风格、布局
  2. GDB 格式化结构体输出
  3. 为什么苹果 M1 芯片如此之快?
  4. 玩远程 可视对讲系统几大新兴应用分析
  5. 【杂谈】有三AI限量定制版书签来了,你准备好入手了吗?
  6. 含代码 | 支付宝如何优化移动端深度学习引擎?
  7. Nagios 配置及监控
  8. mysql 快速初始化_MySQL中的批量初始化数据的对比测试(r12笔记第71天)
  9. 17 倍新增转化率?快应用单挑 APP,妥妥滴!
  10. php基础之时间格式化
  11. csdn如何写出文章,拥有较高的推荐量以及点击率
  12. 电路交换、报文交换和分组交换的区别
  13. HKC PG27P5U评测怎么样
  14. m选n组合的两种算法(C语言实现)
  15. android设置透明主题后背景为黑色,android – 活动应该是透明的,但有黑色背景
  16. puppet server升级,puppet 常见错误解决
  17. /node_modules/.bin/vue-cli-service: Permission denied
  18. DaVinci Resolve Studio 15(达芬奇调色软件) Mac永久破解激活方法
  19. 手机软件测试分类(测试分类)
  20. 百度云网盘-kyee_ye的分享

热门文章

  1. 世界上最小最轻的伺服驱动控制器
  2. canvas画布变换画六芒星
  3. ngIf和ngFor共用
  4. Qiskit随笔(2)——可视化
  5. 数据库管理员(dba)的介绍
  6. 曲阜水利学校计算机96级聚会,今日调剂信息汇总(5月8日更新,含近期发布消息)...
  7. 如何查看一个视频的分辨率?
  8. db2 bigint java_db2 - 一个bigint问题
  9. QQ 可以注销,青春如何删除?
  10. AR在工业领域的应用:印刷电路板的检查和抛光表面的质量评估|effiar