微信官方的人脸识别接口,微信在哪里进行人脸识别认证

  微信官方的人脸识别接口,微信在哪里进行人脸识别认证

  实现方式主要通过以下模块实现:

  DateFromWebChat(从网页版微信窗口下载好友头像)

  AI(识别模块,主要用于识别好友头像是否是人脸,并计算人脸数量和头像总数并返回)

  DateVisul(数据可视化模块,用于可视化AI模块返回的参数)

  Union(集成上述三个模块的顶层模块)

  知识准备:

  python中opencv图像处理模块的使用(主要是CascadeClassifier和detectMultiScale人脸识别功能)

  python中os模块的使用(主要涉及到两个函数的使用:os.imread灰度图像处理和os.listdir(path)获取路径下的文件)

  使用sys模块(sys.stdout.flush()缓冲区一次返回一个值)

  python中matplotlib图形框架的使用(涉及饼状图plt.pie的使用和使用Matplotlib。font _ manager。字体属性来设置文本显示模式)

  知识分析:

  需要导入的包数

  导入itchat

  导入操作系统

  导入cv2

  将matplotlib.pyplot作为plt导入

  导入matplotlib.font_manager

  导入系统

  #DateFromWebChat模块完整代码

  class DataFromWebchat:

  def __init__(self,facedir):

  Self.facedir=facedir #接收图像文件的目录

  及格

  def downloadFriendFaces(self):

  打印(开始登录.)

  it chat . auto _ log in(hot reload=True)

  打印(开始获取好友列表. )

  friends=itchat.get_friends()

  打印(开始下载朋友的头像.)

  计数=0

  对于朋友中的朋友:

  打印(.,end=“”)

  if (count 1)`==0:

  打印()

  sys.stdout.flush()

  用户名=朋友[用户名]

  filename=self . facedir faced . png %(count)#设置文件名

  用open(文件名, wb )作为fd:

  face date=it chat . Get _ head _ img(username=username)#获取头像

  fd.write(faceDate)

  计数=1

  打印(‘朋友’头像下载!)

  #完整的人脸识别代码如下

  AI类:

  def __init__(self,facedir):

  #创建一个分类器并初始化它

  self.facedir=facedir

  self.classtool=cv2。cascade classifier( C: Users Administrator AppData Local Programs Python Python 37 Lib site-packages cv2 data Haar cascade _ frontal face _ alt . XML )

  #请注意,面部分类器的参数道路强度必须是绝对道路强度,而不是相对道路强度,否则会出错

  定义识别(自我):

  Sum=0 #记录的头像总数

  Facenum=0 #记录的面孔总数

  #遍历图像以识别它是否是人脸

  打印(开始识别是否是人脸.....................

  files=OS . listdir(self . facedir)#获取路径下的所有文件

  对于文件中的文件:

  if (sum 1) % 60==0:

  打印()

  file=self.facedir文件

  if os.path.splitext(file)[1]==。png :

  Img=cv2.imread(file) #图像灰度处理

  # print(img=,img)

  faces=self . class tool . detect multi scale(image=img,scaleFactor=1.2,minNeighbors=5)

  #第一个参数是传入的灰度图像,第二个是我的小矩形的缩放比例,第三个是确定要满足的小矩形数量。

  如果镜头(面)为0:

  facenum=1

  打印( 33[33m。33[0m ,end= )

  否则:

  print(33[34mx33[0m ,end= )

  sys.stdout.flush()

  总和=1

  打印(‘头像识别完成!)

  Return (sum,facenum)# return参数由DateVisual模块使用

  #完整的可视化模块如下

  类别可视日期:

  def __init__(self):

  self . font=matplotlib . font _ manager。font properties(fname=r c: windows fonts simsun . TTC )

  plt.figure(figsize=(9,6),dpi=80)

  plt.axes(aspect=1) #设置此项,图形为圆形,否则为椭圆形

  打印(数据可视化。)

  def visualround(自身,数据):

  sum=data[0]

  facenum=data[1]

  Pie=plt.pie ((100.0 * facenum/sum,100.0 * (sum-facenum)/sum),#计算饼图出现的频率

  Labels=(用人脸做头像,不用人脸做头像),#设置图形边界的描述标签。

  Colors=(yellow , purple ),# color设置饼图的

  Labeldistance=1.1,#设置标签距中心点的距离。

  Pct=% 5.2f%% ,#设置频率的数字格式

  Shadow=False,#设置是否有阴影。

  Startangle=0,#绘图的实际角度

  Pctdistance=0.6) #设置饼图离原点的距离。

  对于饼图[1]中的温度:

  temp . set _ font properties(self . font)#提取标签元组元素来设置字符集。

  plt.title(微信好友使用人脸头像情况(总数=%d) % data[0],fontproperties=self.font)#设置图形标题

  plt.show()#显示图形

  #工会模块完整代码如下

  班级联盟:

  date=DataFromWebchat(FECEDIR) #实例化类

  MyAi=AI(FECEDIR) #实例化人工智能类

  visual=VisualDate()#实例化类

  定义分析(自我):

  self.date.downloadFriendFaces()

  sum,facenum=self .MyAi.recognize()#提取参数

  self.visual.visualround((sum,facenum))

  打印(sum,facenum)

  run=union()

  run.analysis()

  代码运行效果截图:

  视觉100 . PNG

  微信好友图片下载截图:

  111.PNG

微信官方的人脸识别接口,微信在哪里进行人脸识别认证