【《基于機(jī)器學(xué)習(xí)的花卉識別系統(tǒng)設(shè)計(jì)》15000字(論文)】_第1頁
【《基于機(jī)器學(xué)習(xí)的花卉識別系統(tǒng)設(shè)計(jì)》15000字(論文)】_第2頁
【《基于機(jī)器學(xué)習(xí)的花卉識別系統(tǒng)設(shè)計(jì)》15000字(論文)】_第3頁
【《基于機(jī)器學(xué)習(xí)的花卉識別系統(tǒng)設(shè)計(jì)》15000字(論文)】_第4頁
【《基于機(jī)器學(xué)習(xí)的花卉識別系統(tǒng)設(shè)計(jì)》15000字(論文)】_第5頁
已閱讀5頁,還剩24頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

基于機(jī)器學(xué)習(xí)的花卉識別系統(tǒng)設(shè)計(jì)摘要花卉識別在農(nóng)業(yè)大棚生產(chǎn)中起著極其重要的作用,使用人工識別需要眾多花卉專業(yè)工作者,造成資源浪費(fèi),效率低下。使用特征融合、超像素等技術(shù)來識別花卉,在正常情況下雖能高效解決,但由于花卉的品種繁密,且受環(huán)境因素導(dǎo)致特征變化,也不能準(zhǔn)確的進(jìn)行識別。本論文基于卷積神經(jīng)網(wǎng)絡(luò)和輕量級MobileNets神經(jīng)網(wǎng)絡(luò)的花卉識別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)。卷積神經(jīng)網(wǎng)絡(luò)通過頻仍的迭代訓(xùn)練促使網(wǎng)絡(luò)精度的升高。MobileNets神經(jīng)網(wǎng)絡(luò)通過分解卷積神經(jīng)從而縮小計(jì)算量,降低模型尺寸,從而提高識別率。使用以上兩種神經(jīng)神經(jīng)網(wǎng)絡(luò)構(gòu)建的系統(tǒng)雖不能完全解決此問題,但為未來花卉識別的發(fā)展指出了一條方向。在保證數(shù)據(jù)集一致的基礎(chǔ)下,使用卷積神經(jīng)網(wǎng)絡(luò)CNN的平均識別成功率為78%,使用MobileNets的平均識別成功率為93%。與傳統(tǒng)神經(jīng)網(wǎng)絡(luò)構(gòu)建的模型識別成功率相比,本論文所使用的兩種神經(jīng)網(wǎng)絡(luò)在識別成功率上都有著較大提升,所設(shè)計(jì)出的系統(tǒng)也能成功識別花卉。關(guān)鍵詞人工智能;機(jī)器學(xué)習(xí);花卉識別;卷積神經(jīng)網(wǎng)絡(luò);tensorflow;目錄2146摘要 I26389Abstract II22680目錄 III18941緒論 1113641.1應(yīng)用背景 1140521.2研究目的及意義 1168731.2.1研究目的 172901.2.2研究意義 2267091.3研究現(xiàn)狀及解決方案 2181241.3.1國外研究現(xiàn)狀 2100491.3.2國內(nèi)研究現(xiàn)狀 232081.3.3解決方案 367062技術(shù)相關(guān)知識要點(diǎn) 411272.1圖像識別技術(shù) 4269122.1.1圖像識別技術(shù)的發(fā)展進(jìn)程 4312582.1.2圖像識別技術(shù)的原理 4200092.1.3圖像識別技術(shù)的應(yīng)用前景 4122132.2機(jī)器學(xué)習(xí)技術(shù) 5229992.2.1機(jī)器學(xué)習(xí)的發(fā)展進(jìn)程 5305482.2.2機(jī)器學(xué)習(xí)的種類 6293472.3卷積神經(jīng)網(wǎng)絡(luò) 7202412.3.1卷積神經(jīng)網(wǎng)絡(luò)發(fā)展進(jìn)程 7127092.3.2卷積神經(jīng)網(wǎng)絡(luò)模型簡介 7147242.4MobileNets神經(jīng)網(wǎng)絡(luò) 834582.4.1MobileNets神經(jīng)網(wǎng)絡(luò)模型介紹 880352.4.2MobileNets神經(jīng)網(wǎng)絡(luò)模型介紹 936163項(xiàng)目環(huán)境介紹 10110033.1PyCharm平臺介紹 10221833.1.1PyCharm介紹 10216563.1.2PyCharm平臺搭建 102143.2Anaconda平臺介紹 10202523.2.1Anaconda介紹 10234803.2.2Anaconda平臺搭建 11159513.3QT介紹 12289813.3.1QT簡介 12114423.3.2QT主要功能 1343843.3.3QTDesigner在PyCharm開發(fā)環(huán)境配置 1394294基于tensorflow的花卉識別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn) 15219284.1基于卷積神經(jīng)網(wǎng)絡(luò)CNN的花卉識別系統(tǒng) 15129354.1.1主要內(nèi)容 15297834.1.2實(shí)驗(yàn)結(jié)果 18292684.1.3實(shí)驗(yàn)結(jié)果分析 2120514.2基于MobileNets神經(jīng)網(wǎng)絡(luò)的花卉識別系統(tǒng) 21189944-2-1實(shí)驗(yàn)結(jié)果 22318155總結(jié)與展望 25146255.1總結(jié) 2533765.2展望 25305參考文獻(xiàn) 281緒論應(yīng)用背景如今,隨著人工智能的神速成長,機(jī)器學(xué)習(xí)技術(shù)聯(lián)合圖像識別技術(shù)的應(yīng)用在生活生產(chǎn)中處處體現(xiàn),可以用來識別圖像中的物體,并對物體特征進(jìn)行分類;能夠識別人臉信息進(jìn)行安全驗(yàn)證,并進(jìn)行安全可靠的人臉支付,人臉解鎖;能通過圖片信息輸出圖片中物體的動作行為并能夠?qū)⒉煌膱D片信息疊加在一起,得到新的圖片信息;能夠?qū)⒄Z音識別成文字,將各國語言進(jìn)行自動翻譯,讓不同國家的人交流無障礙等等。圖像識別技術(shù)就是利用計(jì)算機(jī)分析處理圖像的功能來進(jìn)行某些信息的提取,并通過這些特征信息來識別新圖片。近些年來,得益于計(jì)算機(jī)圖像識別技術(shù)的神速成長,眾多領(lǐng)域都開始結(jié)合圖像識別技術(shù),用來生產(chǎn)一些高效的工具解決生活中一些比較繁瑣的問題,比如二維碼的產(chǎn)生,讓我的支付環(huán)境得到了改善,極大程度地減少人們的工作量,提高社會生產(chǎn)力。鮮花作為當(dāng)今無論男女老少都喜歡的一種植物,大多數(shù)人卻僅僅知道少許花的種類,對花的習(xí)性等了解不是很全面。在市面上雖存在少許識別鮮花種類的軟件,受用戶拍照角度、光線等環(huán)境原因,識別效率有待提高。研究目的及意義1.2.1研究目的在農(nóng)業(yè)生產(chǎn)過程中,我們常常需要花卉進(jìn)行品種分類和生長情況的監(jiān)測。在分類花卉和監(jiān)測生長情況的工作上,需要我們具備極強(qiáng)的專業(yè)知識,來確?;ɑ芨鞣N信息的正確性。由此會消耗巨大的人力資源,當(dāng)花卉種類數(shù)量繁多時,靠人工來識別會非常低效,對花卉識別工作者來說也是一種資源浪費(fèi)。這種狀況較大程度的延緩了花卉農(nóng)業(yè)的成長。雖然當(dāng)今在花卉農(nóng)業(yè)生產(chǎn)上也有部分采用特征融合、超像素的方法來進(jìn)行識別花卉,但是這些技術(shù)的應(yīng)用并不完善,受到花卉場景環(huán)境中亮度,濕度,拍攝角度以及花卉的生長情況不一,導(dǎo)致花卉識別的效果偏差,效率低下。只能針對某個特定環(huán)境的花卉來進(jìn)行識別。因此,計(jì)算機(jī)圖像識別技術(shù)的產(chǎn)物并沒有真正在應(yīng)用于需求量極大的花卉農(nóng)業(yè)生產(chǎn)中。此外,雖然圖像分類、識別技術(shù)的迅猛發(fā)展,但是這些研究大部分都是針對粗粒度的分類,比如不同種類之間分類,如百獸、植被等多個不相關(guān)類別的分類。如文獻(xiàn)[1]|、文獻(xiàn)[2]、文獻(xiàn)[5]中使用的特征融合、超像素等方法并沒有解決不同種花之間的相似性問題和同種花因環(huán)境的差異而導(dǎo)致的不同特征信息的問題,對高精度的圖像分類以及識別依舊存在問題。1.2.2研究意義通過機(jī)器學(xué)習(xí)結(jié)合圖像識別技術(shù),打造一個花卉智能識別系統(tǒng),可以極大提高花卉識別的效率,簡化工作流程。通過給定圖片來進(jìn)行模擬訓(xùn)練,獲取達(dá)到指定成功率的物品模型。并在后續(xù)識別過程可通過模型來識別花并得出結(jié)果。利用此系統(tǒng),可以降低花卉工作者的就業(yè)門檻,通過此系統(tǒng)可進(jìn)行一個系統(tǒng)性學(xué)習(xí),減少花卉人員的工作量。添加花卉種類也相對方便,此系統(tǒng)具有成長性,發(fā)展不可阻擋。研究現(xiàn)狀及解決方案國外研究現(xiàn)狀國外在花卉識別技術(shù)方面起步相對較早,主要應(yīng)用于工業(yè)花卉識別系統(tǒng)中。但源于此技術(shù)相對于是一個比較冷門的研究領(lǐng)域,加上花卉種類繁多、花卉專業(yè)人員較少以及人工識別花卉步驟過于繁瑣、復(fù)雜,花卉識別技術(shù)的發(fā)展并沒有很順利。目前國外主要的花卉識別數(shù)據(jù)集為FGVC5Flowers2018以及OxfordFlowers.其中FGVC5Flowers2018包含由1000余種不同的花卉數(shù)據(jù),總計(jì)大概有670,000張?zhí)卣鲌D像,此數(shù)據(jù)集的發(fā)布解決了當(dāng)時眾多花卉識別效率不高的問題。另外一個數(shù)據(jù)集OxfordFlowers它由兩種數(shù)據(jù)集組成,分別為OxfordFlowers17和OxfordFlowers102,由牛津高校的NilsbackM.E和ZissermanA等人匯集和整理的花卉數(shù)據(jù)集。其中OxfordFlowers17數(shù)據(jù)集中包括有17種花卉數(shù)據(jù),每一種花卉數(shù)據(jù)包含80張花卉信息圖,總計(jì)有1360張花卉特征信息。OxfordFlowers102包括102種花卉數(shù)據(jù),每一種花卉數(shù)據(jù)包含20-260張花卉信息圖,總計(jì)大約有14000張標(biāo)記圖片。此數(shù)據(jù)集常常用于細(xì)粒度分類和檢索的研究。在一年一次的ECCV、NIPS、CVPR、ICCV等十分著名的國際計(jì)算機(jī)視覺學(xué)術(shù)會議上,都會有許多與圖像識別、圖像分類相關(guān)的技術(shù)產(chǎn)生。國內(nèi)研究現(xiàn)狀國內(nèi)花卉識別技術(shù)雖較國外起步較晚,但是近些年的發(fā)展正讓這些差距正在慢慢縮小。從最初的人工進(jìn)行花卉分類、特征提取、特征分割,再融合花卉顏色等特征的方法到現(xiàn)狀使用機(jī)器學(xué)習(xí)來進(jìn)行特征提取、訓(xùn)練,可實(shí)現(xiàn)不同生長狀況、不同環(huán)境的花卉特征冗和。其中,我國中科院植物研究所對花卉進(jìn)行了深入的研究,收集整理了大約有200萬副花卉圖像特征信息,并且通過花卉數(shù)據(jù)集研究出了花卉生長各階段的樣式,對后續(xù)花卉識別工作帶來了便捷。另外,國內(nèi)少許公司研發(fā)出了各種花卉識別APP,用戶通過相機(jī)掃描花卉圖片傳入軟件,軟件通過圖片在數(shù)據(jù)庫中進(jìn)行匹配,匹配成功后給出花卉的信息,常常還會伴隨花卉的品種信息、家族使以及生長所需環(huán)境等花卉信息,一定程度上加深人們對花卉的理解。目前大多數(shù)花卉識別軟件都能有著較高的識別成功率,但是受到花卉生長情況、使用者拍照角度以及光線環(huán)境等問題,花卉識別技術(shù)仍然有著進(jìn)步空間。解決方案目前,國內(nèi)外在花卉識別技術(shù)方面大多使用特征融合、超像素等技術(shù),這些技術(shù)的發(fā)展并不完善,有以下幾個方面。第一:當(dāng)輸入圖片信息受到環(huán)境因素導(dǎo)致樣品特征信息丟失時,使用原始模型并不能匹配到剩余的特征信息,導(dǎo)致識別失敗。第二:花卉在不同的生長期間其特征信息有著較大區(qū)別,因此在模型訓(xùn)練時如果沒有將不同時期的花卉信息進(jìn)行特征識別,依舊會導(dǎo)致識別失敗。第三:花卉的多樣性,不同種花卉之間的相似性,如月季和玫瑰的區(qū)分。因此,傳統(tǒng)技術(shù)在某些特征場景識別花卉時依舊會出現(xiàn)識別失敗的情況。而本文所講述的基于機(jī)器學(xué)習(xí)的花卉特征識別技術(shù)能較大程度地解決極端環(huán)境下的花卉識別效率低下的問題,主要采用了卷積神經(jīng)網(wǎng)絡(luò)CNN、輕量級神經(jīng)網(wǎng)絡(luò)MobileNets來對花卉進(jìn)行訓(xùn)練、識別。它能將花卉的潛在特征信息逐一識別,并通過已上傳的花卉信息來預(yù)測不同場景下的特征信息,能夠不斷學(xué)習(xí)加大模型的準(zhǔn)確率。

