日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Photometric Stereo 光度立体三维重建(四)——光源标定

發(fā)布時(shí)間:2023/12/10 编程问答 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Photometric Stereo 光度立体三维重建(四)——光源标定 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

光源標(biāo)定是進(jìn)行光度立體三維重建的第一步,本文將介紹兩種光源標(biāo)定方法——基于金屬球反射的標(biāo)定以及基于“SFM”思想的標(biāo)定

1.基于金屬球反射的標(biāo)定

標(biāo)定光源的一種方法是使用金屬球,在排到的金屬球的照片上面的最亮的點(diǎn)指明了光源的方向

來(lái)源于http://pages.cs.wisc.edu/~csverma/CS766_09/Stereo/stereo.html的示意圖:

然而,這幅示意圖的幾何向量標(biāo)注具有一定的誤導(dǎo)性,我將其換個(gè)角度表示以便展開光源方向的推導(dǎo):

其中,反射方向R是固定的(因?yàn)樗恢闭龑?duì)著觀察者):
R=[0,0,1]T\ \mathbf{R}=[0,0,1]^T?R=[0,0,1]T
我們?nèi)?span id="ozvdkddzhkzd" class="katex--inline">Px,Py\ P_x,P_y?Px?,Py?為最亮點(diǎn)在圖像中的像素坐標(biāo)位置,Cx,Cy\ C_x, C_y?Cx?,Cy?為金屬球在圖像中的中心點(diǎn)(可以由mask圖像確定),由此我們可以求出法線向量N=[Nx,Ny.Nz]T\ \mathbf{N}=[N_x,N_y.N_z]^T?N=[Nx?,Ny?.Nz?]T:
Nx=Px?Cx\ N_x=P_x-C_x?Nx?=Px??Cx? Ny=Py?Cy\ N_y=P_y-C_y?Ny?=Py??Cy? Nz=(R2?Nx2?Ny2)\ N_z = \sqrt{(R^2-N_x^2-N_y^2)}?Nz?=(R2?Nx2??Ny2?)?
N_z中的R是球的半徑

求得法線向量后,我們可以知道:
R+L=N=2S\ \mathbf{R}+\mathbf{L}=\mathbf{N}=2\mathbf{S}?R+L=N=2S L=2S?R\ \mathbf{L}=2\mathbf{S}-\mathbf{R}?L=2S?R
我們現(xiàn)在轉(zhuǎn)移到求S,因?yàn)镾是R在N上的投影(向量投影計(jì)算可參考這里),因此可以得到:
S=(R?N)∣N∣2N=(R?N)N\ \mathbf{S}=\frac{(\mathbf{R}·\mathbf{N})}{|\mathbf{N}|^2}\mathbf{N}=(\mathbf{R}·\mathbf{N})\mathbf{N}?S=N2(R?N)?N=(R?N)N
帶入L的表達(dá)式,可得:
L=2(N?R)R?R\ \mathbf{L}=2(\mathbf{N·\mathbf{R}})\mathbf{R}-\mathbf{R}?L=2(N?R)R?R
我們便可以利用上式求解光源方向

2.基于“SFM”的光源標(biāo)定

論文標(biāo)題:Light Structure from Pin Motion: Geometric Point Light Source Calibration(ECCV2018 / IJCV2020)

2.0 SFM簡(jiǎn)單回顧

