0
我想將檢測到的臉部矩形轉換成3D座標。我有我的攝像頭的內在參數和我的頭部尺寸,我如何使用投影方程確定深度Z?opencv人臉檢測2D到3D
X = FX X/Z + U
Y = FY Y/Z + V
我明白FX Fy和UV是固有參數,以及XY通過我的頭部尺寸,XY給定由檢測到的面部矩形給出。似乎只有一個方程式足以確定Z.如何使用它們兩個?或者我錯了?
我想將檢測到的臉部矩形轉換成3D座標。我有我的攝像頭的內在參數和我的頭部尺寸,我如何使用投影方程確定深度Z?opencv人臉檢測2D到3D
X = FX X/Z + U
Y = FY Y/Z + V
我明白FX Fy和UV是固有參數,以及XY通過我的頭部尺寸,XY給定由檢測到的面部矩形給出。似乎只有一個方程式足以確定Z.如何使用它們兩個?或者我錯了?
你是正確的,你並不是嚴格需要他們兩個來計算深度。但是,您可能想要同時使用它們來提高準確性。
要記住的另一件事是,如果您的相機沒有垂直看待測量的平面物體(例如臉部),則其中一個或兩個測量值可能對計算深度沒有用處。例如,如果您的相機正在仰望矩形,則只有寬度纔是衡量深度的好方法,因爲高度被視角所壓縮。儘管如此,我認爲這對於臉部檢測器來說並不重要,因爲無論如何都假定臉部的比例是固定的?
是的,它是固定的,因爲如果臉不朝向相機,它不會被發現。我的進一步的問題是如何使用這個深度Z在OpenGL 3D Coordinate中定位面部矩形?我使用solvePnP來獲得翻譯矩陣,並將其用在MODELVIEW中。但它並不完全在我想要的位置,儘管當我移動頭部時軸線正在移動。還有其他方法嗎? –