馬文秀,李焱
摘要:隨著人工智能時(shí)代到來(lái),生活中隨處可見(jiàn)人工智能的應(yīng)用。Python語(yǔ)言是人工智能開(kāi)發(fā)的主流語(yǔ)言,現(xiàn)階段幾乎所有高校都開(kāi)設(shè)了Python程序設(shè)計(jì)課程,如何在教學(xué)中設(shè)計(jì)一系列有趣有用接地氣的案例尤為重要,既可體現(xiàn)Python生態(tài)語(yǔ)言的特點(diǎn),又能融入常用人工智能的應(yīng)用。目前諸多科技公司都搭建了AI應(yīng)用架構(gòu)平臺(tái),其中百度AI的開(kāi)放平臺(tái)具有功能全面且前沿,為開(kāi)發(fā)者提供的技術(shù)文檔也最全面。本文設(shè)計(jì)了一系列基于百度AI平臺(tái)用Python語(yǔ)言完成的人工智能應(yīng)用,程序由簡(jiǎn)到難,由單一功能模塊到綜合應(yīng)用的開(kāi)發(fā),循序漸進(jìn),讓學(xué)生逐步領(lǐng)會(huì)、掌握Python人工智能的應(yīng)用開(kāi)發(fā)。
關(guān)鍵詞:人工智能;百度AI平臺(tái);Python程序設(shè)計(jì);AI開(kāi)發(fā)能力;案例教學(xué)
中圖分類號(hào):G642? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)19-0204-02
1 簡(jiǎn)單的人工智能應(yīng)用案例
學(xué)生通過(guò)簡(jiǎn)單設(shè)置即可啟用百度AI開(kāi)發(fā)能力。首先登錄百度AI平臺(tái),注冊(cè)百度賬號(hào)。賬號(hào)登錄成功即可選擇需要的人工智能服務(wù)如:圖像識(shí)別、人臉識(shí)別、語(yǔ)音技術(shù)等項(xiàng)目。接著在對(duì)應(yīng)AI服務(wù)中創(chuàng)建應(yīng)用,獲取密鑰API Key及Secret Key,程序中將通過(guò)密鑰憑證調(diào)用對(duì)應(yīng)接口的AI能力。
教師要指導(dǎo)學(xué)生認(rèn)真閱讀百度Python SDK技術(shù)文檔,技術(shù)文檔是程序開(kāi)發(fā)者的寶典,在百度Python SDK文檔里詳細(xì)介紹了Python的baidu-aip開(kāi)發(fā)環(huán)境配置。常用方法是使用pip install baidu-aip安裝即可[1]。
1.1 基于百度AI的圖像識(shí)別案例
圖像識(shí)別是人工智能最常見(jiàn)的應(yīng)用之一,AipImageClassify是圖像識(shí)別的Python SDK客戶端,為圖像識(shí)別的開(kāi)發(fā)提供了一系列的交互方法。首先參考如下代碼新建一個(gè)AipImageClassify:(圖1所示)
案例1 公眾人物的識(shí)別。程序要求使用百度AI平臺(tái),編寫圖像識(shí)別應(yīng)用程序。輸入一張照片,識(shí)別照片公眾人物信息,并輸出識(shí)別結(jié)果。主要程序代碼參考(圖2所示):
可以進(jìn)一步鼓勵(lì)學(xué)生對(duì)案例1進(jìn)行舉一反三的程序編寫,通過(guò)改變client的參數(shù),進(jìn)行動(dòng)物識(shí)別client.animalDetect、菜品識(shí)別client.dishDetect等。
該案例代碼只有十來(lái)行,且沒(méi)有循環(huán)、分支結(jié)構(gòu),對(duì)于計(jì)算機(jī)語(yǔ)言的初學(xué)者也非常適合。
1.2基于百度AI的人臉識(shí)別案例
案例2輸入一張圖片,檢測(cè)是否有人臉存在,若檢測(cè)到則輸出人臉屬性的相關(guān)數(shù)據(jù),如年齡、性別、顏值、表情等信息。
通過(guò)本案例,了解人工智能在人臉識(shí)別及人臉屬性檢測(cè)領(lǐng)域的應(yīng)用。首先創(chuàng)建百度AI平臺(tái)人臉識(shí)別應(yīng)用,獲取該應(yīng)用的密鑰,調(diào)用百度AI人臉檢測(cè)接口。參考部分主要代碼如下(圖3所示):
2 進(jìn)階的人工智能應(yīng)用案例
在進(jìn)一步人工智能應(yīng)用案例里需要從百度AI識(shí)別結(jié)果中提取出識(shí)別物的關(guān)鍵詞,這就涉及Python組合數(shù)據(jù)類型字典型、列表型的綜合應(yīng)用,以及json格式數(shù)據(jù)的編碼解碼等操作。
2.1 百度AI識(shí)別結(jié)果數(shù)據(jù)分析
案例3 從菜品識(shí)別結(jié)果中提取出關(guān)鍵詞信息,如菜品的名稱、菜品熱量calorie以及該菜品百度百科簡(jiǎn)介等關(guān)鍵信息。并把這些AI識(shí)別關(guān)鍵信息寫入到以菜品名稱命名的txt文件中。
此案例為案例1的進(jìn)階,AI識(shí)別結(jié)果數(shù)據(jù)類型為字典dict。此處練習(xí)對(duì)字典類型鍵值對(duì)的操作。也可將字典數(shù)據(jù)轉(zhuǎn)換為層次清晰便于閱讀的json格式字符串,進(jìn)行數(shù)據(jù)保存。參考部分主要代碼如下(圖4所示):
學(xué)生可以進(jìn)一步對(duì)案例3進(jìn)行舉一反三練習(xí),如識(shí)別電影明星的詳細(xì)演藝生涯介紹,以及識(shí)別商品Logo及品牌背后的故事等。
2.2 百度AI識(shí)別結(jié)果關(guān)鍵詞寫入到圖片
案例4在人臉屬性檢測(cè)應(yīng)用中,用矩形框框選人臉,并在上方顯示年齡、性別及顏值。如果圖片中存在多張人臉,請(qǐng)分別識(shí)別標(biāo)出。
此案例是對(duì)案例2的進(jìn)階,如何將人臉識(shí)別數(shù)據(jù)寫入圖片這需要結(jié)合Python圖像處理庫(kù)PIL完成。此案例需要導(dǎo)入PIL庫(kù)的三個(gè)模塊,Image模塊用于打開(kāi)圖像、顯示和保存圖像。ImageFont模塊用于設(shè)置寫入圖像文本時(shí)用到的字體字號(hào)。ImageDraw模塊提供了對(duì)圖像的繪制功能,如在圖像上畫(huà)矩形、寫文本等。
3 集人工智能、Python網(wǎng)絡(luò)爬蟲(chóng)及批量文件處理的綜合應(yīng)用案例
3.1 百度AI圖像識(shí)別、批量文件遍歷及文件夾操作綜合應(yīng)用
案例5自動(dòng)識(shí)別一批圖片,并將識(shí)別出的圖片進(jìn)行分類整理。根據(jù)識(shí)別結(jié)果,按分類名稱建立文件夾,并存入同類型圖片。以識(shí)別名稱命名處理后的圖片,且把識(shí)別結(jié)果的百度百科描述信息存入相應(yīng)的文本文件。
本案例需要處理批量文件,可以使用Python的enumerate函數(shù)遍歷指定目錄下所有文件,程序判斷若為圖片文件則調(diào)用百度AI進(jìn)行圖像通用識(shí)別advancedGeneral,再通過(guò)對(duì)識(shí)別結(jié)果組合數(shù)據(jù)類型的操作提取識(shí)別關(guān)鍵詞:名稱、類別、描述信息。根據(jù)類別使用os.makedirs創(chuàng)建分類目錄,對(duì)于已存在的分類目錄可使用try except進(jìn)行程序異常處理。最后用PIL庫(kù)的ImageDraw模塊寫入識(shí)別名稱到圖片,打開(kāi)文件并寫入識(shí)別主體的描述信息。
3.2百度AI圖像識(shí)別、Python網(wǎng)絡(luò)爬蟲(chóng)等綜合應(yīng)用
案例6 對(duì)于前述案例的識(shí)別圖片都是預(yù)先準(zhǔn)備好的圖片文件。本案例結(jié)合Python網(wǎng)絡(luò)爬蟲(chóng)的功能,程序運(yùn)行時(shí)提示用戶輸入待爬取圖片類別的關(guān)鍵字,系統(tǒng)自動(dòng)從百度圖片網(wǎng)站爬取相關(guān)圖片并保存在本地硬盤指定文件夾。如爬取關(guān)鍵字為“奧斯卡影星”,程序自動(dòng)識(shí)別影星名字并標(biāo)注在圖片左上角。
此案例在人工智能圖像識(shí)別應(yīng)用中結(jié)合了Python爬蟲(chóng)練習(xí),使用到了requests庫(kù)、urllib庫(kù)及正則表達(dá)式等知識(shí)。
4總結(jié)
此系列人工智能AI應(yīng)用案例均為Python語(yǔ)言程序,系列案例的功能是層層遞進(jìn)、前后呼應(yīng)由易到難。程序的結(jié)構(gòu)也由順序逐漸加入分支判斷及循環(huán)遍歷。案例中融入了Python常用數(shù)據(jù)類型及組合數(shù)據(jù)類型字典、列表的操作。案例設(shè)計(jì)盡量做到了有趣有用,在激發(fā)學(xué)習(xí)興趣的同時(shí)也提高了學(xué)生的編程思維能力和創(chuàng)新能力。
參考文獻(xiàn):
[1] 百度AI接入指南 [EB/OL]. https://ai.baidu.com/ai-doc/REFERENCE/Ck3dwjgn3.2021-1-4.
【通聯(lián)編輯:王力】