單應性
單應性是幾何中的一個概念。單應性是一個從實射影平面到射影平面的可逆變換,直線在該變換下仍映射為直線。具有相同意義的詞還包括直射變換、射影變換和射影性等,[1] 不過「直射變換」也在更廣義的範圍內使用。
形式化地說,射影變換是一種在射影幾何中使用的變換:它是一對透視投影的組合。它描述了當觀察者視角改變時,被觀察物體的感知位置會發生何種變化。射影變換並不保持大小和角度,但會保持重合關係和交比——兩個在射影幾何中很重要的性質。射影變換形成了一個群。[1]
對於更廣義的射影空間——具有不同維度或不同的域——來說,「單應性」代表射影線性變換(由其相關的向量空間的線性變換導出的可逆變換),而「直射變換」(意為「把直線映射為直線」)更為廣義,它既包含了單應性,也包含了自同構直射變換(由域自同構導出的直射變換),或者是這兩者的組合。
計算機視覺中的應用
[編輯]在計算機視覺領域中,空間中同一平面的任意兩幅圖像通過單應性關聯在一起(假定是針孔相機)。比如,一個物體可以通過旋轉相機鏡頭獲取兩張不同的照片(這兩張照片的內容不一定要完全對應,部分對應即可),我們可以把單應性設為一個二維矩陣M,那麼照片1乘以M就是照片2。 這有着很多實際應用,比如圖像校正、圖像對齊或兩幅圖像之間的相機運動計算(旋轉和平移)等。一旦旋轉和平移從所估計的單應性矩陣中提取出來,那麼該信息將可被用來導航或是把3D物體模型插入到圖像或視頻中,使其可根據正確的透視來渲染,並且成為原始場景的一部分(請見增強現實)。
如果兩幅圖像之間的相機運動只有旋轉而沒有平移,那麼這兩幅圖像通過單應性關聯在一起(假定是針孔相機)。
3D的平面到平面公式
[編輯]我們有兩個相機a和b,這兩個相機都向某平面中的點看去。
把的投影從b中的轉換到a中的點:
其中是
是旋轉矩陣,通過該矩陣b關於a旋轉;t是從a到b的平移向量;n和d分別是平面的法向量和相機到平面的距離。
Ka和Kb是相機的內參數矩陣。
此圖顯示相機b在距離d處看向平面。
提示:從上圖中可知,是向量到的投影,且等於d。因此。而且我們有。
數學定義
[編輯]齊次坐標以矩陣乘的方式來表示射影變換,因為使用笛卡兒坐標的話,矩陣乘無法執行透視射影所必需的除法運算。換句話說,透視射影在笛卡兒坐標下不是線性變換。
給定:
則:
其中:
也即:
仿射單應性
[編輯]當要計算單應性的圖像區域比較小,或者圖像要求焦距較長時,仿射單應性是更合適的模型。仿射單應性是廣義單應性中的一種,它的最後一行固定為
參見
[編輯]參考文獻
[編輯]- ^ 1.0 1.1 Richard Hartley and Andrew Zisserman. Multiple View Geometry in computer vision. Cambridge University Press. 2003: 32–33. ISBN 0-521-54051-8.
- O. Chum and T. Pajdla and P. Sturm. The Geometric Error for Homographies. Computer Vision and Image Understanding. 2005, 97 (1): 86–102. doi:10.1016/j.cviu.2004.03.004.
- Bill Goldman (2005) Transformations in Circle Geometry, course notes from University of Maryland.
此條目需要補充更多來源。 (2009年12月) |
外部連結
[編輯]- M. Lourakis' homest (頁面存檔備份,存於互聯網檔案館) is a GPL C/C++ library for robust, non-linear (based on the Levenberg-Marquardt algorithm) homography estimation from matched point pairs. homest can estimate fully projective and affine homographies with a variety of objective functions.
- OpenCV is a complete (open and free) computer vision software library that has many routines related to homography estimation (cvFindHomography) and re-projection (cvPerspectiveTransform). Download and documentation information is on the OpenCV Wiki.
- Computing the plane to plane homography (頁面存檔備份,存於互聯網檔案館)
- How to compute a homography (頁面存檔備份,存於互聯網檔案館)
- MATLAB Functions for Multiple View Geometry (頁面存檔備份,存於互聯網檔案館) Matlab functions for calculating a homography and the fundamental matrix