韓寧,方芳,丁鶴,聶江華,喻小龍
(1.中國(guó)航空工業(yè)集團(tuán)雷華電子技術(shù)研究所,無錫 214063;2.南昌航空大學(xué),南昌330063)
圖像匹配最早是在上世紀(jì)70 年代提出的,當(dāng)時(shí)主要用于軍方的飛行器系統(tǒng)和武器導(dǎo)彈等系統(tǒng)中。1981年,Moravec 角點(diǎn)檢測(cè)算法被提出,由于此算法的穩(wěn)定性不好,研究學(xué)者又提出了此算法的改良版本Harris角點(diǎn)檢測(cè)。在Harris 角點(diǎn)的基礎(chǔ)上,后人又提出了Shi-Tomasi 算法,這個(gè)算法改進(jìn)了得分函數(shù),使得檢測(cè)出來的角點(diǎn)更為具有信息特征。1997 年,F(xiàn)AST 角點(diǎn)檢測(cè)算法被提出,正如它名字一樣,它的檢測(cè)速度非常的快,但是此算法并不具備描述子描述信息。2004 年,學(xué)者提出了SIFT 角點(diǎn)檢測(cè)算法,這個(gè)算法在各方面的性能都表現(xiàn)的特別優(yōu)秀。為了優(yōu)化SIFT 算法的速度問題,學(xué)者于2008 年又提出了SURF 角點(diǎn)檢測(cè)算法。接著又提出了速度更快,性能更穩(wěn)定的ORB 算法。
隨著數(shù)字信號(hào)處理芯片的興起以及FPGA 研究的突破,大量研究者都開始用DSP 和FPGA 實(shí)現(xiàn)圖像處理算法。本文設(shè)計(jì)了以6000 系列DSP 為平臺(tái),基于SIFT 提取的角點(diǎn)匹配系統(tǒng),相比于PC,少了體積龐大和功耗高的問題,并且充分利用了DSP 嵌入式系統(tǒng),大大提高了系統(tǒng)性能。
系統(tǒng)設(shè)計(jì)包括上位機(jī)通信程序設(shè)計(jì)、DSP 程序設(shè)計(jì)和算法程序設(shè)計(jì)。
上位機(jī)采用TCP/IP 協(xié)議??梢允褂镁W(wǎng)口進(jìn)行通信,使用Windows 的Socket 套接字庫(kù)即可直接調(diào)用網(wǎng)口通信程序。通過以太網(wǎng)發(fā)送待處理圖像的二進(jìn)制數(shù)據(jù),之后接收處理后傳回來的圖像數(shù)據(jù),最后將這段數(shù)據(jù)保存到本機(jī)的文件系統(tǒng)并顯示到操作軟件的界面。
下位機(jī)的程序設(shè)計(jì)主要包括SYS/BIOS 和NDK。在DSP 初始化BIOS 系統(tǒng)之后,會(huì)搭建NDK 環(huán)境,為上位機(jī)和DSP 之間搭建小型局域網(wǎng),并靜態(tài)分配IP 地址和端口號(hào)。DSP 接收來自上位機(jī)傳來的圖像數(shù)據(jù)后會(huì)對(duì)圖像數(shù)據(jù)進(jìn)行算法處理,得到的結(jié)果圖片數(shù)據(jù)又通過NDK 再傳回上位機(jī)。
算法程序設(shè)計(jì)主要包括了SIFT 角點(diǎn)檢測(cè)和角點(diǎn)匹配。SIFT 角點(diǎn)檢測(cè)分成兩個(gè)部分,先進(jìn)行算法處理找出這些特征點(diǎn)在圖像中的具體坐標(biāo),再對(duì)這些角點(diǎn)坐標(biāo)計(jì)算描述角點(diǎn)的描述子;分別計(jì)算兩幅圖像的角點(diǎn)信息之后,比對(duì)它們之間的歐氏距離以尋找最佳匹配對(duì),從而完成整個(gè)匹配過程。系統(tǒng)總體流程圖如圖1所示:
圖1 系統(tǒng)總體流程
在實(shí)際應(yīng)用中,一般都有兩幅圖像計(jì)算它的SIFT描述子,原始圖像叫做模板圖像,另一幅圖像稱為待匹配圖像。圖像匹配的目的是為了找出待匹配圖像中與模板圖像中的相同點(diǎn),即找出模板圖像在待匹配圖像中出現(xiàn)的位置。分別計(jì)算出兩幅圖像所有特征點(diǎn)的坐標(biāo)信息和描述子后,就可以通過兩幅圖像的描述子去尋找它們的最佳匹配對(duì),而判斷匹配程度一般使用的是計(jì)算兩個(gè)描述子之間的歐氏距離。設(shè)兩幅圖像的描述子分別為:
式中:A-模板圖像的描述子向量
B-待匹配圖像的描述子向量
M-模板圖像的特征點(diǎn)數(shù)量
N-待匹配圖像的特征點(diǎn)數(shù)量
為了充分找出匹配對(duì),最簡(jiǎn)單的方法便是枚舉法,將模板圖像的描述子去分別與待匹配圖像的描述子去計(jì)算。示意圖如圖2 所示。
圖2 枚舉法
計(jì)算描述子之間的歐氏距離公式如式(2)所示:
對(duì)計(jì)算出來的距離按升序排序,得到最小值dmin和次最小值dminor-min。歐氏距離為最小值時(shí),說明這兩個(gè)特征點(diǎn)的匹配度是非常高的,但只依據(jù)這個(gè)判斷是不夠的。因?yàn)椴还苋绾稳ヅ判蚩倳?huì)有最小值的出現(xiàn),為了解決這個(gè)問題,在SIFT 算法中最小值和次最小值的比例要在一定閾值之內(nèi)才能滿足匹配的要求,判決式如式(3)所示:
為了滿足系統(tǒng)功能,設(shè)計(jì)了上位機(jī)軟件。軟件界面分為配置和圖像顯示兩個(gè)模塊。在配置模塊中,可以在電腦文件中選擇模板圖像和待匹配圖像,同時(shí)也可以設(shè)置接收?qǐng)D像的保存路徑;選擇好文件后,可以選擇或輸入要連接的下位機(jī)服務(wù)器的IP 地址和端口號(hào);當(dāng)前執(zhí)行進(jìn)度也可在配置模塊中實(shí)時(shí)顯示。在顯示圖像模塊中有三個(gè)圖像顯示區(qū)域,分別顯示兩幅輸入圖像和一幅輸出圖像,具體軟件界面如圖3 所示。
在上位機(jī)選擇相應(yīng)的測(cè)試圖片并設(shè)置相應(yīng)的配置后,點(diǎn)擊執(zhí)行按鈕,執(zhí)行結(jié)果會(huì)在界面中顯示,具體效果如圖4 所示。
可以看到,在待匹配圖像中精確地找到了模板圖像的位置,在匹配結(jié)果的17 個(gè)匹配對(duì)中,匹配正確率為100%,這足以說明此算法的穩(wěn)定性和系統(tǒng)計(jì)算的高效性。
圖3 上位機(jī)軟件界面
通過一系列優(yōu)化及改進(jìn),系統(tǒng)的圖像匹配功能已經(jīng)非常完備了。打開上位機(jī)通信軟件,在編輯框輸入下位機(jī)IP 地址及端口號(hào),再通過下拉對(duì)話框選擇需發(fā)送的圖像數(shù)據(jù),點(diǎn)擊處理按鈕,系統(tǒng)會(huì)通過以太網(wǎng)將需處理的圖像數(shù)據(jù)傳入下位機(jī);下位機(jī)接收?qǐng)D像數(shù)據(jù)后,會(huì)讀取圖像使圖像數(shù)據(jù)規(guī)范化以滿足本系統(tǒng)的數(shù)據(jù)要求,對(duì)兩幅圖像分別進(jìn)行SIFT 角點(diǎn)算法處理,得到大量特征點(diǎn)及信息后,對(duì)這些特征點(diǎn)進(jìn)行匹配,并把匹配結(jié)果通過以太網(wǎng)傳回給上位機(jī);上位機(jī)接收到圖像數(shù)據(jù)后,會(huì)把結(jié)果存儲(chǔ)到計(jì)算機(jī)硬盤中,并把結(jié)果顯示到軟件界面以便分析。
圖4 測(cè)試結(jié)果