1. 程式人生 > >計算機視覺基礎之相機標定

計算機視覺基礎之相機標定

昨天完成了用最小二乘法進行相機標定的實驗。

1. 最小二乘法進行相機標定的原理

1.1 座標系變換

將實物拍到相機的膠片上需要進過幾個座標系的變換:

世界座標系—>相機座標系—成像座標系—>畫素座標系

在座標系變換的過程中可以看做是將變換矩陣線性作用於齊次向量

從世界座標系變換到相機座標系:

其中為世界座標系下的座標,為相機座標系下的座標,為畫素座標系下的座標。

那麼可以得到:

我們已知世界座標系下的座標和畫素座標下的座標,求解矩陣M中的未知量就是對相機進行標定。

1.2 最小二乘法求解

用最小二乘法進行求解就是要使的U,那麼就要求達到最小,就是要求:

所以只要求解最小特徵值對應的特徵向量,就可以求解出最優解。

2.程式碼

[M,N]=size(P);
%矩陣A
for i=1:N
    A(2*i-1,1:4)=[P(1:3,i);1]';
    A(2*i-1,5:8)=[0 0 0 0];
    A(2*i-1,9:12)=-P(4,i)*[P(1:3,i);1]';
    A(2*i,1:4)=[0 0 0 0];
    A(2*i,5:8)=[P(1:3,i);1]';
    A(2*i,9:12)=-P(4,i)*[P(1:3,i);1]';
