孔圣文,馬平帥,丁永賢
(銀川能源學院,寧夏 銀川 750100)
物聯網浪潮推動著互聯網和人工智能行業的變革,計算機實時圖像處理技術也成為研究的熱點之一。圖像拼接技術在實際的工作和生活場景中應用廣泛,是進一步開展雙目攝像系統設計的核心內容。目的是將雙目攝像頭所拍攝圖像之間重復的部分進行特征匹配和融合處理合成,最終形成一張寬視覺的場景圖像。
在機器視覺應用中,圖像拼接技術經常被用來獲取寬視覺圖像,打破圖像傳感器自身視覺的限制。雙目攝像系統作為多種高新技術相融合的集成系統,不僅融合了嵌入式、傳感器、編程、計算機硬件、人工智能等多門學科知識,而且還積極引入前沿技術,具有較強的市場競爭力和巨大的現實意義。
本設計將雙目攝像系統分為五個部分:系統控制部分、圖像采集部分、電源部分、網絡通信部分和顯示部分。選擇樹莓派控制平臺、雙目攝像頭、隨身Wi-Fi和手機等相關模塊,結合計算機視覺技術和通信技術相關知識實現雙目攝像系統的圖像拼接功能。以Python為開發語言,經過圖像采集、圖像處理、圖像配準、圖像融合流程輸出全景拼接圖,顯示到手機端和電腦端,實現設計目標。設計基于樹莓派4B
開發板的雙目攝像系統,即實現基于計算機視覺的圖像拼接。系統設計包含硬件設計和軟件設計,系統軟件設計可以分為靜態圖像拼接和實時圖像拼接兩大部分。樹莓派4B開發板中搭載的是Raspbian系統,自帶PythonIDE編譯環境。雙目攝像系統借助樹莓派開發板實現Python編程控制圖像拼接。系統設計示意圖如圖1所示。

圖1 系統設計示意圖
根據設計需求,系統硬件主要是樹莓派控制板,系統軟件分為圖像采集、圖像處理、圖像拼接和圖像顯示四個模塊。圖像采集是指通過雙目攝像頭將圖片轉化成電子圖像;圖像處理是指對電子圖像進行初步分析和處理,為后續的圖像拼接做好準備;圖像拼接是指對經過處理的圖像進行算法處理,獲得全景圖;圖像顯示是指通過網絡通信模塊將圖像拼接圖傳輸到手機端或電腦端。系統總體設計包括靜態圖像拼接和實時圖像拼接。總體設計流程圖如圖2所示。

圖2 總體設計流程圖
設計樹莓派控制板時,在追求穩定性和可靠性的同時,還要注重整個系統的性能,所以在材料和部件的選擇上尤為慎重。之所以選擇樹莓派作為雙目攝像系統的控制板是因為樹莓派只有一張銀行卡大小的控制板,卻擁有計算機的各種組件,完全可以看作是一款微型計算機。它搭載了類似于Linux系統的Raspbian系統,該系統經歷了近10年的發展,隨著版本不斷的更新迭代,最新版本為樹莓派4B。因其具有體積小、價格低、功能強和技術開源等優點而受到無數開發人員的追捧。樹莓派不僅具有Python編譯開發環境,還支持Python、JAVA、C語言,這些優勢使樹莓派成為通信、嵌入式行業中一款廣為流行的控制平臺。
使用雙目攝像頭對某景象進行拍照,生成電子圖片,并將其拷貝到樹莓派系統。系統采集完圖像后,靜態拼接圖像并將圖像保存到example文件夾中,動態拼接時由雙目攝像頭實時拍攝采集,采集幀數為15幀,樹莓派對采集的每一幀圖像進行實時處理,處理過程包括圖像特征點提取、圖像配準和圖像融合,完成圖像拼接,最后通過網絡通信將每一幀拼接的圖像顯示到手機端和電腦端,形成動態拼接視頻。圖像處理流程如圖3所示。

圖3 圖像處理流程圖
在計算機視覺算法中,圖像預處理是一個重要環節,也是圖像拼接的主要步驟。圖像預處理包括圖像尺度構建和特征點檢測,前者所采用的方法是通過式(1)高斯函數構造高斯金字塔多尺度表示的方法,它是一項應用于圖像處理、計算機視覺和信號處理領域的技術;后者所采用的方法是基于縮放不變特性原理,比較兩個圖像中所有像素點的計算復雜又耗時,通常會選擇圖像中的一些特殊點進行部分分析,而選擇的特征點應該是左右圖像所共有的和容易區分的點。由式(2)得到像素點梯度,在式(3)梯度幅值的基礎上,用式(4)在左右圖像間構建對應的關系和方向,和表示像素點坐標,使選擇的特征點具有對稱性,在平移、翻轉過程中保持尺度不變的特性。


根據以上理論知識對圖像特征點進行提取后,所獲取的左右兩幅圖像在尺度上會產生不同的空間坐標,而圖像配準則是將兩幅圖像的不同坐標系統進行配準,最終形成一個坐標系統。該方法首先是對兩幅圖像及兩幅圖像之間的特征點進行定位,通過式(5)歐氏幾何公式對其進行配準。