SFM(structure from motion)目的是從圖像特征點(diǎn)的對(duì)應(yīng)同時(shí)恢復(fù)3D結(jié)構(gòu)(3D點(diǎn)的位置)和姿態(tài)(相機(jī)的外參數(shù))
設(shè)Pw\ P_w?Pw?是世界坐標(biāo)系的一個(gè)點(diǎn),Pc\ P_c?Pc?Pw\ P_w?Pw?在相機(jī)坐標(biāo)系中的位置,則有Pc=[Rt]Pw\ P_c=[R \quad t]P_w?Pc?=[Rt]Pw?,該點(diǎn)在成像平面的齊次坐標(biāo)為p=[μ,v,1]T\ p=[\mu,v,1]^T?p=[μ,v,1]T,其在歸一化平面的坐標(biāo)為x=[Xc/Zc,Yc/Zc,1]\ x=[X_c/Z_c,Y_c/Z_c,1]?x=[Xc?/Zc?,Yc?/Zc?,1],有p=Kx,x=K?1p\ p=Kx,x=K^{-1}p?p=Kxx=K?1p,則通過(guò)對(duì)極幾何約束,我們可以獲得同一個(gè)特征點(diǎn)在兩幅圖像(相機(jī)在兩個(gè)姿態(tài))下坐標(biāo)的對(duì)應(yīng)關(guān)系:
對(duì)于本質(zhì)矩陣
E=[t]×R\ E=[t]_\times R?E=[t]×?R
和基礎(chǔ)矩陣
F=K?TEK?1\ F=K^{-T}EK^{-1}?F=K?TEK?1
本質(zhì)矩陣表征了點(diǎn)在兩個(gè)姿態(tài)下歸一化平面坐標(biāo)的對(duì)應(yīng)關(guān)系:
x2TEx1=0\ x_2^TEx_1=0?x2T?Ex1?=0
基礎(chǔ)矩陣表征了點(diǎn)在兩個(gè)姿態(tài)下齊次像素坐標(biāo)的對(duì)應(yīng)關(guān)系:
p2TFp1=0\ p_2^TFp_1=0?p2T?Fp1?=0
考慮E\ E?E的尺度等價(jià)性,我們可以使用八點(diǎn)法來(lái)求解基礎(chǔ)矩陣E\ E?E

在求出E\ E?E后,可以通過(guò)SVD分解求出R和t\ R和t?Rt

如果場(chǎng)景中的特征點(diǎn)都落在同一平面上,則可以通過(guò)單應(yīng)矩陣H\ H?H來(lái)進(jìn)行運(yùn)動(dòng)估計(jì),單應(yīng)矩陣描述了兩個(gè)平面間的映射關(guān)系,對(duì)于圖像I1,I2\ I_1,I_2?I1?,I2?中匹配好的落在同一個(gè)平面上的特征點(diǎn)p1,p2\ p_1,p_2?p1?,p2?,其對(duì)應(yīng)關(guān)系為:
p2=K(R?tnTd)K?1p1=Hp1\ p_2=K(R-\frac{tn^T}ozvdkddzhkzd)K^{-1}p_1=Hp_1?p2?=K(R?dtnT?)K?1p1?=Hp1?

單應(yīng)矩陣可以通過(guò)4對(duì)匹配特征點(diǎn)算出(特征點(diǎn)不能三點(diǎn)共線)

在估計(jì)出相機(jī)運(yùn)動(dòng)后,可以通過(guò)三角測(cè)量估計(jì)出地圖點(diǎn)的深度。

2.1 方法介紹

在第一節(jié)所介紹的用金屬球進(jìn)行標(biāo)定的方法中,存在以下的弊端:
1.需要擁有相對(duì)精確的球體
2.需要注釋出每個(gè)圖像的高亮中心
3.需要標(biāo)出圖像中球的輪廓(mask)
4.小的標(biāo)注誤差會(huì)導(dǎo)致光源位置大的偏差

因此作者提出一種新的方法來(lái)進(jìn)行光源的標(biāo)定:作者通過(guò)在標(biāo)定板上插上帶有一定大小頭部的針,通過(guò)在固定相機(jī)下改變標(biāo)定板的姿態(tài),從而獲得當(dāng)前光源的位置信息:


論文提出方法的流程圖:

2.1.1陰影的形成模型

假設(shè)陰影接收平面π固定于世界坐標(biāo)系的x-y平面

一個(gè)近點(diǎn)光源在世界坐標(biāo)系的位置為:
l=[lx,ly,lz]T∈R3\ \mathbf{l}=[l_x,l_y,l_z]^T \in \mathbb{R}^3?l=[lx?,ly?,lz?]TR3
假設(shè)陰影制造物(caster),即針頭的位置為c∈R3\ \mathbf{c} \in \mathbb{R}^3?cR3,它產(chǎn)生的陰影在π平面上位置為s∈R2\ \mathbf{s} \in \mathbb{R}^2?sR2,在世界坐標(biāo)系中位置是s ̄=[sT,0]T\ \overline{\mathbf{s}}=[\mathbf{s}^T,0]^T?s=[sT,0]T,因?yàn)?span id="ozvdkddzhkzd" class="katex--inline">l,c,s ̄\ \mathbf{l},\mathbf{c},\overline{\mathbf{s}}?l,c,s在同一直線上,因此由其中兩個(gè)點(diǎn)組成的任意兩直線是平行的,因此可以得出:



代入(1)式得:

將叉積展開得到:

