本發(fā)明涉及農(nóng)機(jī)作業(yè)定位,特別是一種基于智能感知的地塊邊界數(shù)據(jù)定位系統(tǒng)及方法。
背景技術(shù):
1、當(dāng)前,農(nóng)機(jī)作業(yè)數(shù)據(jù)的展示通常依賴于采集到的gps軌跡數(shù)據(jù),這些數(shù)據(jù)包含機(jī)手在田間作業(yè)時(shí)的位置信息,位置信息通過經(jīng)緯度的二維坐標(biāo)進(jìn)行記錄,并隨著時(shí)間的推移形成軌跡,在展示這些軌跡信息時(shí),系統(tǒng)需要加載當(dāng)天所有的田間作業(yè)數(shù)據(jù),然而這些數(shù)據(jù)信息中包含大量位置點(diǎn),數(shù)據(jù)量巨大,瀏覽器在加載和渲染數(shù)據(jù)時(shí)會(huì)變得緩慢,影響用戶體驗(yàn)。
2、現(xiàn)有方案中,為解決數(shù)據(jù)量過大導(dǎo)致的加載和渲染效率問題,采用一種通過提取地塊邊界點(diǎn)數(shù)據(jù)來減少數(shù)據(jù)量的方案,此方案的目標(biāo)是僅展示作業(yè)地塊的邊界,以降低數(shù)據(jù)加載量,方案步驟包括:首先遍歷所有軌跡點(diǎn),逐一獲取每個(gè)點(diǎn)的位置信息;對(duì)于每個(gè)軌跡點(diǎn),計(jì)算它與其他所有點(diǎn)之間的鄰域距離并統(tǒng)計(jì)鄰域內(nèi)點(diǎn)的數(shù)量;將鄰域內(nèi)點(diǎn)數(shù)量小于某個(gè)預(yù)設(shè)閾值的點(diǎn)視為邊界點(diǎn),并將其提取出來,將這些點(diǎn)歸類為邊界點(diǎn);
3、但該方案計(jì)算復(fù)雜且耗時(shí),該方案需要對(duì)所有軌跡點(diǎn)進(jìn)行大量計(jì)算,計(jì)算時(shí)間通常為秒級(jí),此外鄰域距離和鄰域內(nèi)點(diǎn)的數(shù)量的設(shè)定需要經(jīng)過大量實(shí)驗(yàn)才能確定,增加了系統(tǒng)復(fù)雜性;且由于計(jì)算過程中的誤差,可能會(huì)將一些非真正的邊界點(diǎn)(次邊界點(diǎn))誤認(rèn)為是邊界點(diǎn),導(dǎo)致邊界識(shí)別的不準(zhǔn)確;當(dāng)?shù)貕K中存在作業(yè)遺漏的區(qū)域或無需作業(yè)的區(qū)域時(shí),該方案容易出錯(cuò),導(dǎo)致邊界識(shí)別失??;同時(shí)該方法計(jì)算出的邊界點(diǎn)在地圖上連接形成幾何圖形時(shí),可能會(huì)出現(xiàn)交叉或其他異常情況,從而導(dǎo)致地塊渲染失敗,這直接影響了作業(yè)信息的可視化展示效果,因此亟需一種基于智能感知的地塊邊界數(shù)據(jù)定位系統(tǒng)及方法來解決此類問題。
技術(shù)實(shí)現(xiàn)思路
1、鑒于上述現(xiàn)有存在的問題,提出了本發(fā)明。
2、因此,本發(fā)明提供了一種基于智能感知的地塊邊界數(shù)據(jù)定位系統(tǒng)及方法解決農(nóng)機(jī)作業(yè)數(shù)據(jù)在瀏覽器展示階段,在加載和渲染數(shù)據(jù)時(shí)會(huì)變得緩慢,影響用戶體驗(yàn)的問題。
3、為解決上述技術(shù)問題,本發(fā)明提供如下技術(shù)方案:
4、一方面,本發(fā)明提供了一種基于智能感知的地塊邊界數(shù)據(jù)定位系統(tǒng),其包括,作業(yè)地塊數(shù)據(jù)源獲取模塊、數(shù)據(jù)轉(zhuǎn)換模塊、邊界查找模塊、數(shù)據(jù)映射模塊、數(shù)據(jù)歸納模塊,其中:
5、作業(yè)地塊數(shù)據(jù)源獲取模塊,該模塊獲取農(nóng)機(jī)單獨(dú)在田間作業(yè)的數(shù)據(jù)集合,數(shù)據(jù)包括gps經(jīng)、緯度信息;
6、數(shù)據(jù)轉(zhuǎn)換模塊,該模塊依據(jù)gps經(jīng)、緯度數(shù)據(jù),建立二值化網(wǎng)格數(shù)據(jù),供邊界查找模塊使用;
7、邊界查找模塊,查找數(shù)據(jù)轉(zhuǎn)換模塊中得到的二值化網(wǎng)格數(shù)據(jù)的數(shù)學(xué)邊界位置坐標(biāo);
8、數(shù)據(jù)映射模塊,將邊界查找模塊中得到的位置坐標(biāo),與作業(yè)地塊數(shù)據(jù)一一映射;
9、數(shù)據(jù)歸納模塊,該模塊將所有映射關(guān)系的數(shù)據(jù)收集并歸納成數(shù)據(jù)集合。
10、進(jìn)一步的,數(shù)據(jù)歸納模塊中,數(shù)據(jù)集合即農(nóng)機(jī)作業(yè)地塊的邊界數(shù)據(jù)信息。
11、另一方面,本發(fā)明提供了一種基于智能感知的地塊邊界數(shù)據(jù)定位方法,包括,
12、步驟s1,提取農(nóng)機(jī)作業(yè)地塊的源數(shù)據(jù),基于源數(shù)據(jù)構(gòu)成按時(shí)間順序排列的數(shù)據(jù)源集合c(獲取作業(yè)地塊數(shù)據(jù)源);
13、步驟s2,計(jì)算網(wǎng)格(數(shù)據(jù)轉(zhuǎn)換);
14、步驟s3,查找邊界(調(diào)用opencv函數(shù)查找數(shù)據(jù)邊界);
15、步驟s4,獲取邊界數(shù)據(jù)(邊界數(shù)據(jù)與源數(shù)據(jù)映射),
16、步驟s5,生成邊界數(shù)據(jù)集(得到地塊邊界數(shù)據(jù)集合)。
17、進(jìn)一步的,步驟s1中,所提取的源數(shù)據(jù)僅包含地塊作業(yè),不包括道路行駛源數(shù)據(jù),每條源數(shù)據(jù)包括:經(jīng)度、緯度以及時(shí)間信息。
18、進(jìn)一步的,步驟s2中,計(jì)算網(wǎng)格方式為:
19、遍歷數(shù)據(jù)源集合c,根據(jù)所有的經(jīng)度、緯度數(shù)據(jù),計(jì)算出以下值:
20、最小經(jīng)度min_long,最大經(jīng)度max_long,最小緯度min_lat,最大緯度max_lat;
21、設(shè)定步長step,并計(jì)算網(wǎng)格數(shù)量:
22、其中,long_grid_num和lat_grid_num分別表示經(jīng)度和緯度方向的網(wǎng)格格數(shù);
23、初始化二維數(shù)組:
24、初始化一個(gè)大小為long_grid_num行l(wèi)at_grid_num列的二值網(wǎng)格數(shù)據(jù)二維數(shù)組array,初始值為0;
25、同樣初始化一個(gè)大小為long_grid_num行l(wèi)at_grid_num列的二維數(shù)組array_msg,初始值也為0;
26、遍歷集合c,獲取每條數(shù)據(jù)的經(jīng)緯度信息longitude和latitude,并計(jì)算網(wǎng)格索引。
27、進(jìn)一步的,步驟s2中,遍歷集合c,獲取每條數(shù)據(jù)的經(jīng)緯度信息longitude和latitude,并計(jì)算網(wǎng)格索引的方式為:
28、其中,long_x和lat_y分別表示經(jīng)度、緯度信息的網(wǎng)格索引,根據(jù)計(jì)算的索引long_x和lat_y,將array[long_x][lat_y]設(shè)為1,并將array_msg[long_x][lat_y]設(shè)為對(duì)應(yīng)的數(shù)據(jù)信息,此處array[long_x][lat_y]表示在網(wǎng)格中由經(jīng)度索引long_x和緯度索引lat_y確定的某一個(gè)網(wǎng)格單元,將該網(wǎng)格單元的值設(shè)為1,表示該位置存在一個(gè)有效地塊作業(yè)數(shù)據(jù),而array_msg[long_x][lat_y]存儲(chǔ)了在array[long_x][lat_y]對(duì)應(yīng)網(wǎng)格單元中的數(shù)據(jù)信息,具體來說,保存了與該位置的經(jīng)緯度相關(guān)聯(lián)的詳細(xì)數(shù)據(jù)信息,包括時(shí)間、速度或其他與農(nóng)機(jī)作業(yè)相關(guān)的信息。
29、進(jìn)一步的,步驟s3中,邊界查找方式為:將二維數(shù)組array作為參數(shù)傳入opencv的查找邊界函數(shù)findcontours中,得到邊界點(diǎn)數(shù)據(jù)簇c2。
30、進(jìn)一步的,步驟s3中,邊界點(diǎn)根據(jù)array中值為1的位置確定。
31、進(jìn)一步的,步驟s4中,邊界數(shù)據(jù)獲取方式為:根據(jù)c2中元素的索引信息,取得array_msg中對(duì)應(yīng)位置的數(shù)據(jù)信息data。
32、進(jìn)一步的,步驟s5中,生成邊界數(shù)據(jù)集方式為:將每條data數(shù)據(jù)記錄到集合中,該集合即為農(nóng)機(jī)作業(yè)地塊的邊界數(shù)據(jù)集。
33、本發(fā)明有益效果為:
34、本發(fā)明,生成的邊界軌跡準(zhǔn)確,不存在次邊界點(diǎn)軌跡等誤差數(shù)據(jù),能夠很好的區(qū)分出正常作業(yè)的幾何圖形的邊界,且能篩選出遺漏的面積活無需作業(yè)的面積,計(jì)算效率高,計(jì)算一個(gè)地塊的邊界數(shù)據(jù)是毫秒級(jí),與傳統(tǒng)相比提升了一個(gè)量級(jí),作業(yè)軌跡的在地圖上顯示的幾何圖形邊界較為清晰可見,不存在交叉。
35、本發(fā)明,將農(nóng)機(jī)作業(yè)的gps位置數(shù)據(jù)進(jìn)行網(wǎng)格化處理,將地塊劃分為一定大小的網(wǎng)格單元,每個(gè)位置點(diǎn)根據(jù)其經(jīng)緯度映射到相應(yīng)的網(wǎng)格單元上,將連續(xù)的地理位置信息轉(zhuǎn)換為離散的網(wǎng)格數(shù)據(jù),有效簡化了數(shù)據(jù)結(jié)構(gòu),同時(shí)在每個(gè)網(wǎng)格單元中,如果存在作業(yè)數(shù)據(jù)點(diǎn),則將該單元的值設(shè)為1,否則設(shè)為0,通過二值化操作,將復(fù)雜的軌跡數(shù)據(jù)簡化為一個(gè)二值矩陣,表示哪些區(qū)域有作業(yè)數(shù)據(jù),哪些區(qū)域沒有,降低數(shù)據(jù)復(fù)雜性。
36、本發(fā)明,在完成網(wǎng)格化和二值化處理后,整個(gè)地塊的數(shù)據(jù)轉(zhuǎn)換為類似于圖像的形式,然后利用opencv中的findcontours函數(shù)在二值圖像中快速查找邊界輪廓,findcontours算法能夠高效地識(shí)別出網(wǎng)格中值為1的區(qū)域邊界,確定農(nóng)機(jī)作業(yè)地塊的外部邊界,省去通過計(jì)算鄰域距離篩選邊界點(diǎn)的過程,直接利用邊界識(shí)別技術(shù)提供清晰的邊界識(shí)別的效果。
37、本發(fā)明,通過findcontours算法獲得的邊界點(diǎn)數(shù)據(jù),其對(duì)應(yīng)的網(wǎng)格單元索引與原始gps數(shù)據(jù)進(jìn)行映射,從而提取出每個(gè)邊界點(diǎn)的詳細(xì)信息,將邊界數(shù)據(jù)與原始作業(yè)數(shù)據(jù)之間的關(guān)系對(duì)應(yīng),保留邊界點(diǎn)的位置,也保留了與其相關(guān)的作業(yè)信息,然后將映射后的邊界點(diǎn)信息進(jìn)行歸納整理,生成完整的地塊邊界數(shù)據(jù)集,該數(shù)據(jù)集用于展示作業(yè)地塊的邊界,不會(huì)出現(xiàn)傳統(tǒng)方法中由于計(jì)算誤差或復(fù)雜地塊形狀帶來的渲染失敗問題。
38、本發(fā)明,在數(shù)據(jù)處理和邊界查找的過程中,大大減少了計(jì)算負(fù)擔(dān),網(wǎng)格化和二值化處理使得數(shù)據(jù)結(jié)構(gòu)更加簡單,應(yīng)用圖像處理算法則使得邊界查找更加快速準(zhǔn)確,將地塊邊界的計(jì)算時(shí)間縮短到毫秒級(jí),顯著提高了系統(tǒng)的計(jì)算效率,且由于直接采用圖像處理中的成熟算法,減少了邊界識(shí)別的誤差,針對(duì)地塊存在作業(yè)遺漏或復(fù)雜形狀時(shí)表現(xiàn)出色,能夠準(zhǔn)確地提取真實(shí)的邊界,避免誤判。