• 沒有找到結果。

VFX 共同筆記

N/A
N/A
Protected

Academic year: 2022

Share "VFX 共同筆記"

Copied!
25
0
0

加載中.... (立即查看全文)

全文

(1)

VFX 共同筆記

共同筆記範圍:

lec12_3dphoto.ppt 3D photography

共同筆記同學:

資工碩一 王順英 資管碩一 王亮凱 資管碩一 黃鈞澤

(2)

3D photography

用 攝 影 的 方 式 把 物 體 的 3D 資 訊 擷 取 出 來 , 例 如 光 線 、

g e o 有 3D

圖 ): 可 以 從 各

ange image

從 某 一 個 角 度 看 花 瓶 , 並 將 這 個 視 角 的 花 瓶 影 像 儲 存 起 來 , 但

「 深 度 值 」。利 用 多 張 Image Plane 的 深

m e t r y、 m a t e r i a l。 他 與 2 D p h o t o g r a p h y 最 大 的 不 同 在 於 他

i n f o r m a t i o n 與 物 體 的 m a t e r i a l , 所 以 使 用 者 可 以 自 由 變 換 視 角 。 上 圖 中 ( 左 圖 ), 每 一 個 點 代 表 一 個 camera 的 p o s i t i on。

I n p u t : 一 堆 不 同 視 角 的 c a m e r a i m a g e s 。 O u t p u t ( 右 個 不 同 的 角 度 自 由 的 轉 動 這 個 魚 去 看 他

R

是 儲 存 的 影 像 並 非 花 頻 的 色 彩 而 是

度 資 訊 就 可 以 重 建 這 個 花 瓶 的 3D 模 型 。

(3)

如何取得 Range Image

R a n g e a c q u i s i t i o n 主 要 有 三 個 方 法 ,

> 接 觸,是 利 用 機 械 手 臂 去 點 物 體,知 道 手 臂 的 角 度 與 長 度 就 可 用 電 磁 波 , 藉 由 transmitter 和

型 。

雷 達 電 磁 波 SONAR 等 等 。

,利 用 這 些 資 訊 來 重 建 物 體 的 geometry。主 要 分 為 passive 和 non p a s s

ra

r

an ng ge e ac

a

c

以 推 敲 接 觸 到 的 點 的 3D 位 置 。 或 者 利

r e c e i v e r 去 計 算 說 兩 著 之 間 的 距 離 就 可 以 算 出 3 D 的 座 標 。

> 切 下 去 , 例 如 斷 層 掃 瞄 , 一 層 一 層 切 下 去 , 利 用 穿 透 性 不 同 得 到 不 同 層 物 體 的 2D i mage 的 樣 子 並 把 他 組 合 起 來 就 可 得 到 3D 模

> 反 射 , 一 種 是 利 用 o p t i c a l 另 外 一 種 不 是 。 原 理 是 用 到 反 射 , E X 光

Reflective 中的 Optical 的方法

射 出 一 個 光 波 , 計 算 射 出 去 再 回 來 的 時 間 就 可 以 算 出 兩 點 的 距 離

i v e 。 P a s s i v e 方 式 是 利 用 一 台 或 多 台 d e v i c e 所 得 到 的 i m a g e 去 分 析 估 計 物 體 的 g e o me t r y, 而 a c t i ve 的 方 式 則 是 由 device 涉 入 一 些 資 訊 , 並 且 觀 察 這 些 資 訊 的 變 化 來 估 計 物 體 的 geomet ry。

q

qu ui is si it ti io on n

c

co on nt ta ac ct t

tr

t

ra an ns sm m is

i

ss si iv v e

e

re

r

ef fl le ec ct ti iv ve e

no

n

on n- -o op pt ti ic c al

a

l op

o

pt ti ic c al

a

l

in

i

nd du us st tr ri ia al l CT

C

T

m

m ec

e

ch ha an ni ic ca al l

((CCMMMM,, jjooiinntteedd aarrmm))

ra

r

ad da ar r s

s

on

o

na ar r ul

u

lt tr ra as so ou un nd d

MR

M

RI I

ul

u

lt tr ra as s on

o

ni ic c tr

t

ra ac ck k er

e

rs s m

m

ag

a

gn ne et ti ic c tr

t

ra ac ck ke er rs s

in

i

ne er rt ti ia al l

(g(gyyrroossccooppee,, aacccceelleerroommeetteerr))

(4)

op

o

pt ti ic ca al l me

m

et th ho od ds s

pa

p

as ss si iv v e

e

ac

a

c ti

t

iv v e

e

s

sh ha ap pe e f fr ro om m X X: :

sstteerreeoo mmoottiioonn sshhaaddiinngg tteexxttuurree ffooccuuss

a

ac ct ti iv ve e v va ar ri i an

a

nt ts s o of f p pa as ss si i ve

v

e m me et th ho od ds s

SStteerreeoo ww.. pprroojjeecctteedd tteexxttuurree

AAccttiivvee ddeepptthh ffrroomm ddeeffooccuuss PPhh t t ii t

t

ti im me e o of f f fl li ig gh ht t

t

tr ri ia an ng gu ul la at ti io on n

Passive approaches - Steoreo system

利 用 兩 張 估 計 人 左 眼 和 右 眼 看 到 的 東 西 是 不 一 樣 的 , 利 用 blue c h a n n e l 和 r e d c h a n n e l 射 出 兩 張 影 像 , 這 兩 章 影 像 的 距 離 不 同 來 讓 人 感 覺 物 體 便 立 體 了

(5)

取 得 兩 張 image plane 和 已 經 調 較 好 的 camera optical center,我 們 可 以 分 別 從 兩 個 image plane 中 的 兩 點 利 用 triangulation 求 得 P 的 真 正 位 置 。 但 是 要 怎 麼 知 道 image plane 中 那 些 點 是 對 應 的 是 我 們 必 須 先 克 服 的 。

步驟

1. Camera calibration

2. Image rectification: simplifies the search for correspondences 利用先前介紹過的 Epipolar line 去加快對應點的收尋。

(6)

3. Correspondence: which item in the left image corresponds to which item in the right image

4. Reconstruction: recovers 3-D information from the 2-D correspondences 假 設 我 們 已 經 調 整 好 影 像 , 取 得 兩 張 影 像 對 應 的 epipolar line,

我 們 要 如 何 去 求 得 correspondence? 利 用 Disparity, 定 義 為 左 邊 影 像 中 某 個 pixel 在 右 邊 影 像 的 epipolar line 上 的 horizontal d i s p l a c e m e n t 。 基 本 上 d i s p a r i t y 與 物 體 的 距 離 成 反 比 , 如 同 日 常 生 活 中 的 體 驗 , 離 我 們 月 接 近 的 物 體 移 動 一 點 點 眼 睛 中 的 影 像 位 移 就 會 很 大 。

求 得 兩 張 影 像 中 相 對 應 點 的 disparity 之 後 利 用 p,q 兩 點 與 c a m e r a o p t i c a l c e n t e r 所 形 成 的 兩 條 射 線 的 交 點 去 求 出 點 實 際 3 D 的 座 標 , 如 果 這 兩 條 射 線 並 沒 有 相 交 , 則 去 找 空 間 中 一 點 最 接 近 這 兩 條 射 線 當 作 他 們 的 交 點 。

如何找出對應點的演算法 Basic stereo algorithm

由 於 我 們 已 經 知 道 左 邊 影 像 中 epipolar line 上 的 每 一 點 在 右 邊 影 像 中 的 對 應 點 必 定 落 在 右 邊 影 像 的 epipolar line 上 面 , 所 以 演 算 法 如 下

(7)

For each epipolar line in the left image For each pixel

Compare every pixel on the same epipolar line in the right image with the minimum cost (顏色差異)

問 題 是 會 noisy, 改 進 的 方 法 是 利 用 windows , 在 epipolar line 上 面 不 利 用 點 來 比 較 , 而 是 開 一 個 window 來 比 較 window 中 每 個 點 的 差 異 。 並 且 加 入 一 個 disparity 的 參 數 讓 這 個 window 可 以 作 上 下 左 右 等 等 的 shift。這 個 disparity 代 表 的 是 在 兩 張 i ma g e 中 各 開 一 個 window, 他 們 的 window center 座 標 的 差 值 。

改進後的演算法如下:

For each pixel

For each disparity

For each pixel in the window Computer the difference

Fine the disparity with the min SSD 改變一下 LOOP 的順序加快速度:

For each disparity For each pixel

For each pixel in the window Computer the difference

Fine the disparity with the min SSD at each pixel

會 加 快 速 度 的 原 因 是 , 這 樣 可 以 利 用 到 之 前 已 經 計 算 過 的 pixel 差 值 , 不 必 重 複 計 算 ( window shift 的 時 候 會 覆 蓋 到 重 複 的 pixel)

Window size 的影響

在 這 樣 的 演 算 法 下,比 較 小 的 window 給 你 比 較 depth 上 的 detail 比 較 多 , 但 是 比 較 nois y。 用 w i n d o w s i z e 大 的 話 , 會 o v e r s mo o t h 。 所 以 要 選 擇 一 個 適 當 的 大 小 。

(8)

Non-square windows

變 化 , 就 是 改 變 window 的 形 式 , 例 如 使 用 其 他

另 外 一 種 改 進 的 方 式 是 利 用 Global disparity 來 找 出 最 好 的

c o r r 後

另 外 一 種 演 算 法 的

形 狀 的 window, 或 者 是 給 與 不 同 權 重 的 window, 或 者 是 用 一 半 的 window。 例 如 在 occlusion 的 情 況 下 對 應 點 的 pixel 被 遮 蔽 住 了 使 得 disparity 會 變 的 noisy 這 時 候 可 以 藉 由 一 半 的 window 去 避 開 occlusion 所 造 成 的 影 響 。

e s p o n d e n c e。 由 於 之 前 得 演 算 法 都 是 利 用 單 一 個 p i x e l 算 完 以 的 結 果 當 作 結 果 , 並 沒 有 作 整 體 的 考 量 , 所 以 結 果 會 很 noisy。 如 果 加 上 了 杬 潢 慬 的 資 訊 便 可 以 減 少 這 種 noisy 的 現 象 , 這 類 型 的 方 法 有 三 種 :

(9)

1 Dynamic programming

符 合 ordering constrain, 也 就 是 說 , 在 沒 首 先 假 設 我 們 的 影 像 是

有 occlusion 的 情 況 下,我 們 在 epipolar line 上 面 找 到 的 對 應 點 一 定 是 依 序 出 現 的 , 不 會 出 現 忽 左 忽 右 震 盪 的 情 形 ( 只 會 單 純 往 右 或 者 往 左 依 序 遞 增 )。 一 旦 符 合 這 樣 的 條 件 , 我 們 可 以 把 計 算 disparity 的 問 題 map 到 dynami c programmi ng :

將 兩 張 影 像 上 epipolar line 上 面 的 分 別 對 應 到

r o w 到 圖 形 的

Energy minimization

在 這 裡 我 們 首 先 假 設 兩 張 image 之 間 每 個 pixel 的 disparity 是 s

p i x e l

, c o l u m n , 從 這 個 圖 形 的 左 上 角 開 始 找 一 條 最 短 的 路 徑

右 下 角 , 所 得 的 結 果 將 會 使 得 這 條 epipolar line 的 disparity 是 g l o b a l 最 小 。

2

很 moot h 的 。 則 我 們 將 試 著 滿 足 以 下 式 子 :

中 Edata 的 意 思 代 表 說 存 在 某 一 個 function D(x),而 左 邊 imag e 其

中 任 何 一 個 pixel x 的 顏 色 值 會 跟 右 邊 i ma g e 位 置 為 ( x + D(x) ) 的 pixel 相 近 , 換 句 話 說 D(X) 就 代 表 一 個 適 當 的 對 應 關 係 , 他 描

(10)

述 了 左 邊 的 image 是 如 何 與 右 邊 的 image 互 相 對 應 的 。

而 Es mo oth 代 表 說 每 一 個 pixel 與 其 對 應 pixel 之 間 的 disparity 必 須

們將以上的演算法概念寫成數學式如下:

是 沒 有 震 盪 的 , 例 如 在 (2,2) 到 (20,2)這 些 點 的 disparity 都 是 2 , 但 是 其 中 ( 5 , 2 0 ) 的 d i s p a r i t y 卻 是 3 5 , 這 樣 就 是 不 s m o o t h 。 也 就 是 說 (5,20) 這 個 點 所 猜 測 的 對 應 點,只 是 顏 色 相 似,但 是 他 的 spatial 位 置 可 能 跑 太 遠 了 因 此 有 可 能 是 不 好 的 correspondence。

其 中 neighborhood term 的 部 分 可 以 依 造 需 求 的 不 同 作 調 整 , 如 果

Energy minimization via graph cuts

首 先 我 們 定 義 一 個 graph cuts 的 圖 形:圖 形 中 一 開 始 會 有 N + L 個 n

個 已 經 知 道 i ma g e 本 身 是 一 個 比 較 smooth 的 disparity,則 我 們 可 以 簡 單 的 用 gradient descent 來 描 述 他 的 s mo o t h。相 反 的,在 s mooth 情 況 較 差 下 我 們 要 設 計 一 個 比 較 複 雜 的 式 子 來 提 高 robust 。

3

o d e,代 表 了 n 個 p i x e l 與 L 個 不 同 的 d i s p a r i t y。每 個 p i x e l n o d e 會 連 出 一 條 e d g e 到 某 一 個 d i s p a r i t y n o d e 上 , 而 且 p i x e l n o d e 之 間 相 鄰 的 會 存 在 一 條 edge。 很 明 顯 的 , pixel node 所 連 到 的 d i s p a r i t y n o d e 代 表 了 該 p i x e l 的 d i s p a r i t y 數 值。 另 外, 相 鄰 兩 p i x e l 之 間 會 有 一 個 e d g e c o s t ( 兩 點 間 d i s p a r i t y 的 差 值 ) 。

(11)

目 的 是 為 了 將 圖 形 中 屬 於 相 同 disparity 的 pixel node 當 作 一 個 c o m p o n e n t , 並 且 只 留 下 同 一 個 c o m p o n e n t 之 間 的 p i x e l n o d e 相 鄰 的 edge。 換 句 話 說 , 執 行 到 最 後 不 同 component 之 間 不 會 有 edge 相 連 、 同 一 個 component 才 會 有 edge, 而 且 刪 除 的 edge 的 cost 必 須 是 最 大。這 樣 一 來 所 得 的 各 component 之 間 的 cost 會 是 最 小 也 就 是 達 到 energy 最 小 的 目 的 了 。

為 什 麼 我 們 要 把 這 個 問 題 轉 換 成 graph cuts 的 題 目 呢 ? 原 因 是 已 經 存 在 一 演 算 法 來 解 graph cuts 的 mi ni mu m cost 的 問 題 。 所 以 可 以 讓 我 們 簡 單 的 求 出 energy function 的 最 佳 化 。

G r a p h c u t s 也 是 一 種 l a b e l i n g 的 問 題,當 圖 形 中 只 有 兩 種 l a b e l 數 值 時 很 好 解 出 答 案,他 可 以 在 polynomi al time 完 成。如 果 labeling 大 於 2, 就 變 成 NP hard。 但 是 , 已 經 有 人 提 出 一 個 Efficient

a p p r o x i m a t i o n a l g o r i t h m s 來 解 答 , 他 保 證 算 出 來 的 l o c a l m i n i m u m 會 小 於 global mi nimum 的 兩 倍 。

這 個 改 進 的 演 算 法 如 下:利 用 兩 個 binary evaluation ( expansion, s w a p )去 將 圖 形 的 e n e rg y 下 降,這 個 演 算 法 保 證 每 一 步 一 定 會 下 降 e n e rg y , 直 到 無 法 再 下 降 e n e rg y ( 收 斂 了 ) 就 結 束 。

SWAP

1. Start with an arbitrary labeling

2. Cycle through every label pair (A,B) in some order 2.1 Find the lowest E labeling within a single AB-swap 2.2 Go there if it’s lower E than the current labeling 3. If E did not decrease in the cycle, we’re done Otherwise, go to step 2

(12)

EXPANSION

1. Start with an arbitrary labeling

2. Cycle through every label A in some order

2.1 Find the lowest E labeling within a single A-expansion 2.2 Go there if it’s lower E than the current labeling

3. If E did not decrease in the cycle, we’re done Otherwise, go to step 2

比 較 一 下 window 與 graph cuts 兩 種 labeling 的 方 法 : 明 顯 的 知 道 誰 比 較 好 …. Graph cuts.

(13)

而 labeling 這 個 問 題 可 以 應 用 在 denoising 上 面 , 想 辦 法 去 s m o o t h 你 的 影 像 讓 你 的 n o i s e 消 失 , 但 是 卻 不 會 讓 你 原 來 的 影 像 走 樣 。 有 很 多 comput er vision 的 問 題 可 以 用 labeling 來 解 。

4 Volumetric multiview approaches

一 開 始 我 們 先 假 設 物 體 為 一 個 3D 的 正 立 方 體 , 接 著 我 們 利 用 每 一 張 image 根 據 camera 的 位 置 去 雕 刻 這 個 正 立 方 體 , 讓 這 個 正 立 方 體 在 這 個 角 度 的 convex hull 會 跟 image 上 面 看 到 的 很 像 。 當 然 , 這 樣 會 有 誤 差 , 例 如 花 瓶 是 中 空 的 , 但 是 用 這 個 方 法 估 計 出 來 的 model 卻 不 是 中 空 的 。

(14)

其 中 一 個 方 法 叫 做 Silhouette carving, 方 法 就 是 利 用 影 像 中 的 物 體 當 作 visual hull , 並 從 這 個 visual hull 的 邊 緣 延 伸 出 射 線 並 且 交 於 我 們 一 開 始 假 設 的 3D 正 立 方 體 。 落 在 visual hull 裡 面 的 部 分 我 們 就 留 著 , 否 則 就 捨 棄 , 所 以 他 是 一 個 binary 的 結 果 。

但 是 這 個 方 法 很 容 易 出 現 問 題 , 結 果 不 太 好 。 當 使 用 者 給 的 i n p u t i m a g e s 太 少 的 時 候 結 果 總 是 很 粗 糟 。

改 進 的 另 一 個 演 算 法 叫 做 Voxel coloring 。 他 的 目 的 是 根 據 每 一 個 i ma g e 上 觀 察 到 的 pixel 是 否 落 在 那 個 3d 正 立 方 體 中 之 外 還 去 檢 查 他 的 顏 色 數 值,根 據 每 個 view image 的 顏 色 數 值 來 估 計 這 個 正 立 方 體 在 這 個 pixel 的 位 置 到 底 是 不 是 真 的 存 在 而 且 顏 色 是 什 麼 。 Voxel Coloring

Basic idea: 把 voxel 投影到 n 張 image 上,每一個 pixel 的顏色都很接近則表示,

則表示這個 voxel 是物體表面上的一個 voxel,所以顏色才會 consistency。把這 個 voxel 的顏色當成 n 個顏色的平均。

如果這個 n 個 pixel 的顏色不夠接近,則表示大家看到的東西不一樣。實際上這 個 voxel 不存在。如下圖的藍點:

但會有 occlusion 的情況要怎麼辦,如下圖:

(15)

紅色的 voxel 雖然存在,可是投影到兩張 image 上卻是不同的顏色。所以我們要 可以處理 occlusion,不然一開始的 basic idea 就不對了。

我們先來看以下的圖,有兩個 voxel,一個是深藍色,一個是淺藍色的,深藍色 的 voxel 沒有問題在三張 image 上的顏色是一樣的,但是淺藍色的,在最右邊的 image 卻是深藍色的。

但如果我們知道淺藍色是被深藍色擋住的話,就可以解決這個問題,但我們要如 何知道?基本上把所有會擋到別人的 voxel 你都先做,所以處理淺藍色的點時,

你已經知道深藍色這個點是存在的,他的投影其實是被深藍色所拿去的,而不是 顏色不一致,而判別為不存在。

所以為了解決 occlusion 的問題,你的 solution 就是會擋到別人的都先做。你必需

(16)

要規定你的 camera 有一定的 order,如上圖 camera 都在同一面,一層一層往後 面做就可以避免 occlusion。

除了這樣的 camera 的 configuration 滿足所有的 occluder 都會先做之外,還有其 它一些可能的情況。下圖所有的 camera 都在茶壺的上方,由上面往下看它,

或是所有的 camera 都往外看,都可以用剛才的演算法來做,但其它的情況不見 得會 work。它的方式是找到一個 camera configuration 的方式,確保你的 camera 都會在 sweep plane 的同一邊。當 plane 由一邊 sweep 到另一邊時,所有會擋到別 人的都會被先被處理過。

下圖的例子就是 camera 由上往下看,把要 scan 的物體放在桌子上,如花或是恐 龍,原則上是 camera rotate 但效果同等於 table rotate,總共拍了 21 張 image,

(17)

結果的 image :

它除了把 volume 找出來外,每個 voxel 也找出它的顏色,它也把顏色貼上去。

邊線地方會比較 noisy 因為會有 color blending,所有會有誤判的情況。

Voxel coloring 會有什麼問題呢 ? 第一個是你的 camera configuration 必須要確保 所有的 camera 是在物體的同一邊,有時不能達到這樣的要求,我們需要一個更 general 的 algorithm 來解決這個問題,Unconstrained camera positions,

Unconstrained scene geometry。

Space carving

基本上想法和之前差不多,先 initialize 一個 volume ,這個 volume 要比真正的 object 要大,一開始是一個 cube。在這個 volume 表面上選一個 voxel,投影到每 一張 image 上,如果投影點的顏色是不一致的話,就把這個 voxel 挖掉,一個一 個 repeat 直到收斂為止。你可以在這個 volume 上任意的選點,做到不動為止。

但是這樣會比較慢,最好是從 volume 的六個面做 sweeping,每次 sweep 時只考慮 在這個 sweep plane 同一邊的 camera,在另一邊的 camera 就不考慮。

如下圖 :

(18)

結果 :

Active approaches

之前所講的是 passive approach ,只從 image 本身去分析 geometry。而 active approach 會投射一些 information 到 scene 裡面,再去分析那些 information,來求 得 geometry。

Time of flight

射出去某種聲波或是光波,計算它彈回來的時間,除以 2 就可以得到距離。可是 這種方法一次只能看一個點。掃了很多個點之後,把這些點集合起來就可以得到 3D model。好處是可以掃比較大的東西,但是精確度會比較低。

Laser scanning (triangulation)

是現在最常用的儀器,好處是很精確,但是能掃的範圍比較小一點。它用的方式 也是 triangulation。原理是利用已知 laser 所投影的平面,加上 pixel 和 camera center 的射線(因為 camera calibrate 過的 ),利用平面和射線的交點求出 geometry。只是 這樣的 device 很貴。

Shadow scanning

所以有人提出比較便宜的方案,利用你的燈加上一根棍子來取代 laser,加上一 個 camera,來 scan 物品的 geometry。

(19)

基本的原理是假設我們知道 light source 在那裡,找出 shadow edge,light source 和 shadow edge 可以求得 shadow plane,加上有 calibrate 後的 camera 知道那物體上一 點 p 到 camera center 形成的射線。利用 Shadow plane 和射線的交點的 3D 位置,

和 triangulation,就可得物體的 geometry。

這個方法的壞處是你必須知道你的 light source 才能得到 shadow plane,如果不想 去算 light source 的 3D 位置時,你就用兩個 plane,由兩個 plane 上的 shadow edge 就可以求出 shadow plane。

再來的問題是要如何去求得 shadow line?

利用在平面上的影子的兩端,可以求得原始沒有物體時的 shadow line,而要求出 影子在某一時間的位置,就去看某一個位置的水平 scan line 的 intensity

histogram( 假設平面都是白的 ),找一個 threshold 和 intensity function 第一個交點 的位置所對應的 x,即為影子在這條水平線上的位置,把在平面上的水平線的所

(20)

有影子的位置都算出,再做一個 fitting,就可以求出每個時間點的 shadow line 的 位置了。

在算平面上的影子時,我們是用 spatial analogy,而要算物體上的影子,因為物 體並不一定是白色,所以要用 temporal analogy。對一個物體來講,去看時間軸上,

它的 intensity 是如何變化的,什麼時間點它第一次被 shadow cover 到。

這個方法的 error 約只有 0.1%,還有之前雖然有說到關於物體的 texture 雖然沒有 限制,但是還是會影響結果。而當物體的某一部份一直都在影子裡時,就沒辦法 知道影子何時 cover 到它,或是位在視角沒有被看到的地方,都沒有辦法求出那 個地方的 geometry。所以看是要變換光源,視角或是旋轉 model 來解決。

另外也可以使用太陽來當 light source,就可以掃比較大的東西,不一定是要於在 桌上。

Active variants of passive approaches

BRDF

是描述材質反射特性的一種函數,給定某一個視角,某一個光入射的方向,那個 光有百分之多少會進入你的眼睛,你看到的亮度是多少(ratio)。

γ ρ ( l , v ) ( l n )

I = × ⋅

看到的亮度

BRDF 光的強度和 cos 成正比

光的強度

Diffuse reflection ( Lambertian )

如果物體是 diffuse 的話,那不管光在什麼方向,視角在那裡,光的反射率都是 一樣的,所以它的 BRDF 是 constant function( albedo ),像是石膏像,牆壁等等 的。

k

d

v l , ) = ρ (

而且假設光的強度是 1 , 則

(21)

Photometric stereo

就是想辦法估計某一點的 depth,把物體固定不動,照相機也不動,移動光估計 那一點的 depth。那我們先去估計那一點的 normal,

先分別打三盞燈,得到 I1,I2,I3。假設已知光的方向,那我們現在要求的是這 一個點的 albedo 和 normal。Kd 是一個未知數,而 normal 是 3 個未知數,但把 normal normalize 之後只需要兩個未知數。所以我們需要三個等式才能解。

求的過程如上,最後求出的 vector G,它的長度就是 albedo,而 normalize 後的 vector

果有多盞燈時,那就更 robust 一點。當燈有 n 盞時,就是為 n 個 equation 求三

rick for handling shadows

dow 的問題,把每一個 equation 乘上一個 weight 方向就是 normal。

個未知數。就用 SVD 來解這個 equation。目前所假設的都是沒有 reflection,沒有 shadow 的情況之下。

T

當有更多盞燈時,就可以解決 sha

(22)

值,這個 weighting 和這個 pixel 的 intensity 有關。因為 shadow 比較暗,所以當一 個 pixel 的 intensity 比較暗時,就比較不重要。或是去猜測那些點可能在 shadow 裡面,用不在 shadow 裡的那些點去求 N 和 albedo 就好。也可以用 RANSAC,任 意選 3 個點去求 N 和 albedo,再去其它點是否會滿足這個 N 和 albedo。

Photometric Stereo Setup

別閃,可得到五張不同 intensity 的 image

alibrate camera, 但如果只是要求點的 normal,則不需要此步。

d),前面是 physical 的 case 是 linear