從中可以求出sx和sy:

我們將s寫為齊次坐標(biāo),并使用縮放因子γ\ \gamma?γ,得到:

繼續(xù)整理得:

將等號(hào)右邊改寫為矩陣相乘的形式得:

我們稱L\ \mathbf{L}?L為光矩陣,我們將其分解可以得到其內(nèi)參和外參:

以上是關(guān)于近點(diǎn)光源的,對(duì)于遠(yuǎn)點(diǎn)光源,光線是平行的,因此光向量應(yīng)該指光源的方向,而不是光源點(diǎn)的位置,因此(1)變?yōu)?#xff1a;

同理我們可以整理為:

我們發(fā)現(xiàn)對(duì)于遠(yuǎn)點(diǎn)光源,光矩陣(3,3)的位置是0,這個(gè)光矩陣類似于在相機(jī)矩陣中的正交投影

我們希望將近點(diǎn)光源和遠(yuǎn)點(diǎn)光源的光矩陣統(tǒng)一起來(lái),在齊次坐標(biāo)中,相差一個(gè)常數(shù)的縮放是等價(jià)的,因此我們把兩個(gè)光矩陣都除以lz\ l_z?lz?,得到:

可以發(fā)現(xiàn),當(dāng)光源無(wú)限遠(yuǎn)時(shí),近點(diǎn)光源光矩陣變?yōu)檫h(yuǎn)點(diǎn)光源光矩陣,因此我們使用下式作為統(tǒng)一的陰影投影等式:

這也是為什么論文名為L(zhǎng)ight Structure from Pin Motion的原因,論文中恢復(fù)光源方向的思想是跟SFM類似的,點(diǎn)光源和針孔相機(jī)可以被相似的數(shù)學(xué)模型所描述,其相似的對(duì)應(yīng)關(guān)系為:
1.點(diǎn)光源=針孔相機(jī)
2.陰影接收面=圖像平面(成像面)
3.陰影caster=場(chǎng)景點(diǎn)
4.光矩陣L=相機(jī)投影矩陣P=KT=K[R∣t]\ P=KT=K[R|t]?P=KT=K[Rt]

Light Structure from Pin Motion與SFM的對(duì)比:

2.1.2 陰影對(duì)應(yīng)中的對(duì)極幾何

回顧SFM,相機(jī)運(yùn)動(dòng)的求解是基于對(duì)極幾何約束的,那么,在Light Structure from Pin Motion中,也應(yīng)該找出陰影對(duì)應(yīng)的對(duì)極幾何約束。

作者移動(dòng)光源,同時(shí)casters和陰影接收面是靜止的,在其中分析陰影的對(duì)應(yīng)關(guān)系,這類似于SFM中移動(dòng)的相機(jī)與靜置的場(chǎng)景點(diǎn)。

陰影的對(duì)極幾何關(guān)系圖:

caster是靜置且位置未知的,對(duì)于由光源l1\ l_1?l1?投影得到的陰影s\ s?s,caster可以在線段l1s\ l_1s?l1?s上的任意位置,當(dāng)光源位置移動(dòng)到l2\ l_2?l2?時(shí),一系列陰影的可能位置形成一條線,這相當(dāng)于相機(jī)對(duì)極幾何中的極線。

我們現(xiàn)在希望構(gòu)造出陰影對(duì)極幾何中的基礎(chǔ)矩陣F\ F?F

c\ c?c是caster的位置,l1≠l2\ l_1 \neq l_2?l1??=l2?是在標(biāo)定目標(biāo)坐標(biāo)系下的光的位置,Li是li\ L_i是l_i?Li?li?的光矩陣,L1+=(L1TL1)?1L1T是L1\ L_1^+=(L_1^TL_1)^{-1}L_1^T是L_1?L1+?=(L1T?L1?)?1L1T?L1?的偽逆,?L1∈null(L1)\ \empty_{L_1} \in null(L_1)??L1??null(L1?)L1\ L_1?L1?一維零空間下的非零向量,η\ \eta?η是一個(gè)縮放常量,我們可以得到:


對(duì)上式左乘s~2T[L2?L1]×\ \tilde{s}_2^T[L_2 \empty_{L_1}]_\times?s~2T?[L2??L1??]×?,得到:

由此我們得到了表征陰影對(duì)應(yīng)的基礎(chǔ)矩陣,對(duì)于Li\ L_i?Li?
我們得到零空間向量?L1\ \empty_{L_1}??L1??

