本發明涉及圖像處理及飛行器控制技術領域,尤其涉及一種多旋翼無人飛行器控制系統。
背景技術:
目前,常見的無人飛行器導航是利用GPS(Global Positioning System)和IMU(Inertial Measurement Unit)的組合導航來實現的。但由于GPS在低空和室內定位缺陷和IMU的累積誤差,導致無人飛行器在復雜環境下與室內的自主飛行較難實現。多數解決方案是引入雙目視覺系統與光流傳感器融合的方式,實現無人飛行器的精確控制。但是,雙目視覺系統包含兩個攝像頭,光流傳感器(一個攝像頭)有高幀率的需求,成本較高,而且需要三個攝像頭,增加了飛行器載荷。
技術實現要素:
本發明的目的是提供一種多旋翼無人飛行器控制系統,旨在解決無人飛行器在復雜環境與室內自主飛行的問題,并且利用普通攝像頭芯片實現高幀率,將光流與雙目測距集成在一起,成本較低,并且減輕了飛行器載荷。
本發明的目的是通過以下技術方案實現的:
一種多旋翼無人飛行器控制系統,包括:
圖像采集模塊,用于采集圖像;其包括兩個光軸平行,且相同規格參數的攝像頭,兩個攝像頭均朝下放置于多旋翼無人飛行器下方;
計算模塊,用于根據兩個攝像頭采集到的圖像來計算水平與垂直方向的光流,從而獲得多旋翼無人飛行器的運動信息,以及利用雙目圖像匹配算法并結合兩個攝像頭采集到的圖像,計算多旋翼無人飛行器距離地面的高度;
控制模塊,用于根據多旋翼無人飛行器的運動信息以及距離地面的高度,進行飛行器姿態與位置的控制。
其中一個攝像頭中的攝像頭芯片sensor1水平放置,另一個攝像頭中的攝像頭芯片sensor2垂直放置;
兩個攝像頭芯片通過設置寄存器,配置為中間行部分輸出圖像,達到高幀率輸出;或者,采用攝像頭芯片的下采樣模式和binning模式來提高幀率;
幀率的計算公式如下:
其中,Frame_rate表示幀率,PCLK為時鐘頻率,VSize為圖像高度,VBlank為場消隱,HSize為圖像寬度,HBlankTime為行消隱時間。
所述根據兩個攝像頭采集到的圖像來計算水平與垂直方向的光流,從而獲得多旋翼無人飛行器的運動信息包括:
利用攝像頭芯片sensor1采集的連續兩幀圖像P11和P12的亮度值I11和I12計算水平方向的光流;利用sensor2的連續兩幀圖像P21和P22的亮度值I21和I22計算垂直方向的光流,計算公式如下:
a、計算圖像P11的水平方向的梯度圖像的亮度值Ix
b.計算圖像P21的垂直方向的梯度圖像的亮度值Iy
c.采用最小二乘法求取光流約束方程:
Ix×u+It1=0
Iy×v+It2=0
其中,u,v分別為水平和垂直方向的光流,It1=I12-I11,It2=I22-I21;
再根據水平與垂直方向的光流得到飛行器的飛行速度與方向。
所述利用雙目圖像匹配算法并結合兩個攝像頭采集到的圖像,計算多旋翼無人飛行器距離地面的高度包括:
利用攝像機標定參數,對攝像頭芯片sensor1采集的P11和攝像頭芯片sensor2采集的圖像P21分別進行畸變校正;
然后,再分別對兩幅圖像進行濾波,去除噪聲;
再利用雙目圖像匹配算法對兩幅圖像進行立體匹配,得到視差d;
最后,利用三角測距原理并結合視差d,求取深度圖像,得到多旋翼無人飛行器距離地面的高度。
所述利用雙目圖像匹配算法對兩幅圖像進行立體匹配的步驟如下:
計算N×N窗口內中心像素的特征,N×N窗口內的N2個像素亮度值分別為P1,P2,…,PN2,求取它們的均值為m,然后將P1,P2,…,PN2分別與m比較,如果大于等于m,則為1,小于m,則為0;從而在N×N窗口內得到一個N2位的數據,作為中心像素的特征;以此類推,分別得到圖像I11和圖像I21的特征圖像C11和C21,即特征圖像C11和C21中每個像素都是N2位的數據;
在預先設定的視差范圍內,計算圖像C11與C21每個像素的最小漢明距離,在距離最小時對應的視差,即為圖像P11和P21的視差d。
所述利用三角測距原理并結合視差d,求取深度圖像,得到多旋翼無人飛行器距離地面的高度包括:
設,D為多旋翼無人飛行器距離地面的高度,B為兩攝像頭光心之間的距離,F為攝像頭焦距,x1與x2分別為物體在兩攝像機圖像上的位置,x1-x2即為視差d,則根據相似三角形原理,得到
其中,M是為了相似三角形計算引入的中間參數;
經過整理得到:
由上述本發明提供的技術方案可以看出,將兩個普通攝像頭芯片集成在一起代替高幀率攝像機,同時兼具了雙目測距的功能,成本較低,并且減輕了飛行器載荷。
附圖說明
為了更清楚地說明本發明實施例的技術方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發明的一些實施例,對于本領域的普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他附圖。
圖1為本發明實施例提供的多旋翼無人飛行器控制系統的示意圖;
圖2為本發明實施例提供的圖像采集模塊的兩個攝像頭布置位置示意圖;
圖3為本發明實施例提供的兩個攝像頭芯片放置角度示意圖;
圖4為本發明實施例提供的攝像頭輸出圖像示意圖;
圖5為本發明實施例提供的三角測距原理示意圖。
具體實施方式
下面結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬于本發明的保護范圍。
圖1為本發明實施例提供的多旋翼無人飛行器控制系統的示意圖。如圖1所示,其主要包括:
圖像采集模塊S1,用于采集圖像;其包括如圖2所示的兩個光軸平行,且相同規格參數的攝像頭(記為S11~S12),兩個攝像頭均朝下放置于多旋翼無人飛行器下方;
計算模塊S2,用于根據兩個攝像頭采集到的圖像來計算水平與垂直方向的光流,從而獲得多旋翼無人飛行器的運動信息,以及利用雙目圖像匹配算法并結合兩個攝像頭采集到的圖像,計算多旋翼無人飛行器距離地面的高度;
控制模塊S3,用于根據多旋翼無人飛行器的運動信息以及距離地面的高度,進行飛行器姿態與位置的控制。
本發明實施例中,兩個攝像頭內部的攝像頭芯片放置角度如圖3所示,其中一個攝像頭中的攝像頭芯片sensor1水平放置,另一個攝像頭中的攝像頭芯片sensor2垂直放置。
兩個攝像頭芯片通過設置寄存器,配置為如圖4所示的中間行部分輸出圖像,達到高幀率輸出,可以滿足本發明中光流算法的需求,水平放置的芯片sensor1可配合計算水平方向的光流(flowX),垂直放置的芯片sensor2可配合計算垂直方向的光流(flowY),可以完全替代成本較高的高幀率攝像機,從而降低了成本。同時,通過特有的匹配算法計算深度圖像,進而通過三角測距計算飛行器距離地面的高度。
幀率的計算公式如下:
其中,Frame_rate表示幀率,PCLK為時鐘頻率,VSize為圖像高度,VBlank為場消隱,HSize為圖像寬度,HBlankTime為行消隱時間。
示例性的,如果攝像頭的分辨率為640×480,時鐘頻率為12MHz,HblankTime為9×10-6s,VBlank為40,帶入上述幀率計算公式則有:
如上述幀率計算公式所示,如果減少攝像頭芯片出圖行數,即減小VSize,則可以增大幀率。例如,如圖4所示,采取圖像中間行輸出的方式,將VSize設置為90,其它參數不變,則得到幀率為123.41fps,實現了高幀率,由于芯片(sensor)出圖行數的減少,降低了功耗,并且由于數據量的減少,后續的計算相應減少,從而降低了系統功耗。
另外,也可以攝像頭芯片的下采樣模式和binning模式來提高幀率。
本發明實施例中,計算模塊主要用于計算多旋翼無人飛行器的運動信息(即,飛行速度與方向),以及距離地面的高度。主要計算過程如下:
1、計算多旋翼無人飛行器的運動信息。
利用攝像頭芯片sensor1采集的連續兩幀圖像P11和P12的亮度值I11和I12計算水平方向的光流;利用sensor2的連續兩幀圖像P21和P22的亮度值I21和I22計算垂直方向的光流,計算公式如下:
a、計算圖像P11的水平方向的梯度圖像的亮度值Ix
b.計算圖像P21的垂直方向的梯度圖像的亮度值Iy
c.采用最小二乘法求取光流約束方程:
Ix×u+It1=0
Iy×v+It2=0
其中,u,v分別為水平和垂直方向的光流,It1=I12-I11,It2=I22-I21;
然后,根據水平與垂直方向的光流得到飛行器的飛行速度與方向。
2、計算多旋翼無人飛行器距離地面的高度。
1)計算視差
利用攝像機標定參數(包括攝像機內參、外參),對攝像頭芯片sensor1采集的P11和攝像頭芯片sensor2采集的圖像P21分別進行畸變校正;
然后,再分別對兩幅圖像進行濾波,去除噪聲;
再利用雙目圖像匹配算法對兩幅圖像進行立體匹配,得到視差d;
最后,利用三角測距原理并結合視差d,求取深度圖像,得到多旋翼無人飛行器距離地面的高度。
所述利用雙目圖像匹配算法對兩幅圖像進行立體匹配的步驟如下:
計算N×N窗口內中心像素的特征,N×N窗口內的N2個像素亮度值分別為Q1,Q2,…,QN2,求取它們的均值為m,然后將Q1,Q2,…,QN2分別與m比較,如果大于等于m,則為1,小于m,則為0;從而在N×N窗口內得到一個N2位的數據,作為中心像素的特征;以此類推,分別得到圖像P11和圖像P21的特征圖像C11和C21(其中C11和C21中每個像素都是N2位的數據);示例性的,此處的N可以設為3、7、9等。
在預先設定的視差范圍(1~d)內,計算圖像C11與C21每個像素的最小漢明距離,在距離最小時對應的視差,即為圖像P11和P21的視差d。
2)計算高度。
利用三角測距原理并結合視差d,求取深度圖像,得到多旋翼無人飛行器距離地面的高度包括:
如圖5所示,假設,D為多旋翼無人飛行器距離地面的高度,B為兩攝像頭(S11與S12)光心之間的距離(即基線),F為攝像頭焦距,x1與x2分別為物體在兩攝像機圖像上的位置,x1-x2即為視差d,則根據相似三角形原理,得到
其中,M是為了相似三角形計算引入的中間參數,無實際意義;
經過整理得到:
本發明實施例中,控制模塊主要根據計算模塊計算到的多旋翼無人飛行器的飛行速度、方向,以及距離地面的高度,進行飛行器姿態與位置的控制。
以上所述,僅為本發明較佳的具體實施方式,但本發明的保護范圍并不局限于此,任何熟悉本技術領域的技術人員在本發明披露的技術范圍內,可輕易想到的變化或替換,都應涵蓋在本發明的保護范圍之內。因此,本發明的保護范圍應該以權利要求書的保護范圍為準。