吳學(xué)謙 李韻 鄧曉軍
摘要:針對(duì)用戶在養(yǎng)殖家庭植物因缺乏養(yǎng)殖經(jīng)驗(yàn)而頻頻失敗等問(wèn)題,采用平臺(tái)最新的機(jī)器學(xué)習(xí)技術(shù),設(shè)計(jì)并實(shí)現(xiàn)一款基于平臺(tái)集植物識(shí)別、健康檢測(cè)、疾病預(yù)防多功能一體的App。通過(guò)大量植物圖片數(shù)據(jù)集的訓(xùn)練,機(jī)器學(xué)習(xí)訓(xùn)練準(zhǔn)確性達(dá)到73%,訓(xùn)練有效性達(dá)到65%,測(cè)試準(zhǔn)確性達(dá)到72%,總體識(shí)別精準(zhǔn)率在70%左右。系統(tǒng)能準(zhǔn)確并高效地實(shí)現(xiàn)植物分類識(shí)別、植物相關(guān)信息獲取以及植物健康檢測(cè)功能,幫助用戶更好地認(rèn)識(shí)身邊的植物,成為公眾科學(xué)科普的有效手段。
關(guān)鍵詞:Core ML;機(jī)器學(xué)習(xí);圖像分類;植物檢測(cè)
中圖分類號(hào):TP311? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)30-0013-04
開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
植物與人類的生存環(huán)境息息相關(guān)。園林植物為城市增添了新的景色,具有美化環(huán)境的作用。植物葉片的光合作用能凈化空氣,蒸騰作用增加空氣濕度,有效地調(diào)節(jié)和改善環(huán)境小氣候。一份由70多個(gè)國(guó)家250名科學(xué)家和專家撰寫(xiě)的聯(lián)合國(guó)報(bào)告警告稱,地球環(huán)境已遭到嚴(yán)重破壞,人類健康正受到越來(lái)越大的威脅。需要大力改善環(huán)境保護(hù)工作,到21世紀(jì)中葉,亞洲種植植物、合理利用土地資源都是綠色基礎(chǔ)設(shè)施建設(shè)的重要一環(huán)。普通居民也可以通過(guò)種植植物的方式對(duì)人類生活環(huán)境做出自己的一份努力。
在家庭生活中不僅為了踐行低碳生活理念,也為提高居室生活環(huán)境質(zhì)量,綠色植物家庭養(yǎng)殖的想法逐漸流行。而大多數(shù)家庭沒(méi)有專業(yè)的養(yǎng)殖經(jīng)驗(yàn),年輕的工作人群也沒(méi)有充足的時(shí)間學(xué)習(xí)照料植物,植物養(yǎng)殖變成為一個(gè)難題。而國(guó)內(nèi)植物智能領(lǐng)域軟件市場(chǎng)中并沒(méi)有找到行之有效的解決方案,目前基于人工智能技術(shù)植物類App主要存在以下問(wèn)題:
1) 解決植物養(yǎng)護(hù)管理的應(yīng)用較少。
2) 大多數(shù)應(yīng)用僅關(guān)注于植物識(shí)別。
3) 絕大多數(shù)不能幫助判斷植物健康。
針對(duì)上述問(wèn)題,設(shè)計(jì)一款能幫助用戶關(guān)注植物健康狀態(tài)并提供疾病預(yù)防方案的App已經(jīng)凸顯。系統(tǒng)采用Core ML機(jī)器學(xué)習(xí)技術(shù)實(shí)現(xiàn)植物分類識(shí)別和植物健康檢查功能,以“簡(jiǎn)潔、方便”為目標(biāo),通過(guò)輕松拍照的方式獲取植物健康評(píng)分并生成健康日記,幫助用戶更好地關(guān)注植物生長(zhǎng)狀態(tài)及趨勢(shì)。
1 系統(tǒng)架構(gòu)
系統(tǒng)架構(gòu)采用MVC架構(gòu)模式。MVC架構(gòu)設(shè)計(jì)模式即模型-視圖-控制器(Model-View-Controller, MVC),是iOS應(yīng)用程序中最常見(jiàn)的架構(gòu),是由模型、視圖和控制器三個(gè)部分組成[1]。模型即概念,是應(yīng)用程序的數(shù)據(jù)表示,通常使用結(jié)構(gòu)體或類來(lái)保存業(yè)務(wù)對(duì)象,是與用戶界面無(wú)關(guān)的部分;視圖即用戶窗口,是應(yīng)用程序用戶可以看到并與之交互的對(duì)象,視圖對(duì)象是重用且靈活的;控制器即通道,是應(yīng)用模型和視圖的橋梁,使用模型中的數(shù)據(jù)更新視圖,在用戶與視圖交互時(shí)更新模型[2]。
系統(tǒng)架構(gòu)的詳細(xì)設(shè)計(jì)如圖1所示,模型包括植物信息、文章信息、植物疾病信息,抽象并封裝了相應(yīng)的數(shù)據(jù)和操作,以供視圖的查詢和更新需要。視圖包括植物卡片視圖、文章卡片視圖、瀑布流對(duì)象視圖等,用于渲染App的各級(jí)界面,模型與視圖之間是一對(duì)多的關(guān)系,通過(guò)控制器與模型交互,執(zhí)行查詢或是更新指令。控制器包括主頁(yè)控制器、瀑布流控制器、植物分類識(shí)別控制器、健康分類檢測(cè)控制器,理解用戶與視圖之間的交互信息,并將之標(biāo)準(zhǔn)化為業(yè)務(wù)事件提供給模型,促使模型對(duì)程序動(dòng)作進(jìn)行輸出,最終選擇某個(gè)視圖來(lái)更新用戶數(shù)據(jù)。
2 關(guān)鍵技術(shù)
2.1 機(jī)器學(xué)習(xí)
機(jī)器學(xué)習(xí)是一門多領(lǐng)域交叉學(xué)科,涉及概率論、統(tǒng)計(jì)學(xué)、逼近論、凸分析、算法復(fù)雜度理論等多門學(xué)科。專門研究計(jì)算機(jī)怎樣模擬或?qū)崿F(xiàn)人類的學(xué)習(xí)行為,以獲取新的知識(shí)或技能,重新組織已有的知識(shí)結(jié)構(gòu)使之不斷改善自身的性能[3]。自20世紀(jì)80年代以來(lái),機(jī)器學(xué)習(xí)作為實(shí)現(xiàn)人工智能的途徑,相關(guān)領(lǐng)域的研究工作發(fā)展很快。機(jī)器學(xué)習(xí)不僅在基于知識(shí)的系統(tǒng)中得到應(yīng)用,而且在模式識(shí)別、計(jì)算機(jī)視覺(jué)、語(yǔ)言識(shí)別、統(tǒng)計(jì)學(xué)習(xí)、自然語(yǔ)言處理等方面大放異彩。
2.2 Core ML框架
Core ML可以將眾多機(jī)器學(xué)習(xí)模型類別整合到開(kāi)發(fā)者的應(yīng)用中。Core ML通過(guò)利用CPU、GPU和神經(jīng)網(wǎng)絡(luò)引擎,同時(shí)最大限度地減小內(nèi)存占用空間和功耗,來(lái)優(yōu)化設(shè)備端性能。由于模型嚴(yán)格地在用戶設(shè)備上,因此無(wú)須任何網(wǎng)絡(luò)連接,這有助于保護(hù)用戶數(shù)據(jù)的私密性和App的響應(yīng)速度。Core ML支持使用計(jì)算機(jī)視覺(jué)框架(Vision)分析圖像,使用自然語(yǔ)言框架(Natural Language)處理文本,使用語(yǔ)音框架(Speech)將音頻轉(zhuǎn)換為文本,以及使用音頻識(shí)別框架(Sound Analysis)來(lái)識(shí)別音頻中的聲音。系統(tǒng)主要使用Core ML框架和計(jì)算機(jī)視覺(jué)框架(Vision)來(lái)實(shí)現(xiàn)植物分類識(shí)別和植物健康檢測(cè)功能。開(kāi)發(fā)者通過(guò)Python爬蟲(chóng)工具和手動(dòng)篩選從百度圖庫(kù),PPBC 中國(guó)植物圖像庫(kù),植物數(shù)據(jù)通,中國(guó)自然標(biāo)本館,花百科網(wǎng)站中合法下載植物數(shù)據(jù)圖片[4]。在植物分類識(shí)別中,需要由示例和標(biāo)簽組成的訓(xùn)練數(shù)據(jù),涵蓋30種常見(jiàn)家庭養(yǎng)殖植物:生石花、冰玉、菊花、玫瑰、薄荷、滴水觀音等,示例對(duì)應(yīng)的標(biāo)簽是植物名。
2.3 遷移學(xué)習(xí)
開(kāi)發(fā)者可以使用遷移學(xué)習(xí)工具來(lái)幫助完成機(jī)器學(xué)習(xí),遷移學(xué)習(xí)是指采用現(xiàn)有的預(yù)訓(xùn)練模型并針對(duì)自己的數(shù)據(jù)對(duì)其進(jìn)行自定義,將現(xiàn)在模型的知識(shí)遷移到新模型中[5]。Create ML和TuriCreate是蘋(píng)果公司提供的遷移學(xué)習(xí)工具,為了實(shí)現(xiàn)植物分類識(shí)別,開(kāi)發(fā)者利用Create ML工具選擇圖像分類(Image Classification)任務(wù),Turi Create選擇圖像分類器工具包和已準(zhǔn)備好的植物圖片數(shù)據(jù)集進(jìn)行遷移學(xué)習(xí)。進(jìn)行10次迭代循環(huán)訓(xùn)練得到植物分類的自定義模型,可以得到訓(xùn)練準(zhǔn)確性能到達(dá)73%,訓(xùn)練有效性能達(dá)到65%,測(cè)試準(zhǔn)確性能到達(dá)72%??傮w植物識(shí)別精準(zhǔn)率在70%左右。當(dāng)運(yùn)行TuriCreate圖像分類器時(shí),會(huì)將任務(wù)分解成以下步驟:
1) 在大型通用數(shù)據(jù)集上創(chuàng)建CNN分類器,例如ImageNet,具有1000個(gè)類型和120萬(wàn)張圖片。這些模型被研究人員訓(xùn)練過(guò),可以有效使用。
2) CNN中每一層的輸出可以視為每張圖片有意義的向量表示,從任務(wù)中的每張圖片上的輸出層的上一層提取這些特征向量。
3) 創(chuàng)建一個(gè)新的分類器,將這些特征作為自己任務(wù)的輸入。
步驟1重用于很多不同的問(wèn)題,一旦完成就無(wú)須再更改。即使在你沒(méi)有足夠的數(shù)據(jù)量來(lái)創(chuàng)建深度學(xué)習(xí)模型的情況下,通過(guò)上述步驟執(zhí)行的結(jié)果也無(wú)須調(diào)整參數(shù),并且擁有更快的訓(xùn)練速度和不錯(cuò)的性能。該想法最早由Donahue等人提出[6],并已成為創(chuàng)建圖片分類器模型的最佳方法之一。
當(dāng)使用遷移學(xué)習(xí)時(shí),需要選擇一個(gè)用于特征提取的基礎(chǔ)模型??晒┦褂玫膬蓚€(gè)基本模型是SqueezeNet和VisionFeaturePrint_Screen。數(shù)據(jù)集的幾乎所有訓(xùn)練時(shí)間都是模型從圖像中提取特征所花費(fèi)的時(shí)間。這些包括低級(jí)邊緣、中級(jí)形狀和特定高層的特征。提取特征后,Create ML 只花費(fèi)相對(duì)較少的時(shí)間來(lái)訓(xùn)練邏輯回歸模型,將植物圖像分成30 類。類似于將一條直線擬合到散點(diǎn),但在 2,048 個(gè)維度而不是兩個(gè)維度。對(duì)于每個(gè)輸入圖像,VisionFeaturePrint_Screen模型生成一個(gè)包含2,048個(gè)數(shù)字的列表,這些數(shù)字在高層次上代表圖像的內(nèi)容。如圖2所示,Create ML使用這2,048個(gè)數(shù)字作為邏輯回歸模型的輸入,Create ML不是在具有150,000個(gè)特征的圖像上訓(xùn)練一個(gè)難度大的模型,而是在VisionFeaturePrint_Screen提取的2,048個(gè)特征上訓(xùn)練一個(gè)更簡(jiǎn)單的模型。
2.4 邏輯回歸
Create ML訓(xùn)練的求解器是邏輯回歸分類器,是一種常見(jiàn)的機(jī)器學(xué)習(xí)模型。邏輯回歸的基本步驟:
1) 構(gòu)造hypothesis函數(shù)。
2) 構(gòu)造損失函數(shù)J。
3) 通過(guò)損失函數(shù)J最小化求目標(biāo)函數(shù)的各個(gè)參數(shù)。
邏輯回歸的hypothesis函數(shù)可以認(rèn)為是一個(gè)線性回歸方程的結(jié)果經(jīng)過(guò)sigmoid函數(shù)得到的結(jié)果,線性回歸方程可以用如公式(1)所示。
sigmoid函數(shù)如公式(2)所示,該函數(shù)又稱邏輯函數(shù):
將公式(1)通過(guò)邏輯函數(shù)轉(zhuǎn)化得到的概率即是hypothesis函數(shù)。
函數(shù)<表示樣本被預(yù)測(cè)為正例1的概率,可以得到樣本被預(yù)測(cè)為正例和負(fù)例的概率如公式(4):
公式(4)可以合并為一個(gè)公式如(5)所示:
對(duì)預(yù)測(cè)結(jié)果的概率表示公式(5)取似然函數(shù),得到如下的似然函數(shù):
由于上式涉及連乘法,對(duì)其取對(duì)數(shù)函數(shù)得到對(duì)數(shù)似然函數(shù)如公式(7):
求最大值使用梯度上升法,對(duì)似然函數(shù)加個(gè)負(fù)號(hào),通過(guò)求等價(jià)問(wèn)題的最小值來(lái)求原問(wèn)題的最大值,利用公式(7)和(8)聯(lián)立求得損失函數(shù)J如公式(9)所示:
損失函數(shù)等價(jià)于公式(10)的形式。
利用梯度下降法求參數(shù)θ的更新式,推導(dǎo)如公式(11)所示:
θ為最終更新式,α為學(xué)習(xí)率,求出θ更新過(guò)程:
3 系統(tǒng)實(shí)現(xiàn)與測(cè)試
3.1 植物分類識(shí)別功能
開(kāi)發(fā)人員使用Create ML遷移學(xué)習(xí)工具建立圖像分類任務(wù),分類器訓(xùn)練30種植物圖片數(shù)據(jù)集,得到PlantImageClassifier.mlmodel機(jī)器學(xué)習(xí)模型文件并整合在應(yīng)用中,通過(guò)Core ML和Vision框架來(lái)實(shí)現(xiàn)植物分類識(shí)別功能。相機(jī)拍照植物或者上傳植物圖片進(jìn)行植物分類識(shí)別,將檢測(cè)出的植物的名稱及其他相關(guān)信息以文字的形式呈現(xiàn)給用戶,圖3a、圖3b和圖3c分別展示了對(duì)薄荷、菊花和龜背竹進(jìn)行拍照檢測(cè)的結(jié)果界面,均符合實(shí)際照片輸入。
開(kāi)發(fā)人員對(duì)植物分類識(shí)別功能進(jìn)行了測(cè)試,測(cè)試的數(shù)據(jù)如表1所示,數(shù)據(jù)表明,檢測(cè)時(shí)間與圖片像素成反比,置信度與圖片像素成正比,即圖片越清晰,檢測(cè)的時(shí)間便越短,檢測(cè)的準(zhǔn)確率便越高。這里的置信度指的是檢測(cè)結(jié)果同所檢測(cè)對(duì)象的實(shí)際情況一致的概率。
3.2 植物健康檢測(cè)功能
植物健康檢測(cè)功能同樣使用與植物分類識(shí)別功能構(gòu)建共性的方法。針對(duì)30種植物的每一種植物,收集其常見(jiàn)的植物疾病圖片數(shù)據(jù)集。以菊花健康檢測(cè)為例,收集數(shù)據(jù)集的分類包括白粉病、黑斑病、枯萎病、銹病和健康,利用Create ML工具建立菊花圖片疾病分類任務(wù),判斷待測(cè)菊花圖片與哪種標(biāo)簽分類下的特征相關(guān)性更強(qiáng)。從圖4中得到菊花圖片健康置信度為68%,銹病為28%,黑斑病1%,白粉病1%,因此可以推斷菊花暫時(shí)處于健康狀態(tài),可能患有菊花銹病。根據(jù)圖片健康檢測(cè)的結(jié)果給植物進(jìn)行健康分?jǐn)?shù)的評(píng)估,提供疾病預(yù)防方案,使用戶更好地評(píng)估植物生長(zhǎng)健康狀態(tài)。
在拍照或者上傳植物照片獲取植物分類結(jié)果后進(jìn)一步查看植物健康報(bào)告,跳轉(zhuǎn)頁(yè)面期間分別調(diào)用相應(yīng)植物的健康檢測(cè)模型,將對(duì)植物進(jìn)行植物健康評(píng)分和提供防治方案。圖5a、圖5b和圖5c分別展示了對(duì)菊花、龜背竹和桂花進(jìn)行植物健康檢測(cè)的結(jié)果,給出的評(píng)分分別是100、60、85,基本符合對(duì)實(shí)際輸入植物圖片的生長(zhǎng)健康狀態(tài)的判斷。
開(kāi)發(fā)人員對(duì)植物健康檢測(cè)功能進(jìn)行了測(cè)試,測(cè)試的部分?jǐn)?shù)據(jù)如表2所示,數(shù)據(jù)表明植物疾病檢測(cè)結(jié)果與實(shí)際結(jié)果匹配程度在85%左右,能較好地評(píng)估植物生長(zhǎng)健康狀態(tài)。
4 結(jié)語(yǔ)
系統(tǒng)以踐行種植植物環(huán)保理念為出發(fā)點(diǎn),針對(duì)人們?cè)诩彝ブ参镳B(yǎng)殖因缺乏養(yǎng)殖經(jīng)驗(yàn)而頻頻失敗等問(wèn)題,設(shè)計(jì)并實(shí)現(xiàn)一款基于iOS系統(tǒng)的AI智能植物健康檢測(cè)App,系統(tǒng)設(shè)計(jì)目標(biāo)明確。在系統(tǒng)編碼實(shí)現(xiàn)階段,不僅使用iOS原生開(kāi)發(fā)技術(shù),還運(yùn)用了最新的機(jī)器學(xué)習(xí)技術(shù),如在植物分類識(shí)別與健康檢測(cè)中使用到了遷移學(xué)習(xí)、多分類邏輯回歸、神經(jīng)網(wǎng)絡(luò)等知識(shí),通過(guò)Create ML工具生成解決問(wèn)題所需的機(jī)器學(xué)習(xí)模型。在檢測(cè)系統(tǒng)功能方面符合預(yù)期目標(biāo),經(jīng)過(guò)大量的測(cè)試和驗(yàn)證,完成了一定程度上的優(yōu)化,目前已在AppleAppStore上架,為用戶提供下載服務(wù)。
參考文獻(xiàn):
[1] 胡輝.IOS環(huán)境下使用MVC模式進(jìn)行App開(kāi)發(fā)的設(shè)計(jì)思路探索[J].數(shù)字技術(shù)與應(yīng)用,2015(6):204,206.
[2] 王亞坤,鄭祥盤.基于iOS和百度AI的車牌識(shí)別系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].閩江學(xué)院學(xué)報(bào),2020,41(5):58-66.
[3] 李昊朋.基于機(jī)器學(xué)習(xí)方法的智能機(jī)器人探究[J].通訊世界,2019,26(4):241-242.
[4] 許展慧,劉詩(shī)堯,趙瑩,等.國(guó)內(nèi)8款常用植物識(shí)別軟件的識(shí)別能力評(píng)價(jià)[J].生物多樣性,2020,28(4):524-533.
[5] 李亞麗,王敏,李靜.遷移學(xué)習(xí)的研究現(xiàn)狀[J].時(shí)代教育,2014(9):222.
[6] 牛伯浩.基于深度學(xué)習(xí)的植物病害檢測(cè)算法研究及系統(tǒng)實(shí)現(xiàn)[D].銀川:寧夏大學(xué),2019.
【通聯(lián)編輯:朱寶貴】