將其代入(5)式得到基礎(chǔ)矩陣:

這個(gè)矩陣是反對(duì)稱的,對(duì)于陰影s1~=[u,v,1]T,s2=[u′,v′,1]~\ \tilde{s_1}=[u,v,1]^T, \tilde{{s_2}=[u',v',1]}?s1?~?=[u,v,1]T,s2?=[u,v,1]~?,陰影的對(duì)極約束為:

因此我們可以解齊次線性方程組來(lái)求解在一個(gè)縮放因子下成立的系數(shù)f:

這實(shí)際上相當(dāng)于估計(jì)只進(jìn)行純平移而不進(jìn)行相對(duì)旋轉(zhuǎn)的相機(jī)的常規(guī)的本質(zhì)矩陣,由式(2)可以看出,旋轉(zhuǎn)矩陣為單位陣

2.2 模型求解

論文提出的方法中,通過(guò)在固定點(diǎn)光源下從固定視點(diǎn)(相機(jī)位置固定)對(duì)標(biāo)定目標(biāo)進(jìn)行多次觀察,同時(shí)改變標(biāo)定目標(biāo)的姿態(tài),自動(dòng)實(shí)現(xiàn)點(diǎn)光源標(biāo)定。陰影caster相對(duì)于校準(zhǔn)目標(biāo)的3D位置是未知的,這使得它特別容易建立目標(biāo),而問(wèn)題仍然是易于處理的。

2.2.1 通過(guò)光束平差法標(biāo)定光源方向

目標(biāo):通過(guò)觀察投影自未知caster的陰影求出(4)中的l\ l?l。一次觀察不足以提供充分的信息,因?yàn)槲覀冏岅幱敖邮彰娼?jīng)歷多個(gè)姿態(tài){[Ri∣ti]}\ \{[R_i|t_i]\}?{[Ri?ti?]}

在第i個(gè)姿態(tài)中,光源在接收面坐標(biāo)系中的位置li\ l_i?li?與在世界坐標(biāo)系中的位置l\ l?l的關(guān)系為:

光矩陣Li\ L_i?Li?為:

作者不僅使用多個(gè)姿態(tài),更使用多個(gè)casters{cj}\ \{c_j\}?{cj?}來(lái)提高校準(zhǔn)精度,因此對(duì)于姿態(tài)i和caster j,我們得到陰影sij\ s_{ij}?sij?,此時(shí)(4)變?yōu)?#xff1a;

假設(shè)目標(biāo)姿態(tài){[Ri∣ti]}\ \{[R_i|t_i]\}?{[Ri?ti?]}已知,我們目標(biāo)是估計(jì)光源在世界坐標(biāo)系中的位置l\ l?l以及caster在標(biāo)定目標(biāo)坐標(biāo)系中的位置cj\ c_j?cj?,我們通過(guò)最小化重投影誤差構(gòu)建一個(gè)最小二乘問(wèn)題:

可以使用LM算法來(lái)求解這個(gè)非線性最小二乘問(wèn)題,為了魯棒的估計(jì)使用隨機(jī)抽樣一致性(RANSAC)算法:我們不斷選取一個(gè)隨機(jī)的觀測(cè)集,估計(jì)(l,cj,λij)\ (l,c_j,\lambda_{ij})?(l,cj?,λij?),選擇有最小殘差的一個(gè)

2.2.2 Bundle Adjustment的初始化

(1)近點(diǎn)光源
類似于式(1),我們可以寫出:



代入得到:

其中,

我們可以重寫上式為:

擴(kuò)展叉積得到:

我們將它整理一下,得到:

其矩陣形式為:

這個(gè)方程包含一個(gè)觀測(cè)結(jié)果,即姿態(tài)i和caster j的結(jié)合,但是我們需要堆砌多個(gè)觀測(cè)下的方程。為了簡(jiǎn)化步驟,我們先將(18)分為幾個(gè)子矩陣:

Np,Nc\ N_p,N_c?Np?,Nc?為目標(biāo)姿態(tài)和casters的數(shù)量,可以得到整個(gè)系統(tǒng)的方程為:

因?yàn)樗械挠^測(cè)共享l=[lx,ly,lz]T\ l=[l_x,l_y,l_z]^T?l=[lx?,ly?,lz?]T,每個(gè)θj\ \theta_j?θj?有12個(gè)未知數(shù),因此我們有3+12Nc\ 3+12N_c?3+12Nc?個(gè)未知數(shù)

