Head Pose estimation_PnP(Perspective-n-Point)多點透視問題_ 2D and 3D feature-based alignment


頭部姿態的三個自由度
在2020年一篇IEEE論文是有關於「頭部姿態估計方法綜述」的回顧中,可得知頭部姿態通常以三個自由度來表示。分別是俯仰角(pitch)、偏航角(yaw)與翻滾角(roll),頭部姿態也蘊藏豐富的資訊,比方點頭可能代表答應、理解等,搖頭則表示否定。
延伸應用時常用於視線估計、臉部表情分析,於駕駛監控系統中也十分重要,能去評估駕駛精神狀況。也有應用是分析學生上課專心程度。

傳統頭部姿態估測方法可先偵測人臉特徵點,再藉由頭部模型建立二維影像特徵點與三維模型點之間的對應關係,以估測三維頭部姿態。 


一些先備知識可以再去這篇溫故

特徵式對齊
feature-based alignment (特徵式對齊)是估計兩組或多組已匹配的 2D 或 3D points之間運動關係的問題。
在feature-based alignment中,有一種相當常見的特定情況,就是根據一組 2D 點的投影位置,估計物體的 3D 姿態。關於姿態估計問題也被稱為是所謂的外部參數校正。與其相對的是相機內部的參數校正,比方焦距參數。

從三個對應點中恢復姿態,需要的信息是最少的,稱為「透視三點問題」(perspective-3-point-problem, P3P)。當擴展到更多點的問題,合起來稱為「PnP」。


直接線性變換 (direct linear transform, DLT)

摘自 Computer Vision Algorithms and Applications, Richard Szeliski, 2010 - Chapter 6 Feature-based alignment-6.2 Pose estimation

已知p(u,v)、p(X,Y,Z),求出K、R、t。
我們需要知道一組2D-3D對應,並知道對應點的2D與3D座標。
將上面式子中的K[R|t]展開,變成三列四行的矩陣,K內參矩陣由於固定可省略不影響推導。

兩側相乘可得到如下三個方程
其中最底下的z 會等於右側的最底下的式子
我們可把小z帶入上面式子的zu 、 zv去
化簡變底下式子
我們的未知就是L 11到 L 34這些參數。一對點可寫兩個方程式。將右側u、v各自與L 34乘積往左移動,變成如下式子

如果你今天有N個點就會有2*N個方程式組合
每對點可列兩個方程式,最少需要6對點才可解出該方程式。
因此當N個點,則可用以下式子去表示。
上述式子可轉圜BL' = C 。 其中B、C是已知,而我們要求出L' 


當我們求得到L'後,也順帶獲得L,後續再從L中分解出相機的內外參數K、R、t : 
當中的K是上三角矩陣,R則是正交矩陣。
以下是R的3×3 旋轉矩陣(Rotation Matrix),分別表示三維空間中繞 X、Y、Z 軸旋轉。
第一個:繞 X 軸旋轉,第二個:繞 Y 軸旋轉,第三個:繞 Z 軸旋轉。



後續衍生出來的計算式子可參考opencv官網PnP介紹
由左至右依序就是像素座標,等號右側分別是相機內參、再來是旋轉平移矩陣、世界座標。

要估算出來的就是中間的r11,r12,....那個旋轉平移矩陣






頭部姿態估測疲勞駕駛應用2022年的一篇學術研究


在2022年一篇IEEE論文是來自中國學者發表有關於「駕駛疲勞監測中無須感知的眼睛睜閉閾值校準」,他們此篇論文研究,主要用到了Mediapipe先捕捉到臉部特徵點並採用6個關鍵部位特徵點建立頭部座標系,分別如下6個2D影像座標
  • nose tip(鼻尖)
  • chin(下巴)
  • left corner of eye(左眼角)
  • right corner of eye(右眼角)
  • left corner of mouth(左嘴角)
  • right corner of mouth(右嘴角)


後續藉由PnP算法結合C3D(3D 卷積網路),在 YawDD 資料集上的疲勞偵測準確率高達 98%。






Ref:
完整分析 2D Projective Transformation(一)

Computer Vision Algorithms and Applications, Richard Szeliski, 2010 

2020年 A survey of head pose Estimation methods

2022年 Perception-Free Calibration of Eye Opening and Closing Threshold for Driver Fatigue Monitoring

2015年 Learning Spatiotemporal Features with 3D Convolutional Networks

2000年 A flexible new technique for camera calibration

A Survey on Perspective-n-Point Problem

55-相机标定4-DLT,张正友标定法,Halcon标定算子(講的十分清楚詳盡)
3D-2D PnP方法 (DLT) (講的還行)
三维重建第三课:相机标定原理步骤(一)坐标系变换
【泡泡机器人公开课】第三十九课:PnP 算法简介&代码解析-柴政



留言

這個網誌中的熱門文章

何謂淨重(Net Weight)、皮重(Tare Weight)與毛重(Gross Weight)

外貿Payment Term 付款條件(方式)常見的英文縮寫與定義