杜雨菲,吳保國(guó),陳 棟
北京林業(yè)大學(xué) 信息學(xué)院,北京100083
在生態(tài)建設(shè)日益推進(jìn)的今天,公眾對(duì)樹木的認(rèn)知有了更為深層的需求,從僅僅知道某樹種的名稱,演變到學(xué)習(xí)該樹種的相關(guān)知識(shí),即從“認(rèn)樹識(shí)樹”,演變?yōu)榱恕罢J(rèn)樹識(shí)樹知樹”。通常情況下,公眾進(jìn)行樹種識(shí)別主要是通過(guò)閱讀掛在樹上的標(biāo)牌、查閱植物學(xué)家編制的樹種檢索表、樹種圖冊(cè)等方式。然而,標(biāo)牌上展示的知識(shí)有限,利用植物檢索表識(shí)別樹種需要林學(xué)專業(yè)知識(shí),樹種圖冊(cè)攜帶不便,均不適用于普通人群對(duì)樹種知識(shí)的學(xué)習(xí)。隨著人工智能技術(shù)和圖像處理技術(shù)的快速發(fā)展,國(guó)內(nèi)外很多研究人員采用機(jī)器學(xué)習(xí)方法構(gòu)建了植物圖像分類模型[1-5],并以模型為基礎(chǔ)研建了植物識(shí)別App,利用拍攝的樹葉、花果等對(duì)樹種進(jìn)行識(shí)別[5-7],達(dá)到了一定的識(shí)別精度。美國(guó)的Leafsnap 是世界上首款運(yùn)用智能識(shí)別技術(shù)的植物識(shí)別App[8],國(guó)內(nèi)比較成熟的有形色App[8]和花伴侶[9],可以根據(jù)植物的形態(tài)照片對(duì)開花的植物進(jìn)行識(shí)別。除此之外,還有研究人員提出了基于交互式檢索采用專家問(wèn)答的方式進(jìn)行植物識(shí)別的設(shè)想[10-11]。然而,由于開花植物的花形特征較為顯著,喬灌木較少開花且枝葉特征較為細(xì)微,基于圖像處理和機(jī)器學(xué)習(xí)技術(shù)構(gòu)建的植物識(shí)別App多用于開花植物的識(shí)別,較少用于喬灌木識(shí)別;由于機(jī)器學(xué)習(xí)算法的準(zhǔn)確率與樣品選取量的問(wèn)題,對(duì)開花植物的識(shí)別率不高,對(duì)喬灌木植物的識(shí)別率更不容樂(lè)觀,容易對(duì)使用者造成誤導(dǎo);植物識(shí)別App 沒(méi)有顯示植物識(shí)別的過(guò)程,使用戶喪失了進(jìn)一步探究植物相關(guān)知識(shí)以及獲得辨識(shí)能力的機(jī)會(huì);采用專家系統(tǒng)的方法可以彌補(bǔ)上述不足,但現(xiàn)有的植物識(shí)別專家系統(tǒng)還停留在設(shè)想和設(shè)計(jì)階段。鑒于喬灌木識(shí)別專家系統(tǒng)的匱乏,以北京喬灌木枝葉檢索表[12]中的專家知識(shí)為例,對(duì)專家知識(shí)進(jìn)行提取整理,利用枝葉特征圖片對(duì)每條規(guī)則進(jìn)行直觀解釋,建立了喬灌木識(shí)別知識(shí)庫(kù),設(shè)計(jì)了喬灌木識(shí)別推理算法,研建了北京市喬灌木識(shí)別專家系統(tǒng),實(shí)現(xiàn)了對(duì)北京市喬灌木樹種的有效識(shí)別,使公眾可以在生活中感受豐富的樹種知識(shí),為森林生態(tài)建設(shè)服務(wù)。
樹木學(xué)專家通過(guò)樹木的樹皮、枝、葉、花、果等部位來(lái)識(shí)別樹木的科、屬、種、名。經(jīng)過(guò)長(zhǎng)期的知識(shí)積累,樹木學(xué)專家編制了樹種檢索表[13]。為了方便識(shí)別北京市的喬灌木樹種,劉一樵[12]編制了《北京市喬灌木枝葉檢索表》,根據(jù)枝葉形狀分為針形(條形、鉆形或鱗形)、復(fù)葉、單葉對(duì)生、單葉互生(葉全緣)、單葉互生(葉有鋸齒或裂片)5類,分別編制檢索表。該檢索表中的知識(shí)包含了詳細(xì)的枝葉特征文字描述,根據(jù)不同的葉形特點(diǎn),枝葉檢索知識(shí)又細(xì)分為5 種:針形、條形、鉆形或鱗形;復(fù)葉;單葉對(duì)生;單葉互生、全緣;單葉互生、有鋸齒或裂片。樹種知識(shí)包含了樹種的名稱、拉丁名、造林技術(shù)、圖片等信息。
本研究的樹種識(shí)別方式以北京市喬灌木枝葉檢索表作為參照,表1 為該枝葉檢索表進(jìn)行檢索的示例:首先在首編號(hào)為1的枝葉特征中,確定該樹種的枝葉特征符合“葉針形,條形”,尾編號(hào)為2;繼續(xù)查詢首編號(hào)與尾編號(hào)相同的枝葉特征,即在首編號(hào)為2 的枝葉特征中,確定該樹種的枝葉特征符合“葉針形,單生或2~5 枚束生”,尾編號(hào)為3;繼續(xù)查詢首編號(hào)為3的枝葉特征,確定該樹種的枝葉特征符合“葉單生,在長(zhǎng)枝上螺旋狀著生,在短枝上簇生”,該條件對(duì)應(yīng)的尾編號(hào)為“雪松”,至此,完成了樹種的檢索與識(shí)別。
表1 枝葉檢索表示例
圖1 規(guī)則推理樹
圖2 二級(jí)規(guī)則推理樹
本文研究了上述檢索方式的知識(shí)結(jié)構(gòu),構(gòu)建了枝葉檢索知識(shí)的規(guī)則推理樹(圖1),每類枝葉特征均對(duì)應(yīng)一個(gè)二級(jí)規(guī)則推理樹。圖2是以“針葉、條形、鉆形、鱗形”為例的二級(jí)規(guī)則推理樹示例,在樹的每一個(gè)節(jié)點(diǎn)都要判斷下一步應(yīng)該走哪一條路徑,每一個(gè)分支路徑都擁有一個(gè)枝葉特征值,通過(guò)選擇枝葉特征的值來(lái)決定下一個(gè)節(jié)點(diǎn),在下一個(gè)節(jié)點(diǎn)再重復(fù)上述過(guò)程,就可以最終找到所需要的節(jié)點(diǎn)。存在不同規(guī)則推理路徑最終節(jié)點(diǎn)為同一樹種的情況,這種冗余路徑增強(qiáng)了樹種檢索與識(shí)別的效果。
專家知識(shí)表示方法通常有6種:一階謂詞表示法[14]、產(chǎn)生式規(guī)則表示法[15]、框架表示法[16]、語(yǔ)義網(wǎng)絡(luò)表示法[17]、劇本[18]以及本體論[19]。產(chǎn)生式規(guī)則表示法適合表示因果關(guān)系的知識(shí),能夠清晰明確地表示知識(shí)之間的規(guī)則,表示形式與人類求解問(wèn)題時(shí)的邏輯思維相似,易于理解,已經(jīng)多次被應(yīng)用在專家系統(tǒng)的構(gòu)建中[20-22]。因此,本研究采取產(chǎn)生式規(guī)則表示法對(duì)枝葉檢索知識(shí)進(jìn)行表示,例如雪松的檢索規(guī)則可以表達(dá)為:IF 葉針形,條形and 葉針形,單生或2~5枚束生and 葉單生,在長(zhǎng)枝上螺旋狀著生,在短枝上簇生THEN 雪松。
為了方便在計(jì)算機(jī)中進(jìn)行規(guī)則的存儲(chǔ)和調(diào)用,在推理規(guī)則樹的基礎(chǔ)上,構(gòu)建了枝葉檢索知識(shí)規(guī)則推理樹的鏈?zhǔn)诫p親表示模型,如圖3所示。每個(gè)節(jié)點(diǎn)都有頭指針和尾指針,父節(jié)點(diǎn)的尾指針指向子節(jié)點(diǎn)的頭指針,檢索過(guò)程由指針進(jìn)行鏈接完成。在一級(jí)模型中,枝葉特征導(dǎo)航節(jié)點(diǎn)是頭節(jié)點(diǎn),其頭指針為空,尾指針為T0,據(jù)此鏈接到頭指針為T0的節(jié)點(diǎn),再根據(jù)“T1、T2、T3、T4、T5”這5 種尾指針,鏈接到對(duì)應(yīng)的枝葉特征種類二級(jí)模型中。圖4 是枝葉檢索知識(shí)規(guī)則推理樹的鏈?zhǔn)诫p親表示二級(jí)模型的示例,尾指針為0 的節(jié)點(diǎn)沒(méi)有子節(jié)點(diǎn)。例如,父節(jié)點(diǎn)“針形、條形、鉆形、鱗形”的頭指針為空,尾指針為1,子節(jié)點(diǎn)“葉針形、條形”的頭指針與其父節(jié)點(diǎn)相同,尾指針為2。諸如此類,直到檢索到尾指針為“0”的節(jié)點(diǎn)結(jié)束樹種識(shí)別過(guò)程。
圖3 枝葉檢索知識(shí)規(guī)則推理樹的鏈?zhǔn)诫p親表示
圖4 二級(jí)鏈?zhǔn)诫p親表示
根據(jù)樹種識(shí)別專家知識(shí)的表示,本研究設(shè)計(jì)了6個(gè)關(guān)系,分別是:存儲(chǔ)枝葉特征分類規(guī)則的導(dǎo)航表,存儲(chǔ)針形、復(fù)葉、單葉對(duì)生、單葉對(duì)生、單葉互生喬灌木樹種識(shí)別推理規(guī)則表。各個(gè)表之間的關(guān)系如圖5所示。
通過(guò)導(dǎo)航表,根據(jù)枝葉特征分類推理規(guī)則來(lái)從5種不同類型的喬灌木樹種識(shí)別推理規(guī)則表(表名分別為T1、T2、T3、T4、T5)中選擇推理規(guī)則表進(jìn)行知識(shí)搜索,定位到所要識(shí)別的樹種;然后通過(guò)造林樹種表(表名為Trees)獲取該樹種對(duì)應(yīng)的樹種知識(shí),幫助用戶深入了解所識(shí)別樹種的知識(shí)。
導(dǎo)航表包含規(guī)則表序號(hào)、枝葉描述、表名和枝葉描述圖片名稱屬性,通過(guò)枝葉描述和枝葉描述圖片定位到喬灌木樹種識(shí)別推理規(guī)則表T1~T5種中的1種推理規(guī)則表。5種喬灌木樹種識(shí)別推理規(guī)則表結(jié)構(gòu)相同,包含了首節(jié)點(diǎn),尾節(jié)點(diǎn),枝葉描述,枝葉描述圖片名稱,樹種編號(hào)屬性,通過(guò)識(shí)別推理規(guī)則對(duì)樹種進(jìn)行識(shí)別,得到滿足規(guī)則的樹種編號(hào),通過(guò)造林樹種表得到該樹種的知識(shí)。
導(dǎo)航表T0的關(guān)系模式如下:
T0(規(guī)則表序號(hào),枝葉描述,表名,枝葉描述圖片名稱)
每類推理規(guī)則表的序號(hào)和表名均存儲(chǔ)在推理規(guī)則導(dǎo)航表的“規(guī)則表序號(hào)”“表名”字段中;推理規(guī)則導(dǎo)航表的“枝葉描述”字段存儲(chǔ)對(duì)推理規(guī)則表進(jìn)行分類的枝葉特征,這是導(dǎo)航的基本依據(jù)。
針形、條形、鉆形或鱗形葉喬灌木樹種識(shí)別推理規(guī)則表T1、復(fù)葉喬灌木樹種識(shí)別推理規(guī)則表T2、單葉對(duì)生喬灌木樹種識(shí)別推理規(guī)則表T3、單葉互生全緣葉喬灌木樹種識(shí)別推理規(guī)則表T4、單葉互生有鋸齒或裂片葉喬灌木樹種識(shí)別推理規(guī)則表T5的關(guān)系模式相同,表Ti(i=1,2,…,5)的關(guān)系模式如下:
Ti(首節(jié)點(diǎn),尾節(jié)點(diǎn),枝葉描述,枝葉描述圖片名稱,樹種編號(hào))
造林樹種表中存儲(chǔ)造林樹種知識(shí),關(guān)系模式如下:
Trees(樹種編號(hào),樹種學(xué)名,樹種別名,樹種拉丁名,樹種描述,樹種分布,樹種描述圖片名稱,造林技術(shù),……)
圖5 表之間的關(guān)系
本研究中每類喬灌木樹種識(shí)別推理規(guī)則的實(shí)現(xiàn)關(guān)鍵在于“首節(jié)點(diǎn)”和“尾節(jié)點(diǎn)”?!笆坠?jié)點(diǎn)”和“尾節(jié)點(diǎn)”共同標(biāo)識(shí)一條推理規(guī)則,因此,采用“首節(jié)點(diǎn)”和“尾節(jié)點(diǎn)”作為每類推理規(guī)則表的聯(lián)合主鍵。在樹種的識(shí)別過(guò)程中,需要通過(guò)查找“首節(jié)點(diǎn)”與上一規(guī)則的“尾節(jié)點(diǎn)”相同的規(guī)則,每個(gè)“首節(jié)點(diǎn)”“尾節(jié)點(diǎn)”都是大于等于0 的整數(shù)。當(dāng)“尾節(jié)點(diǎn)”的值為0 時(shí),代表該條規(guī)則已經(jīng)結(jié)束,樹種識(shí)別完成,立即讀取該記錄的樹種編號(hào),到造林樹種表中查詢其樹種名稱、樹種、樹種拉丁名、樹種描述、樹種分布等信息?!爸θ~描述”是用戶進(jìn)行枝葉特征選擇的基礎(chǔ),“樹種編號(hào)”字段存儲(chǔ)了規(guī)則結(jié)束對(duì)應(yīng)的樹種編號(hào),是與造林樹種表進(jìn)行連接的外鍵。由于用戶缺乏相關(guān)專業(yè)知識(shí),難以對(duì)文本描述的枝葉特征進(jìn)行理解和判斷,因此,使用圖片對(duì)推理規(guī)則涉及的所有枝葉特征進(jìn)行直觀展示,輔助用戶進(jìn)行枝葉特征的理解和判斷?!爸θ~描述圖片名稱”字段中以“img/表名/圖名”的形式存儲(chǔ)對(duì)應(yīng)枝葉特征圖片的路徑和名稱,通過(guò)路徑和名稱獲取枝葉描述圖片。由于“首節(jié)點(diǎn)”和“尾節(jié)點(diǎn)”是每類推理規(guī)則表的聯(lián)合主鍵,因此,圖片均以“圖-首節(jié)點(diǎn)-尾節(jié)點(diǎn)”的形式進(jìn)行命名,可以唯一標(biāo)識(shí)每類推理規(guī)則下的圖片。
由于表T1~T5 的關(guān)系模式相同,這里只給出表T1的實(shí)例(表2),T2~T5的實(shí)例不再贅述。
表2 推理規(guī)則表T1實(shí)例
推理機(jī)制的選擇需要與知識(shí)表示方式相匹配[20-21]。根據(jù)推理過(guò)程進(jìn)行的方向,可以將推理機(jī)制分為3 種:正向推理、反向推理和雙向推理[22]。正向推理機(jī)制是數(shù)據(jù)驅(qū)動(dòng)推理,推理基礎(chǔ)是邏輯演繹的推理鏈,與產(chǎn)生式規(guī)則表示法表示的知識(shí)結(jié)構(gòu)吻合。因此,根據(jù)產(chǎn)生式規(guī)則表示法的特點(diǎn),選擇正向推理機(jī)制。本研究的推理算法設(shè)計(jì)主要包括枝葉特征讀取、喬灌木識(shí)別兩部分,具體推理算法如下:
步驟1 根據(jù)推理規(guī)則導(dǎo)航表T0中所有推理規(guī)則表對(duì)應(yīng)的枝葉描述、枝葉描述圖片,選定其中一類推理規(guī)則表。
步驟2 查詢選定的推理規(guī)則表Ti(i=1,2,…,5)中所有首節(jié)點(diǎn)為1的枝葉特征記錄,根據(jù)其對(duì)應(yīng)的枝葉描述、枝葉描述圖片,選擇與事實(shí)一致的枝葉特征。
步驟3 獲取選擇的枝葉特征對(duì)應(yīng)的尾節(jié)點(diǎn),判斷該尾節(jié)點(diǎn)是否為0,不為0進(jìn)行步驟4,若為0轉(zhuǎn)向步驟5。
步驟4 在推理規(guī)則表Ti 中查詢所有首節(jié)點(diǎn)與步驟3中尾節(jié)點(diǎn)相同的枝葉特征記錄,根據(jù)其對(duì)應(yīng)的枝葉描述、枝葉描述圖片,選擇與事實(shí)一致的枝葉特征,轉(zhuǎn)向步驟3。
步驟5 獲取該枝葉特征對(duì)應(yīng)的樹種編號(hào),查詢?cè)炝謽浞N表Trees中對(duì)應(yīng)的樹種信息并進(jìn)行展示。
步驟6 推理結(jié)束。
根據(jù)喬灌木識(shí)別的推理算法,考慮數(shù)據(jù)庫(kù)存儲(chǔ)和編程特點(diǎn)和計(jì)算機(jī)的可操作性,設(shè)計(jì)了整個(gè)系統(tǒng)的推理數(shù)據(jù)流程,如圖6所示。
圖6 喬灌木識(shí)別推理流程圖
圖7 總體框架設(shè)計(jì)圖
北京市喬灌木識(shí)別專家系統(tǒng)的總體框架設(shè)計(jì)如圖7所示。用戶可以通過(guò)網(wǎng)絡(luò)訪問(wèn)到系統(tǒng)界面,對(duì)系統(tǒng)進(jìn)行操作,系統(tǒng)通過(guò)訪問(wèn)枝葉檢索知識(shí)、樹種知識(shí)庫(kù),調(diào)取相應(yīng)的知識(shí)和規(guī)則,對(duì)用戶的行為做出響應(yīng),輸出結(jié)果。北京市喬灌木識(shí)別專家系統(tǒng)的功能結(jié)構(gòu)如圖8所示,該系統(tǒng)主要包括以下3個(gè)功能模塊:
(1)樹種識(shí)別功能包括交互式枝葉特征提問(wèn),識(shí)別步驟退回、樹種信息展示。其中識(shí)別步驟退回功能在頁(yè)面中實(shí)時(shí)顯示用戶選擇枝葉特征的路徑,用戶不僅能根據(jù)路徑進(jìn)行植物識(shí)別知識(shí)的學(xué)習(xí),還能判斷已經(jīng)選擇的枝葉特征是否有誤,如果有誤,可以返回上一步驟進(jìn)行重新選擇。樹種信息展示功能是在樹種識(shí)別結(jié)束后,通過(guò)被識(shí)別出的樹種編號(hào)查詢樹種知識(shí)庫(kù),將該樹種的信息、圖片展示在頁(yè)面中。
(2)樹種組合條件查詢可以根據(jù)喬灌木的樹種編號(hào)、樹種學(xué)名、樹種別名、樹種描述、樹種分布、造林技術(shù)等條件進(jìn)行組合查詢,從樹種知識(shí)庫(kù)中查詢滿足條件所有樹種,用戶選擇后瀏覽該樹種的相關(guān)信息。
(3)知識(shí)庫(kù)維護(hù)功能包括知識(shí)查詢、知識(shí)增加、知識(shí)更新、知識(shí)刪除,分別實(shí)現(xiàn)對(duì)枝葉檢索知識(shí)庫(kù)、樹種知識(shí)庫(kù)中的知識(shí)進(jìn)行查詢、增加、更新和刪除,達(dá)到維護(hù)知識(shí)庫(kù)的效果。
本系統(tǒng)以Java 為開發(fā)語(yǔ)言,采用了Spring MVC(Model,View,Control)框架,使將系統(tǒng)分為了3個(gè)層次:數(shù)據(jù)持久層、業(yè)務(wù)邏輯層和表現(xiàn)層。數(shù)據(jù)持久層:使用SQL Server 作為系統(tǒng)的數(shù)據(jù)庫(kù),使用Hibernate 框架對(duì)數(shù)據(jù)庫(kù)操作進(jìn)行封裝;業(yè)務(wù)邏輯層:基于Spring框架,實(shí)現(xiàn)了用戶知識(shí)查詢的接口;表現(xiàn)層:使用Ajax、JQuery技術(shù)與接口進(jìn)行數(shù)據(jù)的交互,實(shí)現(xiàn)系統(tǒng)的異步刷新,減少頁(yè)面刷新次數(shù),使基本功能由瀏覽器分流,用戶友好性較強(qiáng)。
北京市喬灌木識(shí)別專家系統(tǒng)核心功能的實(shí)現(xiàn)主要依靠2個(gè)關(guān)鍵算法:?jiǎn)坦嗄咀R(shí)別算法、退回算法。
(1)喬灌木識(shí)別算法的實(shí)現(xiàn)
本算法包括3 部分:枝葉特征知識(shí)的讀取、樹種知識(shí)的讀取、枝葉(樹種)描述與圖片的展示。依據(jù)圖6設(shè)計(jì)的喬灌木識(shí)別推理數(shù)據(jù)流程圖,具體的算法流程圖如圖9 所示。根據(jù)Spring MVC 架構(gòu)的層次,代碼的編寫分為數(shù)據(jù)持久層、業(yè)務(wù)邏輯層和表現(xiàn)層,關(guān)鍵代碼如下所示:
數(shù)據(jù)持久層:
String hql="from T1 where node=?";
List
String hql="from Trees where treeNode=?";
List
業(yè)務(wù)邏輯層:
if("T1".equals(type)){
List
list=selectTreeService.findSelectT1(node);
returnWithJSONArray(response,list);
……
}else if("T5".equals(type)){
List
selectTreeService.findSelectT5(node);
returnWithJSONArray(response,list);}
表現(xiàn)層:
$.ajax({
type:'POST',
async:false,
url:"../../selectTree/selectTreeTextDetail",
dataType:"json",
data:{type:type,node:node},
cache:false,
success:function(data){ result=data;}});
If(node != 0){
var result=_this.stepData(type,node);
_this.detailStepShow(result,stepCount);
}else{
var result=_this.findData(type,node);
var endResult =
_this.endData(result.treeNode);
this.endStepShow(endResult,stepCount);}
(2)退回算法的實(shí)現(xiàn)
若只進(jìn)行了一次枝葉特征問(wèn)答,退回上一步需要從T0 表中查詢所有記錄;在已經(jīng)進(jìn)行了至少兩次枝葉特征問(wèn)答的情況下,通過(guò)節(jié)點(diǎn)的查找與鏈接,退回上一步。具體算法為:從存儲(chǔ)已經(jīng)選擇的枝葉特征記錄的數(shù)組中獲取最后一條記錄的首節(jié)點(diǎn),利用該首節(jié)點(diǎn)在該子表中查詢出首節(jié)點(diǎn)相同的所有枝葉特征記錄,具體的算法流程如圖10所示。由于本算法是在讀取枝葉特征記錄算法的基礎(chǔ)上,增加了部分算法邏輯,因此代碼的編寫主要在表現(xiàn)層,關(guān)鍵代碼如下所示:
表現(xiàn)層:
if(node=="1"){ //從T0表查詢所有記錄
type = T0;
node= T0;
圖8 功能結(jié)構(gòu)圖
var result=_this.stepData(type,node);
_this.detailStepShow(result,stepCount);
}else{
var endResult=_this.stepData1
(type,stepRecordArray[stepCount?1]);
var node=endResult.node;
stepRecordArray.length=stepRecordArray.length?1;
var result=_this.stepData(type,node);
_this.detailStepShow(result,stepCount);}
圖9 樹種識(shí)別算法實(shí)現(xiàn)流程圖
圖10 退回算法實(shí)現(xiàn)流程圖
北京市喬灌木識(shí)別專家系統(tǒng)主要提供了根據(jù)枝葉特征來(lái)識(shí)別北京市喬灌木樹種的服務(wù),識(shí)別過(guò)程中為避免用戶專業(yè)知識(shí)儲(chǔ)備不足會(huì)造成枝葉特征選擇疑惑的情況,采集了每個(gè)枝葉特征所對(duì)應(yīng)的圖片進(jìn)行輔助選擇。頁(yè)面上方顯示在該樹種識(shí)別的過(guò)程中枝葉特征的選擇路徑,方便用戶進(jìn)行系統(tǒng)的知識(shí)學(xué)習(xí);下方為枝葉特征單選框,選定某種枝葉特征后,頁(yè)面右方會(huì)有相應(yīng)的枝葉特征圖片展示。以雪松為例,樹種識(shí)別的過(guò)程和最終結(jié)果分別如圖11和圖12所示。
圖11 樹種識(shí)別過(guò)程
圖12 樹種識(shí)別結(jié)果
系統(tǒng)運(yùn)行環(huán)境要求操作系統(tǒng)為64 位的Windows Server 2008 或更新的操作系統(tǒng),WWW 服務(wù)器為Tomcat 7。硬件要求內(nèi)存為16 GB,硬盤空間大于等于100 GB,處理器為Intel?Xeon?CPU E5-2620 v2 @2.10 GHz。使用JMeter開源測(cè)試工具,模擬多用戶并發(fā)訪問(wèn)系統(tǒng),對(duì)系統(tǒng)的性能進(jìn)行評(píng)估。測(cè)試結(jié)果如圖13所示,虛擬并發(fā)用戶數(shù)為1 000時(shí),系統(tǒng)平均響應(yīng)時(shí)間約為20 ms,運(yùn)行情況良好,能夠有效地為公眾提供樹種識(shí)別服務(wù)。
針對(duì)目前喬灌木識(shí)別方式存在的問(wèn)題,以北京市喬灌木識(shí)別專家知識(shí)為例,分析了樹木學(xué)專家識(shí)別樹種的知識(shí)構(gòu)成,根據(jù)枝葉檢索表整理提取了枝葉檢索知識(shí)的邏輯結(jié)構(gòu),設(shè)計(jì)了枝葉檢索知識(shí)的規(guī)則推理樹,基于產(chǎn)生式規(guī)則表示法對(duì)枝葉檢索知識(shí)進(jìn)行了表達(dá)。
圖13 系統(tǒng)平均響應(yīng)時(shí)間測(cè)試結(jié)果
為了方便將規(guī)則在計(jì)算機(jī)中進(jìn)行存儲(chǔ),采用樹的鏈?zhǔn)诫p親表示法構(gòu)建了推理規(guī)則的數(shù)據(jù)結(jié)構(gòu)?;谠摂?shù)據(jù)結(jié)構(gòu),完成了知識(shí)庫(kù)的設(shè)計(jì),構(gòu)建了一種可以使用關(guān)系型數(shù)據(jù)庫(kù)存儲(chǔ)規(guī)則性知識(shí)的關(guān)系表結(jié)構(gòu),采用首節(jié)點(diǎn)、尾節(jié)點(diǎn)實(shí)現(xiàn)規(guī)則的存儲(chǔ)和推理。
與傳統(tǒng)的推理規(guī)則不同的是,本研究采用圖片對(duì)每條規(guī)則進(jìn)行直觀解釋,避免用戶在進(jìn)行樹種識(shí)別的過(guò)程中出現(xiàn)困惑,指引用戶進(jìn)行正確的選擇。
采用正向推理方式,詳細(xì)分析與設(shè)計(jì)了喬灌木識(shí)別推理算法。在此基礎(chǔ)上,構(gòu)建了北京市喬灌木枝葉識(shí)別專家系統(tǒng),設(shè)計(jì)并實(shí)現(xiàn)了2 個(gè)核心功能的算法,使該系統(tǒng)能實(shí)現(xiàn)樹種的準(zhǔn)確識(shí)別。目前,北京市喬灌木枝葉識(shí)別專家系統(tǒng)已經(jīng)應(yīng)用在“森林培育與經(jīng)營(yíng)全過(guò)程專家輔助決策支持系統(tǒng)”項(xiàng)目中,運(yùn)行效果良好。