.. _singlepc-recording: Single-PC recording ======================================= .. note:: * VisionEgg backend is no longer supported by 0.11.0 or later. GazeParser.TrackingTools and SimpleGazeTracker are designed to run on a separate separate PC. This is because stimulus presentation and/or gaze recording may not in time when both of these tasks are performed in a single PC. However, if some delay in stimulus presentation and gaze recording is permissible, you can run GazeParser.TrackingTools and SimpleGazeTracker on a single PC. In order to investigate temporal accuracy and precision of presentation and recording when both of them are performed in a single PC, I ran SimpleGazeTracker and :ref:`Sample01` on the same PC. GazeParser 0.5.2 and SimpleGazeTracker 0.5.1 were installed on three PCs listed in Table 1. A LCD was used for stimulus presentation. Reflesh rate of the LCD was 60Hz. .. table:: Table 1 PCs used in this test ==== ====================== ======================== ========================================= PC CPU Operating system Camera ==== ====================== ======================== ========================================= 1 Intel Core i3 370M Windows 7 SP1 (X86) OptiTrack V100R2 @100Hz (OptiTrack ed.) 2 Intel Core2Duo E8500 | Windows XP SP3 (X86) imi tech IMB-11FT @60Hz (OpenCV ed.) | Ubuntu 12.04LTS (X86) 3 Intel Core i7 950 Windows 7 SP1 (X86) | OptiTrack V100F2 @100Hz (OptiTrack ed.) | imi tech IMB-11FT (OpenCV ed.) | IMPERX ICL-B0620 @250Hz (GPC5300 ed.) ==== ====================== ======================== ========================================= SimpleGazeTracker was started first. Then, :ref:`sample01_VisionEgg.py` was started at the full-screen mode. **'SimpleGazeTracker address' was set to 'localhost'**. Calibration and recording were performed, and the data were analysed. Table 2 shows sampling intervals of gaze recording calculated from the SimpleGazeTracker data files. Labels in the 'Setup' column indicate the CPU, OS and edition of SimpleGazeTracker. For example, '370M-7-Optitrack' indicates Core i3 370M CPU, Windows 7 and SimpleGazeTracker OptiTrack edition (that is, PC1 in Table 1). When the SimpleGazeTracker OpenCV edition ran on Windows XP (E8500-XP-OpenCV), calibration could not be started because communication between SimpleGazeTracker and GazeParser.TrackingTools did not work properly. The mean sampling intervals were close to the ideal value in all setups; however, the maximum interval reached 63.77ms when SimpleGazeTracker OpenCV edition ran on PC2 (E8500-Ubuntu-OpenCV). On the other hand, the minimum and maximum interval were close to the ideal interval when PC3 was used (950-7-OptiTrack, 950-7-OpenCV and 950-7-GPC5300). .. table:: Table 2 Sampling intervals (unit: ms) == ==================== ===== ===== ===== ======= ======= PC Setup Ideal Mean Stdev Min Max == ==================== ===== ===== ===== ======= ======= 1 370M-7-OptiTrack 10.0 9.96 0.69 *0.53* *17.41* 2 E8500-XP-OpenCV 16.67 \*1 \*1 \*1 \*1 2 E8500-Ubuntu-OpenCV 16.67 16.69 3.64 *2.59* *63.77* 3 950-7-OptiTrack 10.0 10.00 0.08 8.91 10.28 3 950-7-OpenCV 16.67 16.62 0.14 16.05 17.14 3 950-7-GPC5300 2.50 2.50 0.04 0.90 2.70 == ==================== ===== ===== ===== ======= ======= Table 3 shows inter frame intervals (IFIs) of stimulus presentation calculated from the local log file of Sample01 (see :ref:`Sample01`). Vsync option did not work properly on the PC1 (graphics of PC1 was intel HD Graphics). Similar to the results of sampling inervals, the maximum interval was long when when SimpleGazeTracker OpenCV edition ran on PC2 (E8500-Ubuntu-OpenCV). Such a long IFI causes 'jerky' stimulus presentation. For example, participants of this test reported that motion of the calibation target was not smooth when either PC1 (370M-7-OptiTrack) or PC2 (E8500-Ubuntu-OpenCV) was used. When PC3 was used, IFIs were close to the ideal value. No jerky stimulus motion was not reported. .. table:: Table 3 Inter frame interval (unit: ms) == ==================== ===== ===== ===== ======= ======= PC Setup Ideal Mean Stdev Min Max == ==================== ===== ===== ===== ======= ======= 1 370M-7-OptiTrack \*2 4.25 1.02 *2.10* *17.60* 2 E8500-XP-OpenCV 16.67 \*1 \*1 \*1 \*1 2 E8500-Ubuntu-OpenCV 16.67 16.73 2.09 *7.00* *43.40* 3 950-7-OptiTrack 16.67 16.66 0.08 15.60 16.80 3 950-7-OpenCV 16.67 16.66 0.08 15.90 16.90 3 950-7-GPC5300 16.67 16.66 0.08 14.70 16.80 == ==================== ===== ===== ===== ======= ======= Finally, table 4 shows time spent by getEyePosition(). The maximum value reached around 16.7 ms (= 1/60 sec) when either PC1 or PC2 was used. One of the origins of long IFIs (Table 3) would be the lag in getEyePosition(). .. table:: Table 4 Time spent by getEyePosition() (unit: ms) == ==================== ===== ===== ===== ======= PC Setup Mean Stdev Min Max == ==================== ===== ===== ===== ======= 1 370M-7-OptiTrack 0.34 0.47 0.10 *15.50* 2 E8500-XP-OpenCV \*1 \*1 \*1 \*1 2 E8500-Ubuntu-OpenCV 0.50 1.66 0.00 *20.00* 3 950-7-OptiTrack 0.11 0.05 0.00 0.50 3 950-7-OpenCV 0.11 0.08 0.00 0.80 3 950-7-GPC5300 0.14 0.11 0.00 0.50 == ==================== ===== ===== ===== ======= In conclusion, single-PC recording caused delay in stimulus presentation and gaze recording. The longest delay oberved in this test was less than 50 ms. If a considerably powerful PC (PC3 in this test) was used for single-PC recording, delay was negligibly small. .. note:: * \*1 GazeParser.TrackinTools did not work properly. * \*2 Vsync option of VisionEgg did not work properly.