2技術(shù)相關(guān)知識要點(diǎn)2.1圖像識別技術(shù)2.1.1圖像識別技術(shù)的發(fā)展進(jìn)程圖像識別技術(shù)因其應(yīng)用廣泛有著悠久的發(fā)展歷程,從最初的利用字符特征去識別數(shù)字、文字,到后來利用計(jì)算機(jī)技術(shù)進(jìn)行數(shù)字圖像分析,到現(xiàn)如今發(fā)展迅速的物體識別。其應(yīng)用廣泛地在工業(yè)生產(chǎn)生活中得到體現(xiàn),例如交通系統(tǒng)中的車牌識別、門衛(wèi)系統(tǒng)中的人臉識別,安全支付等應(yīng)用。應(yīng)用非常廣泛。數(shù)字圖像處理的研究有著很長的發(fā)展進(jìn)程,想要對圖像進(jìn)行處理,首先得把圖片分解成計(jì)算機(jī)能過分析、處理的信息。受當(dāng)時科學(xué)技術(shù)發(fā)展限制,最初的模擬圖像技術(shù)并不能很好的去分析處理圖片,只能在特定的環(huán)境去使用,在工業(yè)生產(chǎn)、生活使用中應(yīng)用性較低。直到數(shù)字圖像的產(chǎn)生,數(shù)字圖像相對于模擬圖像,存儲簡易,傳輸方便,可壓縮性強(qiáng),傳輸過程失真率低等優(yōu)點(diǎn),應(yīng)用廣泛,一定程度上推動了圖像識別技術(shù)的發(fā)展。物體識別技術(shù)主要是結(jié)合了數(shù)字圖像處理技術(shù)、深度學(xué)習(xí)等技術(shù)衍生出的一系列技術(shù)。相比于舊時代以一維、二維世界觀來分析處理圖片,物體識別以三維世界為基礎(chǔ)對圖像進(jìn)行了全方位識別、轉(zhuǎn)錄,得到的圖片信息信息更為精準(zhǔn),識別準(zhǔn)確度更高。其應(yīng)用廣泛使用在生活生產(chǎn)中,例如日常生活中的掃碼,車輛識別系統(tǒng)等,在工業(yè)上的工業(yè)機(jī)器人。2.1.2圖像識別技術(shù)的原理圖像識別技術(shù)的原理與人類識別物品的方法大致相同。我們在幼年學(xué)習(xí)時,通過記錄每個圖像固有的特點(diǎn)來把圖像進(jìn)行分類,然后通過圖片特征將圖片識別出來。當(dāng)我們的眼球識別到一個物體時,會將物品信息傳入大腦,大腦會根據(jù)物品特征進(jìn)行分析處理,判斷物品是否出現(xiàn)過并給出物品信息,給出物品信息的準(zhǔn)確度會根據(jù)物品特征在大腦中的記憶程度。這就是一個簡單的識別過程。當(dāng)我們的記憶模糊時,對物品的特征要點(diǎn)有遺漏,識別效率就偏低。圖像識別技術(shù)指的是機(jī)器通過外界傳感器獲得到物體圖像,再進(jìn)行計(jì)算機(jī)的計(jì)算,將輸入物體圖像的重要特征信息進(jìn)行總結(jié)合并,得到輸入物體的特征信息,再利用得到的特征信息去識別對應(yīng)物體,得到識別結(jié)果,從而完成圖像識別。2.1.3圖像識別技術(shù)的應(yīng)用前景計(jì)算機(jī)的圖像識別技術(shù)雖發(fā)展歷程不長,但是它的應(yīng)用已經(jīng)相當(dāng)廣泛。上個世紀(jì)主要應(yīng)用于工業(yè)生產(chǎn)、農(nóng)業(yè)生產(chǎn)上,例如工業(yè)上識別各種部件,快遞的自動識別分類,農(nóng)業(yè)生產(chǎn)上的識別農(nóng)作物生長情況以及農(nóng)作物產(chǎn)品的優(yōu)劣判斷。在本世紀(jì),計(jì)算機(jī)識別技術(shù)的應(yīng)用更是廣泛。在公共安全上,利用人臉識別、指紋識別、聲音識別等來確定人的特定信息;利用車牌識別系統(tǒng)來識別小區(qū)以及道路上的小車,不僅能識別出車輛的品牌、車牌號,車主的身份信息也能一并識別。在移動支付上,各種品牌的人臉付款,在大型超市中可以選擇自助結(jié)賬,人臉識別付款,極大的減輕了收銀員的工作量。在醫(yī)療衛(wèi)生上,醫(yī)院的ct、心電圖等都利用都了圖像識別技術(shù),給他們的工作帶來了極大的便利,據(jù)不完全統(tǒng)計(jì),通過圖像識別技術(shù)識別病人身上疾病的準(zhǔn)確度已經(jīng)達(dá)到了90%,醫(yī)療設(shè)備中大部分技術(shù)都取決于圖書識別技術(shù)的好壞。使得我國得醫(yī)療水平始終處于世界前茅,我國結(jié)束不久得新冠疫情就以驚人的解決速度傲然全球。隨著科學(xué)技術(shù)的不斷成長,不斷進(jìn)步,計(jì)算機(jī)圖像識別技術(shù)也在不斷地優(yōu)化,其識別能力也會更上一層樓。另一方面,圖像已經(jīng)逐步發(fā)展成為本世紀(jì)人類獲取信息的主要來源之一,人們廣泛的使用朋友圈等交友軟件通過圖片來表達(dá)自己信息,圖片也發(fā)揮著越來越重要重要。因此,圖像相關(guān)技術(shù)必將繼續(xù)猛訊發(fā)展。日后計(jì)算機(jī)的圖像識別技術(shù)很有可能在更多的領(lǐng)域顯露鋒芒,它的應(yīng)用前景也是不可限量的,人類的生活也將越發(fā)離不開圖像識別技術(shù)。2.2機(jī)器學(xué)習(xí)技術(shù)2.2.1機(jī)器學(xué)習(xí)的發(fā)展進(jìn)程機(jī)器學(xué)習(xí)的發(fā)展進(jìn)程可分成三個階段,分別為推理時期、論證時期和機(jī)器學(xué)習(xí)時期。 推理時期:上世紀(jì)五十年代,機(jī)器學(xué)習(xí)概念被提出,學(xué)者們通過給予一定量的測驗(yàn),將簡單的二分法應(yīng)用加載到機(jī)器上。簡單的說,當(dāng)我們在機(jī)器中將0以上的數(shù)定義為正數(shù),0以下的數(shù)定義為負(fù)數(shù),機(jī)器再識別到數(shù)字后就可通過這個規(guī)則判斷輸入信息的正負(fù)性。由于機(jī)器缺乏主動學(xué)習(xí)能力,只能通過專家設(shè)定規(guī)則要點(diǎn)才能解決相應(yīng)問題,并沒有實(shí)現(xiàn)真正的機(jī)器學(xué)習(xí)。論證時期:論證時期開始于上世紀(jì)七十年代,此時大家對機(jī)器學(xué)習(xí)有了初步的認(rèn)識,專家們通過總結(jié)生活規(guī)律、理論知識,把這些要點(diǎn)通過指令(也就是最初的匯編語言)方式讓機(jī)器進(jìn)行學(xué)習(xí)。但由于知識量巨大,無法將所有的知識要點(diǎn)傳遞給機(jī)器,使得機(jī)器學(xué)習(xí)依舊沒有達(dá)到自主學(xué)習(xí)的功能,此時機(jī)器學(xué)習(xí)來到了瓶頸期。機(jī)器學(xué)習(xí)時期:無論是推理時期還是論證時期,都是通過給出的指令來進(jìn)行運(yùn)用,一旦沒有了明確的指令,也就無法生效了。因此迫切出現(xiàn)一種能讓機(jī)器自動學(xué)習(xí)的技術(shù)。80年代,連接主義技術(shù)開始發(fā)展,其中最為著名的是感知機(jī),感知機(jī)通過一段時間的發(fā)展后,就慢慢演變成了到如今都依舊重要的神經(jīng)網(wǎng)絡(luò)。到了90年代后,新起的統(tǒng)計(jì)學(xué)習(xí)技術(shù)開始引領(lǐng)潮流,其中發(fā)展最為迅速的為支持向量機(jī)。如今的二十一世紀(jì),深度神經(jīng)網(wǎng)絡(luò)開始發(fā)展進(jìn)步,伴隨著科學(xué)技術(shù)的發(fā)展,數(shù)據(jù)集更加完善,科學(xué)計(jì)算能力逐步提高,以神經(jīng)網(wǎng)絡(luò)為根本的機(jī)器學(xué)習(xí)技術(shù)正在快速成長。2.2.2機(jī)器學(xué)習(xí)的種類機(jī)器學(xué)習(xí)的核心即為算法,利用算法的核心計(jì)算來分析、處理數(shù)據(jù)。并通過整理出的數(shù)據(jù)對外來事物進(jìn)行預(yù)測。我們通過執(zhí)行某個特定的算法,讓計(jì)算機(jī)擁有學(xué)習(xí)分析程序的能力。機(jī)器學(xué)習(xí)的類型可分為三類,帶有標(biāo)記信息的監(jiān)督學(xué)習(xí)、帶有矢量信息的非監(jiān)督學(xué)習(xí)、標(biāo)記、矢量信息都具有的半監(jiān)督學(xué)習(xí)以及強(qiáng)化特征信息的強(qiáng)化學(xué)習(xí)。監(jiān)督學(xué)習(xí):監(jiān)督學(xué)習(xí)指的是通過給定帶有標(biāo)記的訓(xùn)練數(shù)據(jù)來推測出所需功能的機(jī)器學(xué)習(xí)任務(wù)。其中,一個輸入對象和一個輸出對象組成了一個實(shí)例,輸入對象通常為矢量,輸出對象指的是所希望的結(jié)果,也叫監(jiān)督信號。監(jiān)督學(xué)習(xí)算法指的是通過給定的輸入對象進(jìn)行分析、訓(xùn)練處理,通過這些訓(xùn)練結(jié)論推理出一個具有較高識別準(zhǔn)確率的模型。另外,監(jiān)督學(xué)習(xí)中有兩個具有代表性的分類,分別為分類和回歸,分類指的是一個離散的數(shù)據(jù),0以上的正數(shù)可以看成一個正例,0以下的負(fù)數(shù)可以看成一個負(fù)例。另外一個類別為回歸,回歸指的是從給定的連續(xù)數(shù)據(jù)中,進(jìn)行信息提取,并進(jìn)行預(yù)測?;貧w的目標(biāo)即是得到用戶想得到的信息。例如預(yù)測比特幣的價(jià)格波動等等。比較實(shí)用的監(jiān)督學(xué)習(xí)方法有如下幾種:決策樹(DecisionTrees)、隨機(jī)深林(RandomForests)、線性回歸(LinearRegression)、非線性回歸(nonlinearregressionanalysis)。無監(jiān)督學(xué)習(xí):無監(jiān)督學(xué)習(xí)指的是將無法得到答案的數(shù)據(jù)通過它們的內(nèi)在性質(zhì)進(jìn)行分類,類似于物理學(xué)中的矢量,只有方向,沒有大小。另外,使用人工去分析處理那些短時間難以解決的問題,將會使得效率十分低下,使用無監(jiān)督學(xué)習(xí)將這些沒有標(biāo)簽、只有特征向量的數(shù)據(jù)聚集在一起,將不規(guī)則、離散的數(shù)據(jù)按潛在規(guī)則進(jìn)行分類處理,并得到一個解決方案。常見的無監(jiān)督學(xué)習(xí)例子即聚類。聚類的主要功能是把數(shù)據(jù)中較為一致的數(shù)據(jù)聯(lián)合在一起,并通過計(jì)算機(jī)計(jì)算得到最終結(jié)果。比較實(shí)用的無監(jiān)督方法有如下幾種:K-means算法、KernelPCA算法、Eclat算法。半監(jiān)督學(xué)習(xí):半監(jiān)督學(xué)習(xí)指的是一種提取了監(jiān)督學(xué)習(xí)的部分功能,并與非監(jiān)督學(xué)習(xí)之間聯(lián)合的一種學(xué)習(xí)方式,它在方法識別和人工智能技術(shù)中占據(jù)了主要地位。它結(jié)合了監(jiān)督學(xué)習(xí)中的標(biāo)簽數(shù)據(jù)和非監(jiān)督學(xué)習(xí)中的矢量數(shù)據(jù),把最終得到的數(shù)據(jù)進(jìn)行冗和,可以在一定程度上提升訓(xùn)練準(zhǔn)確度,并降低訓(xùn)練時間。強(qiáng)化學(xué)習(xí):強(qiáng)化學(xué)習(xí)又稱增強(qiáng)學(xué)習(xí),是機(jī)器學(xué)習(xí)的領(lǐng)域之一,它起源于巴埔洛夫的實(shí)驗(yàn)條件反射,由Bellman將其總結(jié)為馬爾可夫決策過程。它基于給定的環(huán)境對數(shù)據(jù)進(jìn)行分析處理,取得最大化的預(yù)期結(jié)果。在2016年的圍棋人機(jī)大戰(zhàn)中,AlphaGo的圍棋學(xué)習(xí)就是利用了強(qiáng)化學(xué)習(xí),根據(jù)場上棋子分布情況,模擬出后續(xù)棋況并給出最優(yōu)落棋地點(diǎn)。2.3卷積神經(jīng)網(wǎng)絡(luò)2.3.1卷積神經(jīng)網(wǎng)絡(luò)發(fā)展進(jìn)程卷積神經(jīng)網(wǎng)絡(luò)又被稱為平移不神經(jīng)網(wǎng)絡(luò),它是一個具有學(xué)習(xí)能力的神經(jīng)網(wǎng)絡(luò),在眾多深度學(xué)習(xí)算法中具有代表性。它利用其特有的卷積計(jì)算,將輸入數(shù)據(jù)進(jìn)行一系列壓縮、平滑、冗余等操作,提取其重要特征。它最初由日本的神經(jīng)網(wǎng)絡(luò)學(xué)者在七十年代提出的Neocognitron模型,再到1978年TDNN時間延遲神經(jīng)網(wǎng)絡(luò)的提出。但受當(dāng)時科學(xué)技術(shù)發(fā)展的限制,其發(fā)展受到了很大程度的限制。直到1998年YanLeCun提出LeNet神經(jīng)網(wǎng)絡(luò),他是當(dāng)時機(jī)器學(xué)習(xí)的天才,有著機(jī)器學(xué)習(xí)之父的稱號。2012年,AlexNet神經(jīng)網(wǎng)絡(luò)由Hinton和Krizhevsky提出,打開了堵住神經(jīng)網(wǎng)絡(luò)發(fā)展的一堵墻。此神經(jīng)網(wǎng)絡(luò)的提出代表著神經(jīng)網(wǎng)絡(luò)的發(fā)展正式開始。并在2014年,一種效率更高的VGG神經(jīng)網(wǎng)絡(luò)被提出。2015年,ResNet神經(jīng)網(wǎng)絡(luò)被提出。后續(xù)越來越多的神經(jīng)網(wǎng)絡(luò)類型發(fā)行,推動了人工智能技術(shù)的發(fā)展。2.3.2卷積神經(jīng)網(wǎng)絡(luò)模型簡介卷積神經(jīng)網(wǎng)絡(luò)構(gòu)造類似于人的大腦,由一根根神經(jīng)元組成,這些神經(jīng)元之間互相協(xié)同工作共同構(gòu)建了整個神經(jīng)網(wǎng)絡(luò)系統(tǒng)。LeNet神經(jīng)網(wǎng)絡(luò):LeNet神經(jīng)網(wǎng)絡(luò)模型由兩個部分組成,第一層由一個卷積層(10×1)、一個池化層(50×4×4)、一個全連接層(50×8×8)組成,第二層由一個卷積層(500×1)、一個池化層(20×12×12)、一個全連接層(20×24×24)、一個激活層組成,如圖2-3-2所示:圖2-3-2LeNet神經(jīng)網(wǎng)絡(luò)層次結(jié)構(gòu)圖AlexNet神經(jīng)網(wǎng)絡(luò):AlexNet神經(jīng)網(wǎng)絡(luò)相對于LeNet神經(jīng)網(wǎng)絡(luò)稍顯復(fù)雜。由文獻(xiàn)[24]可知,在參數(shù)和結(jié)構(gòu)方面,AlexNet使用了五層卷積以及三層全連接的結(jié)構(gòu),相對于其余神經(jīng)網(wǎng)絡(luò)模型稍顯繁瑣,使得神經(jīng)元個數(shù)有650000多個。其結(jié)構(gòu)如圖2-3-3所示圖2-3-3AlexNet神經(jīng)網(wǎng)絡(luò)層次結(jié)構(gòu)圖VGGNet神經(jīng)網(wǎng)絡(luò):VGGNet神經(jīng)網(wǎng)絡(luò)有牛津大學(xué)和Google共同合作研發(fā)出的一個神經(jīng)網(wǎng)絡(luò)。于之前所介紹的神經(jīng)網(wǎng)絡(luò)不同,此神經(jīng)網(wǎng)絡(luò)的主要目的是研究卷積深度對轉(zhuǎn)確度的影響。通過多層的卷積、池化、激活、全連接,讓卷積結(jié)構(gòu)更為簡單,更加深入分析處理數(shù)據(jù)的內(nèi)部特征。為后續(xù)神經(jīng)網(wǎng)絡(luò)的發(fā)展做出了一定的貢獻(xiàn)。2.4MobileNets神經(jīng)網(wǎng)絡(luò)2.4.1MobileNets神經(jīng)網(wǎng)絡(luò)模型介紹MobileNets是2017年Google所研究出來的一種新型神經(jīng)網(wǎng)絡(luò),當(dāng)時主要針對移動端等嵌入式可攜帶設(shè)備,所以取名叫MobileNets。其中MobileNets系列總共有三個階段,分別為MobileNetV1、MobileNetV2、MobileNetV3。MobileNetV1是在2017年發(fā)行的,為了解決對模型輕量化的需求,引進(jìn)了最新的輕量級神經(jīng)網(wǎng)絡(luò)替換了原有的VGG16框架,由文獻(xiàn)[22]可知,VGG16框架,其結(jié)構(gòu)含13個卷積層、5個池化層和3個全連接層,訓(xùn)練慢,深度深學(xué)習(xí)能力強(qiáng)。而MobileNetV1并沒有如此復(fù)雜的結(jié)構(gòu),它通過分解卷積降低其構(gòu)架大小,在保證準(zhǔn)確率的情況下使得運(yùn)算速度快,是一種與移動設(shè)備相匹配的卷積神經(jīng)網(wǎng)絡(luò)。MobileNetV1與其余神經(jīng)網(wǎng)絡(luò)較為不同是MobileNetV1使用了深度分離卷積代替普通卷積,并用寬度乘法器減少參數(shù)個數(shù)。但是,減少參數(shù)和操作的數(shù)量也會造成特征的丟失,降低精度。MobileNetsV2是在2018年基于MobileNetV1的基礎(chǔ)上進(jìn)行發(fā)布的,它通過升維、降維操作,降低了特征特性的過擬合概率,引入了殘差結(jié)構(gòu),減少了計(jì)算機(jī)的運(yùn)算時間。相比與MobileNetV1,它主要有著如下幾個方面的改進(jìn),第一個,它改善了卷積層數(shù),移除掉了分離卷積后的ReLU層,并保留了特征的多樣性,使網(wǎng)絡(luò)的表達(dá)能力得到了進(jìn)一步的提升。第二個,MobileNetV2的網(wǎng)絡(luò)為全卷積型網(wǎng)絡(luò),它可以傳入尺寸不同的圖像進(jìn)行特征提取,在小尺寸圖片、數(shù)量級較少時會具有較高的精度,本文在使用MobileNetV2下的模型平均識別成功率高達(dá)92%。MobileNetV3結(jié)合了MobileNetV1的深度可分離卷積功能和MobileNetV2殘差結(jié)構(gòu)所推出的新型神經(jīng)網(wǎng)絡(luò)。它的改進(jìn)有如下幾點(diǎn)。重新設(shè)計(jì)了濾波器的結(jié)構(gòu),相比于MobileNetV1和MobileNetV2中使用了32個濾波器來進(jìn)行卷積操作,MobileNetV3只使用了16個濾波器,依舊可正常進(jìn)行卷積操作,降低了大量的時間。改變了網(wǎng)絡(luò)層次,MobileNetV1和MobileNetV2的激活層采用的是ReLU6,但在MobileNetV1和MobileNetV3中,采用的則是hardswish來作為激活層,提高了識別精度。2.4.2MobileNets神經(jīng)網(wǎng)絡(luò)模型介紹它巧妙的將卷積核進(jìn)行拆分,使用深度可分離的卷積來強(qiáng)化其特有的卷積特性,構(gòu)建出一種新型輕量級的神經(jīng)網(wǎng)絡(luò),可以有效提高卷積特性。相比與其他類型的神經(jīng)網(wǎng)絡(luò),MobileNets依舊可進(jìn)行數(shù)據(jù)處理、特征提取以及訓(xùn)練模型。MobileNets的構(gòu)架方式不同于過去的標(biāo)準(zhǔn)卷積(standardconvolutions),MobileNets是基于一個流線型的卷積架構(gòu),將以往的標(biāo)準(zhǔn)卷積分解、拆分成兩種不同的卷積,每一種卷積后面都帶有一個Batchnorm和一個ReLU非線性網(wǎng)絡(luò)層,有著近30層卷積,從而大大地提升卷積效率。其中分離出地第一種卷積為深度卷積,它的作用是將分離出來的卷積核應(yīng)用到每一個通道中,也就是將卷積層中的每一個過濾器與輸入的每一個通道相對應(yīng)。而第二種卷積逐點(diǎn)卷積的作用是將深度卷積后的通道進(jìn)行分類組合并進(jìn)行合并輸出。標(biāo)準(zhǔn)卷積的計(jì)算方式為Dk*Dk*M*N*Df*Df,而深度卷積的計(jì)算方式為Dk*Dk*M*Df*Df。深度卷積與逐點(diǎn)卷積合并后的計(jì)算方式為Dk*Dk*M*Df*Df+M*N*Df*Df;MobileNets具有兩個特色地超參數(shù)用來分解卷積,第一個超參數(shù)(widemultiplier)的作用是來減少輸出通道的數(shù)量,第二個超參數(shù)(resolutionmultiplier)的作用是進(jìn)行降維,降低輸入圖片的尺寸規(guī)格。3項(xiàng)目環(huán)境介紹3.1PyCharm平臺介紹3.1.1PyCharm介紹PyCharm是著名的計(jì)算機(jī)編程集成開發(fā)環(huán)境,也是Python最高效的開發(fā)環(huán)境IDE之一。它由捷克公司的JeBrains開發(fā)并發(fā)行,其測試版發(fā)布于2010年,它提供兩個版本,分別位社區(qū)版和專業(yè)版,專業(yè)版需要購買許可證進(jìn)行使用,并沒有開源。另外一個版本為社區(qū)版,供免費(fèi)使用,并且已經(jīng)開源,相對于開發(fā)版本,少了些額外功能。PyCharm是一個跨平臺的開發(fā)環(huán)境,它不僅支持Windows,在Unix、Mac以及Linux系統(tǒng)上的兼容同樣完美,它完全兼容在各個系統(tǒng)中的開發(fā)。如下是我總結(jié)的PyCharm的一些實(shí)用功能:代碼分析、處理功能:語法錯誤標(biāo)紅,函數(shù)名、關(guān)鍵字補(bǔ)全,顯示行號。工程目錄結(jié)構(gòu):在左側(cè)可打開項(xiàng)目整體布局,同時同一界面打開依賴文件以及源文件。多功能快捷鍵;計(jì)算速度快,系統(tǒng)占用率低。3.1.2PyCharm平臺搭建PyCharm平臺環(huán)境配置如下:第一步:前往PyCharm官網(wǎng)下載PyCharm安裝包,這里我們選擇Community版本而非Professional版本。第二部:雙擊下載好的pycharm-community-2021.1.exe文件,一路下一步,完成安裝。3.2Anaconda平臺介紹3.2.1Anaconda介紹Anaconda是一個強(qiáng)大的開源Python數(shù)據(jù)平臺,它將很多便捷的工具整合到一起,包含了conda、Python、numpy、pandas等。在科學(xué)數(shù)據(jù)計(jì)算等方面能解決一些其他開發(fā)平臺難以解決的問題,一定程度上提高了用戶的使用效率。它兼容性很強(qiáng),支持Windows系統(tǒng)、Linux系統(tǒng)、Mac系統(tǒng)。Anaconda利用其特有的conda包管理系統(tǒng)將軟件包與所需環(huán)境進(jìn)行結(jié)合,簡便了使用不同軟件時包的管理以及環(huán)境變量的配置。通過其獨(dú)有的命令可自行安裝多個包的版本和庫。例如,它可以安裝python的不同版本,在使用時可以切換使用對應(yīng)的python版本。你不用去下載眾多的軟件、包、庫,使用其特有的packet、environment管理系統(tǒng)。Anaconda通過其命令行窗口和工具來進(jìn)行包和環(huán)境的安裝與管理,它包含大部分與Python相關(guān)的配套工具。Anaconda的具體功能大致為如下幾點(diǎn):可安裝各種不同軟件不同版本的包并隨意切換。簡便軟件環(huán)境,通過命令行窗口執(zhí)行命令一鍵配置環(huán)境。兼容性強(qiáng),可在不同系統(tǒng)上穩(wěn)定使用。3.2.2Anaconda平臺搭建Anaconda開發(fā)環(huán)境配置如下:第一步,從Anaconda官網(wǎng)下載Anaconda,選擇download,這里可以選擇Windows系統(tǒng)、Mac系統(tǒng)、Linux系統(tǒng),根據(jù)自己機(jī)器選擇32位或者64位。另外,還可以選擇不同版本的Python來進(jìn)行安裝。如圖3-2-1。圖3-2-1Anaconda下載界面圖第二步,下載完成后,會在目錄生成一個Anaconda3-2020.11-Windows-x86_64.exe的文件,雙擊進(jìn)行安裝,這里選擇安裝到C盤,用戶選擇AllUsers。這里注意,如圖3-2-2,勾選第一個,該功能是給電腦進(jìn)行環(huán)境變量的配置,若不進(jìn)行此操作,軟件將無法正常使用,且手動進(jìn)行環(huán)境變量配置會稍許麻煩。圖3-2-2Anaconda安裝步驟圖第三步,驗(yàn)證安裝環(huán)境。安裝完成后打開命令行窗口,輸入conda--version,若安裝成功,會顯示版本信息。如圖3-2-3。圖3-2-3環(huán)境驗(yàn)證圖3.3QT介紹3.3.1QT簡介Qt于上世紀(jì)八十年代開發(fā),并于1997年正式發(fā)行。目前包括一系列開發(fā)工具,QtCreator、QtDesigner、QtAssistant、Qtmake等。它是一個跨平臺的C++圖像用戶界面應(yīng)用程序框架。它的編碼格式面向?qū)ο?,易于擴(kuò)展,有效地提高了程序員的編程效率。3.3.2QT主要功能1、優(yōu)秀的跨平臺特征:QT支持MicrosoftWindows,Linux,Unix,Mac等主流系統(tǒng)。支持各個系統(tǒng)中項(xiàng)目的轉(zhuǎn)移,兼容性強(qiáng)。面向?qū)ο缶幊烫卣鳎篞t通過其獨(dú)有的封裝函數(shù)方法使得Qt的使用得到廣泛傳播,可塑性強(qiáng),上手簡單,使用起來非常方面。它將一系列功能對象封裝成一個部件或是一個函數(shù),例如著名的GUI,可直接使用鼠標(biāo)進(jìn)行部件布控,在對應(yīng)的依賴文件會自動生成布控代碼。眾多接口函數(shù):Qt中封裝了大部分的C++類,在調(diào)用時效率高,方便。另外,我們可自行添加庫文件,例如boost庫等??梢浦残詮?qiáng),可利用Qt進(jìn)行嵌入式開發(fā),提供圖像界面設(shè)計(jì),相比于Matlab中回調(diào)函數(shù)的使用,Qt中著名的槽函數(shù)的利用使得部件的使用更為方便。3.3.3QTDesigner在PyCharm開發(fā)環(huán)境配置第一步:安裝PyQt5-tools。打開Windows命令行窗口,輸入pipinstallpyqt5-tools,如圖3.3.1所示:圖3.3.1Pyqt5安裝命令圖第二步:配置QtDesigner第一步下載完成后,通過日志找到designer.exe下載地址,并復(fù)制。我這里的目錄是C:\ProgramData\Anaconda3\envs\flower-demo\Lib\site-packages\qt5_applications\Qt\bin.若通過下載日志無法找到designer.exe文件,可通過everything工具進(jìn)行檢索。打開PyCharm,按照如下操作進(jìn)行環(huán)境變量設(shè)置。打開File->Settings->Tools->ExternalTools并點(diǎn)擊+號,進(jìn)行如圖3.3.2配置圖3.3.2環(huán)境配置圖其中Name填寫QtDesigner;Group選擇ExternalTools;Description可填可不填;Program填寫designer.exe的目錄:C:\ProgramData\Anaconda3\envs\\flower-demo\Lib\site-packages\qt5_applications\Qt\bin\designer.exe;填寫完畢后點(diǎn)擊OK完成配置。第三步:配置PyGUI配置PyGUI的方法可參照配置QtDesigner的方法,修改其中不同參數(shù)即可。如圖3.3.3所示:圖3.3.3環(huán)境配置圖4基于tensorflow的花卉識別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)本文在第二章詳細(xì)介紹了卷積神經(jīng)網(wǎng)絡(luò)CNN和輕量級神經(jīng)網(wǎng)絡(luò)MobileNets模型,在第四章將會結(jié)合兩種神經(jīng)網(wǎng)絡(luò)分別進(jìn)行系統(tǒng)設(shè)計(jì)。軟件環(huán)境按照第三章進(jìn)行搭建,硬件環(huán)境cpu:i5-6300HQ,默認(rèn)2.3Ghz,內(nèi)存16g,250G固態(tài)硬盤。訓(xùn)練數(shù)據(jù)集取自CSDN。整個系統(tǒng)設(shè)計(jì)流程為圖片集通過train.py得到一個模型,得到模型后通過test.py驗(yàn)證模型的準(zhǔn)確度,若準(zhǔn)確度不夠精準(zhǔn),可繼續(xù)進(jìn)行train。得到合格的模型后,可通過windows.py界面程序來進(jìn)行花卉識別。其流程如圖4-1所示。圖4-1花卉識別系統(tǒng)流程圖4.1基于卷積神經(jīng)網(wǎng)絡(luò)CNN的花卉識別系統(tǒng)4.1.1主要內(nèi)容此系統(tǒng)主要利用了卷積神經(jīng)網(wǎng)絡(luò)CNN的三個結(jié)構(gòu)層次來進(jìn)行特征提取,分別為卷積層、池化層和全連接層。系統(tǒng)利用網(wǎng)絡(luò)層獨(dú)有的功能來進(jìn)行組合,提取特征信息。其中卷積層是三層結(jié)構(gòu)種最重要的層次,它將輸入圖片進(jìn)行預(yù)處理,不斷的卷積提取特征信息并進(jìn)行物理降維,方便下一步池化。池化層的作用是解決卷積后的數(shù)據(jù)中特征圖像的維數(shù)依舊很高,無法通過卷積來進(jìn)行降維,導(dǎo)致運(yùn)算時間增加,特征圖像過擬合,識別效率低下。池化層把維數(shù)高的部分用一個池化值進(jìn)行代替,由分布均勻的池化值來對特征圖像進(jìn)行降維處理,也叫做下采樣操作,它通過一系列的池化值降低了模型的大小,使得計(jì)算速度加快。使得特征圖像不會過擬合,提高其魯棒性,并且它不會因?yàn)槠揭坪托D(zhuǎn)而產(chǎn)生影響。全連接層并不是一個必須需要使用的層次,它在卷積神經(jīng)網(wǎng)絡(luò)中主要是通過其分類特性,把特征圖像中的有效信息進(jìn)行保留,無用信息進(jìn)行剔除。它還可以進(jìn)行維度轉(zhuǎn)換,將低維度信息轉(zhuǎn)換為高維度信息,將高維度信息轉(zhuǎn)換為低維度信息。在本系統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)CNN模型中,每一次的訓(xùn)練進(jìn)行了兩次卷積兩次池化的操作,再進(jìn)行一次全連接。初始可選擇訓(xùn)練次數(shù)為10次,根據(jù)10次后的accuracy來判斷是否需要繼續(xù)訓(xùn)練。當(dāng)模型成功率達(dá)到80%方合格。如圖4-1-1所示,為本系統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)CNN的代碼邏輯。如圖4-1-2未使用卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練過程。如圖4-1-3未訓(xùn)練成功率的曲線變化圖圖4-1-1卷積神經(jīng)代碼圖圖4-1-2訓(xùn)練過程圖圖4-1-3訓(xùn)練結(jié)果折線圖訓(xùn)練程序中使用了tensorflow中的眾多API接口,使得我們不需要自己去構(gòu)造訓(xùn)練層次。我們使用了其中的tf.nn.conv2d()、tf.nn.Maxpooling2d()等函數(shù)。tf.nn.conv2d(input,filter,strides,padding),它的主要作用是對輸入數(shù)據(jù)進(jìn)行長量卷積操作。這里只介紹前四個常用參數(shù),其余參數(shù)待后續(xù)研究中進(jìn)行探討。其中input代表輸入,輸入有其特定的規(guī)則,這里只能輸入二維或者四維的數(shù)據(jù)。filter參數(shù)指的是卷積層的卷積核,包括其四維空間的長、寬以及內(nèi)外深度。其中內(nèi)深度必須和input中的通道數(shù)木一致。外深度代表卷積核的個數(shù)。strides代表的是卷積核移動的長度,其輸入變量也是一個四維參數(shù),第一個和第二個默認(rèn)為1,后續(xù)兩個代表二維和三位參數(shù),分別為高和寬。Padding指的是一個數(shù)據(jù)策略,我們可以進(jìn)行選擇,可選擇項(xiàng)為SAME和VALID。tf.nn.MaxPooling2D(pool_size,strides,padding,data_format),它的主要作用是保留特征圖像的主要特征數(shù)據(jù)并減少其參數(shù),進(jìn)行一定程度的降維處理,降低其過擬合概率,對輸入信號進(jìn)行二維最大池化。其中pool_size指的是下采樣的比例,輸出根據(jù)輸入于比例結(jié)合,當(dāng)比例為(3,3)時,輸入(a,3,3,a),輸出為(a,1,1,a)。Stride表示卷積核在卷積過程中所經(jīng)過的長度,一般默認(rèn)kernel_size;Padding為填充方式,可選擇項(xiàng)為SAME和VALID。Data_format表示的是數(shù)據(jù)輸入的格式,取值一般選擇channels_last。數(shù)據(jù)集中具有五種不同的花卉,分別是雛菊(650張圖片,每張圖片在30kb左右)、蒲公英(900張圖片)、玫瑰(650張圖片)、向日葵(700張圖片)、郁金香(800張圖片),為了確保模型的準(zhǔn)確度,在數(shù)據(jù)集的選擇過程中必須全方位考慮,每張圖片的拍攝角度、生長周期不盡相同,如圖4-1-4為郁金香的不同角度、不同顏色以及不同生長周期所拍攝的圖片。圖4-1-4花卉樣本圖當(dāng)模型訓(xùn)練完成并達(dá)到指定識別準(zhǔn)確度后,會在指定目錄生成一個cnn_flower.h5的模型。當(dāng)模型成功后,進(jìn)行下一步test階段,對模型轉(zhuǎn)確度進(jìn)行一個驗(yàn)證。如圖4-1-5中test代碼,給定輸入False,選擇測試cnn模型準(zhǔn)確度。如圖4-1-6所示,在測試完畢后會給出模型對應(yīng)成功率。圖4-1-5驗(yàn)證代碼圖圖4-1-6驗(yàn)證結(jié)果圖其中在讀取模型時選用了tf.keras.Model類,這個類的主要作用是進(jìn)行分析、處理數(shù)據(jù),并進(jìn)行訓(xùn)練并預(yù)測結(jié)果。它將網(wǎng)絡(luò)結(jié)構(gòu)定義后封裝到特定的對象中,方便調(diào)用。本系統(tǒng)使用的tf.keras.Model.load_model(direction),下載模型,這里是從指定目錄讀取模型來進(jìn)行測試。4.1.2實(shí)驗(yàn)結(jié)果為保證實(shí)驗(yàn)數(shù)據(jù)的準(zhǔn)確性,本系統(tǒng)使用卷積神經(jīng)網(wǎng)絡(luò)CNN通過不同數(shù)量的數(shù)據(jù)集進(jìn)行了多組訓(xùn)練。第一組雛菊、蒲公英、玫瑰、向日葵、郁金香各28張,訓(xùn)練次數(shù)epochs為10次。每一輪的訓(xùn)練時間為11秒,總訓(xùn)練時間為123秒。十次訓(xùn)練中準(zhǔn)確率最高的是0.8214,最低的為0.3929。平均識別率0.5929,。如圖4-1-7為訓(xùn)練過程,可以看到每一次的成功率、丟失率、準(zhǔn)確度。如4-1-8為訓(xùn)練折線圖,其中有兩組折線圖,第一組可看到兩個折現(xiàn),分別代表訓(xùn)練準(zhǔn)確度和驗(yàn)證準(zhǔn)確度,可以看出訓(xùn)練成功率存在忽高忽低的現(xiàn)象。第二組是丟失率,可以看到丟失率總體是一個下降的趨勢,中途也出現(xiàn)回滾的數(shù)據(jù),得出結(jié)論,此次實(shí)驗(yàn)沒有達(dá)到實(shí)驗(yàn)的預(yù)期結(jié)果,繼續(xù)加大數(shù)據(jù)集數(shù)量,進(jìn)行后續(xù)實(shí)驗(yàn)。圖4-1-7訓(xùn)練過程圖圖4-1-8訓(xùn)練結(jié)果折線圖第二組雛菊、蒲公英、玫瑰、向日葵、郁金香各100張,訓(xùn)練次數(shù)epochs為10次。每一輪的訓(xùn)練時間平均為30秒,總時長276秒。十輪訓(xùn)練中識別率最高的為0.7900,訓(xùn)練識別率最低的為0.3900,平均識別率為0.627。如圖4-1-9訓(xùn)練過程所示,可以看出訓(xùn)練時間較上一輪有著明顯增強(qiáng),平均識別準(zhǔn)確度較上一輪有著一定提升。但識別最高準(zhǔn)確度沒有上一輪高。如圖4-1-10的兩組折線圖可得,第一組折線圖所表示的訓(xùn)練準(zhǔn)確度以及識別準(zhǔn)確度,雖然訓(xùn)練準(zhǔn)確度在逐步升高,但此輪訓(xùn)練的識別準(zhǔn)確度依舊存在忽高忽低,且波動較大。從第二組的訓(xùn)練丟失率和識別丟失率也可得到同樣的結(jié)論,識別丟失率和識別準(zhǔn)確度有著一樣的上下波動。此輪訓(xùn)練雖然在平均識別率上有所提升,但樣本數(shù)據(jù)仍然有著較明顯的上下波動,繼續(xù)加大數(shù)據(jù)集,進(jìn)行第三輪。圖4-1-9訓(xùn)練結(jié)果圖圖4-1-10訓(xùn)練結(jié)果折線圖第三組雛菊、蒲公英、玫瑰、向日葵、郁金香各300張,訓(xùn)練次數(shù)epochs為10次。每一輪的訓(xùn)練時間平均為72秒,總時長726秒。十輪訓(xùn)練中識別率最高的為0.7800,訓(xùn)練識別率最低的為0.4700,平均識別率為0.654。第四組雛菊、蒲公英、玫瑰、向日葵、郁金香各400張,訓(xùn)練次數(shù)epochs為10次。每一輪的訓(xùn)練時間平均為214秒,總時長2140秒。十輪訓(xùn)練中識別率最高的為0.8050,訓(xùn)練識別率最低的為0.5350,平均識別率為0.714。第五組雛菊、蒲公英、玫瑰、向日葵、郁金香各500張,訓(xùn)練次數(shù)epochs為10次。每一輪的訓(xùn)練時間平均為191秒,總時長1912秒。十輪訓(xùn)練中識別率最高的為0.7920,訓(xùn)練識別率最低的為0.5180,平均識別率為0.7028。第六組訓(xùn)練使用全部數(shù)據(jù)集,雛菊650張圖片、蒲公英900張圖片、玫瑰650張圖片、向日葵700張圖片、郁金香800張圖片。訓(xùn)練次數(shù)epochs為10次。每一輪的平均訓(xùn)練時長為288秒,總時長2880秒。十論訓(xùn)練中識別率最高的為0.8106,訓(xùn)練識別率最低的為0.5845,平均識別率為0.739。4.1.3實(shí)驗(yàn)結(jié)果分析第一組到第六組的訓(xùn)練采用了控制變量法進(jìn)行訓(xùn)練,保持訓(xùn)練次數(shù)不變,改變數(shù)據(jù)集的大小,觀察每次訓(xùn)練的時長、識別成功率、丟失率。因硬件環(huán)境所限,無法進(jìn)行控制訓(xùn)練次數(shù)的實(shí)驗(yàn)。從第一組到第六組的實(shí)驗(yàn)數(shù)據(jù)可得,數(shù)據(jù)集越大,訓(xùn)練時間逐步增加,其平均識別率也不斷升高。雖六組實(shí)驗(yàn)均沒有達(dá)到實(shí)驗(yàn)預(yù)期的80%,但不難推測出,繼續(xù)增加訓(xùn)練次數(shù)或者訓(xùn)練數(shù)據(jù)集都可進(jìn)一步提升平均識別成功率。4.2基于MobileNets神經(jīng)網(wǎng)絡(luò)的花卉識別系統(tǒng)此系統(tǒng)主要利用了MobileNetV2最為優(yōu)秀的反向殘差結(jié)構(gòu),通過先升通道數(shù),再卷積,最后再進(jìn)行升通道數(shù)目,簡化了輸入特征的尺寸大小,更能精準(zhǔn)的提取特征信息。其代碼結(jié)構(gòu)如圖4-2-1所示:圖4-2-1MobileNetV2代碼框架圖其中,使用了Keras中的Sequential模型和GlobalAveragePooling2D,Sequential的作用是通過堆疊卷積層數(shù),來構(gòu)建神經(jīng)網(wǎng)絡(luò)。GlobalAveragePooling2D指的是Keras中的全局池化層,根據(jù)文獻(xiàn)[23]可知,SequentialAPI可以看做是層的線性堆疊。當(dāng)我們創(chuàng)建一個Sequential模型后,在其中可以任意添加圖層,并且每個圖層可以進(jìn)行卷積、最大池化、激活函數(shù)、Dropout和batch歸一化等操作。GlobalAveragePooling2D它代替了卷積神經(jīng)結(jié)構(gòu)中的全連接層,通過空域信息施加全局平均值池化。4-2-1實(shí)驗(yàn)結(jié)果由于使用輕量級神經(jīng)網(wǎng)絡(luò)MobileNets來作遷移訓(xùn)練時,其平均識別成功率相對較高,在此列舉了三組實(shí)驗(yàn)數(shù)據(jù)。第一組數(shù)據(jù)與使用卷積神經(jīng)網(wǎng)絡(luò)的第二組實(shí)驗(yàn)數(shù)據(jù)保持一致,其中雛菊、蒲公英、玫瑰、向日葵、郁金香各100張,訓(xùn)練次數(shù)epochs為10次。每一輪的訓(xùn)練時間平均為14秒,總時長141秒。十輪訓(xùn)練中識別率最高的為0.9200,訓(xùn)練識別率最低的為0.8300,平均識別率為0.895。相比于使用卷積神經(jīng)網(wǎng)路,無論是在訓(xùn)練時長、識別準(zhǔn)確度方面,都有著較為明顯的提升。如圖4-1-2訓(xùn)練時間、各識別率所示:如圖4-1-3訓(xùn)練折線圖所示:圖4-1-2訓(xùn)練過程圖圖4-1-3訓(xùn)練折線圖第二組數(shù)據(jù)與使用卷積神經(jīng)網(wǎng)絡(luò)的第四組實(shí)驗(yàn)數(shù)據(jù)保持一致,雛菊、蒲公英、玫瑰、向日葵、郁金香各400張,訓(xùn)練次數(shù)epochs為10次。每一輪的平均訓(xùn)練時長為53秒,總時長532秒。十論訓(xùn)練中識別率最高的為0.9432,訓(xùn)練識別率最低的為0.8751,平均識別率為0.916。在增加圖片集后,識別成功率有著較大提升。第三組數(shù)據(jù)與使用卷積神經(jīng)網(wǎng)絡(luò)的第六組實(shí)驗(yàn)數(shù)據(jù)保持一致,其中雛菊650張圖片、蒲公英900張圖片、玫瑰650張圖片、向日葵700張圖片、郁金香800張圖片。訓(xùn)練次數(shù)epochs為10次。每一輪的平均訓(xùn)練時長為109秒,總時長1095秒。十論訓(xùn)練中識別率最高的為0.9578,訓(xùn)練識別率最低的為0.9128,平均識別率為0.935。此輪訓(xùn)練中無一例外,識別率都大于0.9,使用MobileNets來訓(xùn)練模型取得了較大成功。5總結(jié)與展望隨著科學(xué)技術(shù)的不斷提升,人工智能技術(shù)、機(jī)器學(xué)習(xí)技術(shù)、圖像識別技術(shù)也將會不斷發(fā)展?;ɑ茏R別技術(shù)作為人工智能技術(shù)和圖像識別技術(shù)相結(jié)合的子應(yīng)用,也會一步一步發(fā)展壯大。目前花卉識別技術(shù)主要應(yīng)用在大棚農(nóng)業(yè)生產(chǎn)上,可以在一定程度上減少花卉專業(yè)工作者的工作量,提高工作效率。在日常生活生產(chǎn)中也得到了很好的發(fā)展,目前市面上存在的花卉識別軟件,不僅僅能識別出花卉的種類,往往會伴隨花卉的歷史信息、生長各時期的圖片以及生長注意事項(xiàng)等關(guān)聯(lián)信息。但當(dāng)被識別的花卉受環(huán)境因素導(dǎo)致其特征不夠完整時,其識別效率就會大打折扣。本文在花卉識別系統(tǒng)中所用的卷積神經(jīng)網(wǎng)絡(luò)CNN以及輕量級神經(jīng)網(wǎng)絡(luò)MobileNets雖能解決此問題,需要在數(shù)據(jù)集中添加此等環(huán)境下的花卉照片,但受到花卉種類繁多以及生長狀況的影響,會一定程度降低花卉識別的效率。因此,對于殘缺的花卉識別仍然是一個指的解決的問題。5.1總結(jié)本文主要研究了花卉識別在PyCharm平臺上使用兩種不同的神經(jīng)網(wǎng)絡(luò)識別成功率的比較。其中使用卷積神經(jīng)網(wǎng)絡(luò)CNN的平均識別成功率為75%,使用輕量級神經(jīng)網(wǎng)絡(luò)MobileNets的平均識別成功率為91%。使用卷積神經(jīng)網(wǎng)絡(luò)CNN進(jìn)行花卉識別時,需要控制好卷積層數(shù),不然會導(dǎo)致特征信息發(fā)散,使得識別成功率出現(xiàn)忽高忽低的情況,在控制住訓(xùn)練次數(shù)的情況下,增加一定量數(shù)據(jù)集有助于花識別成功率的提升。當(dāng)數(shù)據(jù)集過大時,普通的家用級電腦無法進(jìn)行訓(xùn)練,需要租用服務(wù)器或使用級別較高的顯卡來進(jìn)行GUP訓(xùn)練。在使用輕量級神經(jīng)網(wǎng)絡(luò)MobileNets時,利用了其減少參數(shù)數(shù)量和計(jì)算量的原理,使得在訓(xùn)練時幾乎不受數(shù)據(jù)集的大小影響。其訓(xùn)練識別成功率較CNN也有著較大的提升,在訓(xùn)練過程中,幾乎很少出現(xiàn)識別成功率很低的情況,其識別平均成功率即其中位數(shù)。5.2展望雖然使用兩種神經(jīng)網(wǎng)絡(luò)所生成的模型成功率都很高,但受到硬件環(huán)境的限制,使用兩種神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練時非常耗時,且機(jī)器常常會因?yàn)橛?xùn)練而崩壞。其中使用卷積神經(jīng)網(wǎng)絡(luò)識別的成功率并沒有達(dá)到預(yù)期,甚至出現(xiàn)了訓(xùn)練100次成功率都在0.5左右。因此在后續(xù)研究中需要逐步改善卷積層數(shù)來提高訓(xùn)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論