摘 要
圖像拼接是指是將多張具有重疊區域的圖像(可能是不同時間、不同視角獲得的)拼成一幅的無縫圖像。全景圖像拼接是數字圖像處理、計算機視覺和虛擬現實領域的熱點研究問題之一。它有助于解決因為成像設備硬件條件的制約而無法兼顧大場景和高分辨率的問題。目前,該技術已經廣泛應用到智能安防、醫學圖像處理和軍事等諸多的應用領域。全景圖像拼接主要包括 4 個步驟,分別為圖像幾何校正、圖像預處理、圖像配準和圖像融合。其中,圖像配準和圖像融合決定圖像拼接成功與否的關鍵。
本文從工程實用性的角度出發,研究基于 Android 平臺和開源的計算機視覺庫(OpenCV)的全景圖像拼接。具體地,論文的主要工作和創新點如下:
首先,提出了一種基于 ORB(Oriented FAST and Rotated BRIEF)特征點和 RANSAC(Random Sample Consensus)的全景圖像拼接算法。ORB 是一種新的具有局部不變性的特征,是替換 SIFT 或者 SURF 特征點的一個很好的選擇。圖像配準時采用基于 ORB 特征點的匹配,相對于 SIFT 和 SURF 特征點來說,圖像配準的執行效率更高。此外,RANSAC剔除無效的匹配特征點,并得到當前圖像和前一幅圖像之間的總體平移。通過特征點對的計算可以得到用于投射變換的單應性矩陣。
其次,利用 OpenCV for Android SDK,在 Android 操作系統下調用其自帶的 API 函數和 OpenCV 提供的 API 函數,實現了本文提出的基于 ORB 特征點和 RANSAC 的全景圖像拼接 App 應用程序。它包含兩個主要的線程:Android 圖形用戶接口(GUI)線程和計算機視覺線程。其中,Android 圖形用戶接口(GUI)線程的主要功能是通過手機攝像頭和傳感器捕獲圖像及其方向(orientation),并在 GUI 上顯示。計算機視覺線程則得到輸入的圖像并且完成圖像拼接所需的計算。
最后,以湖南大學校園內的場景圖像為測試對象,利用華為榮耀 6x 手機進行實際的測試。測試結果表明,基于 Android 系統的全景圖像拼接 App 應用程序實現了預期的功能,并且性能良好。
關鍵詞:圖像拼接;特征點檢測;單應性矩陣;開源計算機視覺庫;安卓系統
Abstract
Image mosaic refers to stitching multiple images with overlapped regions into a seamless image. Panorama image stitching is one of the hottest research topics in the fields of digital image processing, computer vision and virtual reality. It can solve the contradition that the hardware constrains of imaging device can not balance between wide scene view and high spatial resolution. Up to now, panorama image stitching has been widely used in many applications such as intelligent security, medical image processing and military. Panorama Image stitching is made up of four steps including image rectification, preprocessing, image calibration and image fusion. Among them, image calibration and image fusion are the key steps that determine the success of image stitching.
In this thesis, panorama image stitching is investigated from a practical engineering point of view. That is, we research on the panorama image stitching on the basis of Android OS and open computer vision library (OpenCV). Specifically, the main works and contributions are summarized as follows.
Firstly, a ORB and RANSAC based panorama image stitching approach is proposed. ORB is a abbreviation of Oriented FAST and Rotated BRIEF, which is a new feature with local invariance. It is an efficient alternative to SIFT or SURF. Thus, ORB-based features are exploited for image calibration. Compared with SIFT and SURF, ORB can be more efficient. In addition, Random Sample Consensus (RANSAC) is exploited to remove those invalid matched feature points, and obtain the overall translation between current image and the previous image. The homography matrix for projection is obtained by computing the feature point pairs.
Second, the proposed panorama image stitching approach, which is based on ORB and RANSAC, is implemented by exploiting the OpenCV for Android SDK. That is, it exploits the Android in-built APIs and the OpenCV APIs (Android version). There are two main threads running including the Android GUI thread and the Computer vision thread. The main functionality of the GUI Thread is to capture input images and orientation from the mobile camera and sensor and display the captured images onto the screen. The computer vision thread gets the input image and does all the computations for image stitching.
Finally, we verify the proposed approach with Huwei honor 6x, and the scenary images within the campus of Hunan University are used for test. Experimental results show that the proposed Android-based panorama image stitching APP has achieved desirable functionalities and performance.
Key Words:panorama image stitching; feature point detection and matching; homography matrix; open source computer vision library (OpenCV); Android OS.
眾所周知,人眼的視角受到生理條件的制約,都具有一定的范圍。通常情況下,其范圍為水平方向 90。,垂直方向 70。。然而,很多的場景圖像,例如瀑布、街景等,都需要更為寬闊的視角,才能帶給觀眾愜意的視覺享受。全景(panorama)圖像,是指通過廣角攝像頭等表現手段得到的圖像,盡可能多展示周圍的環境,帶給用戶一覽無余的感受[1,2,3]。360。
全景圖像,是指通過對專業相機捕獲得到的整個場景的圖像,進一步采用圖像拼接等技術進行圖片拼合,再采用專門的播放/瀏覽器進行播放,從而得到 360。的全角度視覺觀受[4,5]。通俗地說,它是能夠帶給用戶三維立體感覺的全方位圖像。從技術角度看,它是把平面照片或者計算機維制的平面圖形,按照某種幾何關系進行映射(柱面投影、球形投影等方式),模擬成真實的三維空間,呈現給觀賞者,以提供沉浸式的虛擬現實1。
可以看出,參與拼接的圖像通常是在拍攝過程中,圍繞某一個視點(光軸與鏡頭的交點)并偏轉適當的角度得到的具有部分重疊邊界的圖像,即作為全景圖像拼接的素材。拼接過程則通常包括檢測圖像重疊區域、計算圖像間人投影變換矩陣和圖像拼接等關鍵步驟[6,7]。此外,生成全景圖的方法還可以使用專用的全景成像設備包括全景相機、魚眼透鏡廣角拍攝設備等,直接生成全景圖。
相對來說,采用專用的全景拍攝設備具有拍攝方便、無需復雜的運算的特點,可以實時得到全景圖像[8]。但是,這些專業的拍攝設備具有價格昂貴、不易攜帶的缺點。使用計算機軟件(即圖像拼接)的方法,在優化拼接合成算法的情況下,也可以得到實時或者接近實時的全景圖像。因此,基于圖像拼拼的全景圖像生成和顯示技術更為實用,受到了更多的重視。
迄今為止,全景圖像拼接是數字圖像處理、計算機視覺和虛擬現實領域的熱點研究問題[9]。它可以解決成像設備因為硬件條件的制約而無法兼顧大場景和高分辨率的矛盾,輸出結果是包含所有拼接場景信息的寬視角、高分辨率全景圖像。
目前,該技術已經成功應用到智能安防、日常生活和工業制造等眾多的領域。例如,基于靜態圖像的虛擬校園全景展示[10]、刑事案件的現場偵察與還原[11]等都是全景圖像拼接的典型應用。然而,雖然圖像拼接技術的基本理論已經相對成熟,但是在具體的實施過程中,仍然可能受到應用環境的復雜多變等因素的影響。對于一些特殊的場景,傳統的圖像拼接技術并不總是能夠取得滿意的效果。因此,本文研究基于安卓手機的圖像全景合成,以直接使用安卓手機得到便攜、高效的全景圖像。論文選題既具有理論意義,又具有很強的工程應用價值。
柱面全景圖技術較為簡單,是現在應用最廣泛的一種全景圖成像技術,也是最適合人眼視覺系統(HVS)的一種全景圖成像技術。柱面投影的方式是指通過數學變換,將平面圖像投影到柱面上。柱面全景圖具有在圓柱面圖像和矩形平面圖像之間進行靈活轉換的優點。相對于立方體變換和球體變換,其坐標變換更為簡單,可以作為表達空間信息的選擇。
魚眼投影的目標是創建一個扁平的網格,使產生的圖像類似于觀看一個鏡面的金屬球。通常,它并不作為全景攝影的拼接方式。魚眼投影的水平和垂直的角度限制為 180;蛘吒。當直線離圖像網格中心越遠,曲率越大。魚眼鏡頭的相機在創建涵蓋整個視野的全景圖時,往往只需很少的照片就可以創建全景,但是具有形變較大的缺點。
球面全景圖是指以相機視點為球心,將拍攝的源圖像投影到球體的內表面形成的全景圖樣式。球面全景圖可實現水平和垂直方向 360。
的觀察角度。由于球面全景圖的投影生成過程是非線性的,球面全景圖的生成拼接過程相對來說較為復雜。目前,球面全景圖的研究算法較其他類型全景圖少,且在可靠性和效率等方面尚存在一些不足之處。
為了展示對象的 3D 效果,出現了對象全景圖。例如,當拍攝汽車圖像時,汽車就是對象。為了得到對象全景,拍攝時瞄準對象并且轉動對象,而不是采用傳統的轉動相機的方法。每轉動一個角度,拍攝一張圖像,順序完成。然后,選用對象全景的軟件進行合成和播放。這樣,用戶能夠使用鼠標拖動對象進行水平360。
的轉動,從而展示對象的 3D 全貌。對象全景具有廣泛的應用范圍,包括商品和玩具展示,文物觀賞,藝術和工藝品展示等,還可以將其嵌入到網頁,供用戶欣賞。
立方體全景圖像是由前、后、左、右、上和下 6 張照片無縫拼接而成。具體地,全景圖分成了前后左右上下六個面,瀏覽的時候將六個面結合成一個密閉空間來現實整個水平和豎直的 360 全景。相機位于立方體的中心,也是全視角,實際效果與球形全景類似。
Android 的架構
安卓工程目錄
全景相機的逝去的拍攝成像過程
全景合成結果(全景素材取自湖南大學校園附近天馬山)
參與圖像拼接的圖像 1
參與圖像拼接的圖像 2
SIFT 特征拼接的結果
目 錄
學位論文原創性聲明和學位論文版權使用授權書
摘 要
Abstract
目 錄
插圖索引
附表索引
第 1 章 緒論
1.1 選題背景與意義
1.2 全景圖像的類型
1.2.1 柱面全景圖
1.2.2 魚眼投影圖
1.2.3 球面全景圖
1.2.4 對象全景(Object Panorama
1.2.5 立方體全景(Cubic Panorama
1.3 圖像拼接的通用流程
1.3.1 圖像預處理
1.3.2 圖像配準
1.3.3 圖像融合
1.4 國內外研究現狀
1.5 論文的研究內容和可行性分析
1.5.1 研究思路分析
1.5.2 可行性分析
1.6 論文的結構安排
1.7 小結
第 2 章 全景圖像拼接的相關基礎理論
2.1 圖像變換模型
2.2 圖像配準
2.2.1 基于區域的直接配準方法
2.2.2 基于特征點的圖像配準方法
2.3 圖像變換
2.3.1 相機運動的主要形式
2.3.2 圖像變換矩陣
2.3.3 圖像變換模型
2.4 圖像融合
2.5 幾種常見的特征點檢測算法
2.5.1 SIFT 特征點檢測
2.5.2 SURF 特征點檢測
2.5.3 FAST 特征點檢測
2.6 歐拉角和四元數
2.6.1 歐拉角(Euler Angle
2.6.2 四元數
2.7 小結
第 3 章 基于 FAST 特征點和 ORB 匹配的全景圖像拼接
3.1 引言
3.2 提出的全景圖像拼接算法原理圖
3.3 特征點檢測
3.3.1 SIFT、SURF 和 FAST 特征點檢測的對比實驗
3.3.2 ORB 特征點檢測
3.4 從圖像到球形坐標的映射
3.5 RANSAC 計算
3.6 圖像平移與合成(stitching)
3.7 本章小結
第 4 章 基于 Android 手機的全景圖像拼接軟件實現
4.1 引言
4.2 開發工具簡介
4.2.1 Android 平臺簡介
4.2.2 OpenCV 簡介
4.3 系統分析與環境搭建
4.3.1 研究目標
4.3.2 需求分析
4.3.3 開發環境搭建
4.4 系統的主要程序模塊實現
4.4.1 自動拍攝全景拼接圖像
4.4.2 全景拼接取景進度條的實現
4.4.3 OpenCV 的 ORB 實現
4.5 部分 Android 工程文件
4.6 系統測試以及分析
4.6.1 測試設備
4.6.2 測試結果與分析
4.7 本章小結
結 論
參考文獻
(如您需要查看本篇畢業設計全文,請您聯系客服索。