[問題] 電腦視覺問題

看板C_and_CPP (C/C++)作者 (Jay)時間4年前 (2020/09/14 23:31), 4年前編輯推噓3(6319)
留言28則, 6人參與, 4年前最新討論串1/1
開發平台(Platform): (Ex: Win10, Linux, ...) win10 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) vs2019 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) Eigen 問題(Question): 各位前輩好 我想詢問關於電腦視覺的問題 如果我有一個旋轉+平移矩陣組合而成的轉換矩陣(Transformation Matrix) 也就是相機外參數矩陣(可以得知世界座標在相機座標的位置,旋轉量) 此時我可以透過這個轉換矩陣,推導出逆轉換矩陣, 而這個逆轉換矩陣,可以得到相機在世界座標的位置,及旋轉量 問題1 : 如果我有一個物體沿世界座標Z軸移動10cm,我想利用上面已知的轉換矩陣與逆 轉換矩陣,推導出屬於這個位置的轉換矩陣,是否有可能呢? 目前我的做法是 先將0,0,20轉換到相機座標(將0,020乘上轉換矩陣中旋轉矩陣的部分) 再將此平移量加到原本的轉換矩陣中平移矩陣的部分 組合而成的轉換矩陣就是0,0,20 與相機的轉換矩陣 如果有錯誤的地方再麻煩各位前輩糾正 餵入的資料(Input): 預期的正確結果(Expected Output): 錯誤結果(Wrong Output): 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) 補充說明(Supplement): 這是我目前使用到的公式 https://imgur.com/a/x6kgqPJ -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.142.197.184 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1600097502.A.1B3.html

09/15 08:26, 4年前 , 1F
prob_solve?
09/15 08:26, 1F

09/15 08:43, 4年前 , 2F
老實說我看不太懂你的問題,相機外參就是世界座標轉到相
09/15 08:43, 2F

09/15 08:43, 4年前 , 3F
機座標,這沒問題,你要直接取逆不是不能,但取逆要旋轉
09/15 08:43, 3F

09/15 08:43, 4年前 , 4F
矩陣和平移相量分開作,因為外參矩陣是3x4的,沒有矩陣
09/15 08:43, 4F

09/15 08:43, 4年前 , 5F
逆可以算不是方陣的矩陣,除非你用se3求逆才有辦法直接
09/15 08:43, 5F

09/15 08:43, 4年前 , 6F
算逆乘法
09/15 08:43, 6F

09/15 08:48, 4年前 , 7F
你擴展成4x4還是和外參定義有差,平移運算不能直接這樣
09/15 08:48, 7F

09/15 08:48, 4年前 , 8F
求逆,這違反矩陣的rank,平移不能保這4x4是full rank
09/15 08:48, 8F

09/15 09:12, 4年前 , 9F
抱歉上面的full rank講錯了,是說你的inv(T)算出來也是
09/15 09:12, 9F

09/15 09:12, 4年前 , 10F
畸形,不滿足旋轉矩陣的constrain R^T*R=I,所以別直接
09/15 09:12, 10F

09/15 09:12, 4年前 , 11F
對T求逆
09/15 09:12, 11F

09/15 11:17, 4年前 , 12F
什麼是那個位置的轉換矩陣?你是想問那個點在相機坐標系
09/15 11:17, 12F

09/15 11:17, 4年前 , 13F
下的座標嗎? 因為轉換矩陣是用來描述兩個坐標系的關係(
09/15 11:17, 13F

09/15 11:17, 4年前 , 14F
SE(3) group) ,還是你物體本身帶有座標系?
09/15 11:17, 14F
謝謝前輩的回覆 因為小弟最近才接觸到3D空間轉換等問題,觀念上可能還需加強 我目前認知是4*4的轉換矩陣 ,為齊次座標的轉換 目前我做的操作如下 1.將旋轉矩陣(3x3) 與 平移矩陣(3x1) 組合成[R|t](4x4) 最後(3,0)~(3,3)的值為0,0,0,1 這裡與兩位前輩提到的se3 類似(不過我不確定物理意義是否相同,我需要在消化學習這部分) 2.將此4x4的轉換矩陣做逆矩陣 3.分開來算旋轉矩陣(3x3)與平移矩陣(3x1),新的旋轉矩陣=旋轉矩陣的逆矩陣 新的平移矩陣 = -(新的旋轉矩陣) * 平移矩陣 將新的旋轉矩陣R'與新的平移矩陣T' 組合成[R'|T'](4x4) 最後(3,0)~(3,3)的值為0,0,0,1 此時會發現 3 與 2 求出來的逆轉換矩陣相同 所以我想透過這關係 求出在世界座標往Z軸位移20cm後 與相機的轉換矩陣 小弟如果描述或觀念不清楚的地方再請前輩指正 ※ 編輯: asdfg1597860 (220.142.197.184 臺灣), 09/15/2020 21:42:37

09/16 23:31, 4年前 , 15F
1是這樣寫沒錯 R只要滿足R*R^T=I 且 det(R)=1 就是rotat
09/16 23:31, 15F

09/16 23:31, 4年前 , 16F
ion matrix( SO(3) group ). 跟translation組成你寫的
09/16 23:31, 16F

09/16 23:31, 4年前 , 17F
形式就是SE(3)其中一種表示方式了。
09/16 23:31, 17F

09/16 23:31, 4年前 , 18F
2跟3 不多補充。
09/16 23:31, 18F

09/16 23:34, 4年前 , 19F
再來你的問題要考慮那個object只是點還是帶走座標系。
09/16 23:34, 19F

09/16 23:34, 4年前 , 20F
如果只是三維點x3Dw (描述在world frame)下,因為你有R
09/16 23:34, 20F

09/16 23:34, 4年前 , 21F
cw, tcw。就直接轉到camera frame就行了 x3Dc=Rcw*x3Dw+
09/16 23:34, 21F

09/16 23:34, 4年前 , 22F
tcw
09/16 23:34, 22F

09/16 23:36, 4年前 , 23F
如果是有座標系且知道Two轉換矩陣(object to world)。
09/16 23:36, 23F

09/16 23:36, 4年前 , 24F
則object to camera的Tco=Tcw*Two
09/16 23:36, 24F

09/17 23:29, 4年前 , 25F
謝謝前輩的指導
09/17 23:29, 25F

09/18 08:07, 4年前 , 26F
cia 怎麼那麼氣 XD
09/18 08:07, 26F

09/18 08:08, 4年前 , 27F
幫補
09/18 08:08, 27F

09/18 08:25, 4年前 , 28F
邊氣邊教也是很好心!
09/18 08:25, 28F
文章代碼(AID): #1VNupU6p (C_and_CPP)
文章代碼(AID): #1VNupU6p (C_and_CPP)