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