無人飛行器的飛行參數(shù)的測量方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種無人飛行器的飛行參數(shù)的測量方法及裝置,該方法包括:獲取圖像以及采集無人飛行器的角速度;從當(dāng)前幀圖像中提取角點;根據(jù)當(dāng)前無人飛行器的角速度預(yù)估當(dāng)前幀圖像中各角點在前一幀圖像中的預(yù)定區(qū)域;根據(jù)當(dāng)前幀圖像的角點位置從前一幀圖像中的預(yù)定區(qū)域內(nèi)搜索對應(yīng)的角點;根據(jù)當(dāng)前幀圖像的角點和前一幀圖像對應(yīng)的角點獲取角點速度;根據(jù)角點速度獲取像素速度;根據(jù)像素速度和無人飛行器的飛行高度獲取無人飛行器的實際速度。通過上述方式,本發(fā)明能夠?qū)崿F(xiàn)準(zhǔn)確度高、精度高的飛行參數(shù)的測量。
【專利說明】無人飛行器的飛行參數(shù)的測量方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及無人飛行器領(lǐng)域,特別是涉及一種無人飛行器的飛行參數(shù)的測量方法
及裝置。
【背景技術(shù)】
[0002]無人飛行器是一種以無線電遙控或自身程序控制為主的不載人飛行器。當(dāng)無人飛行器在無GPS的情況下需要控制自身的飛行狀態(tài),例如懸停時,需要獲取無人飛行器的飛行參數(shù)(例如飛行速度)以控制無人飛行器的飛行狀態(tài)。
[0003]在無GPS的情況下,一種現(xiàn)有的無人飛行器的飛行參數(shù)的測量方法包括如下步驟:提取攝像頭傳感器獲取的圖像中簡單的特征點后,利用塊匹配的方法測量像素速度;最后根據(jù)超聲波傳感器獲取的高度和像素速度即可計算得到無人飛行器的飛行速度。
[0004]在現(xiàn)有技術(shù)中,由于從圖像中提取的特征點并不是角點,在計算像素速度時容易出現(xiàn)誤差較大甚至完全錯誤的問題;其次,采用塊匹配的方法最小只能測量一個像素的速度,精度較低,會出現(xiàn)當(dāng)無人飛行器以較低的速度移動時計算得到的飛行速度為零的情況;再次,現(xiàn)有技術(shù)在計算出像素速度后才對由于無人飛行器轉(zhuǎn)動引起的像素速度的變化進行修正,其不能完全消除由于無人飛行器轉(zhuǎn)動帶來的對像素速度的影響;最后,現(xiàn)有技術(shù)的速度的測量范圍很小,不能滿足實際應(yīng)用的需求。
【發(fā)明內(nèi)容】
[0005]本發(fā)明主要解決的技術(shù)問題是提供一種無人飛行器的飛行參數(shù)的測量方法及裝置,能夠?qū)崿F(xiàn)準(zhǔn)確度高、精度高的飛行參數(shù)的測量。
[0006]為解決上述技術(shù)問題,本發(fā)明采用的一個技術(shù)方案是:提供一種無人飛行器的飛行參數(shù)的測量方法,該方法包括:獲取圖像以及采集無人飛行器的角速度;從當(dāng)前幀圖像中提取角點;根據(jù)當(dāng)前無人飛行器的角速度預(yù)估當(dāng)前幀圖像中各角點在前一幀圖像中的預(yù)定區(qū)域;根據(jù)當(dāng)前幀圖像的角點位置從所述前一幀圖像中的預(yù)定區(qū)域內(nèi)搜索對應(yīng)的角點;根據(jù)當(dāng)前幀圖像的角點和前一幀圖像對應(yīng)的角點獲取角點速度;根據(jù)角點速度獲取像素速度;根據(jù)像素速度和無人飛行器的飛行高度獲取無人飛行器的實際速度。
[0007]其中,從當(dāng)前幀圖像中提取角點的步驟包括:對當(dāng)前幀圖像進行金字塔分層;求取金字塔分層后位于金字塔塔頂?shù)漠?dāng)前幀圖像的頂層圖像層中各像素點沿水平方向和垂直方向的灰階梯度;根據(jù)沿水平方向和垂直方向的灰階梯度獲取當(dāng)前幀圖像的頂層圖像層對應(yīng)的積分圖;根據(jù)積分圖獲取當(dāng)前幀圖像的頂層圖像層中各像素點的Harris得分并根據(jù)Harris得分的大小提取當(dāng)前巾貞圖像的角點,其中,角點為Harris得分大于預(yù)定閾值的像素點。
[0008]其中,根據(jù)當(dāng)前無人飛行器的角速度預(yù)估當(dāng)前幀圖像中各角點在前一幀圖像中的預(yù)定區(qū)域的步驟包括:對前一幀圖像進行金字塔分層;在當(dāng)前幀圖像和前一幀圖像的時間間隔內(nèi)積分采集到的角速度,以獲取無人飛行器在時間間隔內(nèi)的轉(zhuǎn)動角度;根據(jù)轉(zhuǎn)動角度計算當(dāng)前幀圖像中各角點在前一幀圖像的頂層圖像層上相對應(yīng)的像素移動距離;根據(jù)像素移動距離估計當(dāng)前幀圖像中各角點在前一幀圖像的頂層圖像層中的預(yù)定區(qū)域。
[0009]其中,根據(jù)當(dāng)前幀圖像的角點位置從前一幀圖像中的預(yù)定區(qū)域內(nèi)搜索對應(yīng)的角點的步驟包括:從前一幀圖像中提取角點;在前一幀圖像中判斷與當(dāng)前幀圖像中各角點對應(yīng)的預(yù)定區(qū)域內(nèi)是否存在角點;在前一幀的預(yù)定區(qū)域搜索與當(dāng)前幀角點對應(yīng)的角點。
[0010]其中,根據(jù)當(dāng)前幀圖像的角點和前一幀圖像的角點獲取角點速度的步驟包括:根據(jù)當(dāng)前幀圖像中的各角點和前一幀圖像的各角點依據(jù)金字塔光流法獲取各角點在頂層圖像層中的速度;根據(jù)各角點在頂層圖像層的速度依據(jù)金字塔光流法依次獲取各角點在分層后其它各圖像層中的速度,其中,角點在分層后位于金字塔塔底的圖像層中的速度即為角點速度。
[0011]其中,根據(jù)角點速度獲取像素速度的步驟包括:獲取各角點的角點速度的均值作為第一均值;判斷各角點的角點速度與第一均值的相關(guān)性;獲取與第一均值正相關(guān)的各角點的角點速度的均值作為第二均值,其中,第二均值即為像素速度。
[0012]其中,根據(jù)角點速度獲取像素速度的步驟包括:獲取各角點的角點速度的直方圖并對直方圖進行低通濾波,其中,濾波后直方圖得到的眾數(shù)即為像素速度。
[0013]其中,根據(jù)像素速度和無人飛行器的飛行高度獲取無人飛行器的實際速度的步驟包括:根據(jù)角速度獲取由于轉(zhuǎn)動導(dǎo)致的轉(zhuǎn)動像素速度;通過角點速度獲取的像素速度減去轉(zhuǎn)動導(dǎo)致的轉(zhuǎn)動像素速度獲取無人飛行器由于平動引起的平動像素速度;根據(jù)平動像素速度和無人飛行器的飛行高度獲取無人飛行器的實際速度。
[0014]其中,在從當(dāng)前幀圖像中提取角點的步驟、根據(jù)當(dāng)前幀圖像的角點位置從前一幀圖像中的預(yù)定區(qū)域內(nèi)搜索對應(yīng)的角點的步驟以及根據(jù)當(dāng)前幀圖像的角點和前一幀圖像對應(yīng)的角點獲取角點速度的步驟中:利用處理器的單指令多數(shù)據(jù)指令集對多個像素點進行同步計算。
[0015]為解決上述技術(shù)問題,本發(fā)明采用的另一個技術(shù)方案是:提供一種無人飛行器的飛行參數(shù)的測量裝置,該裝置包括:圖像傳感器,用于獲取圖像;陀螺儀,用于采集無人飛行器的角速度;高度測量器,用于獲取無人飛行器的飛行高度;處理器,與所述圖像傳感器、所述陀螺儀和所述高度測量器均電性連接,用于從圖像傳感器獲取的當(dāng)前幀圖像中提取角點,根據(jù)陀螺儀采集的當(dāng)前無人飛行器的角速度預(yù)估當(dāng)前幀圖像中各角點在前一幀圖像中的預(yù)定區(qū)域,根據(jù)當(dāng)前幀圖像的角點位置從前一幀圖像中的預(yù)定區(qū)域內(nèi)搜索對應(yīng)的角點,根據(jù)當(dāng)前幀圖像的角點和前一幀圖像對應(yīng)的角點獲取角點速度,根據(jù)角點速度獲取像素速度,根據(jù)像素速度和高度測量器獲取的無人飛行器的飛行高度獲取無人飛行器的實際速度。
[0016]其中,處理器對當(dāng)前幀圖像進行金字塔分層,求取金字塔分層后位于金字塔塔頂?shù)漠?dāng)前幀圖像的頂層圖像層中各像素點沿水平方向和垂直方向的灰階梯度,根據(jù)沿水平方向和垂直方向的灰階梯度獲取當(dāng)前幀圖像的頂層圖像層對應(yīng)的積分圖,根據(jù)積分圖獲取當(dāng)前幀圖像的頂層圖像層中各像素點的Harris得分并根據(jù)Harris得分的大小提取當(dāng)前幀圖像的角點,其中,角點為Harris得分大于預(yù)定閾值的像素點。
[0017]其中,處理器對前一幀圖像進行金字塔分層,在當(dāng)前幀圖像和前一幀圖像的時間間隔內(nèi)積分采集到的角速度,以獲取無人飛行器在時間間隔內(nèi)的轉(zhuǎn)動角度,根據(jù)轉(zhuǎn)動角度計算當(dāng)前幀圖像中各角點在前一幀圖像的頂層圖像層上相對應(yīng)的像素移動距離,根據(jù)像素移動距離估計當(dāng)前幀圖像中各角點在前一幀圖像的頂層圖像層中的預(yù)定區(qū)域。
[0018]其中,處理器從前一幀圖像中提取角點;再在前一幀圖像中判斷與當(dāng)前幀圖像中各角點對應(yīng)的預(yù)定區(qū)域內(nèi)是否存在角點,在前一幀的預(yù)定區(qū)域搜索與當(dāng)前幀角點對應(yīng)的角點。
[0019]其中,處理器根據(jù)當(dāng)前幀圖像中的各角點和前一幀圖像的各角點依據(jù)金字塔光流法獲取各角點在頂層圖像層中的速度,根據(jù)各角點在頂層圖像層的速度依據(jù)金字塔光流法依次獲取各角點在分層后其它各圖像層中的速度,其中,角點在分層后位于金字塔塔底的圖像層中的速度即為角點速度。
[0020]其中,處理器獲取各角點的角點速度的均值作為第一均值;判斷各角點的角點速度與第一均值的相關(guān)性;獲取與第一均值正相關(guān)的各角點的角點速度的均值作為第二均值,其中,第二均值即為像素速度。
[0021 ] 其中,處理器獲取各角點的角點速度的直方圖并對直方圖進行低通濾波,其中,濾波后直方圖得到的眾數(shù)即為像素速度。
[0022]其中,處理器根據(jù)角速度獲取由于轉(zhuǎn)動導(dǎo)致的轉(zhuǎn)動像素速度,通過角點速度獲取的像素速度減去轉(zhuǎn)動導(dǎo)致的轉(zhuǎn)動像素速度獲取無人飛行器由于平動引起的平動像素速度,根據(jù)平動像素速度和無人飛行器的飛行高度獲取無人飛行器的實際速度。
[0023]其中,處理器利用單指令多數(shù)據(jù)指令集對多個像素點進行同步計算以執(zhí)行從當(dāng)前幀圖像中提取角點、根據(jù)當(dāng)前幀圖像的角點位置從前一幀圖像中的預(yù)定區(qū)域內(nèi)搜索對應(yīng)的角點以及根據(jù)當(dāng)前幀圖像的角點和前一幀圖像的角點獲取角點速度的操作。
[0024]本發(fā)明的有益效果是:區(qū)別于現(xiàn)有技術(shù)的情況,本發(fā)明通過從當(dāng)前幀圖像中提取角點,接著根據(jù)角速度和當(dāng)前幀圖像中的角點估計前一幀圖像中的角點,隨后對當(dāng)前幀圖像的角點和前一幀圖像的角點進行適當(dāng)?shù)奶幚韥碛嬎阆袼厮俣龋詈蟾鶕?jù)像素速度和無人飛行器的飛行高度獲取無人飛行器的實際速度。與現(xiàn)有技術(shù)相比,本發(fā)明根據(jù)角點計算飛行器的飛行參數(shù),以及將角速度后補償改為預(yù)補償,提高了飛行參數(shù)測量的準(zhǔn)確度和測量精度。
【專利附圖】
【附圖說明】
[0025]圖1是本發(fā)明實施例的無人飛行器的飛行參數(shù)的測量裝置的結(jié)構(gòu)示意圖;
[0026]圖2是本發(fā)明第一實施例的無人飛行器的飛行參數(shù)的測量方法的流程圖;
[0027]圖3是本發(fā)明第二實施例的無人飛行器的飛行參數(shù)的測量方法的流程圖。
【具體實施方式】
[0028]在說明書及權(quán)利要求書當(dāng)中使用了某些詞匯來指稱特定的組件。所屬領(lǐng)域中的技術(shù)人員應(yīng)可理解,制造商可能會用不同的名詞來稱呼同樣的組件。本說明書及權(quán)利要求書并不以名稱的差異來作為區(qū)分組件的方式,而是以組件在功能上的差異來作為區(qū)分的基準(zhǔn)。下面結(jié)合附圖和實施例對本發(fā)明進行詳細說明。
[0029]圖1是本發(fā)明實施例的無人飛行器的飛行參數(shù)的測量裝置的結(jié)構(gòu)示意圖。如圖1所示,該裝置包括:一圖像傳感器10、一陀螺儀20、一高度測量器30和一處理器40。[0030]圖像傳感器10用于根據(jù)第一預(yù)定頻率獲取圖像。在本實施例中,圖像傳感器優(yōu)選為MT9V034,其支持的最大分辨率為752X480,第一預(yù)定頻率優(yōu)選為50Hz (赫茲)。
[0031]陀螺儀20用于根據(jù)第二預(yù)定頻率采集無人飛行器的角速度。在本實施例中,第二預(yù)定頻率為高頻頻率,優(yōu)選為IKHz (千赫茲)。
[0032]所述高度測量器30用于獲取無人飛行器的飛行高度。具體來說,在本實施例中,所述高度測量器30為超聲波傳感器,所述超聲波傳感器的一個探頭朝向地面發(fā)出頻率大約為300-500KHZ (千赫茲)的超聲波,當(dāng)超聲波接觸到可以反射超聲波的地面后發(fā)生反射,反射波被同一探頭或者超聲波傳感器的另一個探頭接收后,超聲波傳感器測量發(fā)射超聲波與接收到反射波之間的時間差,然后根據(jù)空氣中超聲波的傳播速度(一般為340米/秒)計算得到超聲波傳感器與地面之間的距離??梢岳斫獾氖?,所述高度測量器30也可以為其他測量裝置,如紅外傳感器、激光傳感器或微波器等,并不限于本實施例。
[0033]在本實施例中,所述處理器40為嵌入式處理器,所述處理器40與圖像傳感器10、陀螺儀20和高度測量器30均電性連接。具體來說,所述處理器40為Cortex M4處理器,其通過DCMI接口或LVDS接口與圖像傳感器10連接、通過I2C接口與陀螺儀20連接、通過UART接口與高度測量器30連接。可以理解的是,所述處理器40也可為其他型號的嵌入式處理器,或者為其他處理器,并不限于本實施例。
[0034]所述處理器40用于從圖像傳感器10獲取的當(dāng)前幀圖像中提取角點,根據(jù)陀螺儀20采集的當(dāng)前無人飛行器的角速度預(yù)估當(dāng)前幀圖像中各角點在前一幀圖像中的預(yù)定區(qū)域,根據(jù)當(dāng)前幀圖像的角點位置從前一幀圖像中的預(yù)定區(qū)域內(nèi)搜索對應(yīng)的角點,根據(jù)當(dāng)前幀圖像的角點和前一幀圖像對應(yīng)的角點獲取角點速度,根據(jù)角點速度獲取像素速度,并根據(jù)像素速度和高度測量裝置30獲取的無人飛行器的飛行高度獲取無人飛行器的實際速度。應(yīng)該注意的是,當(dāng)所述陀螺儀20檢測到無人飛行器轉(zhuǎn)動時,所述處理器40根據(jù)所述陀螺儀20返回的角速度計算出由于轉(zhuǎn)動導(dǎo)致的轉(zhuǎn)動像素速度,根據(jù)角點速度獲取的像素速度減去轉(zhuǎn)動導(dǎo)致的轉(zhuǎn)動像素速度后即可得到無人飛行器由于平動引起的平動像素速度;最后根據(jù)高度測量器30獲取的飛行高度和平動引起的平動像素速度即可計算得到無人飛行器的實際速度。
[0035]優(yōu)選地,處理器40為支持單指令多數(shù)據(jù)指令集(Single Instruction MultipleData, SIMD)的處理器。一般來說,SMD指令集為Thumb指令集的子集。在本實施例中,所述處理器40利用SMD指令集對多個像素點進行同步計算,以執(zhí)行從當(dāng)前幀圖像中提取角點、根據(jù)當(dāng)前幀圖像的角點位置從前一幀圖像中的預(yù)定區(qū)域內(nèi)搜索對應(yīng)的角點以及根據(jù)所述當(dāng)前幀圖像的角點和前一幀圖像對應(yīng)的角點獲取角點速度的操作。采用SIMD指令集可以大大提高上述操作執(zhí)行的效率,從而大大減少上述操作執(zhí)行的時間,從而提高飛行參數(shù)測量的精度。
[0036]在本實施例中,所述處理器40從圖像傳感器10獲取的當(dāng)前幀圖像中提取角點的操作具體為:首先,所述處理器40對從圖像傳感器10獲取的當(dāng)前幀圖像進行金字塔分層。接著,所述處理器40求取金字塔分層后位于金字塔塔頂?shù)漠?dāng)前幀圖像的頂層圖像層中各像素點沿水平方向和沿垂直方向的灰階梯度。其中,在計算灰階梯度的過程中,為了提升計算速度,可以利用SMD指令集對多個像素點進行同步計算,例如,利用數(shù)組特性將地址連續(xù)的4個字節(jié)拼接為一個32位整數(shù)以使用SIMD指令集進行計算,計算速度可以提升四倍。隨后,所述處理器40根據(jù)沿水平方向和沿垂直方向的灰階梯度獲取當(dāng)前幀圖像的頂層圖像層對應(yīng)的積分圖。其中,在計算積分圖的過程中,可以利用Thumb指令集提高積分圖計算的速度,例如,可以利用Thumb指令集中的指令_SMLABB、_SMLABT、_SMLATB、_SMLATB在一個時鐘周期內(nèi)完成16位整數(shù)的乘加計算,從而提高積分圖計算的速度。最后,處理器40根據(jù)積分圖獲取當(dāng)前幀圖像的頂層圖像層中各像素點的Harris得分并根據(jù)Harris得分的大小提取當(dāng)前幀圖像的角點,其中,角點為Harris得分大于預(yù)定閾值的像素點。
[0037]在本實施例中,所述處理器40還根據(jù)陀螺儀20采集的當(dāng)前無人飛行器的角速度預(yù)估當(dāng)前幀圖像中各角點在前一幀圖像中的預(yù)定區(qū)域的操作具體為:首先,所述處理器40對前一幀圖像進行金字塔分層。接著,所述處理器40在當(dāng)前幀圖像和前一幀圖像的時間間隔內(nèi)積分陀螺儀20采集的角速度,獲取無人飛行器在該時間間隔內(nèi)的轉(zhuǎn)動角度。隨后,所述處理器40根據(jù)轉(zhuǎn)動角度計算當(dāng)前幀圖像中的各角點在前一幀圖像層的頂層圖像層上相對應(yīng)的像素移動距離。最后,處理器40根據(jù)像素移動距離估計當(dāng)前幀圖像中各角點在前一幀圖像的頂層圖像層中的預(yù)定區(qū)域。
[0038]在本實施例中,處理器40根據(jù)當(dāng)前幀圖像的角點位置從前一幀圖像中的預(yù)定區(qū)域內(nèi)搜索對應(yīng)的角點的操作具體為:首先,處理器40從前一幀圖像中提取角點;接著,處理器40在前一幀圖像中判斷與當(dāng)前幀圖像中各角點對應(yīng)的預(yù)定區(qū)域內(nèi)是否存在角點;再通過金字塔光流算法在前一幀的預(yù)定區(qū)域搜索與當(dāng)前幀角點對應(yīng)的角點。
[0039]在本實施例中,處理器40根據(jù)當(dāng)前幀圖像的角點和前一幀圖像相對應(yīng)的角點獲取角點速度的操作具體為:首先,處理器40根據(jù)當(dāng)前幀圖像中的各角點和前一幀圖像的相對應(yīng)的角點依據(jù)金字塔光流法獲取各角點在頂層圖像層中的速度。接著,所述處理器40根據(jù)各角點在頂層圖像層的速度依據(jù)金字塔光流法依次獲取各角點在分層后其它各圖像層中的速度,其中,角點在分層后位于金字塔塔底的圖像層中的速度即為角點速度。
[0040]在本實施例中,處理器40根據(jù)角點速度獲取像素速度的操作具體為:首先,處理器40獲取各角點的角點速度的均值作為第一均值。接著,處理器40判斷各角點的角點速度與第一均值的相關(guān)性。隨后,處理器40獲取與第一均值正相關(guān)的各角點的角點速度的均值作為第二均值,其中,第二均值即為像素速度。
[0041]在其它實施例中,處理器40根據(jù)角點速度獲取像素速度的操作也可以具體為:處理器40獲取各角點的角點速度的直方圖并對直方圖進行低通濾波,其中,濾波后直方圖得到的眾數(shù)即為像素速度。
[0042]圖2是本發(fā)明第一實施例的無人飛行器的飛行參數(shù)的測量方法的流程圖,圖2所示的方法可由圖1所示的飛行參數(shù)的測量裝置執(zhí)行。需注意的是,若有實質(zhì)上相同的結(jié)果,本發(fā)明的方法并不以圖2所示的流程順序為限。如圖2所示,該方法包括如下步驟:
[0043]步驟SlOl:獲取圖像以及采集無人飛行器的角速度。
[0044]在步驟SlOl中,由圖像傳感器10根據(jù)第一預(yù)定頻率獲取圖像,由陀螺儀20根據(jù)第二預(yù)定頻率采集無人飛行器的角速度。
[0045]步驟S102:從當(dāng)前幀圖像中提取角點。
[0046]在步驟S102中,可以由處理器40利用Kitchen-Rosenfeld角點檢測算法,Harris角點檢測算法、KLT角點檢測算法或者SUSAN角點檢測算法從當(dāng)前幀圖像中提取角點,其中,角點可以理解為與相鄰像素點相比灰度發(fā)生明顯變化的像素點。[0047]步驟S103:根據(jù)當(dāng)前無人飛行器的角速度預(yù)估當(dāng)前幀圖像中各角點在前一幀圖像中的預(yù)定區(qū)域。
[0048]在步驟S103中,由處理器40通過對當(dāng)前幀圖像和前一幀圖像的時間間隔內(nèi)采集到的角速度進行積分計算來獲取無人飛行器在該時間間隔內(nèi)的轉(zhuǎn)動的角度,接著根據(jù)轉(zhuǎn)動的角度來獲取無人飛行器在當(dāng)前幀圖像和前一幀圖像的時間間隔內(nèi)各角點由于無人飛行器的轉(zhuǎn)動所導(dǎo)致的像素移動距離,繼而根據(jù)像素移動距離即可估計出當(dāng)前幀圖像中各角點在前一幀圖像中的預(yù)定區(qū)域。
[0049]步驟S104:根據(jù)當(dāng)前幀圖像的角點位置從前一幀圖像中的預(yù)定區(qū)域內(nèi)搜索對應(yīng)的角點。
[0050]在步驟S104中,預(yù)定區(qū)域可以為方形區(qū)域,也可以為其它形式的區(qū)域,在此不作限制。預(yù)定區(qū)域的大小也可按照實際情況進行設(shè)置,例如,當(dāng)需要提高角點提取準(zhǔn)確度時可以選擇較小的預(yù)定區(qū)域。
[0051]在步驟S104中,首先,由處理器40利用Kitchen-Rosenfeld角點檢測算法、Harris角點檢測算法、KLT角點檢測算法或SUSAN角點檢測算法提取前一幀圖像中的角點。接著,由處理器40在前一幀圖像中判斷與當(dāng)前幀圖像中各角點對應(yīng)的預(yù)定區(qū)域內(nèi)是否存在角點;再通過金字塔光流算法搜索在前一幀的預(yù)定區(qū)域內(nèi)是否存在與當(dāng)前幀角點對應(yīng)的角點。
[0052]步驟S105:根據(jù)當(dāng)前幀圖像的角點和前一幀圖像對應(yīng)的角點獲取角點速度。
[0053]在步驟S105中,可以由處理器40采用金字塔光流法或塊匹配光流法根據(jù)當(dāng)前幀圖像的角點和前一幀圖像對應(yīng)的角點獲取角點速度。其中,塊匹配光流法中塊匹配的方式還可以為絕對差值和(sum of absolute distance, SAD)和差的平方和(sum of squareddistance, SSD)。
[0054]步驟S106:根據(jù)角點速度獲取像素速度。
[0055]在步驟S106中,可以由處理器40采用如下兩種方法根據(jù)角點速度獲取像素速度:
[0056]第一種方法:首先,獲取各角點的角點速度的均值作為第一均值。接著,判斷各角點的角點速度與第一均值的相關(guān)性。其中,若角點的角點速度與第一均值為正相關(guān),則判斷其接近正確的像素速度,否則判斷其偏離正確的像素速度。最后,獲取與第一均值正相關(guān)的各角點的角點速度的均值作為第二均值,其中,第二均值即為正確的像素速度。
[0057]第二種方法:首先,獲取各角點的角點速度的直方圖,其中,直方圖包括沿水平方向和沿垂直方向的一維直方圖。接著,對直方圖進行低通濾波,其中,濾波后的直方圖得到的眾數(shù)即為像素速度,眾數(shù)可以理解為直方圖中數(shù)據(jù)集中出現(xiàn)頻率最多的角點速度。
[0058]步驟S107:根據(jù)像素速度和無人飛行器的飛行高度獲取無人飛行器的實際速度。
[0059]在步驟S107中,由處理器40根據(jù)角速度獲取由于轉(zhuǎn)動導(dǎo)致的轉(zhuǎn)動像素速度,通過角點速度獲取的像素速度減去轉(zhuǎn)動導(dǎo)致的轉(zhuǎn)動像素速度獲取無人飛行器由于平動引起的平動像素速度,根據(jù)平動像素速度和無人飛行器的飛行高度獲取無人飛行器的實際速度。
[0060]其中,根據(jù)平動像素速度和無人飛行器的飛行高度獲取無人飛行器的實際速度的步驟具體為:由高度測量器30獲取無人飛行器的飛行高度,并對獲取的飛行高度進行中值濾波與低通濾波后,進一步根據(jù)濾波后的飛行高度、圖像傳感器10中鏡頭的焦距、圖像傳感器10的內(nèi)部參數(shù)以及算法執(zhí)行的頻率將平動像素速度轉(zhuǎn)化為無人飛行器的實際速度。
[0061]其中,當(dāng)無人飛行器的實際速度被計算出來后,還可以通過四條標(biāo)準(zhǔn)判斷計算出來的實際速度是否合理。其中,四條標(biāo)準(zhǔn)具體為:當(dāng)前幀圖像和前一幀圖像之間的時間間隔內(nèi)高度測量器30獲取的飛行高度是否發(fā)生跳變,當(dāng)前幀圖像和前一幀圖像之間的時間間隔內(nèi)根據(jù)陀螺儀20采集的角速度積分得到的無人飛行器轉(zhuǎn)動的角度是否在預(yù)定范圍內(nèi),從當(dāng)前幀圖像或前一幀圖像中提取的角點總數(shù)是否達到預(yù)定數(shù)量,接近正確的像素速度的角點的百分比是否達到預(yù)定要求。其中,在計算無人飛行器的實際速度的過程中,當(dāng)四條標(biāo)準(zhǔn)同時得到滿足時,則可以判斷計算得到的實際速度為合理的速度。
[0062]另外,在步驟S102、步驟S104以及步驟S105中,可以利用處理器的單指令多數(shù)據(jù)指令集對多個像素點進行同步計算,以提高上述各步驟的計算效率,減少計算的時間。
[0063]通過上述實施方式,本發(fā)明第一實施例的無人飛行器的飛行參數(shù)的測量方法通過從當(dāng)前幀圖像中提取角點,接著根據(jù)角速度和當(dāng)前幀圖像中的角點估計前一幀圖像對應(yīng)的角點,隨后對當(dāng)前幀圖像的角點和前一幀圖像對應(yīng)的角點進行適當(dāng)?shù)奶幚韥泶_定像素速度,最后根據(jù)像素速度和無人飛行器的飛行高度獲取無人飛行器的實際速度。與現(xiàn)有技術(shù)相比,本發(fā)明根據(jù)角點計算飛行器的飛行參數(shù),以及將角速度后補償改為預(yù)補償,提高了飛行參數(shù)測量的準(zhǔn)確度和測量精度。
[0064]圖3是本發(fā)明第二實施例的無人飛行器的飛行參數(shù)的測量方法的流程圖,圖3所示的方法可由圖1所示的飛行參數(shù)的測量裝置執(zhí)行。需注意的是,若有實質(zhì)上相同的結(jié)果,本發(fā)明的方法并不以圖3所示的流程順序為限。如圖3所示,該方法包括如下步驟:
[0065]步驟S201:獲取圖像以及采集無人飛行器的角速度。
[0066]在步驟S201中,由圖像傳感器10根據(jù)第一預(yù)定頻率獲取圖像,進一步通過DCMI接口或LVDS接口將獲取到的圖像發(fā)送給處理器40。其中,圖像傳感器10優(yōu)選為MT9V034,其支持的最大分辨率為752 X 480,第一預(yù)定頻率優(yōu)選為50Hz (赫茲)。
[0067]具體來說,以設(shè)置圖像的分辨率為480X480為例來說,由圖像傳感器10根據(jù)第一預(yù)定頻率獲取分辨率為480 X 480的圖像后,為了滿足處理器40的內(nèi)存的限制,對分辨率為480X480的圖像進行硬件下采樣以獲取分辨率為120X120的圖像,進一步通過DCMI接口或LVDS接口將分辨率為120X120的圖像發(fā)送給處理器40。當(dāng)然,以上數(shù)值僅為舉例說明,本發(fā)明并不限于上述數(shù)值;下文中所列數(shù)值也同理。
[0068]由陀螺儀20根據(jù)第二預(yù)定頻率采集無人飛行器的角速度,進一步通過I2C接口將采集到的角速度發(fā)送給處理器40。其中,第二預(yù)定頻率為高頻頻率,優(yōu)選為1ΚΗζ(千赫茲)。
[0069]處理器40優(yōu)選為支持單指令多數(shù)據(jù)指令集的處理器,例如,Cortex M4處理器。具體來說,Cortex M4處理器支持Thumb指令集,其中,SIMD指令集為Thumb指令集的子集。另外,Cortex M4處理器帶有硬件浮點計算單元(Float Point Unit,FPU),可大大提高浮點計算的處理速度。
[0070]步驟S202:對當(dāng)前幀圖像進行金字塔分層。
[0071]在步驟S202中,由處理器40通過高斯下采樣或中值下采樣對當(dāng)前幀圖像進行金字塔分層,其中,分層的層數(shù)可以根據(jù)實際情況進行選擇。
[0072]承接前述舉例,當(dāng)處理器40獲取到分辨率為120X 120的當(dāng)前幀圖像后,通過高斯下采樣或中值下采樣將當(dāng)前幀圖像分成三層圖像層。其分別為:位于金字塔塔頂?shù)膱D像層,記為頂層圖像層,其分辨率為30X30 ;位于金字塔中間的圖像層,其分辨率為60X60 ;以及位于金字塔底層的圖像層,其分辨率為120X120。
[0073]步驟S203:求取金字塔分層后位于金字塔塔頂?shù)漠?dāng)前幀圖像的頂層圖像層中各像素點沿水平方向和垂直方向的灰階梯度。
[0074]在步驟S203中,承接前述舉例,由處理器40在當(dāng)前幀圖像的分辨率為30X30的頂層圖像層中計算各像素點沿水平方向的灰階梯度Ix和沿垂直方向的灰階梯度Iy。
[0075]灰階梯度可以理解為用二維離散函數(shù)描述圖像時,對二維離散函數(shù)求導(dǎo)得到的值。其中,灰階梯度的方向位于圖像灰度的最大變化率上,其可以反映圖像邊緣上的灰度變化。
[0076]灰階梯度可以為相鄰像素點的像素值的差值,gp:Ix=P(i+l, j)-P(i,j), Iy=P (i,j+l)-P(i,j)。灰階梯度也可以為中值差分,即 Ix=[P(i+l,j)-P(i_l,j)]/2,Iy= [P(i,j+l)_P(i,j_l)]/2。其中,P為像素點的像素值,(i,j)為像素點的坐標(biāo)?;译A梯度也可以為采用其它計算公式,在此不做限制。
[0077]其中,在計算灰階梯度、和Iy的過程中,為了提升計算速度,可以利用SIMD指令集對多個像素點進行同步計算,例如,利用數(shù)組特性將地址連續(xù)的4個字節(jié)拼接為一個32位整數(shù)以使用SIMD指令集進行計算,計算速度可以提升四倍。
[0078]步驟S204:根據(jù)沿水平方向和垂直方向的灰階梯度獲取當(dāng)前幀圖像的頂層圖像層對應(yīng)的積分圖。
[0079]在步驟S204中,承接前述舉例,由處理器40根據(jù)各像素點的灰階梯度Ix和Iy獲取當(dāng)前幀圖像的分辨率為30X30的頂層圖像層對應(yīng)的積分圖,進一步根據(jù)積分圖計算頂層圖像層中各像素點的Ix2,I/和IxIy的值。
[0080]其中,在計算積分圖的過程中,可以利用Thumb指令集提高積分圖計算的速度,例如,可以利用Thumb指令集中的指令_SMLABB、_SMLABT、_SMLATB、_SMLATB,在一個時鐘周期內(nèi)完成16位整數(shù)的乘加計算,從而提高積分圖的計算速度。
[0081]步驟S205:根據(jù)積分圖獲取當(dāng)前幀圖像的頂層圖像層中各像素點的Harris得分并根據(jù)Harris得分的大小提取當(dāng)前幀圖像的角點。
[0082]在步驟S205中,承接前述舉例,當(dāng)前幀圖像的分辨率為30X30的頂層圖像層中各像素點的Harris得分根據(jù)如下公式進行計算:
[0083]H=det (M) - λ X tr (M)2 ;
【權(quán)利要求】
1.一種無人飛行器的飛行參數(shù)的測量方法,其特征在于,所述方法包括: 獲取圖像以及采集所述無人飛行器的角速度; 從當(dāng)前幀圖像中提取角點; 根據(jù)當(dāng)前無人飛行器的所述角速度預(yù)估當(dāng)前幀圖像中各角點在前一幀圖像中的預(yù)定區(qū)域; 根據(jù)當(dāng)前幀圖像的角點位置從所述前一幀圖像中的預(yù)定區(qū)域內(nèi)搜索對應(yīng)的角點; 根據(jù)所述當(dāng)前幀圖像的角點和所述前一幀圖像對應(yīng)的角點獲取角點速度; 根據(jù)所述角點速度獲取像素速度; 根據(jù)所述像素速度和所述無人飛行器的飛行高度獲取所述無人飛行器的實際速度。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述從當(dāng)前幀圖像中提取角點的步驟包括: 對當(dāng)前幀 圖像進行金字塔分層; 求取金字塔分層后位于金字塔塔頂?shù)乃霎?dāng)前幀圖像的頂層圖像層中各像素點沿水平方向和垂直方向的灰階梯度; 根據(jù)沿水平方向和垂直方向的所述灰階梯度獲取所述當(dāng)前幀圖像的頂層圖像層對應(yīng)的積分圖; 根據(jù)所述積分圖獲取所述當(dāng)前幀圖像的頂層圖像層中各像素點的Harris得分并根據(jù)所述Harris得分的大小提取所述當(dāng)前幀圖像的角點,其中,所述角點為Harris得分大于預(yù)定閾值的像素點。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述根據(jù)當(dāng)前無人飛行器的所述角速度預(yù)估當(dāng)前幀圖像中各角點在前一幀圖像中的預(yù)定區(qū)域的步驟包括: 對所述前一幀圖像進行金字塔分層; 在所述當(dāng)前幀圖像和所述前一幀圖像的時間間隔內(nèi)積分采集到的所述角速度,以獲取所述無人飛行器在所述時間間隔內(nèi)的轉(zhuǎn)動角度; 根據(jù)所述轉(zhuǎn)動角度計算所述當(dāng)前幀圖像中各角點在所述前一幀圖像的頂層圖像層上相對應(yīng)的像素移動距離; 根據(jù)所述像素移動距離估計所述當(dāng)前幀圖像中各角點在所述前一幀圖像的頂層圖像層中的預(yù)定區(qū)域。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)當(dāng)前幀圖像的角點位置從所述前一幀圖像中的預(yù)定區(qū)域內(nèi)搜索對應(yīng)的角點的步驟包括: 從所述前一幀圖像中提取角點; 在前一幀圖像中判斷與當(dāng)前幀圖像中各角點對應(yīng)的預(yù)定區(qū)域內(nèi)是否存在角點; 在前一幀的預(yù)定區(qū)域搜索與當(dāng)前幀角點對應(yīng)的角點。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)所述當(dāng)前幀圖像的角點和所述前一幀圖像對應(yīng)的角點獲取角點速度的步驟包括: 根據(jù)所述當(dāng)前幀圖像中的各角點和所述前一幀圖像的各角點依據(jù)金字塔光流法獲取各角點在頂層圖像層中的速度; 根據(jù)各角點在所述頂層圖像層的速度依據(jù)所述金字塔光流法依次獲取各角點在分層后其它各圖像層中的速度,其中,所述角點在分層后位于金字塔塔底的圖像層中的速度即為角點速度。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)所述角點速度獲取像素速度的步驟包括: 獲取各角點的所述角點速度的均值作為第一均值; 判斷各角點的所述角點速度與所述第一均值的相關(guān)性; 獲取與所述第一均值正相關(guān)的各角點的所述角點速度的均值作為第二均值,其中,所述第二均值即為像素速度。
7.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述根據(jù)所述角點速度獲取像素速度的步驟包括: 獲取各角點的所述角點速度的直方圖并對所述直方圖進行低通濾波,其中,濾波后所述直方圖得到的眾數(shù)即為像素速度。
8.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述根據(jù)所述像素速度和所述無人飛行器的飛行高度獲 取所述無人飛行器的實際速度的步驟包括: 根據(jù)所述角速度獲取由于轉(zhuǎn)動導(dǎo)致的轉(zhuǎn)動像素速度; 通過所述角點速度獲取的所述像素速度減去轉(zhuǎn)動導(dǎo)致的所述轉(zhuǎn)動像素速度獲取所述無人飛行器由于平動引起的平動像素速度; 根據(jù)所述平動像素速度和所述無人飛行器的飛行高度獲取所述無人飛行器的實際速度。
9.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述從當(dāng)前幀圖像中提取角點的步驟、所述根據(jù)當(dāng)前幀圖像的角點位置從所述前一幀圖像中的預(yù)定區(qū)域內(nèi)搜索對應(yīng)的角點的步驟以及所述根據(jù)所述當(dāng)前幀圖像的角點和所述前一幀圖像對應(yīng)的角點獲取角點速度的步驟中:利用處理器的單指令多數(shù)據(jù)指令集對多個像素點進行同步計算。
10.一種無人飛行器的飛行參數(shù)的測量裝置,其特征在于,所述裝置包括: 圖像傳感器,用于獲取圖像; 陀螺儀,用于采集所述無人飛行器的角速度; 高度測量器,用于獲取所述無人飛行器的飛行高度; 處理器,與所述圖像傳感器、所述陀螺儀和所述高度測量器均電性連接,所述處理器用于從所述圖像傳感器獲取的當(dāng)前幀圖像中提取角點,根據(jù)所述陀螺儀采集的當(dāng)前無人飛行器的所述角速度預(yù)估當(dāng)前幀圖像中各角點在前一幀圖像中的預(yù)定區(qū)域,根據(jù)當(dāng)前幀圖像的角點位置從前一幀圖像中的預(yù)定區(qū)域內(nèi)搜索對應(yīng)的角點,根據(jù)所述當(dāng)前幀圖像的角點和所述前一幀圖像對應(yīng)的角點獲取角點速度,根據(jù)所述角點速度獲取像素速度,根據(jù)所述像素速度和所述高度測量器獲取的所述無人飛行器的飛行高度獲取所述無人飛行器的實際速度。
11.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述處理器對當(dāng)前幀圖像進行金字塔分層,求取金字塔分層后位于金字塔塔頂?shù)乃霎?dāng)前幀圖像的頂層圖像層中各像素點沿水平方向和垂直方向的灰階梯度,根據(jù)沿水平方向和垂直方向的所述灰階梯度獲取所述當(dāng)前幀圖像的頂層圖像層對應(yīng)的積分圖,根據(jù)所述積分圖獲取所述當(dāng)前幀圖像的頂層圖像層中各像素點的Harris得分并根據(jù)所述Harris得分的大小提取所述當(dāng)前幀圖像的角點,其中,所述角點為Harris得分大于預(yù)定閾值的像素點。
12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述處理器對所述前一幀圖像進行金字塔分層,在所述當(dāng)前幀圖像和所述前一幀圖像的時間間隔內(nèi)積分采集到的所述角速度,以獲取所述無人飛行器在所述時間間隔內(nèi)的轉(zhuǎn)動角度,根據(jù)所述轉(zhuǎn)動角度計算所述當(dāng)前幀圖像中各角點在所述前一幀圖像的頂層圖像層上相對應(yīng)的像素移動距離,根據(jù)所述像素移動距離估計所述當(dāng)前幀圖像中各角點在所述前一幀圖像的頂層圖像層中的預(yù)定區(qū)域。
13.根據(jù)權(quán)利要求12所述的裝置,其特征在于,所述處理器從所述前一幀圖像中提取角點;再在前一幀圖像中判斷與當(dāng)前幀圖像中各角點對應(yīng)的預(yù)定區(qū)域內(nèi)是否存在角點,在前一幀的預(yù)定區(qū)域搜索與當(dāng)前幀角點對應(yīng)的角點。
14.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述處理器根據(jù)所述當(dāng)前幀圖像中的各角點和所述前一幀圖像的各角點依據(jù)金字塔光流法獲取各角點在頂層圖像層中的速度,根據(jù)各角點在所述頂層圖像層的速度依據(jù)所述金字塔光流法依次獲取各角點在分層后其它各圖像層中的速度,其中,所述角點在分層后位于金字塔塔底的圖像層中的速度即為角點速度。
15.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述處理器獲取各角點的所述角點速度或的均值作為第一均值;判斷各角點的所述角點速度與所述第一均值的相關(guān)性;獲取與所述第一均值正相 關(guān)的各角點的所述角點速度的均值作為第二均值,其中,所述第二均值即為像素速度。
16.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述處理器獲取各角點的所述角點速度的直方圖并對所述直方圖進行低通濾波,其中,濾波后所述直方圖得到的眾數(shù)即為像素速度。
17.根據(jù)權(quán)利要求13所述的裝置,其特征在于,所述處理器根據(jù)所述角速度獲取由于轉(zhuǎn)動導(dǎo)致的轉(zhuǎn)動像素速度,通過所述角點速度獲取的所述像素速度減去轉(zhuǎn)動導(dǎo)致的所述轉(zhuǎn)動像素速度獲取所述無人飛行器由于平動引起的平動像素速度,根據(jù)所述平動像素速度和所述無人飛行器的飛行高度獲取所述無人飛行器的實際速度。
18.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述處理器利用單指令多數(shù)據(jù)指令集對多個像素點進行同步計算以執(zhí)行從當(dāng)前幀圖像中提取角點、根據(jù)當(dāng)前幀圖像的角點位置從前一幀圖像中的預(yù)定區(qū)域內(nèi)搜索對應(yīng)的角點以及根據(jù)所述當(dāng)前幀圖像的角點和所述前一幀圖像對應(yīng)的角點獲取角點速度的操作。
【文檔編號】G01C23/00GK103913588SQ201410142817
【公開日】2014年7月9日 申請日期:2014年4月10日 優(yōu)先權(quán)日:2014年4月10日
【發(fā)明者】周萬程, 孫科, 于云, 黃黎明 申請人:深圳市大疆創(chuàng)新科技有限公司