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