為了防止外點(diǎn)的影響,我們通過(guò)L1最小化來(lái)魯棒求解:

為了求解此式,我們要滿足:

因此,不管casters有多少,5個(gè)姿態(tài)下的觀測(cè)足以求解方程

解出θ?\ \theta^*?θ?后,我們忽視二階變量如lxcj,x\ l_xc_{j,x}?lx?cj,x?,使用cj?,l?\ c_j^*,l^*?cj??,l?來(lái)初始化(17)

(2)遠(yuǎn)點(diǎn)光源
對(duì)于遠(yuǎn)點(diǎn)光源,矩陣A的秩為3+12Nc?1\ 3+12N_c-1?3+12Nc??1,因此,不幸的是,我們不能使用(18)來(lái)處理遠(yuǎn)光,但我們可以自動(dòng)檢測(cè)這種情況,切換到對(duì)遠(yuǎn)光的方程,求解,并切換回(17)的BA。因此,用戶不必為他們的場(chǎng)景選擇一個(gè)光照模型。

我們通過(guò)構(gòu)造近點(diǎn)光源的矩陣A,然后檢測(cè)A的奇異值,如果最大和最小的奇異值之比大于4e+4,我們轉(zhuǎn)換到遠(yuǎn)光求解

對(duì)于遠(yuǎn)光,類似于(3),我們使用li=RiTl\ l_i=R_i^Tl?li?=RiT?l重寫為:

類似得,我們將其整理得:

設(shè)置l=[lx,ly,1]T\ l=[l_x,l_y,1]^T?l=[lx?,ly?,1]T(2自由度)得到:

整理得:

將其改寫為矩陣形式,得:

其子矩陣的形式為:

多次觀測(cè)的方程堆疊和求解類似于(19)(20),為了求解這個(gè)線性方程組,我們要滿足:

因此只需要4個(gè)姿態(tài)下的觀測(cè),因?yàn)閷?duì)于遠(yuǎn)光的方程組求解得到的是光的方向(direction),但光束平差法需要光的位置(position),因此我們需要它們的一個(gè)轉(zhuǎn)換。我們從其中一個(gè)casters開始,將光源不斷移動(dòng)到很遠(yuǎn)的地方:

c是世界坐標(biāo)系下任意的caster的位置,k是大常數(shù)(10e+10),hc是caster的高度

2.2.3 陰影對(duì)應(yīng)

在(17)(18)(21)中,我們需要得到在不同圖像Ii\ \mathbf{I}_i?Ii?中同一個(gè)caster j產(chǎn)生陰影sij\ s_{ij}?sij?的對(duì)應(yīng)。形式上,陰影對(duì)應(yīng)搜索意味著我們需要找到與圖像之間對(duì)應(yīng)陰影匹配的置換

設(shè)S\ S?S為陰影{si~}\ \{\tilde{s_i}\}?{si?~?},S′\ S'?S為陰影{si′~}\ \{\tilde{s'_i}\}?{si?~?},將其水平疊加成矩陣,對(duì)于基礎(chǔ)矩陣,我們尋找:

也就是說(shuō),S′\ S'?S的每一列都是一個(gè)陰影向量,我們將置換矩陣P′\ P'?P右乘,以對(duì)各個(gè)陰影向量進(jìn)行排列,只有S′和S\ S'和S?SS的每一列對(duì)應(yīng)的陰影向量是在兩幅圖像中一一對(duì)應(yīng)時(shí),基礎(chǔ)矩陣的對(duì)極約束等式才為0

不同于傳統(tǒng)的圖像特征匹配,我們不能使用特征描述符來(lái)縮小搜索范圍,因?yàn)槲覀兿M幱胺浅P?#xff08;為了讓陰影的中心可以精確定位),所以不能改變caster的形狀以使其陰影與其他caster的陰影有明顯區(qū)別

作者通過(guò)檢測(cè)多幅圖像對(duì)應(yīng)的一致性以獲得陰影對(duì)應(yīng)

對(duì)應(yīng)一致性檢驗(yàn)
作者建立了兩個(gè)圖像池:已經(jīng)建立了陰影對(duì)應(yīng)的圖像——確定池(established pool) 以及對(duì)應(yīng)未知的圖像——未知池(unknown pool)

