本發(fā)明涉及無(wú)人機(jī)技術(shù)領(lǐng)域,特別涉及一種無(wú)人機(jī)速度監(jiān)測(cè)方法及系統(tǒng)。
背景技術(shù):
目前在無(wú)人機(jī)行業(yè),計(jì)算機(jī)視覺(jué)用于速度監(jiān)測(cè)得到了廣泛的關(guān)注,尤其是在基于圖像光流算法的速度監(jiān)測(cè)方面。例如,公開(kāi)號(hào)為CN102298070B的中國(guó)發(fā)明專利公開(kāi)了一種估算無(wú)人機(jī),尤其是能夠在自動(dòng)駕駛下執(zhí)行懸停飛行的無(wú)人機(jī)的水平速度的方法,所述方法包括:估算攝像機(jī)拍攝的連續(xù)圖像間的場(chǎng)景的移動(dòng),并將作為測(cè)得高度函數(shù)的比例因子應(yīng)用到所估算的移動(dòng),移動(dòng)的估算包括:定期和連續(xù)更新圖像類型金字塔的多分辨率表示,該多分辨率表示以不同的連續(xù)降低的分辨率建模場(chǎng)景的給定被拍攝圖像;和對(duì)每個(gè)新拍攝圖像,應(yīng)用光流型迭代算法到所述多分辨率表示以估算連續(xù)圖像間的場(chǎng)景的差異移動(dòng);還包括:從光流算法生成的數(shù)據(jù)中獲取至少一個(gè)紋理參數(shù),獲取無(wú)人機(jī)水平平移速度的近似值,將第一組預(yù)定標(biāo)準(zhǔn)應(yīng)用于所述紋理參數(shù)和所述速度近似值,如果滿足所述第一組預(yù)定標(biāo)準(zhǔn),從光流算法轉(zhuǎn)到角點(diǎn)探測(cè)器型算法以估算連續(xù)圖像間的場(chǎng)景的差異移動(dòng)。上述方案雖然可以估算無(wú)人機(jī)的執(zhí)行懸停飛行的無(wú)人機(jī)的水平速度,但是計(jì)算過(guò)程較為復(fù)雜,對(duì)處理器芯片要求高。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問(wèn)題是:提供一種數(shù)據(jù)處理量小的無(wú)人機(jī)速度監(jiān)測(cè)方及系統(tǒng),能夠簡(jiǎn)單、準(zhǔn)確地計(jì)算出無(wú)人機(jī)飛行時(shí)的速度。
為了解決上述技術(shù)問(wèn)題,本發(fā)明采用的技術(shù)方案為:
一種無(wú)人機(jī)速度監(jiān)測(cè)方法,包括:
獲取當(dāng)前的飛行高度、角速度以及圖像;
獲取所述圖像的特征點(diǎn),計(jì)算各特征點(diǎn)的光流;
統(tǒng)計(jì)各特征點(diǎn)的光流,選擇同一個(gè)方向光流重復(fù)率最高的光流作為所述圖像的光流;
依據(jù)所述飛行高度、角速度以及所述圖像的光流計(jì)算當(dāng)前的飛行速度。
從上述描述可知,本發(fā)明無(wú)人機(jī)速度監(jiān)測(cè)方法的有益效果在于:獲取當(dāng)前飛行的圖像,從而能夠進(jìn)一步獲取所述圖像的特征點(diǎn),進(jìn)而能夠計(jì)算該幅圖像特征點(diǎn)光流;對(duì)各特征的光流進(jìn)行統(tǒng)計(jì),同一個(gè)方向光流重復(fù)率最高的光流最能體現(xiàn)該圖像的移動(dòng)特性,因此選擇同一個(gè)方向光流重復(fù)率最高的光流作為該圖像的光流;再依據(jù)該圖像的光流和當(dāng)前的飛行高度及角度計(jì)算出當(dāng)前的飛行速度,融合了多個(gè)參數(shù)進(jìn)行計(jì)算,結(jié)果精確,且計(jì)算簡(jiǎn)單,運(yùn)算量小。
本發(fā)明的另一技術(shù)方案為:
一種無(wú)人機(jī)速度監(jiān)測(cè)系統(tǒng),包括:
獲取模塊,用于獲取當(dāng)前的飛行高度、角速度以及圖像;
光流計(jì)算模塊,用于獲取所述圖像的特征點(diǎn),計(jì)算各特征點(diǎn)的光流;
選擇模塊,用于統(tǒng)計(jì)各特征點(diǎn)的光流,選擇同一個(gè)方向光流重復(fù)率最高的光流作為所述圖像的光流;
速度計(jì)算模塊,用于依據(jù)所述飛行高度、角速度以及所述圖像的光流計(jì)算當(dāng)前的飛行速度。
本發(fā)明的無(wú)人機(jī)速度監(jiān)測(cè)系統(tǒng)的有益效果在于:獲取模塊獲取當(dāng)前的飛行高度、角速度以及圖像后,光流計(jì)算模塊即可通過(guò)獲取的圖像得到其特征點(diǎn),進(jìn)而計(jì)算出各特征點(diǎn)的光流;選擇模塊對(duì)個(gè)特征點(diǎn)的光流進(jìn)行統(tǒng)計(jì),并選擇同一個(gè)方向光流重復(fù)率最高的光流作為該圖像的光流,使得選出的光流能夠體現(xiàn)當(dāng)前的狀態(tài);速度計(jì)算模塊依據(jù)當(dāng)前的飛行高度、角速度以及計(jì)算出的當(dāng)前圖像的光流計(jì)算得到當(dāng)前的飛行速度,計(jì)算簡(jiǎn)單,運(yùn)算量小,且融合了多個(gè)參數(shù),結(jié)果精確。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例一的無(wú)人機(jī)速度監(jiān)測(cè)方法的流程圖一;
圖2為本發(fā)明實(shí)施例一的無(wú)人機(jī)速度監(jiān)測(cè)方法的流程圖二;
圖3為本發(fā)明實(shí)施例二的無(wú)人機(jī)速度監(jiān)測(cè)系統(tǒng)的結(jié)構(gòu)圖一;
圖4為本發(fā)明實(shí)施例二的無(wú)人機(jī)速度監(jiān)測(cè)系統(tǒng)的結(jié)構(gòu)圖二;
標(biāo)號(hào)說(shuō)明:
1、獲取模塊;2、光流計(jì)算模塊;21、第一獲取模塊;22、第二獲取模塊;23、計(jì)算模塊;3、選擇模塊;4、速度計(jì)算模塊;5、存儲(chǔ)模塊;6、第一判斷模塊;7、第一切換模塊;8、第二判斷模塊;9、第二切換模塊。
具體實(shí)施方式
為詳細(xì)說(shuō)明本發(fā)明的技術(shù)內(nèi)容、所實(shí)現(xiàn)目的及效果,以下結(jié)合實(shí)施方式并配合附圖予以說(shuō)明。
本發(fā)明最關(guān)鍵的構(gòu)思在于:獲取當(dāng)前的飛行高度、角速度以及圖像,計(jì)算當(dāng)前圖像的光流,依據(jù)該光流以及對(duì)應(yīng)的飛行高度、角速度等參數(shù)計(jì)算出當(dāng)前的飛行速度。
本發(fā)明涉及的技術(shù)術(shù)語(yǔ)解釋見(jiàn)表1:
表1
請(qǐng)參照?qǐng)D1以及圖2,本發(fā)明提供了一種
一種無(wú)人機(jī)速度監(jiān)測(cè)方法,包括:
S1、獲取當(dāng)前的飛行高度、角速度以及圖像;
S2、獲取所述圖像的特征點(diǎn),計(jì)算各特征點(diǎn)的光流;
S3、統(tǒng)計(jì)各特征點(diǎn)的光流,選擇同一個(gè)方向光流重復(fù)率最高的光流作為所述圖像的光流;
S4、依據(jù)所述飛行高度、角速度以及所述圖像的光流計(jì)算當(dāng)前的飛行速度。
從上述描述可知,本發(fā)明無(wú)人機(jī)速度監(jiān)測(cè)方法的有益效果在于:當(dāng)前無(wú)人機(jī)的飛行速度計(jì)算方式簡(jiǎn)單,運(yùn)算量小,且融合了多個(gè)參數(shù),考慮了多種因素的影響,結(jié)果準(zhǔn)確。
進(jìn)一步的,所述“獲取當(dāng)前的飛行高度、角速度以及圖像”具體為:
S11、以預(yù)設(shè)的第一采樣幀率獲取當(dāng)前的飛行高度、角速度以及圖像;
所述“依據(jù)所述飛行高度、角速度以及所述圖像的光流計(jì)算當(dāng)前的飛行速度”之后,進(jìn)一步包括:
S5、存儲(chǔ)所述圖像的光流為歷史光流;
S6、判斷所述歷史光流是否在預(yù)設(shè)的第一時(shí)間段內(nèi)連續(xù)小于預(yù)設(shè)的切換閾值;
S7、若是,切換所述第一采樣幀率至預(yù)設(shè)的第二采樣幀率,所述第一采樣幀率大于第二采樣幀率。
進(jìn)一步的,所述“切換所述第一采樣幀率至預(yù)設(shè)的第二采樣幀率”之后,進(jìn)一步包括:
S8、判斷歷史光流是否在預(yù)設(shè)的第二時(shí)間段內(nèi)連續(xù)大于預(yù)設(shè)的切換閾值;
S9、若是,切換所述第二采樣幀率至預(yù)設(shè)的第一采樣幀率。
從上述描述可知,可根據(jù)歷史光流判斷對(duì)飛行高度、角速度以及圖像采樣幀率是否過(guò)高或過(guò)低,實(shí)時(shí)調(diào)節(jié)采樣幀率,使得采幀率最佳,從而兼顧了高速運(yùn)動(dòng)和低速運(yùn)動(dòng),適用性更廣,計(jì)算結(jié)果更為準(zhǔn)確。
進(jìn)一步的,所述“獲取所述圖像的特征點(diǎn),計(jì)算各特征點(diǎn)的光流”具體為:
S21、獲取所述圖像的各特征點(diǎn)的位置和特征值;
S22、獲取前一幀圖像中的各特征點(diǎn)的位置和特征值;
S23、依據(jù)前一幀圖像中各特征點(diǎn)的位置和特征值計(jì)算并記錄當(dāng)前圖像中的各特征點(diǎn)的光流。
從上述描述可知,根據(jù)相鄰兩幀圖像的特征點(diǎn)位置和特征值計(jì)算出各特征點(diǎn)的光流。
進(jìn)一步的,通過(guò)FAST角點(diǎn)檢測(cè)算法計(jì)算每幀圖像中的特征點(diǎn)的位置和特征值,通過(guò)LK算法計(jì)算每幀圖像中各特征點(diǎn)的光流。
從上述描述可知,能夠簡(jiǎn)單快速地獲取特征點(diǎn)的位置和特征值以及計(jì)算出特征點(diǎn)的光流。
進(jìn)一步的,通過(guò)攝像頭獲取所述圖像;
根據(jù)公式v=(flow-α·t·f/Δx)t/f·Δx·h計(jì)算當(dāng)前的飛行速度;其中v為當(dāng)前的飛行速度,flow為當(dāng)前圖像的光流,α為當(dāng)前角速度,t為當(dāng)前圖像與前一幀圖像獲取的間隔時(shí)間,f為攝像頭焦距,Δx為攝像頭感光元長(zhǎng)度,h為當(dāng)前飛行的高度。
從上述描述可知,計(jì)算當(dāng)前飛行度考慮了當(dāng)前圖像的光流、當(dāng)前角速度、當(dāng)前高度、當(dāng)前圖像與前一幀圖像獲取的間隔時(shí)間、攝像頭焦距、攝像頭感光元長(zhǎng)度多種因素,結(jié)果精確。
進(jìn)一步的,所述飛行高度通過(guò)超聲波測(cè)高模組測(cè)量,所述角速度通過(guò)三軸角速度測(cè)量模組測(cè)量。
從上述描述可知,通過(guò)超聲波測(cè)高模組和三軸角速度測(cè)量模組能夠簡(jiǎn)單、準(zhǔn)確地測(cè)量出飛行高度和角速度。
請(qǐng)參照?qǐng)D3以及圖4,本發(fā)明提供了一種
一種無(wú)人機(jī)速度監(jiān)測(cè)系統(tǒng),包括:
獲取模塊1,用于獲取當(dāng)前的飛行高度、角速度以及圖像;
光流計(jì)算模塊2,用于獲取所述圖像的特征點(diǎn),計(jì)算各特征點(diǎn)的光流;
選擇模塊3,用于統(tǒng)計(jì)各特征點(diǎn)的光流,選擇同一個(gè)方向光流重復(fù)率最高的光流作為所述圖像的光流;
速度計(jì)算模塊4,用于依據(jù)所述飛行高度、角速度以及所述圖像的光流計(jì)算當(dāng)前的飛行速度。
從上述描述可知,本發(fā)明無(wú)人機(jī)速度監(jiān)測(cè)系統(tǒng)的有益效果在于:考慮了多種因素的影響,速度計(jì)算融合了多個(gè)參數(shù),結(jié)果精確;同時(shí)計(jì)算方式簡(jiǎn)單,運(yùn)算量小。
進(jìn)一步的,所述獲取模塊1用于以預(yù)設(shè)的第一采樣幀率獲取當(dāng)前的飛行高度、角速度以及圖像;還包括:
存儲(chǔ)模塊5,用于存儲(chǔ)所述圖像的光流為歷史光流;
第一判斷模塊6,用于判斷所述歷史光流是否在預(yù)設(shè)的第一時(shí)間段內(nèi)連續(xù)小于預(yù)設(shè)的切換閾值;
第一切換模塊7,用于若歷史光流在預(yù)設(shè)的第一時(shí)間段內(nèi)連續(xù)小于預(yù)設(shè)的切換閾值,切換所述第一采樣幀率至預(yù)設(shè)的第二采樣幀率,所述第一采樣幀率大于第二采樣幀率;
第二判斷模塊8,用于判斷歷史光流是否在預(yù)設(shè)的第二時(shí)間段內(nèi)連續(xù)大于預(yù)設(shè)的切換閾值;
第二切換模塊9,用于若歷史光流在預(yù)設(shè)的第二時(shí)間段內(nèi)連續(xù)大于預(yù)設(shè)的切換閾值,切換所述第二采樣幀率至預(yù)設(shè)的第一采樣幀率。
從上述描述可知,通過(guò)第一判斷模塊6、第一切換模塊7、第二判斷模塊8和第二切換模塊9可實(shí)時(shí)調(diào)節(jié)采樣幀率,使得采幀率最佳,從而能夠適應(yīng)不同的飛行狀態(tài),計(jì)算結(jié)果更為準(zhǔn)確。
進(jìn)一步的,所述光流計(jì)算模塊2包括:
第一獲取模塊21,用于獲取所述圖像的各特征點(diǎn)的位置和特征值;
第二獲取模塊22,用于獲取前一幀圖像中的各特征點(diǎn)的位置和特征值;
計(jì)算模塊23,用于依據(jù)前一幀圖像中各特征點(diǎn)的位置和特征值計(jì)算并記錄當(dāng)前圖像中的各特征點(diǎn)的光流。
從上述描述可知,通過(guò)第一獲取模塊21和第二獲取模塊22分別獲取當(dāng)前圖像和前一幀圖像的各特裝點(diǎn)的位置和特征值,從而計(jì)算模塊23依據(jù)兩幀圖像中各特征點(diǎn)的位置和特征值計(jì)算出當(dāng)前圖像中的各特征點(diǎn)的光流,方法簡(jiǎn)單。
請(qǐng)參照?qǐng)D2,本發(fā)明的實(shí)施例一為:
一種無(wú)人機(jī)速度監(jiān)測(cè)方法,包括:
以預(yù)設(shè)的第一采樣幀率獲取當(dāng)前的飛行高度、角速度以及圖像;具體的,通過(guò)超聲波測(cè)高模組測(cè)量所述飛行高度,通過(guò)三軸角速度測(cè)量模組測(cè)量所述角速度;所述攝像頭包括但不限于網(wǎng)絡(luò)攝像頭模組,所述攝像頭的圖像方向與無(wú)人機(jī)方向一致,所述攝像頭的成像平面與無(wú)人機(jī)的水平面平行,所述攝像頭的光軸垂直于無(wú)人機(jī)平面且向地面拍攝;所述超聲波測(cè)高模組包括但不限于接發(fā)一體的單頭超聲波模塊和接發(fā)分離的雙頭超聲波;所述超聲波測(cè)高模組的超聲波發(fā)射方向與無(wú)人機(jī)平面垂直且向地面發(fā)射;上述攝像頭、超聲波測(cè)高模組、三軸角速度測(cè)量模組獲取的數(shù)據(jù)通過(guò)有線通信方式發(fā)送至無(wú)人機(jī)的數(shù)據(jù)處理中心;所述數(shù)據(jù)處理中心包括但不限于基于arm指令集的各種單片機(jī);所述數(shù)據(jù)處理中心依據(jù)所述數(shù)據(jù)進(jìn)行以下的運(yùn)算:
獲取所述圖像的特征點(diǎn),計(jì)算各特征點(diǎn)的光流;具體的:獲取所述圖像的各特征點(diǎn)的位置和特征值;獲取前一幀圖像中的各特征點(diǎn)的位置和特征值;依據(jù)前一幀圖像中各特征點(diǎn)的位置和特征值計(jì)算并記錄當(dāng)前圖像中的各特征點(diǎn)的光流;優(yōu)選的,通過(guò)FAST角點(diǎn)檢測(cè)算法計(jì)算每幀圖像中的特征點(diǎn)位置和特征值,通過(guò)LK算法計(jì)算各特征點(diǎn)的光流;例如,將前一幀圖像的特征點(diǎn)所在的位置作為初始位置,采用FAST角點(diǎn)檢測(cè)算法計(jì)算當(dāng)前圖像中的特征點(diǎn)位置和特征值;在初始位置周圍固定區(qū)域,比如5x5像素內(nèi),采用LK算法計(jì)算特征點(diǎn)的光流;
統(tǒng)計(jì)各特征點(diǎn)的光流,選擇同一個(gè)方向光流重復(fù)率最高的光流作為所述圖像的光流;
根據(jù)公式v=(flow-α·t·f/Δx)t/f·Δx·h計(jì)算當(dāng)前的飛行速度;其中v為當(dāng)前的飛行速度,flow為當(dāng)前圖像的光流,α為當(dāng)前角速度,t為當(dāng)前圖像與前一幀圖像獲取的間隔時(shí)間,f為攝像頭焦距,Δx為攝像頭感光元長(zhǎng)度,h為當(dāng)前飛行的高度;
存儲(chǔ)所述圖像的光流為歷史光流;
判斷所述歷史光流是否在預(yù)設(shè)的第一時(shí)間段內(nèi)連續(xù)小于預(yù)設(shè)的切換閾值;
若是,切換所述第一采樣幀率至預(yù)設(shè)的第二采樣幀率,進(jìn)入低速光流計(jì)算模式,所述第一采樣幀率大于第二采樣幀率;若否,維持第一采樣幀率,即維持在高速光流計(jì)算模式;
判斷歷史光流是否在預(yù)設(shè)的第二時(shí)間段內(nèi)連續(xù)大于預(yù)設(shè)的切換閾值;所述第一時(shí)間段和第二時(shí)間段均設(shè)為無(wú)人機(jī)懸停時(shí)水平漂移10cm的時(shí)間T;所述切換閾值為無(wú)人機(jī)懸停T時(shí)間內(nèi)光流受震動(dòng)影響的最大波動(dòng)幅度;
若是,切換所述第二采樣幀率至預(yù)設(shè)的第一采樣幀率,進(jìn)入高速光流計(jì)算模式;若否,維持第二采樣幀率,即維持在低速光流計(jì)算模式。
請(qǐng)參照?qǐng)D4,本發(fā)明的實(shí)施例二為:
一種與上述實(shí)施例一的無(wú)人機(jī)速度監(jiān)測(cè)方法對(duì)應(yīng)的無(wú)人機(jī)速度監(jiān)測(cè)系統(tǒng),包括:
獲取模塊1,用于以預(yù)設(shè)的第一采樣幀率獲取當(dāng)前的飛行高度、角速度以及圖像;
光流計(jì)算模塊2,用于獲取所述圖像的特征點(diǎn),計(jì)算各特征點(diǎn)的光流;所述光流計(jì)算模塊2包括:第一獲取模塊21,用于采用FAST角點(diǎn)檢測(cè)算法獲取所述圖像的各特征點(diǎn)的位置和特征值;第二獲取模塊22,用于采用FAST角點(diǎn)檢測(cè)算法獲取前一幀圖像中的各特征點(diǎn)的位置和特征值;計(jì)算模塊23,用于采用LK算法依據(jù)前一幀圖像中各特征點(diǎn)的位置和特征值計(jì)算并記錄當(dāng)前圖像中的各特征點(diǎn)的光流;
選擇模塊3,用于統(tǒng)計(jì)各特征點(diǎn)的光流,選擇同一個(gè)方向光流重復(fù)率最高的光流作為所述圖像的光流;
速度計(jì)算模塊4,用于依據(jù)所述飛行高度、角速度以及所述圖像的光流計(jì)算當(dāng)前的飛行速度;具體的,根據(jù)公式v=(flow-α·t·f/Δx)t/f·Δx·h計(jì)算當(dāng)前的飛行速度;其中v為當(dāng)前的飛行速度,flow為當(dāng)前圖像的光流,α為當(dāng)前角速度,t為當(dāng)前圖像與前一幀圖像獲取的間隔時(shí)間,f為攝像頭焦距,Δx為攝像頭感光元長(zhǎng)度,h為當(dāng)前飛行的高度;
存儲(chǔ)模塊5,用于存儲(chǔ)所述圖像的光流為歷史光流;
第一判斷模塊6,用于判斷所述歷史光流是否在預(yù)設(shè)的第一時(shí)間段內(nèi)連續(xù)小于預(yù)設(shè)的切換閾值;
第一切換模塊7,用于若歷史光流在預(yù)設(shè)的第一時(shí)間段內(nèi)連續(xù)小于預(yù)設(shè)的切換閾值,切換所述第一采樣幀率至預(yù)設(shè)的第二采樣幀率,所述第一采樣幀率大于第二采樣幀率;
第二判斷模塊8,用于判斷歷史光流是否在預(yù)設(shè)的第二時(shí)間段內(nèi)連續(xù)大于預(yù)設(shè)的切換閾值;所述第一時(shí)間段和第二時(shí)間段均設(shè)為無(wú)人機(jī)懸停時(shí)水平漂移10cm的時(shí)間T;所述切換閾值為無(wú)人機(jī)懸停T時(shí)間內(nèi)光流受震動(dòng)影響的最大波動(dòng)幅度;
第二切換模塊9,用于若歷史光流在預(yù)設(shè)的第二時(shí)間段內(nèi)連續(xù)大于預(yù)設(shè)的切換閾值,切換所述第二采樣幀率至預(yù)設(shè)的第一采樣幀率。
綜上所述,本發(fā)明提供的無(wú)人機(jī)速度監(jiān)測(cè)方法及系統(tǒng),通過(guò)攝像頭獲取當(dāng)前飛行的圖像得到該圖像的特征點(diǎn),進(jìn)而計(jì)算出各特征點(diǎn)的光流;選擇同一個(gè)方向光流重復(fù)率最高的光流作為該圖像的光流,使得選出的光流能夠體現(xiàn)當(dāng)前的狀態(tài);再依據(jù)該圖像的光流、當(dāng)前的飛行高度、角度計(jì)、當(dāng)前圖像與前一幀圖像獲取的間隔時(shí)間、攝像頭焦距、攝像頭感光元長(zhǎng)度多種因素,結(jié)果精確,且計(jì)算方式簡(jiǎn)單,運(yùn)算量?。徊⒏鶕?jù)歷史光流判斷對(duì)飛行高度、角速度以及圖像采樣幀率是否過(guò)高或過(guò)低,實(shí)時(shí)調(diào)節(jié)采樣幀率,使得采幀率最佳,從而兼顧了高速運(yùn)動(dòng)和低速運(yùn)動(dòng),能夠更好地應(yīng)對(duì)不同的飛行狀態(tài),適用性廣。
以上所述僅為本發(fā)明的實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說(shuō)明書及附圖內(nèi)容所作的等同變換,或直接或間接運(yùn)用在相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。