來 Estimate normal。

stimating light directions

,所以先來討論怎麼估計 light direction。一個方

一個方法是放一個尺,已知尺的高度 h,尺在(0,0,0)的位置(因為 camera calibrate 有五盞燈和一個 camera,燈會分

Procedure 第一步是先 c

第二步是 Calibrate light directions/intensities( Li ) 第三步是 Photographing objects (HDR recommende

的,但是 camera 本身不是 linear 的,所以最好用 HDR 可以高正確性且 linear 的 response,比較合於原來的 model。

第四步就是利用之前所提的線性方式 第五步就是把 normal 變成 depth。

E

Camera calibrate 之前已經講過了

式是先放一個金屬球在你的場景之中,由金屬球的 specular 可得光的方向在那,

而球上每一點的 normal 方向都可以求出來。

過,可知地板的位置),由燈的影子可以求得燈的方向。

(23)

再來就是去拍物體,是使用 HDR,那每一盞燈都需要 normalize intensity,因為沒 有辦法確定每一盞的強度都是一樣的,且每一盞到物體的距離都不一樣,所以要 把這些都去 normalize,讓光的強度都是一。

再來是如何把 normal 轉成 depth,depth 是在 z 軸上的方向,而 x 方向 normal 實 際上就是 z 方向對 x 做偏微分,y 方向 normal 就是 z 對 y 做偏微分。把 normal 的 z 值 scale 成-1,x,y 變成 p 和 q,p 和 q 就是我們的 input。意思是說我們求出來 的 z plane,對 x 微分會長的像 p,對 y 微分會長的像 q。是我們求出的 normal 給 depth 的限制。稱之為 Edata。

我們要估計 depth map,給 depth map 評方,分數最高的就是我們想要的 depth map。

評分的方式是首先它要滿足 Edata,猜出來的好的 depth map,它每一個點的微分 (z 對 x 和 y 微分)要和 normal 一樣像。第二是 depth 是 smooth 的,z 的 function 要 是平滑的,它的二階微分要越小越好。第三個是 Econs,就是說如果我知道某一 些點的 depth 是多少,那就可把這些點的 depth 當成 constrain。把這個加起來就是 我們的 energy function,只要 minimize 這個 function 就好。

而我們要求的 zij 是一個 quadratic function,要求一個 quadratic function 的最小值,

最後一定會轉成一個線性系統,只就解這個線性系統就可以了。

(24)

Limitations

diffuse 的 object(laser scanning 也是如此)

n

把物體塗上白粉,再去 scan 它的 geometry。

xample-based photometric stereo

是在場景中放一個和測量的物體是同

以對每一點L和V是一樣的,且BRDF對球和物體是一樣的。所以在物體上某一 1.只能處理

2.不能處理 shadow 3.沒有 inter-reflectio 4.camera 需要 calibrate 如果要處理 shining object 只能

E

為了處理不是diffuse的object,基本的原理

一材質做的球。因為球每一點的normal已知,不管物體BRDF是什麼,假設光在 足夠遠的地方,那麼對球和物體的入射光的方向是一樣的,照相機足夠遠,

viewing direction也是constant。

點的normal和球上一點是一樣的話,那他們的顏色應該也是一樣的,對不同的 光之下,看到的顏色也是一樣的。

(25)

把物體上的每一個點,對不同的光產生的intensity形成一個vector,和球上的點

個限制稱為orientation constrain。即一個物有同樣的normal,在distant light和distant

elmholtz Stereo

本原理是對於一個BRDF,把入射角L和視覺V交換,所得值和原本是一樣的,

形成的vector,比較那一個點的vector和物體的vector是最像的(表示在不同的光下 形成的intensity都一樣),他們越有可能有同樣的normal。

camera的假設之下,對不同的光產生的intensity變化應該要一模一樣。求得normal 後用之前的方法就可求得物體的depth了。

H

且和物體的材質無關,任何的BRDF都會成立。對一個物體交換L和V,拍兩張照 片,來估計normal。有趣的地方是在這兩張照片中,occlusion會變成shadow,shadow 會換成occlusion。

看到的亮度( I )和 BRDF,光的角度,光的強度有關。首先假設光的強度是 1,又

I

L

* V

R =

I

R

*V

L

( V

R,

V

L是光照方向和normal的夾角

)

I

L

,I

R是已知的,normal是未知的。

function,所以下面整個 matrix 也是 p 的 利用上述的原理,所以我們可得

所以我們要去猜深度,P 是一個深度的

function。想辦法猜不同的深度,那個 matrix 的 rank 越接近 2 時,就是越好的深 度。而 matrix 的 null space 就是我們要找的 normal。

參考文獻

相關文件

「老師知道了在討論一、二的兩件事後,要求 班中有份「 嘲笑別人的男生」 和「 杯葛別人的 女生」

「那麼國民黨和 共產黨是否志同 道合?有否合作 空間?」(學生 可就一己所知作 答,然後再細閱 工作紙的資料作

 Definition: A problem exhibits  optimal substructure if an ..

 它為小孩們提供 了一個有趣的生 活體驗,體驗了 在江戶時代作為 一個普通人生活 的感受。.. 旅客可以穿上和服,步

更進一步說,求知識明道理,不光是懂得了,記住了就

• 円円想在一條筆直的路上開設一些漢堡店,已知他取了N個等間

圍村內的居民用了那麼多 防衞設施,他們的房子一 定很大很美觀了!他們的 房子是怎樣?...

找出書中最 找出書中最 找出書中最 找出書中最開心 開心 開心 開心的地方 的地方 的地方 的地方, , , ,記下那一頁 記下那一頁 記下那一頁 記下那一頁3.