確定池用一張隨機(jī)的,未知的圖像進(jìn)行初始化,目的是將盡可能多的圖像從未知池移動(dòng)到確定池中

工作分為兩個(gè)階段,在第一個(gè)階段中,在確定池隨機(jī)選取圖像Ie\ I_e?Ie?,在未知池選取k張圖像Ii1,...Iik\ I_{i_1},...I_{i_k}?Ii1??,...Iik??

假設(shè)

是一個(gè)二值函數(shù),其為真的條件是:當(dāng)且僅當(dāng)對(duì)于圖像Ia,Ib\ I_a,I_b?Ia?,Ib?Ia\ I_a?Ia?中的陰影si\ s_i?si?Ib\ I_b?Ib?中的陰影sj\ s_j?sj?獲得匹配,使得式(22)最小化

然后,如果:

成立(即,從確定池抽取的圖像開始,與未知池的第一張圖像匹配,然后未知池的第一張與第二張圖像進(jìn)行匹配,以此類推,通過(guò)第一張(確定池圖像)到最后一張(未知池的最后一張圖像)能沿著圖像鏈一直對(duì)應(yīng)下去),我們就將未知池的圖像Ii1,...Iik\ I_{i_1},...I_{i_k}?Ii1??,...Iik??移動(dòng)到確定池,為了使約束嚴(yán)格,作者在文章中選擇k=3,一旦有一半的圖像轉(zhuǎn)移到了確定池,我們就轉(zhuǎn)到第二個(gè)階段

在第二個(gè)階段中,假設(shè)確定池中所有的圖像都是一致對(duì)應(yīng)的。因此,如果我們考慮一個(gè)未知圖像和一個(gè)caster,那么所有已確定的圖像中對(duì)應(yīng)于那個(gè)特定caster的所有陰影都應(yīng)該匹配未知圖像中的相同陰影,這適用于所有的陰影caster。我們隨機(jī)選取一幅未知圖像,驗(yàn)證這一準(zhǔn)則,如果超過(guò)一半的已確定圖像與未知圖像的對(duì)應(yīng)關(guān)系一致,將其移動(dòng)到確定池,否則將其丟棄,當(dāng)未知池為空時(shí),第二階段結(jié)束

陰影檢測(cè)
作者使用模板匹配方法進(jìn)行陰影檢測(cè)

作者生成了由一條線和一個(gè)圓組成的陰影合成圖像作為模板。為了處理變化的射影變換,生成的模板具有12個(gè)旋轉(zhuǎn)角度,每個(gè)角度都有3個(gè)大小的模板(也就是有36個(gè)模板)。作者將輸入圖像二值化后再進(jìn)行模板匹配。進(jìn)一步,作者使用針頭頭部的顏色(紅色)來(lái)區(qū)分頭部和頭部陰影

2.3 實(shí)際操作(代碼)

論文的github倉(cāng)庫(kù):https://github.com/hiroaki-santo/light-structure-from-pin-motion

(1)相機(jī)標(biāo)定
論文的代碼中是使用Arcuo碼進(jìn)行標(biāo)記的,因此我們首先要制作Arcuo標(biāo)定板:

import cv2 from cv2 import aruco import numpy as npdic = aruco.getPredefinedDictionary(aruco.DICT_6X6_1000) board = aruco.GridBoard_create(5, 7, 100, 10, dic) img = np.zeros((600, 800)) img = aruco.drawPlanarBoard(board, (600, 800), img, 10, 1) cv2.imshow("board", img) cv2.waitKey(0)

打印得到的Aruco標(biāo)定板:

我在測(cè)試時(shí)使用的是手機(jī)攝像頭,通過(guò)不同角度拍攝屏幕上顯示的標(biāo)定板,獲得了14張圖片來(lái)進(jìn)行標(biāo)定:

標(biāo)定得到的數(shù)據(jù):

上面是手機(jī)相機(jī)的內(nèi)參矩陣,下面是5個(gè)失真系數(shù)

代碼里的detect_markers.py可以檢測(cè)aruco標(biāo)記:


剩下的陰影檢測(cè),實(shí)際光源標(biāo)定的步驟在代碼的README文檔里也有操作指導(dǎo),這里就不展開了。

我組建了一個(gè)光度立體技術(shù)的交流群,有興趣的朋友可以一起來(lái)討論一下!

總結(jié)

以上是生活随笔為你收集整理的Photometric Stereo 光度立体三维重建(四)——光源标定的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。