本發(fā)明涉及一種基于隨機(jī)森林和二維碼識(shí)別的農(nóng)業(yè)移動(dòng)機(jī)器人,尤其涉及一種可以基于隨機(jī)森林模型進(jìn)行作業(yè)決策和基于二維碼進(jìn)行模式識(shí)別和定位的移動(dòng)機(jī)器人。
背景技術(shù):
當(dāng)下移動(dòng)機(jī)器人的應(yīng)用越來(lái)越廣泛,幾乎滲透到了所有領(lǐng)域,也慢慢的應(yīng)用于了農(nóng)業(yè)領(lǐng)域,越來(lái)越多地夠取代人們完成一些重復(fù)的工作。其中農(nóng)業(yè)移動(dòng)機(jī)器人的主要技術(shù)問(wèn)題還是定位問(wèn)題,當(dāng)下的主流技術(shù)有g(shù)ps定位,但是其成本高,對(duì)處理模塊的通訊要求高。又考慮到,在農(nóng)業(yè)領(lǐng)域,路徑規(guī)劃比較簡(jiǎn)單,如人在農(nóng)田中的作業(yè)路徑一般都是在田壟上的,是既定的、相似的、小范圍的,其定位可以是離散的,離散程度可以根據(jù)情況而定。此外移動(dòng)機(jī)器人需要工作的區(qū)域有多種地方,除了識(shí)別出不同的坐標(biāo)以外,還需要一個(gè)模式識(shí)別方法,在不同的地方做不同的事,也就是說(shuō)坐標(biāo)信息中還需要包含模式信息。針對(duì)這些問(wèn)題,本文提出了一個(gè)基于二維碼的農(nóng)業(yè)移動(dòng)機(jī)器人,解決定位成本高和模式識(shí)別復(fù)雜問(wèn)題,將坐標(biāo)信息和模式信息都包含在二維碼中。
當(dāng)下農(nóng)業(yè)作業(yè)也越來(lái)越大規(guī)?;蛥^(qū)域化,對(duì)人工工作量要求比較大,在這樣的現(xiàn)狀下,我們很希望可以使用移動(dòng)機(jī)器人進(jìn)行人工替代,提高生產(chǎn)力和農(nóng)業(yè)自動(dòng)化程度。但是農(nóng)業(yè)領(lǐng)域中移動(dòng)機(jī)器人又不能死板地進(jìn)行統(tǒng)一作業(yè),因?yàn)椴煌闆r下的作物種植、培育過(guò)程不一樣,有的需要除蟲(chóng),有的又不需要。且大部分的工作的完成都是基于經(jīng)驗(yàn)性的工作,有很多重復(fù)、麻煩但基于經(jīng)驗(yàn)的工作,一般的移動(dòng)機(jī)器人無(wú)法進(jìn)行作業(yè),故此對(duì)于一些經(jīng)驗(yàn)性的問(wèn)題,本發(fā)明提出了基于隨機(jī)森林的決策模型,進(jìn)行決策,解決常規(guī)移動(dòng)機(jī)器人的不“靈活”、低效的特點(diǎn)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于針對(duì)市場(chǎng)的需求和現(xiàn)有技術(shù)的不足,公開(kāi)了一種基于隨機(jī)森林和二維碼識(shí)別的農(nóng)業(yè)移動(dòng)機(jī)器人。本發(fā)明應(yīng)用于農(nóng)業(yè)領(lǐng)域,基于隨機(jī)森林和二維碼識(shí)別的農(nóng)業(yè)移動(dòng)機(jī)器人包括攝像頭、二維碼識(shí)別模塊、通訊模塊、溫度傳感器、濕度傳感器、控制器、電機(jī)驅(qū)動(dòng)模塊、運(yùn)動(dòng)電機(jī)和工作電機(jī)。攝像頭、二維碼識(shí)別模塊、通訊模塊、溫度傳感器、濕度傳感器、電機(jī)驅(qū)動(dòng)模塊均與控制器相連,電機(jī)驅(qū)動(dòng)模塊與運(yùn)動(dòng)電機(jī)、工作電機(jī)相連。
二維碼以離散形式分布在農(nóng)業(yè)工作區(qū)域的田壟中,以某一直線田壟所在方向?yàn)閤軸,與其垂直的田壟方向?yàn)閥軸,所述的二維碼包含二維碼所在位置的坐標(biāo)信息和模式信息,所述的模式信息是指以二維碼所處位置為中心、以上述x軸與y軸構(gòu)成的直角坐標(biāo)系四個(gè)象限內(nèi)的作物種類(lèi)信息。二維碼識(shí)別模塊用于識(shí)別所述的二維碼,二維碼信息包含六個(gè)元素(x0,y0,m0,n0,z0,p0),其中(x0,y0)代表著當(dāng)前二維碼在農(nóng)田中的坐標(biāo),而m0表示第一象限的作物編號(hào),n0表示第二象限作物編號(hào),z0表示第三象限作物編號(hào),p0表示第四象限作物編號(hào)。
相應(yīng)的路徑規(guī)劃:
由于田壟的結(jié)構(gòu)特殊性,移動(dòng)機(jī)器人只能直線運(yùn)動(dòng)和轉(zhuǎn)向。本發(fā)明的機(jī)器人設(shè)定如下路徑規(guī)則:機(jī)器人優(yōu)先向x坐標(biāo)靠近再向y坐標(biāo)靠近,在路徑不需要轉(zhuǎn)彎時(shí),移動(dòng)機(jī)器人保持慣性向前。其路徑規(guī)劃算法思路如下:設(shè)本移動(dòng)機(jī)器人所在的位置坐標(biāo)為(x0,y0,m0,n0,z0,p0),通過(guò)通訊模塊得知自己的作業(yè)目的地坐標(biāo)為(xd,yd,md,nd,zd,pd)。其地理坐標(biāo)變化過(guò)程如下:移動(dòng)機(jī)器人由(x0,y0)->(xd,y0)->(xd,yd),這樣,可使轉(zhuǎn)向數(shù)量最小,路徑簡(jiǎn)單且符合實(shí)際。
所述的通訊模塊用于接收用戶(hù)的設(shè)定指令,如用于設(shè)定農(nóng)業(yè)移動(dòng)機(jī)器人目標(biāo)位置、作業(yè)植物編號(hào)或作業(yè)行為操作。
移動(dòng)機(jī)器人工作模式可以為全局遍歷監(jiān)視農(nóng)作物即讓移動(dòng)機(jī)器人按期行進(jìn)路徑每株植物監(jiān)視過(guò)去,也可以指向區(qū)域農(nóng)業(yè)作業(yè)。其中遍歷指令則是讓移動(dòng)機(jī)器人進(jìn)行全局巡視,使得移動(dòng)機(jī)器人直接從一個(gè)坐標(biāo),遍歷所有坐標(biāo)進(jìn)行決策判斷,是否作業(yè)行為,在需要的地方進(jìn)行農(nóng)業(yè)操作。
其中指向區(qū)域農(nóng)業(yè)作業(yè)可以通過(guò)通訊模塊輸入的特例單一編碼形式為:(xd,yd,md,d),其中(xd,yd)表示目的地坐標(biāo),md表示對(duì)象作物編碼。d表示作業(yè)行為操作,則移動(dòng)機(jī)器人根據(jù)指令去其坐標(biāo)處,然后根據(jù)讀取的坐標(biāo)確定四周作物方向,控制攝像頭面向的作物為md,判斷是否需要d操作,如果需要?jiǎng)t進(jìn)行,不需要?jiǎng)t停止工作等待下一個(gè)指令。且移動(dòng)機(jī)器人的所有農(nóng)業(yè)過(guò)程,可以通過(guò)通訊模塊將相關(guān)信息發(fā)送到云端,用于其他用途,如專(zhuān)家進(jìn)行分析等。
控制器內(nèi)含有決策模型,所述的決策模型是基于隨機(jī)森林的,且對(duì)于不同的植物的不同作業(yè)行為,訓(xùn)練出不同的模型,整個(gè)方法利用隨機(jī)森林模型。本模型結(jié)構(gòu)為四輸入,單輸出。輸入為:溫度(溫度傳感器獲得)、濕度(濕度傳感器獲得)、蟲(chóng)斑級(jí)別(攝像頭圖像處理得到)、植物干濕級(jí)別(攝像頭圖像處理得到),輸出為當(dāng)下植物屬于的作業(yè)類(lèi)別(一共四類(lèi)中的某一類(lèi))。
其中圖像處理方法:對(duì)于蟲(chóng)斑情況,先進(jìn)行邊緣提取、再進(jìn)行二值化處理(用蟲(chóng)斑和植物顏色區(qū)別來(lái)區(qū)分開(kāi)蟲(chóng)斑和植物葉子),最后進(jìn)行膨脹運(yùn)算和腐蝕運(yùn)算(即進(jìn)行一次閉運(yùn)算,將一些斷斷續(xù)續(xù)的蟲(chóng)斑連接起來(lái))。最終得到蟲(chóng)斑占葉子的面積比例,其對(duì)應(yīng)為蟲(chóng)斑情況,作為模型輸入。對(duì)于植物干濕情況,則由圖片中植物的顏色分類(lèi),經(jīng)過(guò)灰度值處理后,也將干濕情況對(duì)應(yīng)輸入。最終本模型根據(jù)輸入:植物的蟲(chóng)斑情況和植物的干濕情況、當(dāng)天溫度、濕度,得到輸出:植物所屬的四類(lèi)作業(yè)類(lèi)別(需要澆水和除蟲(chóng)、需要澆水不需要除蟲(chóng)、不需要澆水需要除蟲(chóng),不需要澆水不需要除蟲(chóng))中的一類(lèi),并根據(jù)結(jié)果進(jìn)行農(nóng)業(yè)行為。如果需要澆水則澆水,需要除蟲(chóng)則除蟲(chóng)。
模型的訓(xùn)練過(guò)程:
本模型先選取n個(gè)樣本,由專(zhuān)家鑒定在當(dāng)時(shí)的輸入情況下(當(dāng)時(shí)的溫度,濕度,干枯級(jí)別,蟲(chóng)斑級(jí)別),鑒定結(jié)果為四類(lèi)作業(yè)中的哪一類(lèi)。
隨機(jī)選取80%的樣本進(jìn)行隨機(jī)森林模型的訓(xùn)練,參考指標(biāo)為gini系數(shù),(gini系數(shù)是表征數(shù)據(jù)集純度的一個(gè)參數(shù)),先選擇一個(gè)指標(biāo)作為特征a將這些植物劃分為兩類(lèi)(如蟲(chóng)斑級(jí)別為5,將植物分為超過(guò)5一類(lèi),小于5一類(lèi)),并看下最終的gini系數(shù)是否足夠下小,如果不滿足要求則修改特征a,直到gini系數(shù)滿足要求。然后重復(fù)選取其他各個(gè)指標(biāo)繼續(xù)進(jìn)行劃分重復(fù)上述行為,最終劃分完所有植物,進(jìn)入4個(gè)類(lèi)型中。
完成訓(xùn)練后,再選取20%帶入訓(xùn)練出的模型進(jìn)行檢驗(yàn),如果正確率大于95%,則說(shuō)明模型建立成功,否則重新對(duì)模型進(jìn)行訓(xùn)練,調(diào)整gini參數(shù)或者進(jìn)行剪紙?zhí)幚怼W詈笪覀兝米罱K模型,對(duì)其輸入溫度、濕度、蟲(chóng)斑級(jí)別、植物干濕級(jí)別,得到其是否需要澆水或者除蟲(chóng)。并根據(jù)此結(jié)果進(jìn)行農(nóng)業(yè)作業(yè):澆水、除蟲(chóng)。
本發(fā)明通過(guò)通訊模塊得到目的地和需要進(jìn)行的工作內(nèi)容編碼,然后讀取二維碼和圖像,經(jīng)過(guò)其中的二維碼讀取,得知移動(dòng)機(jī)器人在農(nóng)業(yè)場(chǎng)所(如農(nóng)田)中的模式識(shí)別和定位,進(jìn)行運(yùn)動(dòng)電機(jī)控制向目的地靠近;圖像則是用于監(jiān)測(cè)農(nóng)作物情況,并將其作為輸入,經(jīng)過(guò)圖像處理和隨機(jī)森林模型進(jìn)農(nóng)業(yè)行為工作內(nèi)容決策控制,如:是否要去蟲(chóng)、澆水等農(nóng)業(yè)行為。本發(fā)明的目的是:提高農(nóng)業(yè)自動(dòng)化程度,減少人工參與,具有成本低、運(yùn)動(dòng)精準(zhǔn),效率高的特點(diǎn)。
附圖說(shuō)明
圖1移動(dòng)機(jī)器人結(jié)構(gòu)示意圖;
圖2整個(gè)農(nóng)田的坐標(biāo)系布局;
圖3移動(dòng)機(jī)器人工作過(guò)程示意圖;
圖4隨機(jī)森林決策模型;
圖5隨機(jī)森林模型訓(xùn)練過(guò)程示意圖。
具體實(shí)施方式
本發(fā)明應(yīng)用于農(nóng)業(yè)領(lǐng)域,且移動(dòng)機(jī)器人包括攝像頭、二維碼識(shí)別模塊、通訊模塊、控制器、電機(jī)驅(qū)動(dòng)模塊、運(yùn)動(dòng)電機(jī)和工作電機(jī)。其中二維碼識(shí)別模塊可以使用honeywelln56xx、攝像頭可以使用攝像頭串口通訊、控制器用stm32,通訊模塊可以使用gprs模塊,電機(jī)則可用直流電機(jī)配上驅(qū)動(dòng)器模塊即可完成本移動(dòng)機(jī)器人的功能。
整個(gè)移動(dòng)機(jī)器人結(jié)構(gòu)如圖1所示,通過(guò)通訊模塊得到目的地和需要進(jìn)行的工作內(nèi)容編碼,然后讀取二維碼和圖像,經(jīng)過(guò)其中的二維碼讀取,得知移動(dòng)機(jī)器人的模式識(shí)別和定位,進(jìn)行運(yùn)動(dòng)電機(jī)控制向目的地靠近;圖像則是用于監(jiān)測(cè)農(nóng)作物情況,并將其作為輸入,經(jīng)過(guò)圖像處理和隨機(jī)森林模型進(jìn)農(nóng)業(yè)行為工作內(nèi)容決策控制,如:是否要去蟲(chóng)、澆水等農(nóng)業(yè)行為。本發(fā)明的目的是:提高農(nóng)業(yè)自動(dòng)化程度,減少人工參與,具有成本低、運(yùn)動(dòng)精準(zhǔn),效率高的特點(diǎn)。整個(gè)機(jī)器人設(shè)計(jì)思路主要分為兩點(diǎn),定位系統(tǒng)和模式識(shí)別的設(shè)計(jì)和隨機(jī)森林模型設(shè)立。
1.上述農(nóng)業(yè)移動(dòng)機(jī)器人在農(nóng)田中的定位和模式識(shí)別結(jié)構(gòu)設(shè)計(jì):
其中整個(gè)農(nóng)田的坐標(biāo)系布局如圖2所示:
我們將移動(dòng)機(jī)器人的軌跡設(shè)立在田壟上,以某一直線田壟所在方向?yàn)閤軸,與其垂直的田壟方向?yàn)閥軸,所述的二維碼包含二維碼所在位置的坐標(biāo)信息和模式信息,所述的模式信息是指以二維碼所處位置為中心、以上述x軸與y軸方向構(gòu)成的直角坐標(biāo)系四個(gè)象限內(nèi)的作物種類(lèi)信息。二維碼識(shí)別模塊用于識(shí)別所述的二維碼,二維碼信息包含六個(gè)元素(x0,y0,m0,n0,z0,p0),其中(x0,y0)代表著當(dāng)前二維碼在農(nóng)田中的坐標(biāo),而m0表示第一象限的作物編號(hào),n0表示第二象限作物編號(hào),z0表示第三象限作物編號(hào),p0表示第四象限作物編號(hào)。其中當(dāng)移動(dòng)機(jī)器人在整個(gè)坐標(biāo)系的邊角時(shí),則默認(rèn)作物編號(hào)為0代表無(wú)作物。以圖2為例,結(jié)合圖2中位于左側(cè)的直角坐標(biāo)系和位于右側(cè)的東南西北四個(gè)方向標(biāo)識(shí)可知,圖2所在直角坐標(biāo)系構(gòu)成的第一象限即為東方、第二象限為北方,第三象限為西方,第四象限位南方。假設(shè)青菜為編碼1,韭菜為編碼2。假設(shè)移動(dòng)機(jī)器人獲取的當(dāng)前二維碼坐標(biāo)為(1,1,0,0,1,2),則表示移動(dòng)機(jī)器人的位置在(1,1),監(jiān)測(cè)的作業(yè)區(qū)的東、北方向沒(méi)有作物,西方作物為青菜,南方作物為韭菜。
然后將坐標(biāo)信息離散的分布在田壟上,在移動(dòng)機(jī)器人運(yùn)動(dòng)過(guò)程中讀取田壟上的二維碼進(jìn)行坐標(biāo)獲取,然后解碼坐標(biāo)得到相應(yīng)的信息。移動(dòng)機(jī)器人經(jīng)過(guò)讀取的信息結(jié)合選擇本身攝像頭的朝向,得到需監(jiān)測(cè)的作物種類(lèi),然后根據(jù)作物類(lèi)別選擇相應(yīng)的隨機(jī)森林模型。
整個(gè)機(jī)器人系統(tǒng)控制流程圖如圖3所示,先得到控制指令,然后根據(jù)二維碼獲得坐標(biāo)和模式信息,帶入不同的模型,進(jìn)行農(nóng)業(yè)行為決策。
相應(yīng)的路徑規(guī)劃:
由于田壟的結(jié)構(gòu)特殊性,移動(dòng)機(jī)器人只能直線運(yùn)動(dòng)且轉(zhuǎn)向只可以九十度轉(zhuǎn)向。所以我們?cè)O(shè)定規(guī)則:機(jī)器人優(yōu)先向x坐標(biāo)靠近再向y坐標(biāo)靠近,且當(dāng)轉(zhuǎn)向時(shí),只能選擇左轉(zhuǎn)九十度或者右轉(zhuǎn)九十度,在路徑不需要轉(zhuǎn)彎時(shí),移動(dòng)機(jī)器人保持慣性向前。其路徑規(guī)劃算法思路如下:設(shè)本移動(dòng)機(jī)器人所在的位置坐標(biāo)為(x0,y0,m0,n0,z0,p0),通過(guò)通訊模塊得知自己的作業(yè)目的地坐標(biāo)為(xd,yd,md,nd,zd,pd)。其地理坐標(biāo)變化過(guò)程如下:移動(dòng)機(jī)器人由(x0,y0)->(xd,y0)->(xd,yd),這樣,可使轉(zhuǎn)向數(shù)量最小,路徑簡(jiǎn)單且符合實(shí)際。
控制指令(目的地和工作內(nèi)容)解碼:
移動(dòng)機(jī)器人工作模式可以為全局遍歷監(jiān)視農(nóng)作物即讓移動(dòng)機(jī)器人每株植物監(jiān)視過(guò)去,也可以指向區(qū)域農(nóng)業(yè)作業(yè)。其中遍歷指令則是讓移動(dòng)機(jī)器人進(jìn)行全局巡視,使得移動(dòng)機(jī)器人直接從一個(gè)坐標(biāo),遍歷所有坐標(biāo)進(jìn)行決策判斷,是否作業(yè)行為,在需要的地方進(jìn)行農(nóng)業(yè)操作。
其中指向區(qū)域農(nóng)業(yè)作業(yè)可以通過(guò)通訊模塊輸入的特例單一編碼形式為:(xd,yd,md,d),其中(xd,yd)表示目的地坐標(biāo),md表示對(duì)象作物編碼,如目標(biāo)對(duì)象編碼為1指的是青菜。d表示作業(yè)行為操作,如:0為澆水,1為除蟲(chóng),2為默認(rèn)值即澆水和除蟲(chóng)都需要監(jiān)視并考慮是否進(jìn)行。則(1,1,1,0)表示去坐標(biāo)為(1,1)的青菜處(根據(jù)地標(biāo)確定青菜方位,由攝像頭去尋找),判斷是否需要澆水,如果需要?jiǎng)t進(jìn)行,不需要?jiǎng)t停止工作等待下一個(gè)指令。
移動(dòng)機(jī)器人的所有農(nóng)業(yè)過(guò)程,可以通過(guò)通訊模塊將相關(guān)信息發(fā)送到云端,用于其他用途,如專(zhuān)家進(jìn)行分析等。
2.其中控制器中,隨機(jī)森林模型的建立:
本決策模型是基于隨機(jī)森林的,且對(duì)于不同的植物不同作業(yè)行為,訓(xùn)練出不同的模型,整個(gè)方法利用隨機(jī)森林模型。本模型為四輸入,兩輸出。輸入為:溫度(溫度傳感器獲得)、濕度(濕度傳感器獲得)、蟲(chóng)斑級(jí)別(攝像頭圖像處理得到)、植物干濕級(jí)別(攝像頭圖像處理得到)。
將輸入進(jìn)來(lái)的圖像處理結(jié)果:植物的蟲(chóng)斑情況和植物的干濕情況,結(jié)合當(dāng)天溫度、濕度將植物進(jìn)行分類(lèi),得到如需要澆水和除蟲(chóng)、需要澆水不需要除蟲(chóng)、不需要澆水需要除蟲(chóng),不需要澆水不需要除蟲(chóng)四類(lèi),并根據(jù)結(jié)果進(jìn)行農(nóng)業(yè)行為。
其中圖像處理方法:
對(duì)于蟲(chóng)斑情況,先進(jìn)行邊緣提取、再進(jìn)行二值化處理(用蟲(chóng)斑和植物顏色區(qū)別來(lái)區(qū)分開(kāi)蟲(chóng)斑和植物葉子),最后進(jìn)行膨脹運(yùn)算和腐蝕運(yùn)算(即進(jìn)行一次閉運(yùn)算,將一些斷斷續(xù)續(xù)的蟲(chóng)斑連接起來(lái))。最終得到蟲(chóng)斑占葉子的面積比例,我們將其分為0-10級(jí)(5%為1級(jí),8%為2級(jí)…)分別對(duì)應(yīng)為模型輸入0-10。對(duì)于植物干濕情況,則由圖片中植物的顏色分類(lèi),經(jīng)過(guò)灰度值處理后,也將干濕情況分為10級(jí),分別對(duì)應(yīng)輸入0-10。
整個(gè)模型輸入還有當(dāng)天的溫度和濕度,輸出則為植物的四個(gè)狀態(tài)類(lèi)別。模型結(jié)構(gòu)如圖4。
模型的訓(xùn)練過(guò)程:
整個(gè)訓(xùn)練過(guò)程如圖5所示,本模型先選取1000個(gè)樣本,由專(zhuān)家鑒定在當(dāng)時(shí)的輸入情況下(當(dāng)時(shí)的溫度,濕度,干枯級(jí)別,蟲(chóng)斑級(jí)別),鑒定結(jié)果為四類(lèi)中的哪一類(lèi)。
我們隨機(jī)選取80%的樣本進(jìn)行隨機(jī)森林模型的訓(xùn)練,參考指標(biāo)為gini系數(shù),(gini系數(shù)是表征數(shù)據(jù)集純度的一個(gè)參數(shù)),先選擇一個(gè)指標(biāo)作為特征a將這些植物劃分為兩類(lèi)(如蟲(chóng)斑級(jí)別為5,將植物分為超過(guò)5一類(lèi),小于5一類(lèi)),并看下最終的gini系數(shù)是否足夠下小,如果不滿足要求則修改特征a,直到gini系數(shù)滿足要求。然后重復(fù)選取其他各個(gè)指標(biāo)繼續(xù)進(jìn)行劃分重復(fù)上述行為,最終劃分完所有植物,進(jìn)入4個(gè)類(lèi)型中。
完成訓(xùn)練后,再選取20%帶入訓(xùn)練出的模型進(jìn)行檢驗(yàn),如果正確率大于95%,則說(shuō)明模型建立成功,否則重新對(duì)模型進(jìn)行訓(xùn)練,調(diào)整gini參數(shù)或者進(jìn)行剪紙?zhí)幚?。最后我們利用最終模型,對(duì)其輸入溫度、濕度、蟲(chóng)斑級(jí)別、植物干濕級(jí)別,得到其是否需要澆水或者除蟲(chóng)。并根據(jù)此結(jié)果進(jìn)行農(nóng)業(yè)作業(yè):澆水、除蟲(chóng)。最終提升移動(dòng)機(jī)器人的智能化、自動(dòng)化。