日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Gaze Estimation笔记——data normalization

發布時間:2025/3/15 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Gaze Estimation笔记——data normalization 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??最近在看一些視線檢測(Gaze Estimation)相關的東西,由于之前沒怎么接觸過,所以也算是從頭開始,很多新的東西要學。寫一個系列筆記,把慢慢看懂的東西記錄下來,做個整理,也方便以后回頭查閱的時候能快速撿起來。
??第一篇寫的是基于normalization圖像的工作,包括一系列類似的方法。這類方法的關鍵之處在于對輸入的圖像(face/eye)先進行normalization操作,將不同head pose、 不同距離等一般情況下的圖像轉化到預先定義好的不變的normalization模式下的照片,然后再進行視線檢測的工作。在所謂的normalization模式下,相機的姿態和距離是預先定義好的不能改變的。說白了就是,訓練和測試時人離相機的姿態和距離等是不可控的,那直接采集得到的圖像情況會很復雜,為了解決這些問題之前的方法需要標定相機,保證拍攝出來的人的照片的頭部角度、位置和距離是不動的,只有眼睛在動。換言之,如果有一只無形的手,能夠始終通過平移和旋轉,把相機調整到一個預先定義好的姿態去拍攝人臉圖像,那是最好的了。但是這種物理移動相機的操作是顯然不可能的,normalization的意義在于通過圖像變換的方式模擬相機的物理移動,使得變換后的圖像盡量逼近于相機物理移動后拍攝的圖像。

目錄

  • Data Normalization
    • 幾個坐標系
    • Normalization模式
    • Normalization過程

Data Normalization

??這個data normalization是這類方法中最關鍵的一步,需要首先理解清楚,其本質就是一點立體幾何和圖像變換的東西。這類方法最早提出于東京大學的一篇論文,先把論文的題目貼上來《Learning-by-Synthesis for Appearance-based 3D Gaze Estimation》。
??如前所述,我們希望有一只無形的手能夠時刻的調整相機的位置,實際無法做到,則通過圖像變換來近似模擬這個相機的物理移動過程。當然這樣的模擬也是有缺陷的。首先通過已經投影為2d的圖像去還原3d姿態變化后的投影圖像這件事雖然在3d立體幾何上是嚴格準確的,但是和真值還是有誤差。另外這樣的模擬變換方式也需要首先估計出人頭的姿態等數據,估計的準確性也會影響還原的準確性。
??首先給個整體的input-output,比如我們希望通過normalization得到人臉左眼的還原圖像。下圖左側為任意角度和姿態下相機拍攝的人臉照片,下圖右側為通過normalization變換后的左眼圖片,基于此再進行后續的視線檢測,后面會詳細分析normalization過程。

幾個坐標系

??這個問題涉及到幾個坐標系,分別是世界坐標系,相機坐標系和人頭坐標系,各自的含義從名字中就能看出來。其中人頭坐標系的x軸為兩個眼睛的連線且從左眼指向右眼,y軸為人臉平面(這里認為人臉是平的哈)內垂直于x軸方向向下,z軸按右手系確定,坐標系的原點無所謂取哪個點,僅僅多了一個平移的環節。這里認為相機安裝好之后是不動的,因此世界坐標系和相機坐標系是一樣的,簡化為只有相機坐標系和人頭坐標系。所謂拍照,從立體幾何的角度來講就是三維物體沿著相機坐標系zcz_czc?方向在xcx_cxc?ycy_cyc?所構成平面內的投影。后面的部分對照著下圖進行解釋:

Normalization模式

??一般情況下,相機與人臉的相對位置與姿態是任意的,data normalization的過程就是將任意相對姿態、位置下拍攝的人臉照片轉化到normalization模式下,那么什么是normalization模式呢?normalization模式就是,假設有一只無形的手,能在當前的相機姿態和位置下:

  • 僅對相機進行旋轉,使得相機坐標系的z軸指向我們感興趣的人臉上的某個點O(比如眼睛的中心或臉的中心等),這樣可以使得normalization之后的圖像中,我們之前感興趣的那個點O位于圖像中央。此時相機有無數種姿態(相機可以繞著z軸旋轉),為了固定一種姿態,再要求人頭坐標系中的水平線(垂直于人頭坐標系z軸的任意直線)經過投影后在相機中的成像仍然是水平的,此時相機的旋轉姿態就唯一確定了。例如,要求人眼在旋轉后的相機中成像是水平的,且某個預先選取的點(例如眼睛中心)位于圖像中央,此時對應的相機旋轉姿態就是唯一確定的。
  • 完成第一步后,僅對相近進行沿著z軸的平移,使得相機距離感興趣的點O的距離是個定值。
  • Normalization過程

    ??按照前面對normalization模式的定義,則可以對任意姿態下相機拍攝的圖像進行normalization,得到normalization模式下的圖像。圖像的變換過程也就是遵循著上面兩部的描述,通過幾何和數學變換算出來即可。假設我們感興趣的點即為右眼的中心,人頭坐標系的原點也是右眼的中心。

  • 首先通過關鍵點檢測匹配或者其他什么方法,得到人頭坐標系和相機坐標系之間的平移向量tr?\vec{t_{r}}tr??與轉換矩陣 RrR_{r}Rr?。為了使得旋轉后的相機z軸指向右眼的中心,旋轉后的相機坐標系z軸就是tr?\vec{t_{r}}tr??,即zc′?\vec {z_{c}'}zc??=tr?\vec{t_r}tr??
    其次,為了使得normalization之后的眼睛是水平的(即人頭坐標系的x軸在旋轉后的相機坐標系內的投影也是水平的),需要xh?\vec{x_h}xh??平行于xc′?\vec{x_c'}xc??zc′?\vec{z_c'}zc??構成的平面,或者說將xh?\vec{x_h}xh??平移與zc′?\vec{z_c'}zc??相交后,xc′?\vec{x_c'}xc??位于xh?\vec{x_h}xh??zc′?\vec{z_c'}zc??構成的平面內。此時,yc′?\vec{y_c'}yc??垂直于xc′?\vec{x_c'}xc??zc′?\vec{z_c'}zc??構成的平面且滿足右手系,即yc′?\vec{y_c'}yc??=xh?\vec{x_h}xh??×\times×zc′?\vec{z_c'}zc??。最后,xc′?\vec{x_c'}xc??也可以根據右手系求出,xc′?\vec{x_c'}xc??=yc′?\vec{y_c'}yc??×\times×zc′?\vec{z_c'}zc??。這一步對應的坐標系變換矩陣記做RR=[xc′?∥xc′?∥\frac{\vec{x_c'}}{\left\|\vec{x_c'}\right\|}xc??xc???yc′?∥yc′?∥\frac{\vec{y_c'}}{\left\|\vec{y_c'}\right\|}yc??yc???zc′?∥zc′?∥\frac{\vec{z_c'}}{\left\|\vec{z_c'}\right\|}zc??zc???]
  • 對旋轉后的相機坐標系沿著z軸進行縮放,縮放到某個預先定義好的定值dnd_ndn?即可,這一步對應的變換矩陣記做S=diag(1,1,dn∥xc′?∥\frac{{d_n}}{\left\|\vec{x_c'}\right\|}xc??dn??)。

    后面有時間再寫寫基于normalization data的幾個視線檢測方法吧。
  • 總結

    以上是生活随笔為你收集整理的Gaze Estimation笔记——data normalization的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。