本發(fā)明屬于路面檢測(cè)技術(shù)中的坑洼檢測(cè)方法,具體涉及基于加速度傳感器和機(jī)器學(xué)習(xí)的路面坑洼檢測(cè)方法。
背景技術(shù):
傳統(tǒng)坑洼檢測(cè)技術(shù)(路面檢測(cè)技術(shù))一般是將高清攝像頭采集到的圖像進(jìn)行分析,并判斷路面上是否有坑挖。目前,使用圖像處理的方式來(lái)檢測(cè)坑洼由于使用的攝像頭價(jià)格較高,而基于此的路面坑洼檢測(cè)系統(tǒng)的成本較高難以規(guī)?;a(chǎn)。
針對(duì)這個(gè)問(wèn)題,最近的坑洼檢測(cè)系統(tǒng)基于廉價(jià)的加速度傳感器收集數(shù)據(jù),并以閾值的方式檢測(cè)坑洼。其基本方法是收集汽車行駛在道路上的垂直方向加速度數(shù)據(jù)并在低速和高速兩種情況與閾值進(jìn)行比較從而判斷出是否汽車是否遇到了坑洼。由于車輛本身參數(shù)不同,在檢測(cè)坑洼時(shí)用一個(gè)固定的閾值進(jìn)行判斷,其準(zhǔn)確性較低。
除了直接使用傳感器的方式來(lái)檢測(cè)坑洼,有的坑洼檢測(cè)系統(tǒng)還利用了社交軟件來(lái)報(bào)告坑洼。automaticroadanomalydetectionusingsmartmobiledevice[c],taiy,chanc,hsujy.,conferenceontechnologiesandapplicationsofartificialintelligence,hsinchu,taiwan.2010.(基于智能手機(jī)的自動(dòng)路面坑洼檢測(cè),taiy,chanc,hsujy,人工智能的技術(shù)前景與應(yīng)用會(huì)議,臺(tái)灣,2010)中記載了一種使用戶在社交軟件中反饋的坑洼信息以及gps定位信息的坑洼檢測(cè)系統(tǒng)。這種檢測(cè)方法依賴于用戶的交互,需要用戶在發(fā)現(xiàn)坑洼后及時(shí)在社交軟件上反映坑洼信息,這種的坑洼檢測(cè)方法的檢測(cè)延遲完全依賴于用戶參與的積極性,有較大的不確定性。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)現(xiàn)有技術(shù)中存在的技術(shù)問(wèn)題,本發(fā)明所要解決的技術(shù)問(wèn)題就是提供一種基于加速度傳感器和機(jī)器學(xué)習(xí)的路面坑洼檢測(cè)方法,它在現(xiàn)有基于加速度傳感器的路面檢測(cè)技術(shù)的基礎(chǔ)上,能提高檢測(cè)的準(zhǔn)確性,且不受人主觀因素的影響,能提高檢測(cè)的可靠性。
本發(fā)明所要解決的技術(shù)問(wèn)題是通過(guò)這樣的技術(shù)方案實(shí)現(xiàn)的,它包括以下步驟:
步驟1、控制器模塊采集加速度傳感器收集到的加速度數(shù)據(jù)和gps模塊收集到的定位信息數(shù)據(jù);
步驟2、使用嵌入式開(kāi)發(fā)板將采集到的加速度傳感器數(shù)據(jù)和gps定位信息數(shù)據(jù)傳送給樹(shù)莓派;
步驟3、使用樹(shù)莓派將收集到的道路信息數(shù)據(jù)存儲(chǔ)到嵌入式數(shù)據(jù)庫(kù)中并在有網(wǎng)絡(luò)連接時(shí)將數(shù)據(jù)傳輸?shù)椒?wù)器;
步驟4、服務(wù)器接收道路信息數(shù)據(jù)并計(jì)算坑洼檢測(cè)閾值,使用閾值檢測(cè)坑洼之后,將坑洼信息數(shù)據(jù)到傳送到地圖顯示模塊;
步驟5、地圖顯示模塊在地圖上標(biāo)注坑洼。
在步驟3中,樹(shù)莓派不直接與傳感器相連而是通過(guò)中間的嵌入式開(kāi)發(fā)板進(jìn)行傳感器數(shù)據(jù)的采集與轉(zhuǎn)發(fā),這種設(shè)計(jì)模式可以降低整體系統(tǒng)的耦合性并且彌補(bǔ)了樹(shù)莓派針腳不足的缺陷。
在步驟4中,服務(wù)器首先從收集到的道路信息數(shù)據(jù)集中分離出一部分作為訓(xùn)練集,之后服務(wù)器運(yùn)行k-means機(jī)器學(xué)習(xí)方法,將收集到的道路信息數(shù)據(jù)分為兩類,并計(jì)算出其中坑洼數(shù)據(jù)類加速度特征的平均值,并將此作為坑洼檢測(cè)閾值;利用該閾值,本發(fā)明從測(cè)試集中檢測(cè)出坑洼數(shù)據(jù)并輸出到坑洼信息文件中。
本發(fā)明的技術(shù)效果是:
與固定的坑洼檢測(cè)閾值相比,使用機(jī)器學(xué)習(xí)方法得到的檢測(cè)閾值更貼合實(shí)際路面情況,并隨著數(shù)據(jù)量的增長(zhǎng)有更高的準(zhǔn)確性,因此使用此閾值能提高檢測(cè)準(zhǔn)確率;同時(shí)與使用社交軟件的坑洼檢測(cè)方法相比,避免了人的主觀因素影響,提高檢測(cè)的可靠性。
附圖說(shuō)明
本發(fā)明的附圖說(shuō)明如下:
圖1為發(fā)明應(yīng)用環(huán)境的層級(jí)結(jié)構(gòu)圖;
圖2為采集加速度傳感器數(shù)據(jù)和gps模塊數(shù)據(jù)的流程圖;
圖3為坑洼檢測(cè)的流程圖。
具體實(shí)施方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明:
本發(fā)明應(yīng)用環(huán)境的層級(jí)結(jié)構(gòu)如圖1所示,第一層是感知層,它由加速度傳感器模塊、gps模塊和控制器模塊組成,加速度傳感器模塊用于汽車行駛時(shí)的加速度數(shù)據(jù)的采集;gps模塊用于汽車行駛時(shí)的位置信息的采集;控制器模塊由arduino嵌入式開(kāi)發(fā)板實(shí)現(xiàn),用于與加速度傳感器模塊和gps模塊進(jìn)行數(shù)據(jù)交互,并將所獲得的加速度數(shù)據(jù)和位置信息數(shù)據(jù)打包后傳輸?shù)綌?shù)據(jù)存儲(chǔ)模塊;
感知層之后是數(shù)據(jù)存儲(chǔ)模塊,數(shù)據(jù)存儲(chǔ)模塊采用樹(shù)莓派;數(shù)據(jù)存儲(chǔ)模塊用于接收感知層中的控制器模塊傳輸?shù)臄?shù)據(jù)并將數(shù)據(jù)存儲(chǔ)到樹(shù)莓派開(kāi)發(fā)板中的嵌入式數(shù)據(jù)庫(kù)中;如果控制器模塊檢測(cè)到網(wǎng)絡(luò)連接正常后,數(shù)據(jù)存儲(chǔ)模塊將道路信息數(shù)據(jù)(道路信息數(shù)據(jù)為加速度數(shù)據(jù)和位置信息數(shù)據(jù))傳輸?shù)娇油輽z測(cè)模塊中,并清空嵌入式數(shù)據(jù)庫(kù);
數(shù)據(jù)存儲(chǔ)模塊之后是坑洼檢測(cè)模塊,坑洼檢測(cè)模塊用于接收控制器模塊傳輸?shù)牡缆沸畔?shù)據(jù);在完成坑洼檢測(cè)后,坑洼檢測(cè)模塊將輸出坑洼位置信息數(shù)據(jù)到地圖繪制模塊中;
坑洼檢測(cè)模塊之后是地圖繪制模塊,地圖繪制模塊讀取坑洼的位置信息數(shù)據(jù),讀取后使用高德地圖api在地圖上標(biāo)注坑洼。
感知層和數(shù)據(jù)存儲(chǔ)模塊設(shè)置于車載裝置中,坑洼檢測(cè)模塊和地圖繪制模塊置于服務(wù)器中。
本發(fā)明包括以下步驟:
步驟1、控制器模塊采集加速度傳感器收集到的加速度數(shù)據(jù)和gps模塊收集到的定位信息數(shù)據(jù);
如圖2所示,在arduino嵌入式開(kāi)發(fā)板中,采集數(shù)據(jù)的具體流程如下:
在步驟s101,流程開(kāi)始;
在步驟s102,完成初始化工作準(zhǔn)備接受傳感器數(shù)據(jù);
arduino嵌入式開(kāi)發(fā)板上的微控制器與加速度傳感器通過(guò)spi協(xié)議交互數(shù)據(jù),微控制器與gps模塊通過(guò)i2c協(xié)議交互;在初始化階段,微控制器需要初始化一個(gè)spi交互實(shí)例和i2c交互實(shí)例。本實(shí)施例使用adxl345作為加速度傳感器模塊,在接收數(shù)據(jù)前需要初始化加速度傳感器的配置,包括加速度傳感器的測(cè)量范圍和工作模式。本實(shí)施例使用adxl345的+/-4g測(cè)量范圍和測(cè)量模式;
在步驟s103,微控制器從i2c交互實(shí)例中獲取gps模塊傳輸?shù)臄?shù)據(jù);
gps的采樣頻率較加速度傳感器更慢,因此微控制器在采集數(shù)據(jù)時(shí)以gps模塊采樣為基準(zhǔn),微控制器將讀取到gps模塊采集到的汽車行駛時(shí)的經(jīng)緯度、北京時(shí)間以及當(dāng)前速度;
在步驟s104,判斷從gps模塊中讀取到的第一個(gè)字符是否為‘$’,如果不是,則執(zhí)行步驟s103,如果是,則執(zhí)行步驟s105;
gps以幀格式傳輸數(shù)據(jù),數(shù)據(jù)幀將以‘$’為開(kāi)始。如果第一個(gè)字符不是‘$’表示微控制器讀取到的不是幀的開(kāi)始或是數(shù)據(jù)傳輸錯(cuò)誤,程序?qū)⑻讲襟Es103繼續(xù)讀取數(shù)據(jù);如果gps傳輸數(shù)據(jù)正常,則執(zhí)行步驟s105;
在步驟s105,讀取加速度傳感器數(shù)據(jù);
微控制器將讀取汽車行駛時(shí)的z軸加速度,x軸加速度以及y軸加速度。其中,x軸表示垂直于汽車行徑方向并平行于路面方向,y軸代表汽車行進(jìn)方向,z軸表示垂直于路面方向;
在步驟s106,微控制器打包數(shù)據(jù);
將以逗號(hào)隔開(kāi)經(jīng)度、緯度、速度、z軸加速度、x軸加速度、y軸加速度存入道路信息字符串中,并以換行符作為結(jié)尾;
在步驟s107,微控制器使用i2c交互實(shí)例將道路信息字符串(包括汽車加速度數(shù)據(jù)、汽車當(dāng)前速度、當(dāng)前北京時(shí)間、汽車位置信息)傳輸至樹(shù)莓派;
在步驟s108,判斷供電是否正常,如果供電正常,則執(zhí)行步驟s103,繼續(xù)收集道路數(shù)據(jù);如果供電不正常,則執(zhí)行步驟s109;
微控制器在通電后開(kāi)始收集數(shù)據(jù),在斷電停止;
在步驟s109,流程結(jié)束。
步驟2、使用arduino嵌入式開(kāi)發(fā)板將采集到的加速度傳感器數(shù)據(jù)和gps的定位信息數(shù)據(jù)使用usb線傳送給樹(shù)莓派;
該步驟由上述步驟s107完成。
步驟3、樹(shù)莓派將收集到的道路信息數(shù)據(jù)存儲(chǔ)到樹(shù)莓派中的嵌入式數(shù)據(jù)庫(kù)中,并在有網(wǎng)絡(luò)連接時(shí)將存儲(chǔ)的汽車加速度數(shù)據(jù)、汽車速度數(shù)據(jù)以及汽車位置信息數(shù)據(jù)傳輸?shù)椒?wù)器;
服務(wù)器為個(gè)人電腦,設(shè)在在道路檢測(cè)中心。
步驟4、服務(wù)器接收道路信息數(shù)據(jù)(汽車加速度數(shù)據(jù)、汽車當(dāng)前速度數(shù)據(jù)以及汽車位置信息數(shù)據(jù))并計(jì)算坑洼檢測(cè)閾值,使用閾值檢測(cè)坑洼之后,將坑洼信息數(shù)據(jù)(坑洼所在的位置信息數(shù)據(jù))傳送到地圖顯示模塊;
如圖3所示,在坑洼檢測(cè)模塊中,坑洼檢測(cè)的流程如下:
在步驟s201,流程開(kāi)始:
在步驟s202,使用socket鏈接通過(guò)網(wǎng)絡(luò)讀取存儲(chǔ)在樹(shù)莓派中的道路信息數(shù)據(jù);
在步驟s203,生成訓(xùn)練數(shù)據(jù);
從讀取到的道路信息數(shù)據(jù)集中隨機(jī)選取四分之一作為坑洼分類器的訓(xùn)練數(shù)據(jù)集;
在步驟s204,坑洼分類訓(xùn)練,使用k-means機(jī)器學(xué)習(xí)方法,用步驟s203生成的訓(xùn)練數(shù)據(jù)集進(jìn)行訓(xùn)練;
本實(shí)施例以道路信息中的z軸加速度(垂直方向)與y軸加速度(汽車行駛方向)為特征進(jìn)行聚類分析,并將所有數(shù)據(jù)分為兩類。由于汽車在高速和低速情況下的加速度變化情況相異,因此在分類時(shí),本實(shí)施例基于高速與低速(速度閾值25km/h)狀態(tài)分類道路信息數(shù)據(jù)。
在步驟s205,坑洼閾值計(jì)算;
分類后,計(jì)算高速和低速兩類數(shù)據(jù)的z軸加速度與y軸加速度的平方差均值,并比較取其較大值作為坑洼檢測(cè)閾值;
汽車在遇到坑洼時(shí)將會(huì)產(chǎn)生垂直方向上的正加速度以及行駛方向的負(fù)加速度;高速和低速兩種情況分別計(jì)算,獲得兩個(gè)坑洼檢測(cè)閾值;
在步驟s206,塊讀取道路信息數(shù)據(jù)(汽車加速度數(shù)據(jù)、汽車當(dāng)前速度數(shù)據(jù)以及汽車位置信息數(shù)據(jù))測(cè)試集(道路信息數(shù)據(jù)的剩余四分之三)中的一條進(jìn)行坑洼檢測(cè);
在步驟s207,判斷讀取到的數(shù)據(jù)中y軸加速度與z軸加速度的平方差是否大于閾值,若是,則執(zhí)行步驟s208,若不是,則執(zhí)行步驟s209;
在步驟s208,寫入坑洼數(shù)據(jù)(坑洼所在的位置信息數(shù)據(jù))的位置信息到文件中,并以換行符做結(jié)尾;
位置信息是指gps模塊采集的經(jīng)緯度;
在步驟s209,判斷是否已經(jīng)讀完所有道路信息數(shù)據(jù)測(cè)試集,若不是,則執(zhí)行步驟s206;若是,則執(zhí)行步驟s210;
在步驟s210,流程結(jié)束。
步驟5、地圖顯示模塊在地圖上標(biāo)注坑洼;
地圖顯示模塊采用高德地圖api,它會(huì)將接收到的坐標(biāo)在地圖中用藍(lán)色橢圓符號(hào)標(biāo)記出來(lái)。