1引言
人脸识别作为一种
“以貌取人”的生物智能识别技术,与其他生物识别技术相比,
具有易获取、易识别、准确率高、直观性好等优点。人脸比对在人们的生活中应用广泛。通过比对两张图片中的人脸相似度并返回两两比对的得分,判断两张脸是否是同一人的可能性大小,人脸比对这一技术将辅助人们更加快捷有效地完成身份验证。目前,人脸对比检测技术主要包括:基于肤、基于特征、基于模板匹配和基于统计学习。项目组采用百度AI 的人脸比对功能,采用Python 进行数据抓取制作了GUI 界面方便用户使用。
2访问流程
百度提供的人脸识别集合了人脸检测、
人脸比对、人脸搜索等技术,广泛应用于人脸实名认证、城市公共交通、手机刷脸登陆、人脸采集等场景,无需人工干预,机器自动搜索人
脸特征并完成分析,全面提升识别效率。其中,人脸比对功能根据用户选择的两张照片自动进行相似度分析,得出可能性大小,判断是否为同一人。
百度的人脸比对采用HTTP 调用方式。百度AIP 开放平台使用OAuth 2.0授权调用开放向API ,调用API 时必须在URL 中带上Access_token 参数[1]。
2.1获取Access_token
获取Access_token 的流程是:
创建应用,获取API Key 与Secret Key ,向授权服务地址aip.baidubce/oauth/2.0/token 发送请求(优先采用POST ),并在URL 中带上参数:grant_type=client_credentials 、client_id=API Key 、client_secret=Secret Key 。
获取Access_token 的Python 代码是[2],response =(host)token=response.json()
Access_token=token['access_token']
返回的Expires_in 表示Access Token 的有效期(单位:秒)。
2.2发送请求
人脸比对的请求URL 是https;//aip.baiduce/rest/2.0/face/v1/merge 。获得人脸比对的部分python 代码是:
import tkinter.filedialog
【基金项目】①四川省大学生创新创业项目“基于爬虫技术的信息采集器”(2019SCETC-19);②四川工程职业技术学院大学生创新创业项目“人工智能技术实现零部件缺陷识别”(2019SCETC-75)。
【作者简介】傅骏(1973-),男,四川仪陇人,教授,从事职业教育、
人工智能研究。
人脸比对智能程序的开发实践
The Development Practice of Face Comparison Intelligent Program
傅骏1,傅馨竹2,吴高静1,熊子淇1,龙辉阳1
(1.四川工程职业技术学院材料工程系,四川德阳618000;2.德阳市岷山路小学,
四川德阳618000)FU Jun 1,FU Xin-zhu 2,WU Gao-jing 1,XIONG Zi-qi 1,LONG Hui-yang 1
(1.Department of Materials Engineering,Sichuan Engineering Technical College,Deyang 618000,China;
2.Deyang Minshanlu Primary School,Deyang 618000,China)
【摘要】在百度平台创建应用,获得API Key 和Secret Key 。选用HTTP 访问方式,获得人脸比对的Access_token 。利用Python 代码向URL 发送请求,获取了“人脸比对”结果,通过数据抓取显示了比对结果。利用Tkinter 设计的GUI 界面,用户只需要选择两张人脸图片,可以立即获得比对结果。python能在手机上运行吗
【Abstract】Creating an application on Baidu platform and getting the API Key and Secret Key.The Access_token of face comparison is
obtained by using HTTP access method.Using Python code to send a request to the URL,the "face comparison"result is obtained,and the comparison result is displayed by data capture.Using the GUI interface designed by Tkinter,the user only needs to select two images of faces,and the comparison results can be obtained immediately.
【关键词】Python ;Tkinter ;百度;AI ;二次开发
【Keywords】Python;Tkinter;Baidu;AI;secondary development 【中图分类号】TP391
【文献标志码】A
【文章编号】1673-1069(2020)01-0180-02
180
. All Rights Reserved.
global labejieguo
client=AipFace(APP_ID,API_KEY,SECRET_KEY)
3程序开发的关键技术
设计任务是:利用Tkinter技术开发GUI界面,用百度AI 提供的技术,实现:人脸对比的技术。用户进入界面后,点击左侧图片、右侧图片选择要对比的图片,选择完毕后再单击“是同一人吗”,结果就显示在了窗体上[3]。
3.1Tkinter界面设计
在界面上设置了5个标签、3个按钮等控件。5个标签分别显示:左侧图片、左侧图片的路径、右侧图片、右侧图片的路径、人脸对比的结果。3个按钮分别为“左侧图片”“右侧图片”“是同一人吗”。采用place函数设置各个控件的位置,以下代码分别实现标签和按钮的位置:
Btn人脸比对=Button(root,text='是同一人吗',bg='black', fg='white',command=人脸比对)
Btn人脸比对.place(x=350,y=340)
label=Label(root,text=str(picc1),width=30,height=1,bg= 'black',fg='white')
label.place(x=75,y=315)
3.2“左侧图片”代码
“左侧图片”选择图像并在左侧标签上显示出来。利用askopenfilename函数打开“打开”对话框,在标签上显示使用命令image=tkImage1。在应用之前,要先import导入相关库。
import tkinter.filedialog
from tkinter.filedialog import askopenfilename
picc1=askopenfilename(initialdir='D:',filetypes=(("jpg图片","*.jpg"),("全部文件","*.*")))
pilImage=Image.open(picc1)
tkImage1=ImageTk.PhotoImage(image=pilImage)
labe1=Label(root,image=tkImage1,width=ww,height=hh) 3.3“是同一人吗”按钮功能
“是同一人吗”后台调用百度开放功能进行人脸比对。
百度要求的图片导入格式是Base64。图片的Base64编码指将图片数据编码成一串字符串,使用该字符串代替图像地址。可以首先得到图片的二进制,然后用Base64格式编码即可。读取图片,将图片转化为64编码的代码为base64. b64encode(open(f,'rb').read())。
采用def函数功能将按钮与百度人脸对比的结果进行定义[4]。
import base64
from aip import AipFace
client=AipFace(APP_ID,API_KEY,SECRET_KEY) result=client.match([{'image':(base64.b64encode(op
en (picc1,'rb').read())).decode(),
'image_type':'BASE64','face_type':'LIVE'},{'image': (base64.b64encode(open(picc2,'rb').read())).decode(), 'image_type':'BASE64'}])
在运行完人脸对比的代码后,百度AI提供了多个信息,需要对result结果进行数据抓取后显示出来。抓取后,根据其中的score分别设置不同的得分段,给出结果,分别有“就是同一人”“很可能是同一人”“不是同一人”。如果提供的照片不是人脸,则给出提示要求用户重新选择照片。
程序运行界面如图1所示。
图1“人脸对比”运行结果
4结语
采用Python语言,利用HTTP方式访问人脸识别,获取Access_token,实现了“人脸比对”功能并进行数据抓取。用Tkinter设计了GUI界面,用户选择图片后,可以获得比对的结果。
人工智能技术方兴未艾,百度为用户使用人工智能技术提供了多种技术和平台,助力人工智能技术走进各行各业。通过此次实践,项目组掌握了人脸比对的基本技术,实现了精准的“无感式”识别,为企业定制化人脸应用程序奠定了基础。
【参考文献】
【1】孟令长.基于云服务器的软件发布平台的设计与实现[D].长沙:湖南大学,2017.
【2】包艳秋.基于人工智能的交互艺术设计研究[D].杭州:浙江理工大学,2019.
【3】傅骏,傅馨竹,郝文源,等.基于Tkinter的百度AI图像识别技术二次开发实践[J].科技风,2019(09):69+75.
【4】刘慧娟,赵东明.基于人脸识别技术的智慧营业厅系统研究与应用[J].数字技术与应用,2019(02):89-90.
人脸对比
181
. All Rights Reserved.