劉明 侯作勛 李光耀 張炳先
(北京空間機電研究所,北京 100094)
空間機械臂是支持空間站組裝、運營、維護和空間應用的關鍵裝備。機械臂需配置空間視覺相機,在軌執(zhí)行視覺監(jiān)視和視覺測量任務[1],為機械臂操控提供必需的圖像視覺信息和目標的位置、姿態(tài)信息。視覺相機是引導和輔助空間機械臂完成空間任務的重要設備,需要具有實時測量合作目標位姿和傳輸視頻壓縮圖像的功能[2-4]。
已成功在軌工作的空間相機如“嫦娥二號”監(jiān)視相機[5]等,大都采取以FPGA為核心的圖像處理系統(tǒng),核心器件FPGA主要起焦面驅動、時序控制、數(shù)據(jù)流控制等作用。這種圖像處理系統(tǒng)具有電路結構簡單的優(yōu)勢,但運算能力有限。當用戶需求增多和任務復雜度增加,不僅需要相機拍攝圖像,還需要其在軌對圖像進行運算,但是以FPGA為核心的圖像處理系統(tǒng)因其數(shù)字運算單元功能有限,無法實現(xiàn)諸如目標捕獲跟蹤、位姿測量、對圖像壓縮等類別的需求,亟需設計一種新的圖像處理系統(tǒng)[6-8]。
空間機械臂多任務視覺相機在原有的 FPGA圖像處理系統(tǒng)中加入數(shù)字運算單元 DSP,形成2FPGA+2DSP的異構多核心實時圖像處理系統(tǒng)[9-10]。新系統(tǒng)中,利用FPGA嚴格的時序和并行處理數(shù)據(jù)特性,實現(xiàn)圖像的采集和預處理;利用DSP強大的運算功能,實現(xiàn)圖像壓縮和位姿測量算法。通過合理的規(guī)劃電路功能,將核心電路分為焦面電路、視頻壓縮模塊、位姿測量模塊,并且每個電路和模塊可以獨立開發(fā),極大的縮短了開發(fā)時間。該系統(tǒng)可以滿足現(xiàn)代圖像處理系統(tǒng)對速率、數(shù)據(jù)量、成本、功耗等方面的要求,并具有實時性、輕小型化和模塊化開發(fā)的特點,適應航天遙感對圖像的高速處理要求。
相機采用光電集成化設計架構,分為鏡頭和電子學組件兩部分。其中,鏡頭采用透射式光學系統(tǒng)、像方遠心光路設計,確保相機在一定距離范圍內均能夠清晰成像,并且具有較小的畸變以滿足測量的需求。電子學部分采用集成化的組件設計,圖像采集、數(shù)據(jù)通信、視頻壓縮和位姿測量功能均由電子學組件承擔。電子學設計為相機主要設計難點,在開展相機電子學總體架構設計時,重點考慮了如下四方面的因素。
1)空間機械臂視覺相機,需要具有高測量精度和高可靠性。相對于單目視覺處理架構,從精度方面考慮,采用雙目視覺處理架構能夠提升位姿測量精度;從可靠性角度考慮,采用完全并行的雙目處理架構同樣可以有效提升系統(tǒng)的可靠性,達到高可靠、長壽命使用要求。因此本文將相機設計成完全獨立的雙目相機,每目相機都可以獨立完成視頻圖像傳輸和位姿測量,也可以實現(xiàn)雙目位姿測量,兼顧可靠性和位姿測量精度提升的要求。
2)相機需要兼具圖像采集、圖像預處理、位姿測量和H.264視頻壓縮功能,因此,其電路系統(tǒng)要求具備較強的數(shù)據(jù)并行處理能力(最高幀頻達到25幀/s)和復雜運算能力。而以FPGA為核心的圖像處理系統(tǒng)數(shù)字運算單元功能有限,無法實現(xiàn)此類需求。所以,在原有的FPGA圖像處理系統(tǒng)中加入數(shù)字運算單元DSP,形成FPGA+DSP的實時圖像處理新系統(tǒng)。該系統(tǒng)中FPGA作為圖像采集模塊的核心,負責圖像的采集和圖像預處理;DSP作為運算核心,負責實現(xiàn)圖像壓縮和位姿測量算法。
3)由于圖像采集和圖像預處理需要較強的并行運算能力,而視頻壓縮[11-14]和位姿計算需要具備較強的算法運算能力。因此,圖像采集和圖像預處理分別采用1片F(xiàn)PGA,并采用了級聯(lián)的模式;視頻壓縮和位姿計算分別采用1片DSP。視頻壓縮模塊和位姿測量模塊都采用FPGA+DSP架構,F(xiàn)PGA和DSP之間使用GPIO(通用接口)和UART(異步接口)接口進行通信、使用VPIF(視頻接口)接口進行圖像數(shù)據(jù)傳輸。
4)為了統(tǒng)一調度多片核心芯片處于相同的工作狀態(tài),測控通道由一片F(xiàn)PGA控制,由該FPGA作為整個硬件架構的控制中樞負責多片核心芯片的控制與狀態(tài)遙測。
依據(jù)上述優(yōu)化設計思路,將相機電子學組件按照模塊化分為焦平面電路、視頻壓縮模塊和位姿模塊三部分。電路總體架構如圖1所示。
圖1 相機電路構架Fig.1 Structure of the camera circuit
CMOS探測器輸出圖像為Bayer圖像,而彩色圖像可帶給地面觀測更豐富的細節(jié),因此需要對Bayer圖像插值成RGB圖像,再將RGB圖像轉換成YUV422圖像,最后經(jīng)過H.264圖像壓縮由網(wǎng)口傳輸。位姿測量最主要考慮圖像的Y分量(明亮度),對Y分量圖像進行直方圖均衡、圖像去噪、閾值分割后進行位姿測量。視頻壓縮算法主要由DSP(TMS320DM6467)內置硬核完成,在此對Bayer圖像插值、RGB888轉YUV422、位姿測量等主要算法進行介紹。
CMOS圖像傳感器表面覆蓋著顏色濾波陣列(CFA),經(jīng)過CFA后每個像素只能獲得三基色中的一種分量,圖2表示圖像傳感器成像得到的3×3像素陣列,每個像素只代表紅、黃、綠1種顏色分量。為了獲得彩色圖像,需要利用周圍像素點的值近似計算出被濾掉的顏色分量。
圖2中共有成像的9個像素點,如中間像素5的DN值只表示像素5的綠色分量,則插值后像素5的RGB(紅綠藍)顏色分量r5,g5,b5的DN值可分別表示為:
圖2 成像的3×3像素陣列Fig.2 An imaging array with 3×3 pixels
式中D2、D4、D5、D6、D8分別表示3×3像素陣列中像素2、像素4、像素5、像素6、像素8的DN值。式(1)將只有綠色的像素 5變?yōu)榫哂屑t、綠、藍三個顏色分量的彩色像素 (r5,g5,b5)。其他像素點的插值方法類似,不再介紹。
通過式(1)完成了Bayer圖像轉換成RGB888格式圖像,根據(jù)文獻[15]并結合傳感器的特性,對式(2)中矩陣的系數(shù)微調,實現(xiàn)RGB888格式圖像與YUV422圖像的轉化[15]。
式中B、C、S分別表示任意像素點明亮度、色彩和飽和度;r、g、b表示任意像素點紅、綠、藍顏色分量的DN值。
相機通過識別合作視覺靶標上的特征點來完成位姿測量算法。首先,根據(jù)已知視覺靶標的特征點的形狀、顏色、空間分布等信息,在成像圖像中提取視覺標記點所對應的圖像特征點,并通過輪廓法精確定位圖像特征點中心的圖像坐標[16-19],圖3為視覺標記合作靶標,共有8個特征點供檢測。
圖3 視覺靶標Fig.3 The visual target
然后,將完成檢測得到的圖像特征點與視覺標記點的一一對應。相機的成像場景中可能有類似視覺標記靶標特征點的物體,圖像中檢測得到的特征點數(shù)量可能多于相機視場內視覺標記靶標特征點的數(shù)量。因此,在匹配過程中,首先篩選出用于匹配的圖像特征點,再與標記點相對應。
最后,根據(jù)圖像特征點的信息完成位姿測量。
相機成像可以用小孔成像模型表示[20-21],如圖4。空間內任意一點A與相機光心O的連線投影在相機焦平面s上點a的位置,s′為焦平面的等效平面,其上像點A′由平面s上像點a經(jīng)水平翻轉和垂直翻轉得到。
圖4 相機成像模型Fig.4 The camera imaging model and its coordinate system
圖4中三維笛卡爾坐標系Ow-XwYwZw為世界坐標系;三維笛卡爾坐標Oc-XcYcZc為相機坐標系,原點Oc與相機光心O重合,Zc軸與光軸重合,Xc、Yc軸與焦平面內X、Y軸平行;圖像坐標系Oi-XiYi為二維笛卡爾坐標系,以物理長度為單位,原點Oi位于相機光軸與等效成像平面的交點處;圖像坐標系OP-UV為二維笛卡爾坐標系,以像素為單位,原點OP坐標為(0,0),表示其位于OP-UV坐標系的0行0列。
(1)世界坐標與相機坐標的變換
空間中任意一點A的世界坐標為相機坐標記為像點A′以物理長度為單位的圖像坐標記為Ai=(xi,yi)T,以像素為單位的圖像坐標記為Ap=(u,v)T。則點A的世界坐標與相機坐標的變換關系為
(2)世界坐標與圖像坐標的變換
相機小孔成像模型比例關系可以表示為
式中f為焦距,表示相機光心O到焦平面的距離。
由式(4)可以將點A的相機坐標變換為以物理長度為單位的圖像坐標,即
設原點Oi在OP-UV坐標系中的坐標為(u0,v0),則以物理長度為單位的圖像坐標與以像素為單位的圖像坐標之間的轉換關系為
式中dx、dy為每個像素分別在Xi、Yi軸方向上的物理尺寸,即像元尺寸。
綜合上述坐標變換過程,當相機對空間任意一點成像時,該點的世界坐標與圖像坐標(以像素為單位)的變換關系為:
式中ax,ay分別為U、V軸上的尺度因子,ax=f/dx,ay=f/dy;M1為相機內參數(shù)矩陣,M1為相機外參數(shù)矩陣,由相機坐標系相對于世界坐標系的位姿參數(shù)決定。
以繞Zc、Yc及Xc軸的順序旋轉坐標系,可得合成旋轉矩陣如下:
式中α、β、γ為相機姿態(tài)參數(shù),分別表示俯仰角、滾轉角和偏航角。
(3)世界坐標系的R、T求解
相機的位置參數(shù)為其光心O在世界坐標系中的坐標由于O的相機坐標為Ooc=ROoc+T=(0 0 0)T,若已求得相機坐標系相對于世界坐標系的旋轉矩陣R和平移向量T,則可求得相機位置參數(shù)Ooc=-R-1T。
根據(jù)上述分析,可將求解相機位姿參數(shù)轉化為求解相機坐標系相對于世界坐標系的旋轉矩陣R和平移向量T[22-24]。
采用正交迭代算法,通過空間中至少4 點求解位姿參數(shù),以特征點物空間殘差二范數(shù)之和作為目標函數(shù),迭代求解令目標函數(shù)取得最小值的R和T。
設供檢測的特征點數(shù)量為n,則第j(j=1,2,···,n)個特征點以像素為單位的歸一化圖像坐標為該點對應的世界坐標為Pwj=(xwj,ywj,zwj)T,則物空間殘差向量為
式中I為單位矩陣;
以物空間殘差的二范數(shù)之和作為目標函數(shù)E,則將位姿估計問題轉化為求解令目標函數(shù)取得最小值的R和T,該問題可描述為
式中 minE(R,T)表示以旋轉矩陣R和平移向量T構成方陣行列式的最小值。
根據(jù)目標函數(shù),若R已知,則T存在如式(11)所示的閉式解。
可進一步定義中間變換矩陣Q為
則可以將式(10)改寫為
求解R和T的過程如下:
1)令迭代次數(shù)k的初始值為0,R的初始值為R0。根據(jù)式(11)和式(12),由Rk求解Tk和Qk;
2)基于奇異值分解法[25]求解式(13)得到R;
3)令Rk+1=R,Tk+1=T(Rk+1)。定義誤差目標ε,若式(14)成立則迭代結束,當前求得的R和T即為最終解,否則令k=k+1,返回第一步迭代計算。
將視覺靶標安裝在六維運動機構上,六維運動機構由三維電動旋轉臺和三維導軌組合而成,三軸兩兩垂直。六維運動機構以三維轉臺三旋轉軸中心為坐標原點,以坐標原點為零位,可實現(xiàn)X軸、Y軸、Z軸、俯仰方向、偏航方向和滾轉方向的六個維度運動。
使用經(jīng)緯儀對相機和視覺靶標進行建站標定,確定相機和視覺靶標的位置關系,以六維運動機構上視覺靶標為基準,設置其X、Y、Z軸的運動距離和俯仰、偏航、滾轉的角度,驗證相機位姿測量算法的準確性和精度。
相機在試驗過程中,視覺靶標通過工裝安裝在六維運動機構上,隨著六維運動機構實現(xiàn)平移和轉動,相機實時傳輸視覺靶標的壓縮圖像和位姿測量信息。使用網(wǎng)絡監(jiān)視工具分析得出,壓縮圖像在傳輸過程中未發(fā)生中斷和丟包現(xiàn)象;相機輸出的視頻圖像見圖5,視覺靶標完全呈現(xiàn)在左、右目相機視場內,視覺標記中白色特征點和黑色背景DN值之差大于70,左、右目相機可以獨立完成對視覺靶標中特征點的識別、提取和定位,從而實現(xiàn)位姿測量功能。分析 1 051組測試數(shù)據(jù)得出,相機在距離視覺靶標[600,1 300]mm范圍進行測量時,測量出的位置誤差δx≤1.1948mm 、δy≤3.5285mm 、δz≤2.0620mm,姿態(tài)誤差δα≤ 0.4030°、δβ≤ 0.3173°、δγ≤ 0.0612°,誤差均滿足指標要求。
圖5 左、右目相機輸出的視頻圖像Fig.5 Video images of the left eye camera and the right eye camera
本文針對空間機械臂視覺相機測量合作目標位姿和傳輸視頻壓縮圖像的實時多任務需求,設計了異構多核心電子學架構,并根據(jù)任務特點,設計了2FPGA+2DSP的電子學電路;介紹了Bayer圖像插值方法、RGB888轉YUV422方法和位姿測量算法的具體實現(xiàn)方法;使用經(jīng)緯儀對相機和視覺靶標進行建站標定,測試相機位姿算法的精度和視頻壓縮能力。結果表明,相機在距離視覺靶標[600, 1 300]mm內進行測量時,測量出的位置誤差和姿態(tài)誤差滿足指標要求;相機試驗過程中視頻壓縮圖像傳輸無卡頓、中斷和丟包現(xiàn)象發(fā)生,圖像輸出正常。采用該方法設計的空間視覺相機,可以實現(xiàn)位姿測量和壓縮圖像實時傳輸?shù)亩嗳蝿招枨蟆?/p>
該相機的電子學架構具備模塊化開發(fā)優(yōu)勢,可極大的縮小研發(fā)時間,并很好的滿足圖像處理系統(tǒng)對速率、數(shù)據(jù)量、圖像處理系統(tǒng)體積、系統(tǒng)成本、功耗等方面的要求,可推廣到其他空間實時多任務系統(tǒng)。