# A Method of Free-Space Point-of-Regard Estimation Based on 3D Eye Model and Stereo Vision
## 3 Methods
### 3D Point-of-Regard Estimation
#### 3.3.3 3D Point-of-Regard Estimation and Calibration Experiment  
Theoretically, the intersection of the two visual axes is the gaze point, but in practice, it is almost impossible for these two lines to intersect in space. Therefore, the middle point of the nearest points of the binocular visual axes is considered as the estimated point-of-regard (PoR). The binocular pupil center coordinates \(p_{l}(X_{l}\), \(Y_{l}\), \(Z_{l})\), \(p_{r}(X_{r}\), \(Y_{r}\), \(Z_{r})\) calculated by the stereo camera are used in the PoR estimating algorithm, and also the calibrated eyeball feature parameters \(e_{l}(x_{d}\), \(y_{el}\), \(z_{el})\), \(e_{r}(x_{\sigma}\), \(y_{\sigma}\), \(z_{\sigma})\), \(\theta_{l}(\alpha_{l}\), \(\beta_{l})\) and \(\theta_{r}(\alpha_{r}\), \(\beta_{r})\). Firstly, get the spatial line equations of the visual axes according to the Equations (8) and (9):  
\[ \begin{array}{l}\frac{x_{l}-X_{l}}{a_{1}^{\prime}}=\frac{y_{l}-Y_{l}}{a_{2}^ {\prime}}=\frac{z_{l}-Z_{l}}{a_{3}^{\prime}}\\ \frac{x_{r}-X_{r}}{b_{1}^{\prime}}=\frac{y_{r}-Y_{r}}{b_{2}^{\prime}}=\frac{z_ {r}-Z_{r}}{b_{3}^{\prime}}\end{array}  \tag{17}\]  
wherein:  
\[ \begin{array}{l}\left[\begin{array}{c}{a_{1}}^{\prime}\\ {a_{2}}^{\prime}\\ {a_{3}}^{\prime}\end{array}\right]=\left[\begin{array}{c}(X_{l}-x_{el})\cos \beta_{l}+(Y_{l}-y_{el})\sin\alpha_{l}\sin\beta_{l}-(Z_{l}-z_{el})\cos\alpha_{ l}\sin\beta_{l}\\ (Y_{l}-y_{el})\cos\alpha_{l}+(Z_{l}-z_{el})\sin\alpha_{l}\\ (X_{l}-x_{el})\sin\beta_{l}-(Y_{l}-y_{el})\sin\alpha_{l}\cos\beta_{l}+(Z_{l}-z _{el})\cos\alpha_{l}\cos\beta_{l}\end{array}\right]\\ \left[\begin{array}{c}{b_{1}}^{\prime}\\ {b_{2}}^{\prime}\\ {b_{3}}^{\prime}\end{array}\right]=\left[\begin{array}{c}(X_{r}-x_{er})\cos \beta_{r}+(Y_{r}-y_{er})\sin\alpha_{r}\sin\beta_{r}-(Z_{r}-z_{er})\cos\alpha_{ r}\sin\beta_{r}\\ (Y_{r}-y_{er})\cos\alpha_{r}+(Z_{r}-z_{er})\sin\alpha_{r}\\ (X_{r}-x_{er})\sin\beta_{r}-(Y_{r}-y_{er})\sin\alpha_{r}\cos\beta_{r}+(Z_{r}-z _{er})\cos\alpha_{r}\cos\beta_{r}\end{array}\right]\end{array}  \tag{18}\]  
The nearest points of these two visual axes lines \(p_{1}(x_{1},y_{1},z_{1})\) and \(p_{2}(x_{2},y_{2},z_{2})\) can be named as:  
\[p_{1}=\left[ \begin{array}{c}x_{1}\\ y_{1}\\ z_{1}\end{array} \right]=\left[ \begin{array}{c}{a_{1}}^{\prime}t_{1}+X_{l}\\ a_{2}^{\prime}t_{1}+Y_{l}\\ a_{3}^{\prime}t_{1}+Z_{l}\end{array} \right],p_{2}=\left[ \begin{array}{c}x_{2 }\\ y_{2}\\ z_{2}\end{array} \right]=\left[ \begin{array}{c}{b_{1}}^{\prime}t_{2}+X_{r}\\ b_{2}^{\prime}t_{2}+Y_{r}\\ b_{3}^{\prime}t_{2}+Z_{r}\end{array} \right] \tag{19}\]  
wherein:  
\[ \begin{array}{l}t_{1}=\frac{(X_{r}-X_{l})(b_{2}^{\prime}n_{3}-b_{3}^{\prime} n_{2})+(Y_{r}-Y_{r})(b_{1}^{\prime}n_{3}+b_{3}^{\prime}n_{1})-(Z_{r}-Z_{l})(b_{1} ^{\prime}n_{2}+b_{3}^{\prime}n_{1})}{a_{1}^{\prime}(b_{2}^{\prime}n_{3}-b_{3} ^{\prime}n_{2})+a_{2}^{\prime}(b_{3}^{\prime}n_{1}-b_{1}^{\prime}n_{3})+a_{3} ^{\prime}(b_{1}^{\prime}n_{2}-b_{2}^{\prime}n_{1})}\\ t_{2}=\frac{(X_{r}-X_{l})(a_{2}^{\prime}n_{3}-a_{3}^{\prime}n_{2})+(Y_{r}-Y_{l})(a_{ 3}^{\prime}n_{1}-a_{1}^{\prime}n_{3})+(Z_{r}-Z_{l})(a_{1}^{\prime}n_{2}-a_{2}^{ \prime}n_{1})}{a_{1}^{\prime}(b_{2}^{\prime}n_{3}-b_{3}^{\prime}n_{2})+a_{2}^{ \prime}(b_{3}^{\prime}n_{1}-b_{1}^{\prime}n_{3})+a_{3}^{\prime}(b_{1}^{\prime }n_{2}-b_{2}^{\prime}n_{1})}\end{array}  \tag{20}\]  
The coordinate of the 3D PoR is described as:  
\[P_{POR}=(p_{1}+p_{2})/2 \tag{21}\]  
We use the calibration data to verify the effectiveness of the proposed algorithms, and also determine how many times fixations are needed in the calibration process, i.e., the calibration points. We use the calibration results estimated within different calibration points to take 3D PoR estimation experiments, and compare the experimental results with the actual target point spatial coordinates to determine the suitable number of the calibration points. We invited four people to participate in the personal calibration experiment.