300 likes | 425 Views
好孩子的 CV 教室 - 輕輕鬆鬆寫 CV 作業 2. 3. 常見問題與解答. 為什麼有這份投影片呢 ?. 聽說助教好弱什麼都不會耶 … 聽說助教一天要睡滿 12 個小時不然會亂講話 … 老師說他同樣的東西講好幾遍為什麼還是有人要來把助教問倒 …. 助教要勞跑回台北了 ~. 目的. 搞定一些常見問題 + 投影片寫的比較不清楚的地方 ( 不過有補充也不一定會比較清楚 …) 證明其實助教是懂的 !!. Q0: 請問助教 , 作業 2 可以送分嗎 ?. A:…. 你想轉學去加拿大嗎 ?. Q1: 分數最後到底是怎麼分配呢 ?. DP:70%
E N D
好孩子的CV教室-輕輕鬆鬆寫CV作業2 3.常見問題與解答
為什麼有這份投影片呢? • 聽說助教好弱什麼都不會耶… • 聽說助教一天要睡滿12個小時不然會亂講話… • 老師說他同樣的東西講好幾遍為什麼還是有人要來把助教問倒…. • 助教要勞跑回台北了~
目的 • 搞定一些常見問題+投影片寫的比較不清楚的地方(不過有補充也不一定會比較清楚…) • 證明其實助教是懂的!!
Q0:請問助教,作業2可以送分嗎? • A:….你想轉學去加拿大嗎?
Q1:分數最後到底是怎麼分配呢? • DP:70% • 對圖1跟圖2這兩組圖, 利用DP還原出深度值, 之後輸出成obj檔. • 助教會視成果好壞跟報告的完整度適當的給與加分. • 拜託請至少做完這部份吧… • Essential Matrix:20% • 只要解出Essential Matrix就可以了嗎? • 想太多….
Q1:分數最後到底是怎麼分配呢? • 這裡指的是如果你不想做Rectification, 那也可以只利用Essential Matrix去找出對應的Epipolar line, 再用(有點特別的)DP去找出兩張圖間的對應點, 再用講義上的公式or 向量交點 or 其他做法去還原出深度值…打都覺得好麻煩 = = • 一樣要輸出成obj檔… • Rectification:20% • 只要把兩張圖的epipolar line轉成平行, 就可以直接用簡單的DP去找對應點還原深度值喔~
Q2:所以我如果目標想拿110分的話…? • 你要用兩種方法(不rectification下的2-view approach, 跟rectification後的簡單的DP)各做一次還原圖3,圖4的座標值. • …..加油 ._./
Q3: 可是…第三組圖好像本來就已經是平行view了耶… • 哈哈哈…. • 那是助教放錯故意放的!! 這樣你們就可以看到平行view的時候R跟T應該會是什麼值了, 可以用來檢查你RT算的對不對! (有人會相信嗎…) • 所以後面的兩個20% 主要是看第四張圖的成果喔~
Q4:請問助教, DP時如果p跟q的disparity =0該怎麼辦? • 你算錯了(一秒) • 正常來說兩對應點不可能disparity =0 (why?想一下兩個平行的view去看同個場景, 會有任何一個3D點投在兩個view的同個位子上嗎?) • 真的DP出來這樣就給個1之類的吧 = =
Q5: 可以請助教講解一下不Rectification的做法嗎? • 老師投影片中Ch8_2其實就是詳細做法了… • 照著步驟一步一步做就好: • P7. 用8-point algorithm去找出Essential Matrix.(PS: 8-point是騙人的 = = 要有好結果請多找幾個….來個60個以上吧XD) • 先用肉眼找出兩張圖之間夠多組的對應點(左邊的(20,40)對右邊的(50,100)之類的…),然後代入P7的uv去算出E.
Q5: 可以請助教講解一下不Rectification的做法嗎?-2 • P8:因為E’T=0 (why? 因為E=TxR其中Tx是T的cross product form, 所以E’T相當於T跟T自己cross 所以=0,請看P8中間小藍框), 所以這裡用least-square的方法取出最接近的一個T值(定T長度=1). • T可視為兩個Viewpoint間連線的方向, 所以會有方向性(正負號).
Q5: 可以請助教講解一下不Rectification的做法嗎?-3 • P9.因為E=TxR所以有了T就可以用來反算出R, 投影片上是已經把T cross 拆開的型式所以請直接代入就可以了.(E1,E2,E3在前一頁中間小藍框) • P10.跳過.請自我摧眠當作不會有noise存在~這世界是美好的.
Q5: 可以請助教講解一下不Rectification的做法嗎?-4 • P11. 判斷T的正負號(方向).不過因為T的兩個方向表示從左圖移動到右圖 or 從右圖移動到左圖, 所以其實這判斷用眼睛看值比較快… • Xi跟Xi’是兩組對應點(u,v,1)跟(u’,v’,1)這樣. • 到這邊就把RT都算出來了~ • 接下來要先跳開回到epipolar line的地方.
Q5 : 可以請助教講解一下不Rectification的做法嗎?-5 • 因為已知 ,我們用這個來找出對應的epipolar line(記得嗎? DP是用來找epipolarline上的對應點)
Q5 : 可以請助教講解一下不Rectification的做法嗎?-5 • 考慮左圖中所有的pixel(x,y)直到所有點都有被運算到(有被給與一個深度值)為止: • 算出E*p=E*(x,y,1)(的transpose),會得到一個3*1的向量. • 考慮右圖中所有的pixel(u,v) 如果(u,v,1) *Ep=0(接近0啦..)表示(u,v)會存在於(x,y)對應的epipolar line上,如此會找到右圖上一條線. • 右圖是用圖上的點2,點 12,點13所找到的3條epi- polar line.
Q5 : 可以請助教講解一下不Rectification的做法嗎?-6 • 之後對右圖的epipolarline上的隨便一點P’(u’,v’,1), 我們反過來考慮左圖: 先算(u’,v’,1)*E得到3*1向量, 再把左圖中所有的P(x’,y’)寫成(x’,y’,1)(的transpose),去算P’EP, P’EP=0(或很小)的所有點也會連成一條直線—這就是左圖和右圖間的對應的epipolar line.
Q5 : 可以請助教講解一下不Rectification的做法嗎?-7 • 之後我們就可以把兩條對應的epipolar line的pixel(或window)排成M*N矩陣去算DP了.如此會找到左圖該線上每個點在右圖上的對應點…之後呢? • 套用P12的公式, Xi跟Xi’是對應點,R是R matrix, T0就是T, 算出來的Zi跟Zi’表示對兩個不同view point而言的深度…選一邊做obj檔就可以了.
Q5 : 可以請助教講解一下不Rectification的做法嗎?-8 • 這公式因為左圖的(x,y,1)對應空間中(xz,yz,z)這個點(在左圖的座標軸表示),而同個點在右圖中是(uz’,vz’,z’), 而這兩個可以用R跟T轉換, 導一導出來的結果…所以就直接代吧. • 也是有其他方法可以算深度值啦…不要問我,我不會= =
Q5 : 可以請助教講解一下不Rectification的做法嗎?-9 • 幾個重點: • Essential Matrix:用來找出Epipolar line. • DP:兩條對應的Epipolar line間點與點的對應. • RT:最後要還原深度值的時候會用到. • 連打都覺得手酸…
Q6:助教我放棄第二題了,請告訴我轉圖該怎麼做?Q6:助教我放棄第二題了,請告訴我轉圖該怎麼做? • 就…轉呀= = • 投影片上的敘述在Ch9的P62~66. • 不過以下我要介紹的是老師上課時說的另外一種方法(座標軸轉換)
Q6a:助教不管人家想照投影片上的做啦~Q__Q • 那我講解一下投影片… • P64:目標是把影像轉到與epipole平行: • 1.找到epipole e(F對應最小eigenvalue的eigenvector, 其實也是兩個viewpoint間的連線方向) • 2.找到一個和epipole垂直的向量(講義上的d0, 其實只要跟e垂直就好, 湊出來的) • 3.那個很醜的矩陣是以d0為軸旋轉 角(不懂就去goo”rotate matrix wiki”) 而
Q6a:助教不管人家想照投影片上的做啦~Q__Q-2 • 以上完成對左圖的旋轉矩陣W0. • P65: 接下來是把epipolar line轉平行, 相當於把 轉成[1 0 0](的transpose). 就照著代入就可以了. • P66: 最後要把兩張圖的座標長度scale到一樣, 照上面公式乘出 後會得到a,b,c三個值, 排成像T那樣子再乘就可以得到對右圖的旋轉矩陣W1了.
Q6:助教我放棄第二題了,請告訴我轉圖該怎麼做?-2Q6:助教我放棄第二題了,請告訴我轉圖該怎麼做?-2 • 殊途同歸, 其實做起來會很像… • 我們取T=[e0 e1 e2]當做新座標軸的x軸, 找到跟他垂直的新Y軸跟新Z軸:
Q6:助教我放棄第二題了,請告訴我轉圖該怎麼做?-2Q6:助教我放棄第二題了,請告訴我轉圖該怎麼做?-2 • 構成的Rrect就會是座標軸轉換的矩陣,直接就是W0了. • 而這時W1 = T*R*W0, R T跟P65 P66的RT一樣, 用來做轉epipole/scale的. • 如此也可以做到轉圖的效果喔~ • W1有其他算法…請參考後面列的參考資料 = =+
Q7:我做起來效果不好耶… • 有幾個可能: • DP的部份… • 1.Occ設太大或太小,這跟cost function有關, 多調幾個值看看吧. • 2.window size太小,突出的雜點會很多. • 3.找不到對應點的情況(找不到? 隨便給個深度呀! 跟隔壁點的深度一樣之類的就可以了) • 4.寫錯. 自己debug… • 5.B的值給太大: 如果B照實際給的話, 最後obj檔的深度會很大,看起來會變一長條, 所以B如果給小一點, 會讓obj檔比較好看一點點…
Q7:我做起來效果不好耶…-2 • Essential Matrix/Rectification的部份: • 1.試看看把座標normalize(或者不要normalize, 都有會比較好或比較差的情況) • 2.一開始的Essential Matrix就算錯了(節哀) • 3.找出來的epipolar line差很多->請看2. • 4.多找幾個點有好沒壞… • 5.就算RT沒有很準也可以做啦…效果比較不好而已.(有人做過之後跟我說的, 不正確請打他) • 6.轉圖有黑點.請用inverse mapping(不是把x,y轉到新的x’,y’,而是對x’,y’的位置去原圖找一個pixel的顏色填上去)
Q8:那報告裡面要寫些什麼呢? • 你做這次作業的心酸血淚史…寫到讓我哭的會加分 Q__Q • 心得和做法敘述當然一定要的啦~ 有什麼特別的做法也請一起寫進去. • 請附上obj檔 + 每組圖一張深度圖的影像 (像這個樣子)
Q8:我如果只做了其中一部份怎麼辦…QQ • 助教會斟酌給分的. • 有算Essential Matrix +3, 有解出RT +5, 有算Epipolar Line+2之類的… • 當然這種時候就要看報告寫的認不認真啦…
Q9:助教作業可不可以延期Q__Q • 當然不行!! • 嘛…不過因為我Server大概禮拜天才會關….所以禮拜天晚上12點以前交的我都當做是準時交喔~ • 也就是延到禮拜天啦 如果你們還想做的話= =
參考資料 • http://www.cse.huji.ac.il/course/2006/compvis/lectures/Rectification-Stereo.pdf (RT不是只有投影片那種解法, 用SVD也可以...) • http://www.et.byu.edu/groups/ece631web/Lectures/ECEn631%2014%20-%20Epipolar%20Geometry.ppt (同上,SVD解) • http://www.et.byu.edu/groups/ece631web/Lectures/ECEn631%2016%20-%20Image%20Rectification.ppt (rectification的轉座標軸法) • Wiki • Google