end
AA=A'*A;
[V D]=eig(AA);
%求解特徵值和特徵向量
a(1,1:3)=V(1,1:3);b(1,1)=V(1,4);[M,N]=size(P);
%求得最小的特徵值對應的特徵向量
a(1,1:3)=V(1,1:3);b(1,1)=V(1,4);
a(2,1:3)=V(1,5:7);b(2,1)=V(1,8);
a(3,1:3)=V(1,9:11);b(3,1)=V(1,12);
e=1;
%ε=1
p=e/norm(a(3,:));
% ρ=ε/||a3||
r(3,:)=p*a(3,:);
%r3=p* a3
u0=p^2*a(1,:)*(a(3,:))';
%u0=P2*a1*a3
v0=p^2*a(2,:)*(a(3,:))'; 
%v0=P2*a2*a3
cos_zeta=-(cross(a(1,:),a(3,:))*(cross(a(2,:),a(3,:)))')/(norm(cross(a(1,:),a(3,:)))*norm(cross(a(2,:),a(3,:))));
%cos(ө)=-((a1×a3)‘*(a2×a3))/(|(|a2*a3|)|*||a1×a3||)
zeta=acos(cos_zeta);
alpha=p^2*norm(cross(a(1,:),a(3,:)))*sin(zeta);
%α=ρ2 ||a1×a3||
beta=p^2*norm(cross(a(2,:),a(3,:)))*sin(zeta); 
%β=ρ2 ||a2×a3||
t_x=p/alpha*(b(1)+alpha/(2*beta)*sin(2*zeta)*b(2)-(alpha/(2*beta)*sin(2*zeta)*v0+u0)*b(3));
%t_x=ρ/α*(b1+α/(2ρ)*sin(2ө)*b2-b3*(α/(2β)*sin(2ө)*v0+u0)
t_y=p*sin(zeta)/beta*(b(2)-v0*b(3));
%t_y=ρ*sin(ө)/β*(b2-v0b3)
t_z=p*b(3);
%t_z=ρ*b3

相關推薦

計算機視覺基礎相機標定

昨天完成了用最小二乘法進行相機標定的實驗。 1. 最小二乘法進行相機標定的原理 1.1 座標系變換 將實物拍到相機的膠片上需要進過幾個座標系的變換: 世界座標系—>相機座標系—成像座標系—>畫素座標系 在座標系變換的過程中可以看做是將變換矩陣線性作用於齊次向量

計算機視覺基礎2——相機成像的幾何描述

試想像一下,很多遊客同時在不同角度拍攝Eiffel Tower(埃菲爾鐵塔),該如何用數學的方法來描述這一過程呢?首先要解決的問題就是定位,或者說座標選定的問題,埃菲爾鐵塔只有一座,如果按經、緯度來刻畫,它的座標是唯一確定的,但遊客顯然不關係這一點,他(她)只按自己的喜好

影象處理與計算機視覺 基礎、經典以及最近發展

******************************************************************************************************************************************************

計算機視覺基礎——TensorFlow實經典LeNet網路

一、LeNet網路簡介 1.1 LeNet網路的背景 閃光點:定義了CNN的基本元件,是CNN的鼻祖。 LeNet是卷積神經網路的祖師爺LeCun在1998年提出,用於解決手寫數字識別的視覺任務。自那時起,CNN的最基本的架構就定下來了:卷積層、池化層、全連線層。如今各大

計算機視覺基礎~影象預處理(中)

5.1梯度Prewitt濾波/卷積  水平梯度/垂直邊緣  垂直梯度/水平邊緣 5.2梯度Sobel濾波/卷積  梯度Sobel濾波/卷積  垂直梯度/水平邊緣 5.3梯度Laplacian濾波/卷積  二

計算機視覺基礎——對極幾何(Epipolar Geometry)

先思考一個問題:用兩個相機在不同的位置拍攝同一物體,如果兩張照片中的景物有重疊的部分,我們有理由相信,這兩張照片之間存在一定的對應關係,本節的任務就是如何描述它們之間的對應關係,描述工具是對極幾何 ,它是研究立體視覺的重要數學方法。   要尋找兩幅影象之間的對應關係,最直接

計算機視覺加強影象特效與線段文字繪製

一.影象特效介紹 1.灰度處理:彩色圖片灰度化 對於彩色圖片有三個顏色通道:RGB 對於灰度圖片如果也是三個顏色通道,則RGB值是相等的 2.底板效果(灰度) 彩色底板是通過當前RGB取反得到的 3.馬賽克效果 將周邊的畫

計算機視覺加強幾何變換

計算機視覺加強之幾何變換 一.影象幾何變換概述 幾何變換的實質就是矩陣的運算,根據矩陣的不同從而實現不同的變換 1.圖片縮放 imageInfo:圖片寬、高、通道個數等 縮放 等比例縮放:寬高比不變 任意比例縮放:

影象處理與計算機視覺基礎、經典以及最近發展

                       影象處理與計算機視覺基礎,經典以及最近發展                                                                                  

影象處理與計算機視覺基礎,經典以及最近發展(一)

在小波變換之前,時頻分析的工具只有傅立葉變換。眾所周知,傅立葉變換在時域沒有解析度,不能捕捉區域性頻域資訊。雖然短時傅立葉變換克服了這個缺點,但只能刻畫恆定視窗的頻率特性,並且不能很好的擴充套件到二維。小波變換的出現很好的解決了時頻分析的問題,作為一種多解析度分析工具,在影象處理中得到了極大的發展和應用。在小

計算機視覺基礎5——本質矩陣與基本矩陣(Essential and Fundamental Matrices)

回顧本質矩陣的定義   本質矩陣的基本性質: 結合成像的幾何關係        Longuet-Higgins equation 注意大小寫的區別哦,大小表示物點向量,小與表示像點向量。 像平面上的一點可以看作: • (u,v) 2D film

【Compute Vision】影象處理與計算機視覺基礎,經典以及最近發展

**************************************************************************************************************************************

影象處理與計算機視覺基礎,經典以及最近發展(二)

背景建模一直是視訊分析尤其是目標檢測中的一項關鍵技術。雖然最近一直有一些新技術的產生,demo效果也很好,比如基於dynamical texture的方法。但最經典的還是Stauffer等在1999年和2000年提出的GMM方法,他們最大的貢獻在於不用EM去做高斯擬合,而是採用了一種迭代的演算法,這樣就不需要

【懶懶的計算機視覺筆記單應性變換】

最近一直在學習Python計算機視覺程式設計中影象到影象之間的對映,這些變化可以用於影象扭曲變形和影象配準。所謂單應性變換就是將一個平面內的點對映到另一個平面內的二維投影變換。單應性變換具有很強的實用性,比如影象配準、影象糾正和紋理扭曲,以及建立全景影象等。其實,單應性變換

計算機視覺基礎

計算機視覺基礎 文章目錄 計算機視覺基礎 畫素 RGB三原色 顏色組成 圖片的高和寬 畫素 畫素影象的最小單元。 在計算機中畫素的值通常是用8位的無符號整型表示,取值範圍是0-255

影象處理與計算機視覺基礎相關領域的經典書籍以及論文

         我非常感謝原作者楊曉冬辛勤地編寫本文章,並願意共享出來。我也希望轉載本文的各位朋友,要註明原作者和出處,以尊重原作者!    一、 緒論 1. 為什麼要寫這篇文章        從2002年到現在,接觸影象快十年了。雖然沒有做出什麼很出色的工作,不過在這個領域摸

計算機視覺】影象處理與計算機視覺基礎,經典以及最近發展

  在這裡,我特別宣告:本文章的源作者是   楊曉冬  (個人郵箱:[email protected])。原文的連結是 http://www.iask.sina.com.cn/u/2252291285/ish。版權歸 楊曉冬 朋友所有。      

計算機視覺caffe路附1:Ubuntu+Opencv+Caffe開發深度學習常見錯誤及經驗

1.Opencv3.1編譯,CUDA版本大於8.0引起 /home/usrname/OpenCV-3.1.0/modules/cudalegacy/src/graphcuts.cpp:120:54: error: ‘NppiGraphcutSt

計算機視覺】深度相機(一)--TOF總結

TOF技術採用主動光探測方式,與一般光照需求不一樣的是,TOF照射單元的目的不是照明,而是利用入射光訊號與反射光訊號的變化來進行距離測量,所以,TOF的照射單元都是對光進行高頻調製之後再進行發射,比如下圖所示的採用LED或鐳射二極體發射的脈衝光,脈衝可達到100MHz。與普通相機類似,TOF相機晶片前端需要一

計算機視覺caffe路第五篇:關於ssd_detect.cpp的使用方法

1.ssd_detect.py的使用 在caffe/examples/ssd下有很多python版本的目標檢測檔案可用: ssd_detect.py ssd_pascal_webcam.py ssd_pascal_video.py 用python方法進