public Tracker(GTCommands commands) { this.commands = commands; detectionManager = new DetectionManager(); calibration = new Calibration.Calibration(); recalibration = new Recalibration(); eyeMovement = new Classifier(); exponentialSmoother = new ExponentialSmoother(20, 0, (int)Math.Ceiling(GTSettings.Current.Processing.SmoothLevel / 5.0)); visualization = new Visualization(); server = new UDPServer(); gazeDataRaw = new GTGazeData(); gazeDataSmoothed = new GTGazeData(); processingDone = true; timerCalibrationDelay = new DispatcherTimer(); timerCalibrationDelay.Interval = TimeSpan.FromMilliseconds(calibrationDelayMilliseconds); timerCalibrationDelay.Tick += TimerCalibrationTick; logGaze = new Logger(); logGaze.Server = server; // Used to send messages back to client (log start/stop etc.) logGaze.IsEnabled = GTSettings.Current.FileSettings.LoggingEnabled; recalibration.RecalibrationAvailable += new Recalibration.RecalibrationAvailableHandler(recalibration_RecalibrationAvailable); //recalibration.OnRecalibrationAvailable +=new Recalibration.RecalibrationAvailable(recalibration_OnRecalibrationAvailable); GTSettings.Current.Processing.PropertyChanged += ProcessingSettingsPropertyChanged; timerCalibrationDelay.Tick += TimerCalibrationTick; CameraControl.Instance.FrameCaptureComplete += Camera_FrameCaptureComplete; }
private Tracker(GTCommands commands) { log.Info("Constructing Tracker..."); this.commands = commands; detectionManager = new DetectionManager(); calibration = new Calibration.Calibration(); recalibration = new Recalibration(); eyeMovement = new Classifier(); exponentialSmoother = new ExponentialSmoother(Settings.Instance.EyeMovement.SmoothNumberOfSamples, 0, (int)Math.Ceiling(Settings.Instance.EyeMovement.SmoothLevel / 5.0)); visualization = new Visualization(); server = new UDPServer(); gazeDataRaw = new GTGazeData(); gazeDataSmoothed = new GTGazeData(); gazeDazaExtended = new GTExtendedData(); processingDone = true; timerCalibrationDelay = new DispatcherTimer(); timerCalibrationDelay.Interval = TimeSpan.FromMilliseconds(calibrationDelayMilliseconds); timerCalibrationDelay.Tick += TimerCalibrationTick; logGaze = new Logger(); logGaze.Server = server; // Used to send messages back to client (log start/stop etc.) log.Info("Looking up LoggingEnabled in FileSettings"); logGaze.IsEnabled = Settings.Instance.FileSettings.LoggingEnabled; log.Info("Setting RecalibrationAvailableHandler"); recalibration.RecalibrationAvailable += new Recalibration.RecalibrationAvailableHandler(recalibration_RecalibrationAvailable); //recalibration.OnRecalibrationAvailable +=new Recalibration.RecalibrationAvailable(recalibration_OnRecalibrationAvailable); Settings.Instance.Processing.PropertyChanged += ProcessingSettingsPropertyChanged; timerCalibrationDelay.Tick += TimerCalibrationTick; if (GTHardware.Camera.Instance.Device != null) { log.Info("Setting GTHardware device OnImage EventHandler"); GTHardware.Camera.Instance.Device.OnImage += new EventHandler <GTHardware.Cameras.ImageEventArgs>(Device_OnImage); } string sDate = DateTime.Now.ToString(); sDate = sDate.Replace(" ", ""); sDate = sDate.Replace("/", ""); sDate = sDate.Replace(":", ""); log.Info("Completed constructing Tracker"); fileName2 = "c:\\temp\\log" + sDate + ".csv"; appendToFile(fileName2, "TimeStamp;GazeX;GazeY;DiameterLeftPupil;DiameterRightPupil"); /*fileName = "c:\\temp\\log" + sDate + ".arff"; * appendToFile(fileName, "@relation 'logeye'"); * appendToFile(fileName, "@attribute TimeStamp real"); * appendToFile(fileName, "@attribute GazeX real"); * appendToFile(fileName, "@attribute GazeY real"); * appendToFile(fileName, "@attribute DiameterLeftPupil real"); * appendToFile(fileName, "@attribute DiameterRightPupil real"); * appendToFile(fileName, "@data");*/ }
public void CalibrationStart() { //if (Settings.Instance.Processing.TrackingGlints) //{ // if (Settings.Instance.Processing.NumberOfGlints == 4) // calibration = new CalibHomography(); // else // calibration = new CalibPolynomial(); //} //else //{ // calibration = new CalibPupil(); //} calibration = new Calibration.Calibration(); //server.SendMessage(GTCommands.Instance.Calibration, this.calibration.numTargets.ToString()); }
public void CopyCorners(Calibration calib) { for (int i = 0; i < calib.calibMethod.CalibrationTargets.Count; i++) { if (calib.calibMethod.CalibrationTargets[i].IsCorner) { corners[numRecalibTargets] = calib.calibMethod.CalibrationTargets[i].targetCoordinates; calibration.calibMethod.CalibrationTargets.Add(new CalibrationTarget(numRecalibTargets, calib.calibMethod.CalibrationTargets[i].targetCoordinates)); for (int j = 0; j < calib.calibMethod.CalibrationTargets[i].NumImages; j++) { calibration.calibMethod.CalibrationTargets[numRecalibTargets].pupilCentersLeft.Add(calib.calibMethod.CalibrationTargets[i].pupilCentersLeft[j]); calibration.calibMethod.CalibrationTargets[numRecalibTargets].pupilCentersRight.Add(calib.calibMethod.CalibrationTargets[i].pupilCentersRight[j]); if (GTSettings.Current.Processing.TrackingGlints) { calibration.calibMethod.CalibrationTargets[numRecalibTargets].glintsLeft.Add(calib.calibMethod.CalibrationTargets[i].glintsLeft[j]); calibration.calibMethod.CalibrationTargets[numRecalibTargets].glintsRight.Add(calib.calibMethod.CalibrationTargets[i].glintsRight[j]); } } numRecalibTargets++; } } }
private Tracker(GTCommands commands) { log.Info("Constructing Tracker..."); this.commands = commands; detectionManager = new DetectionManager(); calibration = new Calibration.Calibration(); recalibration = new Recalibration(); eyeMovement = new Classifier(); exponentialSmoother = new ExponentialSmoother(Settings.Instance.EyeMovement.SmoothNumberOfSamples, 0, (int)Math.Ceiling(Settings.Instance.EyeMovement.SmoothLevel / 5.0)); visualization = new Visualization(); server = new UDPServer(); gazeDataRaw = new GTGazeData(); gazeDataSmoothed = new GTGazeData(); gazeDazaExtended = new GTExtendedData(); processingDone = true; timerCalibrationDelay = new DispatcherTimer(); timerCalibrationDelay.Interval = TimeSpan.FromMilliseconds(calibrationDelayMilliseconds); timerCalibrationDelay.Tick += TimerCalibrationTick; logGaze = new Logger(); logGaze.Server = server; // Used to send messages back to client (log start/stop etc.) log.Info("Looking up LoggingEnabled in FileSettings"); logGaze.IsEnabled = Settings.Instance.FileSettings.LoggingEnabled; log.Info("Setting RecalibrationAvailableHandler"); recalibration.RecalibrationAvailable += new Recalibration.RecalibrationAvailableHandler(recalibration_RecalibrationAvailable); //recalibration.OnRecalibrationAvailable +=new Recalibration.RecalibrationAvailable(recalibration_OnRecalibrationAvailable); Settings.Instance.Processing.PropertyChanged += ProcessingSettingsPropertyChanged; timerCalibrationDelay.Tick += TimerCalibrationTick; if (GTHardware.Camera.Instance.Device != null) { log.Info("Setting GTHardware device OnImage EventHandler"); GTHardware.Camera.Instance.Device.OnImage += new EventHandler <GTHardware.Cameras.ImageEventArgs>(Device_OnImage); } log.Info("Completed constructing Tracker"); }
public void CalibrationStart() { //if (Settings.Instance.Processing.TrackingGlints) //{ // if (Settings.Instance.Processing.NumberOfGlints == 4) // calibration = new CalibHomography(); // else // calibration = new CalibPolynomial(); //} //else //{ // calibration = new CalibPupil(); //} calibration = new Calibration.Calibration(); //server.SendMessage(GTCommands.Instance.Calibration, this.calibration.numTargets.ToString()); }
private Tracker(GTCommands commands) { log.Info("Constructing Tracker..."); this.commands = commands; detectionManager = new DetectionManager(); calibration = new Calibration.Calibration(); recalibration = new Recalibration(); eyeMovement = new Classifier(); exponentialSmoother = new ExponentialSmoother(Settings.Instance.EyeMovement.SmoothNumberOfSamples, 0, (int)Math.Ceiling(Settings.Instance.EyeMovement.SmoothLevel / 5.0)); visualization = new Visualization(); server = new UDPServer(); gazeDataRaw = new GTGazeData(); gazeDataSmoothed = new GTGazeData(); gazeDazaExtended = new GTExtendedData(); processingDone = true; timerCalibrationDelay = new DispatcherTimer(); timerCalibrationDelay.Interval = TimeSpan.FromMilliseconds(calibrationDelayMilliseconds); timerCalibrationDelay.Tick += TimerCalibrationTick; logGaze = new Logger(); logGaze.Server = server; // Used to send messages back to client (log start/stop etc.) log.Info( "Looking up LoggingEnabled in FileSettings" ); logGaze.IsEnabled = Settings.Instance.FileSettings.LoggingEnabled; log.Info( "Setting RecalibrationAvailableHandler" ); recalibration.RecalibrationAvailable += new Recalibration.RecalibrationAvailableHandler( recalibration_RecalibrationAvailable ); //recalibration.OnRecalibrationAvailable +=new Recalibration.RecalibrationAvailable(recalibration_OnRecalibrationAvailable); Settings.Instance.Processing.PropertyChanged += ProcessingSettingsPropertyChanged; timerCalibrationDelay.Tick += TimerCalibrationTick; if ( GTHardware.Camera.Instance.Device != null ) { log.Info( "Setting GTHardware device OnImage EventHandler" ); GTHardware.Camera.Instance.Device.OnImage += new EventHandler<GTHardware.Cameras.ImageEventArgs>( Device_OnImage ); } log.Info("Completed constructing Tracker"); }
public void StartRecalibration(Calibration calib) { CopyCorners(calib); recalibrating = true; }