許向陽,袁杉杉,王軍,戴亞平
(1. 北京理工大學(xué) 自動化學(xué)院,北京 100081;2. 北京九如儀器有限公司,北京 100039)
隨著圖像傳感器和圖像處理技術(shù)的發(fā)展,越來越多的場合需要圖像兼具大視場角和高分辨率,以提供對目標(biāo)場景更加整體和清晰的描述,因此全景成像技術(shù)應(yīng)運(yùn)而生,其在監(jiān)控[1?2]、虛擬現(xiàn)實(shí)[3?4]等領(lǐng)域都有著巨大的應(yīng)用價值. 現(xiàn)階段全景圖像采集方法可分為魚眼全景、折反射全景、拼接式全景3種[5],相比于前兩者利用專用廣角成像設(shè)備直接拍攝大視場圖像,拼接式全景因其低造價和小失真逐漸成為主流全景圖像采集方法.
BROWN 等[6]利用尺度不變特征變換(scale invariant feature transform,SIFT)[7]提取輸入圖像的點(diǎn)特征,然后使用隨機(jī)抽樣一致(random sample consensus,RANSAC)[8]剔除錯誤匹配點(diǎn),進(jìn)而對圖像進(jìn)行單應(yīng)性對齊,最后采用多頻段融合拼接算法形成一幅全景圖像. 然而SIFT 和RANSAC 運(yùn)算量均較大,較少關(guān)注實(shí)時性問題[9?10]. 此后RUBLEE 等[11]提出ORB(oriented FAST and rotated BRIEF)算法,其運(yùn)行時間遠(yuǎn)遠(yuǎn)優(yōu)于SIFT,但不具備尺度不變性. ZARAGOZA等[12?13]將圖像劃分成密集網(wǎng)格,每個網(wǎng)格使用一個單應(yīng)性矩陣對齊,同時給出了一整套高效的計(jì)算方法Moving DLT 用于實(shí)現(xiàn)圖像拼接.
然而上述算法在序列圖像拼接時選定圖1(a)為基準(zhǔn),提取圖1(b)與圖1(a)間的匹配點(diǎn)用于求解單應(yīng)性矩陣,進(jìn)而將圖1(b)投影至圖1(a)所在平面,融合兩者的重疊區(qū)域獲得拼接圖像圖1(f),然后以圖1(f)為基準(zhǔn),重復(fù)上述步驟,完成后續(xù)圖像拼接,獲得全景圖1(i). 然而圖像配準(zhǔn)和參數(shù)計(jì)算等過程中均存在一定程度的誤差,多幅圖像拼接時,前列圖像的拼接誤差逐漸累積,導(dǎo)致后續(xù)圖像的拼接效果逐漸變差,出現(xiàn)明顯畸變,如圖1 所示.
圖1 序列圖像拼接誤差累積Fig. 1 Stitching error accumulation of sequence images
此外如圖2(a)所示,序列圖像以1 為基準(zhǔn)進(jìn)行拼接時,圖像N的匹配點(diǎn)主要分布在區(qū)域M內(nèi),然而M屬于拼接區(qū)域,存在大量拼縫且拼縫處特征點(diǎn)容易出現(xiàn)畸變,進(jìn)而導(dǎo)致圖像配準(zhǔn)過程中有效匹配點(diǎn)減少,匹配錯誤率增加,誤差也將隨著拼接的進(jìn)行不斷累加. 如圖2 所示,圖2(b)為待拼接圖像圖1(e)與已拼接圖像圖1(h)進(jìn)行配準(zhǔn)的結(jié)果圖,圖2(c)為待拼接圖像圖1(e)與相鄰圖像圖1(d)進(jìn)行配準(zhǔn)的結(jié)果,明顯可見現(xiàn)有拼接算法的誤差累積問題嚴(yán)重影響后續(xù)圖像的配準(zhǔn)和拼接效果.
圖2 誤差累積導(dǎo)致有效匹配點(diǎn)減少Fig. 2 Reduction of effective matching points caused by the error accumulation
鑒于上述不足,本文提出一種基于全局和局部特征的圖像拼接方法,首先同時拍攝大視場角、低分辨率全局圖像和小視場角、高分辨率局部圖像,然后利用SuperPoint[14]算法提取圖像特征點(diǎn)及其特征描述子,利用SuperGlue[15]算法進(jìn)行全局圖像與局部圖像間的特征配準(zhǔn),進(jìn)而根據(jù)兩者面積比等比例擴(kuò)大全局圖像的匹配點(diǎn)坐標(biāo),求解單應(yīng)性矩陣將局部圖像無縮放地投影至全局圖像所在平面,最后融合投影后局部圖像的重疊區(qū)域,拼接形成一幅大視場角、高分辨率全景圖像.
在圖像拼接過程中,首先對獲取的輸入圖像進(jìn)行濾波、灰度化、畸變矯正等預(yù)處理操作,其次提取圖像特征點(diǎn)及其特征描述子,對取自不同時間、不同光照或不同拍攝視角的兩幅或多幅圖像進(jìn)行特征匹配,使得圖像對中對應(yīng)于空間同一位置的點(diǎn)一一對應(yīng)[16],然后根據(jù)匹配點(diǎn)計(jì)算圖像對間的配準(zhǔn)參數(shù),求解單應(yīng)性矩陣,并將圖像投影至同一觀察平面,算法流程如圖3 所示.
圖3 基于特征的圖像配準(zhǔn)流程圖Fig. 3 Flow chart of image registration based on features
針對SIFT 運(yùn)算量較大、實(shí)時性較差等問題,本文采用SuperPoint[14]提取特征點(diǎn)及其特征描述子,該算法并未公開其數(shù)據(jù)集且訓(xùn)練過程較為復(fù)雜,因此實(shí)驗(yàn)中僅加載其權(quán)重文件進(jìn)行測試,不對模型結(jié)構(gòu)、訓(xùn)練過程等進(jìn)行修改,其流程主要包含特征點(diǎn)預(yù)訓(xùn)練、特征點(diǎn)自標(biāo)定和聯(lián)合訓(xùn)練3 個階段,流程如圖4所示.
圖4 SuperPoint 算法流程圖Fig. 4 Flow chart of SuperPoint
①特征點(diǎn)預(yù)訓(xùn)練(interest point pre-training).
創(chuàng)建一個主要由特征點(diǎn)位置明確的簡單幾何形狀組成的合成數(shù)據(jù)集,例如線段、三角形、四邊形等,進(jìn)而利用合成數(shù)據(jù)集訓(xùn)練一個全卷積神經(jīng)網(wǎng)絡(luò),并將訓(xùn)練好的檢測器命名為MagicPiont,檢測器在合成數(shù)據(jù)集上表現(xiàn)良好.
②特征點(diǎn)自標(biāo)定(interest point self-labeling).
為提升MagicPoint 在真實(shí)數(shù)據(jù)集上的檢測效果,實(shí)現(xiàn)跨域自適應(yīng),算法提出一種多尺度、多變換技術(shù)同態(tài)自適應(yīng)(homographic adaptation),通過多次扭曲輸入圖像幫助特征點(diǎn)檢測器從不同的視角和比例觀察場景,標(biāo)定真實(shí)數(shù)據(jù)集特征點(diǎn).
③聯(lián)合訓(xùn)練(joint training).
利用上述生成的特征點(diǎn)標(biāo)簽,訓(xùn)練一個全卷積神經(jīng)網(wǎng)絡(luò),并命名為SuperPoint,實(shí)現(xiàn)真實(shí)數(shù)據(jù)集上圖像特征點(diǎn)及其特征描述子的提取.
將上述SuperPoint 提取的特征點(diǎn)及其描述子作為輸入,采用SuperGlue[15]進(jìn)行圖像間的特征匹配,實(shí)驗(yàn)中僅加載其權(quán)重文件進(jìn)行測試,不對模型結(jié)構(gòu)、訓(xùn)練過程等進(jìn)行修改,算法主要包含注意力圖神經(jīng)網(wǎng)絡(luò)和最佳匹配層兩個模塊,流程如圖5 所示.
圖5 SuperGlue 算法流程圖Fig. 5 Flow chart of SuperGlue
①注意力圖神經(jīng)網(wǎng)絡(luò)(attentional graph neural network).
利用特征點(diǎn)編碼器將特征點(diǎn)位置p和特征描述子d映射到一個向量中,進(jìn)而交替利用自我注意力層和交叉注意力層(重復(fù)L次)創(chuàng)建匹配描述符f.
②最佳匹配層(optimal matching layer).
求解匹配描述符內(nèi)積用于創(chuàng)建一個M×N的分?jǐn)?shù)矩陣,并對其進(jìn)行擴(kuò)展,進(jìn)而利用Sinkhorn[17]算法找到最佳部分分配,實(shí)現(xiàn)圖像間特征點(diǎn)配準(zhǔn),輸出匹配點(diǎn)坐標(biāo)對及其匹配度.
由于在圖像配準(zhǔn)和參數(shù)計(jì)算等過程中均存在一定程度的誤差,當(dāng)多幅序列圖像拼接時,前列圖像的拼接誤差將逐漸累積,嚴(yán)重影響后續(xù)圖像的拼接效果. 為解決上述問題,本文提出一種基于全局和局部特征的圖像拼接方法. 利用所述的SuperPoint 和SuperGlue 算法進(jìn)行大視場角、低分辨率全局圖像與小視場角、高分辨率局部圖像間的特征點(diǎn)配準(zhǔn),進(jìn)而根據(jù)兩者面積比等比例擴(kuò)大全局圖像的匹配點(diǎn)坐標(biāo)用于計(jì)算單應(yīng)性矩陣,將局部圖像無縮放地投影至全局圖像所在平面,最后融合投影后局部圖像的重疊區(qū)域,拼接形成一幅大視場角、高分辨率全景圖像,如圖6 所示.
圖6 基于全局和局部特征的圖像拼接Fig. 6 Image stitching based on global and local features
用相機(jī)從不同位置拍攝所得的同一物體的圖像之間存在單應(yīng)性,單應(yīng)性矩陣即是從一張圖像到另一張圖像映射關(guān)系的轉(zhuǎn)化矩陣,例如假設(shè) (xi,yi,1)為局部圖像上一個特征點(diǎn),對應(yīng)于空間同一位置的全局圖像上的匹配點(diǎn)為(x,y,1),利用單應(yīng)性矩陣H可將局部圖像特征點(diǎn)變換至全局圖像所在平面,公式如下
上式可變換為
進(jìn)一步變換為
由上可得一組匹配點(diǎn) (xi,yi,1) 、 (x,y,1)可獲得2組方程,進(jìn)而添加約束h33=1,因此單應(yīng)性矩陣具有8 個自由度,可由4 組匹配點(diǎn)確定. 同時,為減少計(jì)算量,本文將局部圖像平均劃分成為4 個區(qū)域,取各區(qū)域內(nèi)匹配度最高的特征點(diǎn)用于求解單應(yīng)性矩陣,如圖7 所示.
圖7 求解單應(yīng)性矩陣的4 組匹配點(diǎn)Fig. 7 Four sets of matching points for calculating the homography matrix
由于拍攝過程中全局圖像與局部圖像分辨率相同,根據(jù)局部圖像在全局圖像中所占面積比,即圖8全局圖像中菱形區(qū)域和矩形區(qū)域面積比,同比例擴(kuò)大全局圖像匹配點(diǎn)坐標(biāo)值,避免單應(yīng)性變換過程中局部圖像縮小導(dǎo)致像素?fù)p失. 進(jìn)而利用4 組匹配點(diǎn)求解單應(yīng)性矩陣,將局部圖像無縮放地投影至全局圖像所在平面.
圖8 基于全局和局部特征的圖像變換Fig. 8 Image transformation based on global and local features
圖8 所示投影過程有效保留了局部圖像的像素信息及其在全局圖像中的位置信息,且局部圖像間相互獨(dú)立,使得算法不受圖像行數(shù)、列數(shù)、拼接順序及相鄰圖像重疊區(qū)域面積大小等因素影響,進(jìn)而融合所有投影圖像重疊區(qū)域形成全景圖像,避免序列圖像拼接過程中前列圖像的拼接誤差對后續(xù)圖像的拼接造成嚴(yán)重影響.
為驗(yàn)證上述方法的合理性和有效性,本文采用手機(jī)攝像頭拍攝不同場景下的單張全局圖像和多張局部圖像,分別對單行和多行序列圖像進(jìn)行拼接測試,并與利用尺度不變特征變換(SIFT)和隨機(jī)抽樣一致(RANSAC)實(shí)現(xiàn)序列局部圖像拼接,以及利用SuperPoint 和SuperGlue 實(shí)現(xiàn)序列圖像拼接的方法進(jìn)行結(jié)果對比.
同時拍攝單張大視場角全局圖像和多張小視場角局部圖像,設(shè)置所有圖像分辨率為1 920×1 440,如圖9 所示,利用本文方法對預(yù)處理后的局部圖像與全局圖像進(jìn)行特征點(diǎn)配準(zhǔn),進(jìn)而根據(jù)兩者面積比,約為3,等比例擴(kuò)大全局圖像的匹配點(diǎn)坐標(biāo)用于計(jì)算單應(yīng)性矩陣,將局部圖像投影至全局圖像所在平面,最后融合單應(yīng)性變換后局部圖像的重疊區(qū)域,拼接形成一幅大視場角、高分辨率全景圖像. 同時針對該組局部圖像,分別利用SuperPoint 加SuperGlue 算法以及SIFT 加RANSAC 算法完成全景圖像拼接,進(jìn)行效果對比. 效果如圖10~圖15 所示.
圖 9 全局圖像及單行局部圖像(1920×1 440)Fig. 9 The global image and single-line local images (1920×1 440)
圖 10 基于局部和全局特征的圖像配準(zhǔn)結(jié)果Fig. 10 Image registration results based on global and local features
圖11 和圖12 為傳統(tǒng)拼接方式中以前列圖像的拼接結(jié)果為基準(zhǔn)完成后續(xù)圖像拼接時的配準(zhǔn)結(jié)果,實(shí)驗(yàn)結(jié)果表明,該方法中拼接誤差的累積嚴(yán)重影響后續(xù)圖像的匹配效果,有效匹配點(diǎn)逐漸減少,然而本文方法中局部圖像間相互獨(dú)立,有效避免了誤差累計(jì)問題,進(jìn)而利用配準(zhǔn)結(jié)果進(jìn)行圖像拼接時,如圖13所示,除黑色背景區(qū)域外,有效圖像像素約為5 551×1 455,保證了大視場角和高分辨率. 然而基于傳統(tǒng)拼接方式的圖14 總像素8 426×2 192 和圖15 總像素11 357×2 685,其像素?cái)U(kuò)增是因誤差累積導(dǎo)致圖像畸變,進(jìn)而引起圖像縱向和橫向拉伸,若去除黑色區(qū)域和畸變拉伸,其有效面積與本文方法結(jié)果接近,具有可比較性且本文方法表現(xiàn)良好,沒有圖像畸變問題.
圖11 基于SuperPoint 和SuperGlue 的局部圖像配準(zhǔn)結(jié)果Fig. 11 Local image registration results based on SuperPoint and SuperGlue
圖12 基于SIFT 和RANSAC 的局部圖配準(zhǔn)結(jié)果Fig. 12 Local image registration results based on SIFT and RANSAC
圖13 基于全局和局部特征的圖像拼接結(jié)果(有效區(qū)域約為5 551×1 455)Fig. 13 Image stitching result based on global and local features (effective area is about 5 551×1 455)
圖14 基于SuperPoint 和SuperGlue 的局部圖像拼接結(jié)果(8 426×2 192 包含黑色背景和畸變引起的拉伸)Fig. 14 Local image stitching result based on SuperPoint and SuperGlue (8 426×2 192 includes the black background and the stretch caused by distortion)
圖15 基于SIFT 和RANSAC 的局部圖像拼接結(jié)果(11 357×2 685 包含黑色背景和畸變引起的拉伸)Fig. 15 Local image stitching result based on SIFT and RANSAC (11 357×2 685 includes the black background and the stretch caused by distortion)
此外,針對圖9 輸入圖像,傳統(tǒng)拼接方式及本文方法在中央處理器(CPU)及圖形處理器(GPU)上的運(yùn)行時間對比如表1 所示. 其中實(shí)驗(yàn)中僅加載Super-Point 和SuperGlue 權(quán)重文件用于特征提取和圖像配準(zhǔn),因此其運(yùn)行時間僅包含網(wǎng)絡(luò)測試時間,不包含網(wǎng)絡(luò)訓(xùn)練時間. 結(jié)果表明,僅包含局部特征時,后續(xù)圖像的拼接需要與前列圖像的拼接結(jié)果做配準(zhǔn),因其拼接結(jié)果包含更多的圖像像素信息,導(dǎo)致運(yùn)算時間大幅上升,因此本文方法中基于深度學(xué)習(xí)的圖像配準(zhǔn)和基于全局和局部特征的圖像拼接極大提升了運(yùn)行速率.
表1 傳統(tǒng)拼接方式與本文方法運(yùn)行時間對比Tab. 1 Comparison of running time between the traditional algorithm and the method in this paper
參照上述步驟,更換實(shí)驗(yàn)場景,同時拍攝單張大視場角全局圖像和多行小視場角局部圖像,設(shè)置所有圖像分辨率為1920×1 440,如圖16 所示,本文方法根據(jù)匹配點(diǎn)的坐標(biāo)信息確定局部圖像在全局圖像中的位置信息,根據(jù)全局圖像和局部圖像的面積比,約為3,等比例擴(kuò)大全局圖像的匹配點(diǎn)坐標(biāo),用于計(jì)算單應(yīng)性矩陣,將局部圖像無縮放地投影至全局圖像所在平面,如圖17 所示,拼接過程有效地融合投影變換后局部圖像的像素信息和位置信息,局部圖像間相互獨(dú)立,有效削弱了前列圖像的拼接結(jié)果對后續(xù)圖像拼接的影響,其拼接結(jié)果如圖18 所示.
圖16 全局圖像及多行局部圖像(1 920×1 440)Fig. 16 The global image and multi-line local images (1 920×1 440)
圖17 局部圖像投影結(jié)果(5 760×4 320)Fig. 17 The projection results of local images (5 760×4 320)
圖18 基于全局和局部特征的多行圖像拼接結(jié)果(5 760×4 320)Fig. 18 The stitching result of multi-line images based on global and local features (5 760×4 320)
此外,當(dāng)僅針對圖16(b)及圖16(d)單獨(dú)進(jìn)行圖像拼接時,由于重疊面積過小,導(dǎo)致傳統(tǒng)拼接方式?jīng)]有匹配點(diǎn),或匹配點(diǎn)明顯減少,匹配錯誤率明顯上升,如圖19(a)和19(b)所示,無法實(shí)現(xiàn)圖像拼接,然而本文方法相對于傳統(tǒng)拼接方式加入了全局特征,對重疊面積等不做要求,拼接結(jié)果如圖19(c)所示,可見本文方法中局部圖像間相互獨(dú)立,不受圖像行數(shù)、列數(shù)、拼接順序及相鄰圖像重疊區(qū)域面積大小等因素影響.
圖19 局部圖像重疊面積過小時的結(jié)果對比Fig. 19 Comparison of results with small overlapping areas of local images
同時,針對圖16 輸入圖像,本文方法在中央處理器(CPU)及圖形處理器(GPU)上的運(yùn)行時間對比如表2 所示. 同上所述,本文方法運(yùn)行時間僅包含網(wǎng)絡(luò)測試時間,不包含網(wǎng)絡(luò)訓(xùn)練時間. 結(jié)果表明,利用GPU 加速極大地提升了拼接速率,使得算法容易推廣應(yīng)用至視頻圖像的實(shí)時拼接中.
表2 本文方法在CPU 和GPU 上的運(yùn)行時間對比Tab. 2 Comparison of running time on CPU and GPU using the method in this paper
針對上述討論情況,對比基于全局和局部特征的本文方法和以前列圖像拼接結(jié)果為基準(zhǔn)完成后續(xù)圖像拼接的傳統(tǒng)方式,兩者特點(diǎn)歸納如表3.
表3 本文方法與傳統(tǒng)拼接方法對比Tab. 3 Comparison between the method in this paper and the traditional stitching method
針對序列圖像拼接誤差累積問題,本文提出了一種基于全局和局部特征的圖像拼接方法. 同時拍攝單張大視場角、低分辨率全局圖像和多張小視場角、高分辨率局部圖像,利用深度學(xué)習(xí)替代傳統(tǒng)算法實(shí)現(xiàn)局部圖像和全局圖像的特征點(diǎn)配準(zhǔn),進(jìn)而根據(jù)兩者面積比等比例擴(kuò)大全局圖像的匹配點(diǎn)坐標(biāo)用于求解單應(yīng)性矩陣,將局部圖像無縮放地投影至全局圖像所在平面,最后融合投影后局部圖像的重疊區(qū)域,拼接形成一幅大視場角、高分辨率全景圖像. 本文方法不受圖像行數(shù)、列數(shù)、拼接順序及相鄰圖像重疊區(qū)域面積大小等因素影響,拼接速率較快,且局部圖像間相互獨(dú)立,有效解決了拼接誤差累積的問題.