标题 | 基于Tkinter的百度AI图像识别技术二次开发实践 |
范文 | 傅骏 傅馨竹 郝文源 等 摘 要:通过tkinter二次开发,将百度AI提供的人工智能识别结果进行抓取,显示了用户关心的结果。生成可执行文件发布,完成了设计任务。 关键词:Python Tkinter;百度大脑;百度AI;二次开发 人工智能技术方兴未艾,世界各国意识到,谁掌握人工智能,谁就将成为核心技术的掌控者。2017年7月8日《国务院关于印发新一代人工智能发展规划的通知》宣布:举全国之力,在2030年一定要抢占人工智能全球制高点;从即日起,在全国中小学开展计算机编程教育。 本文以Tkinter结合百度AI开放平台提供的PythonSDK进行了二次开发,实现了百度AI图像功能的GUI界面。 1 开发工具 百度AI平台提供了基于Python的SDK,用户根据需要下载对应的SDK,即可免费使用其功能。 1.1 Python Python的跨平台特性受到大家的青睐,人工智能的需求进一步促进了Python的流行。2017年7月,IEEE发布当年编程语言排行榜,第一位是Python。全国计算机等级考试2018年9月第一次开考Python语言,可见国家也认识到了Python语言的重要性。 1.2 百度大脑 2018年7月,百度大脑3.0发布。百度大脑3.0开放了110多项能力。百度大脑的四大功能分别是语音、图像,自然语言处理和用户画像这四大能力。用户注册后,获得APPID、APIKey、SecretKey。根据使用情况不同,实行免费或收费。百度还提供了多个AI平台免费使用。 1.3 Tkinter Python的GUI设计工具有Tkinter、WxPython、PyQt等,各有优缺点。Tkinter是Python自带的标准GUI库,安装Python后直接使用Tkinter,不需额外安装,使用前用from tkinter import * 导入tkinter。第三方GUI界面设计后经过转换成Python语言才可使用。 2 程序开发的关键技术 设计任务是,利用Tkinter技术开发GUI界面,基于百度AI提供的开源技术,实现5个功能:人脸检测、动物识别、植物识别、车型识别、文字识别。用户选择图片后,单击对应的按钮,获得识别结果,其中“文字识别”的结果以txt形式保存在硬盘上,其余结果显示在窗体上。 2.1 百度AI结果抓取 百度AI提供的结果信息量大,用戶需要对其中数据进行抓取。下列代码对百度人脸检测功能“颜值”结果进行抓取,结果存放在变量yanzhi中。 resul=result['result'] resu=resul['face_list'] res=resu[0] yanzhi=res['beauty'] 2.2 欢迎界面设计 程序运行后,首先显示欢迎界面。核心代码是, tkinter.messagebox.showinfo('欢迎',"百度AI人工智能"+"\\n"+"2018年11月出品") 2.3 界面设计 在界面上设置了3个标签、7个按钮等控件。3个标签分别显示图片、百度AI结果、运行时间等。7个按钮有“选择图片”、“结束”以及五个实现百度图像功能按钮。 采用place函数设置各个控件的位置,以下代码分别实现标签和按钮的位置, btn=Button(root,text="选择图片",command=xz).place(x=120,y=20) label=Label(root,width=23,height=6,bg='blue',fg='white').place(x=450,y=150) 2.4 “选择图片”功能 “选择图片”按钮打开选择文件对话框,并将其显示在界面的标签Label上,其核心代码是, pilImage = tkinter.filedialog.askopenfilename() pil = Image.open(pilImage) tkImage = ImageTk.PhotoImage(image=pilImage) label =Label(root,image=tkImage,width=ww,height=hh) 2.5 识别按钮功能设计 采用def函数功能将按钮与百度AI结果进行定义。以下代码实现“动物检测”按钮与百度AI结果的链接, def dongwujiance client = AipImageClassify(APP_ID,API_KEY,SECRET_KEY) def get_file_content(filePath): with open(filePath,'rb')as fp: return fp.read() btn = Button(root,text="动物识别",command=dongwujiance) 2.6 菜单设计 菜单设计的代码是, smenu1=Menu(fmenu1,tearoff=0) fmenu1.add_cascade(label='关于',menu=smenu1) for item in['版权信息']: smenu1.add_command(label=item,command=syu) root['menu']=fmenu1 其中,实现“版权信息”的代码是, defsyu(): tkinter.messagebox.showinfo('版权','版本号0.5.2'+'\\n'+'制作:学生团队') 2.7 生成可执行文件 编写代码后进行测试。测试后,删除全部断点及部分注释,生成可执行文件,提供给用户使用。生成可执行文件exe的方法是在DOS中输入代码, >pip install pyinstaller >pyinstaller –F –w python.py 3 结语 作品参加学院科技节,获得计算机作品大赛二等奖,锻炼了学生能力,提高了学生的人工智能技术水平,提升了大学生的素质。发布的作品得到了大家的喜好,推广了人工智能技术。 参考文献: [1]傅骏,傅馨竹,廖先强.开源人工智能平台与编程技术的综合应用实践[J].河北农机,2018(10):70-71. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。