傅駿 傅馨竹 郝文源 等
摘 要:通過tkinter二次開發(fā),將百度AI提供的人工智能識別結(jié)果進行抓取,顯示了用戶關(guān)心的結(jié)果。生成可執(zhí)行文件發(fā)布,完成了設(shè)計任務(wù)。
關(guān)鍵詞:Python Tkinter;百度大腦;百度AI;二次開發(fā)
人工智能技術(shù)方興未艾,世界各國意識到,誰掌握人工智能,誰就將成為核心技術(shù)的掌控者。2017年7月8日《國務(wù)院關(guān)于印發(fā)新一代人工智能發(fā)展規(guī)劃的通知》宣布:舉全國之力,在2030年一定要搶占人工智能全球制高點;從即日起,在全國中小學開展計算機編程教育。
本文以Tkinter結(jié)合百度AI開放平臺提供的PythonSDK進行了二次開發(fā),實現(xiàn)了百度AI圖像功能的GUI界面。
1 開發(fā)工具
百度AI平臺提供了基于Python的SDK,用戶根據(jù)需要下載對應(yīng)的SDK,即可免費使用其功能。
1.1 Python
Python的跨平臺特性受到大家的青睞,人工智能的需求進一步促進了Python的流行。2017年7月,IEEE發(fā)布當年編程語言排行榜,第一位是Python。全國計算機等級考試2018年9月第一次開考Python語言,可見國家也認識到了Python語言的重要性。
1.2 百度大腦
2018年7月,百度大腦3.0發(fā)布。百度大腦3.0開放了110多項能力。百度大腦的四大功能分別是語音、圖像,自然語言處理和用戶畫像這四大能力。用戶注冊后,獲得APPID、APIKey、SecretKey。根據(jù)使用情況不同,實行免費或收費。百度還提供了多個AI平臺免費使用。
1.3 Tkinter
Python的GUI設(shè)計工具有Tkinter、WxPython、PyQt等,各有優(yōu)缺點。Tkinter是Python自帶的標準GUI庫,安裝Python后直接使用Tkinter,不需額外安裝,使用前用from tkinter import * 導入tkinter。第三方GUI界面設(shè)計后經(jīng)過轉(zhuǎn)換成Python語言才可使用。
2 程序開發(fā)的關(guān)鍵技術(shù)
設(shè)計任務(wù)是,利用Tkinter技術(shù)開發(fā)GUI界面,基于百度AI提供的開源技術(shù),實現(xiàn)5個功能:人臉檢測、動物識別、植物識別、車型識別、文字識別。用戶選擇圖片后,單擊對應(yīng)的按鈕,獲得識別結(jié)果,其中“文字識別”的結(jié)果以txt形式保存在硬盤上,其余結(jié)果顯示在窗體上。
2.1 百度AI結(jié)果抓取
百度AI提供的結(jié)果信息量大,用戶需要對其中數(shù)據(jù)進行抓取。下列代碼對百度人臉檢測功能“顏值”結(jié)果進行抓取,結(jié)果存放在變量yanzhi中。
resul=result['result']
resu=resul['face_list']
res=resu[0]
yanzhi=res['beauty']
2.2 歡迎界面設(shè)計
程序運行后,首先顯示歡迎界面。核心代碼是,
tkinter.messagebox.showinfo('歡迎',"百度AI人工智能"+"\\n"+"2018年11月出品")
2.3 界面設(shè)計
在界面上設(shè)置了3個標簽、7個按鈕等控件。3個標簽分別顯示圖片、百度AI結(jié)果、運行時間等。7個按鈕有“選擇圖片”、“結(jié)束”以及五個實現(xiàn)百度圖像功能按鈕。
采用place函數(shù)設(shè)置各個控件的位置,以下代碼分別實現(xiàn)標簽和按鈕的位置,
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 識別按鈕功能設(shè)計
采用def函數(shù)功能將按鈕與百度AI結(jié)果進行定義。以下代碼實現(xiàn)“動物檢測”按鈕與百度AI結(jié)果的鏈接,
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 菜單設(shè)計
菜單設(shè)計的代碼是,
smenu1=Menu(fmenu1,tearoff=0)
fmenu1.add_cascade(label='關(guān)于',menu=smenu1)
for item in['版權(quán)信息']:
smenu1.add_command(label=item,command=syu)
root['menu']=fmenu1
其中,實現(xiàn)“版權(quán)信息”的代碼是,
defsyu():
tkinter.messagebox.showinfo('版權(quán)','版本號0.5.2'+'\\n'+'制作:學生團隊')
2.7 生成可執(zhí)行文件
編寫代碼后進行測試。測試后,刪除全部斷點及部分注釋,生成可執(zhí)行文件,提供給用戶使用。生成可執(zhí)行文件exe的方法是在DOS中輸入代碼,
>pip install pyinstaller
>pyinstaller –F –w python.py
3 結(jié)語
作品參加學院科技節(jié),獲得計算機作品大賽二等獎,鍛煉了學生能力,提高了學生的人工智能技術(shù)水平,提升了大學生的素質(zhì)。發(fā)布的作品得到了大家的喜好,推廣了人工智能技術(shù)。
參考文獻:
[1]傅駿,傅馨竹,廖先強.開源人工智能平臺與編程技術(shù)的綜合應(yīng)用實踐[J].河北農(nóng)機,2018(10):70-71.