圖像配準完成后,會將一張圖像作為模板,而將另外一張圖像投影到模板圖像的坐標系上,最后融合兩幅圖像的相同匹配點和特征點。圖像融合在圖像拼接中具有承上啟下的作用,也是最為關鍵的一步。通過合并重疊區域中的相同位置和像素,同時保留沒有重疊區域的像素,將所有對齊的圖像融合到全局平面坐標系中完成圖像的融合。
融合過程中,由于光照、視角、場景和攝像角度的不同而導致兩張圖像出現一明一暗的效果,使得圖像拼接時會出現拼接縫隙線。鑒于此,本文采用Alpha羽化融合方法,即采用式(6)加權平均值的方法(需滿足任意條件下+=1),對兩幅圖像的像素進行平均化,使得兩幅圖像的像素適中,該方法適用于圖像拼接時弱化拼接縫隙線。

在系統的設計與制作中融合了現有的圖像拼接技術,同時對圖像進行實時拼接。圖像拼接是一個被廣為研究的課題,本文將對雙目攝像系統的圖像靜態拼接和實時圖像拼接做進一步的探索和創新。
2.4.1 圖像靜態拼接
靜態圖像的拼接是根據需要選取圖像進行拼接。首先是特征點的提取和描述,其次是特征點的匹配,在兩個圖像上尋找對應的點,利用對點求出變換矩陣,再將變換矩陣應用于左圖,以產生右圖的對應,最后,將右側的圖像與對應的圖像進行拼接,完成圖像的拼接。拼接的成功與否取決于特征點的選取,如果選取了匹配錯誤的特征點,拼接將會失敗,所以選擇相似重疊部分圖像中的最強匹配點作為拼接點。
靜態圖像拼接采用SIFT特征不變換算法實現,重要的一步是找到圖4和圖5中最強匹配點所在的位置,通過映射矩陣變換,得到右圖像的最強匹配點經過映射后投影到新圖像上的位置坐標,在新圖像最強匹配點的映射坐標處拼接兩幅圖像,如圖6所示。

圖4 雙目左圖像

圖5 雙目右圖像

圖6 靜態圖像拼接圖
2.4.2 圖像實時拼接
結合使用Python和OpenCV進行圖像拼接。左右雙目鏡頭拍攝兩張共享某些公共區域的圖像,目的是實現圖像拼接,“縫合”它們并創建一個全景圖像。通過Wi-Fi模塊提供網絡并與流媒體相結合,在系統中搭建輕量級的Web框架,并將拼接圖像顯示到手機端和電腦端。
圖像拼接是計算機機器視覺中最成功的應用之一。為了便于圖像拼接,將左右圖片變換到統一的平面上,使目標圖像在坐標系中記錄下來,根據匹配關系將投影變換后的圖片再次變換,再次采樣圖像并融合。圖像融合的目的是消除因幾何校正、動態場景或光照變化而引起的相鄰圖像間強度或顏色不連續問題,以獲得具有廣角場景和高分辨率信息的新圖像,如圖7所示。

圖7 圖像實時拼接圖
該設計所用的圖像拼接算法為尺度不變特征變換算法(Scale-invariant feature transform, SIFT),是圖像處理領域的一種描述方式,具有尺度不變性,可在圖像中檢測出關鍵點,是一種局部特征描述的圖像拼接算法。
采用 flask框架將拼接圖像傳送到電腦端和手機端。Flask是用Python語言編寫的Web微框架,也是樹莓派所集成的功能之一,使用便捷并且能夠快速實現一個微型網站或Web服務。
在文件框架中引入 flask類,并給它創建一個實例,name代表模塊的名稱,route定義一個路由,告訴 flask如何訪問該函數,最后運用run函數使這個Web應用在服務器上運行起來。完成上述工作后使手機端、樹莓派和電腦三者處于同一Wi-Fi網絡下,在手機端輸入樹莓派IP地址可以顯示圖像實時拼接窗口。
樹莓派和雙目攝像系統的網絡通信模塊選用的是隨身Wi-Fi。Wi-Fi是基于IEEE 802.11標準的無線局域網技術,通過無線路由器把有線網轉化為一定覆蓋能力的無線網絡;通常情況下工作的頻段是2.4 GHz或者5.0 GHz,傳輸距離一般為0~100米,Wi-Fi覆蓋的終端設備可以組成一個無線局域網實現多設備的互聯。本設計中Wi-Fi為系統提供網絡。
本設計的控制模塊需要供電。系統供電所采用的是基于Raspberry PiGPIO的接口,適用于樹莓派系列主板的不間斷電源(UPS)模塊。采用彈簧頂針式設計,可通過I2C接口通信,測量電池電壓、電流、功率和剩余電量等參數,實時檢測模塊的工作狀態,可避免因控制板突然斷電而導致數據丟失。
UPS板可保護電路、防過充、防過放、防過流、防短路和防反接,均衡充電,工作穩定安全;板載5 V穩壓芯片,提供穩定的5 V電壓輸出、2.5 A電流輸出;板載USB接口便于為其他模塊供電。
本文設計的雙目攝像系統包含硬件設計和軟件設計。主要目標是實現圖像拼接,通過模擬人眼實現機器視覺擴大可見視野的目的,其中硬件部分采用樹莓派開發板、雙目攝像頭、電源驅動模塊、移動網絡模塊和手機終端,軟件部分運用Python語言開發設計,系統的主要功能是實現了雙目圖像的靜態拼接和實時拼接。系統的設計可以作為一系列硬件的載體,應用于虛擬現實、醫學圖像、機器視覺、空中遙感、監控安防、地面遠程協助等領域,擴大可見視野。