allensdk.eye_tracking package¶
Submodules¶
allensdk.eye_tracking.eye_tracking module¶
- 
class 
allensdk.eye_tracking.eye_tracking.EyeTracker(input_stream, output_stream=None, starburst_params=None, ransac_params=None, pupil_bounding_box=None, cr_bounding_box=None, generate_QC_output=False, **kwargs)[source]¶ Bases:
objectMouse Eye-Tracker.
Parameters: - input_stream (generator) – Generator that yields numpy.ndarray frames to analyze.
 - output_stream (stream) – Stream that accepts numpuy.ndarrays in the write method. None if not outputting annotations.
 - starburst_params (dict) – Dictionary of keyword arguments for PointGenerator.
 - ransac_params (dict) – Dictionary of keyword arguments for EllipseFitter.
 - pupil_bounding_box (numpy.ndarray) – [xmin xmax ymin ymax] bounding box for pupil seed point search.
 - cr_bounding_box (numpy.ndarray) – [xmin xmax ymin ymax] bounding box for cr seed point search.
 - generate_QC_output (bool) – Flag to compute extra QC data on frames.
 - **kwargs – pupil_min_value : int pupil_max_value : int cr_mask_radius : int pupil_mask_radius : int cr_recolor_scale_factor : float recolor_cr : bool adaptive_pupil: bool smoothing_kernel_size : int clip_pupil_values : bool average_iris_intensity : int
 
- 
DEFAULT_ADAPTIVE_PUPIL= False¶ 
- 
DEFAULT_AVERAGE_IRIS_INTENSITY= 40¶ 
- 
DEFAULT_CLIP_PUPIL_VALUES= True¶ 
- 
DEFAULT_CR_MASK_RADIUS= 10¶ 
- 
DEFAULT_CR_RECOLOR_SCALE_FACTOR= 1.7¶ 
- 
DEFAULT_GENERATE_QC_OUTPUT= False¶ 
- 
DEFAULT_MAX_ECCENTRICITY= 0.25¶ 
- 
DEFAULT_MAX_PUPIL_VALUE= 30¶ 
- 
DEFAULT_MIN_PUPIL_VALUE= 0¶ 
- 
DEFAULT_PUPIL_MASK_RADIUS= 40¶ 
- 
DEFAULT_RECOLOR_CR= True¶ 
- 
DEFAULT_SMOOTHING_KERNEL_SIZE= 7¶ 
- 
find_corneal_reflection()[source]¶ Estimate the position of the corneal reflection.
Returns: ellipse_parameters – (x, y, r, a, b) ellipse parameters. Return type: tuple 
- 
find_pupil(cr_parameters)[source]¶ Estimate position of the pupil.
Parameters: cr_parameters (tuple) – (x, y, r, a, b) ellipse parameters of corneal reflection, used to prepare image if recolor_cr is set. Returns: ellipse_parameters – (x, y, r, a, b) ellipse parameters. Return type: tuple 
- 
im_shape¶ Image shape.
- 
input_stream¶ Input frame source.
- 
mean_frame¶ Average frame calculated from the input source.
- 
process_image(image)[source]¶ Process an image to find pupil and corneal reflection.
Parameters: image (numpy.ndarray) – Image to process. Returns: - cr_parameters (tuple) – (x, y, r, a, b) corneal reflection parameters.
 - pupil_parameters (tuple) – (x, y, r, a, b) pupil parameters.
 - cr_error (float) – Ellipse fit error for best fit.
 - pupil_error (float) – Ellipse fit error for best fit.
 
- 
process_stream(start=0, stop=None, step=1, update_mean_frame=True)[source]¶ Get cr and pupil parameters from frames of input_stream.
By default this will process every frame in the input stream.
Parameters: - start (int) – Index of first frame to process. Defaults to 0.
 - stop (int) – Stop index for processing. Defaults to None, which runs runs until the end of the input stream.
 - step (int) – Number of frames to advance at each iteration. Used to skip frames while processing. Set to 1 to process every frame, 2 to process every other frame, etc. Defaults to 1.
 - update_mean_frame (bool) – Whether or not to update the mean frame while processing the frames.
 
Returns: - cr_parameters (numpy.ndarray) – [n_frames,5] array of corneal reflection parameters.
 - pupil_parameters (numpy.ndarray) – [n_frames,5] array of pupil parameters.
 - cr_errors (numpy.ndarray) – [n_frames,] array of fit errors for corneal reflection ellipses.
 - pupil_errors (numpy.ndarray) – [n_frames,] array of fit errors for pupil ellipses.
 
- 
recolor_corneal_reflection(cr_parameters)[source]¶ Reshade the corneal reflection with the last pupil color.
Parameters: cr_parameters (tuple) – (x, y, r, a, b) ellipse parameters for corneal reflection. 
- 
setup_pupil_finder(cr_parameters)[source]¶ Initialize image and ransac filter for pupil fitting.
If recoloring the corneal_reflection, color it in and provide a filter to exclude points that fall on the colored-in ellipse from fitting.
Parameters: cr_parameters (tuple) – (x, y, r, a, b) ellipse parameters for corneal reflection. Returns: - image (numpy.ndarray) – Image for pupil fitting. Has corneal reflection filled in if recolor_cr is set.
 - filter_function (callable) – Function to indicate if points fall on the recolored ellipse or None if not recoloring.
 - filter_parameters (tuple) – Ellipse parameters for recolor ellipse shape, which are cr_parameters with the axes scaled by cr_recolor_scale_factor.
 
- 
update_fit_parameters(starburst_params=None, ransac_params=None, pupil_bounding_box=None, cr_bounding_box=None, **kwargs)[source]¶ Update EyeTracker fitting parameters.
Parameters: - starburst_params (dict) – Dictionary of keyword arguments for PointGenerator.
 - ransac_params (dict) – Dictionary of keyword arguments for EllipseFitter.
 - pupil_bounding_box (numpy.ndarray) – [xmin xmax ymin ymax] bounding box for pupil seed point search.
 - cr_bounding_box (numpy.ndarray) – [xmin xmax ymin ymax] bounding box for cr seed point search.
 - generate_QC_output (bool) – Flag to compute extra QC data on frames.
 - **kwargs – pupil_min_value : int pupil_max_value : int cr_mask_radius : int pupil_mask_radius : int cr_recolor_scale_factor : float recolor_cr : bool adaptive_pupil: bool smoothing_kernel_size : int clip_pupil_values : bool average_iris_intensity : int
 
- 
class 
allensdk.eye_tracking.eye_tracking.PointGenerator(index_length=150, n_rays=150, cr_threshold_factor=1.2, pupil_threshold_factor=1.2, cr_threshold_pixels=10, pupil_threshold_pixels=10)[source]¶ Bases:
objectClass to find candidate points for ellipse fitting.
Candidates points are found by drawing rays from a seed point and checking for the first threshold crossing of each ray.
Parameters: - index_length (int) – Initial default length for ray indices.
 - n_rays (int) – The number of rays to check.
 - cr_threshold_factor (float) – Multiplicative factor for thresholding corneal reflection.
 - pupil_threshold_factor (float) – Multiplicative factor for thresholding pupil.
 - cr_threshold_pixels (int) – Number of pixels (from beginning of ray) to use to determine threshold of corneal reflection.
 - pupil_threshold_pixels (int) – Number of pixels (from beginning of ray) to use to determine threshold of pupil.
 
- 
DEFAULT_INDEX_LENGTH= 150¶ 
- 
DEFAULT_N_RAYS= 150¶ 
- 
DEFAULT_THRESHOLD_FACTOR= 1.2¶ 
- 
DEFAULT_THRESHOLD_PIXELS= 10¶ 
- 
get_candidate_points(image, seed_point, point_type, filter_function=None, filter_args=(), filter_kwargs=None)[source]¶ Get candidate points for ellipse fitting.
Parameters: - image (numpy.ndarray) – Image to check for threshold crossings.
 - seed_point (tuple) – (y, x) center point for ray burst.
 - point_type (str) – Either ‘cr’ or ‘pupil’. Determines if threshold crossing is high-to-low or low-to-high and which threshold_factor and threshold_pixels value to use.
 
Returns: candidate_points – List of (y, x) candidate points.
Return type: list
- 
get_threshold(ray_values, threshold_pixels, threshold_factor)[source]¶ Calculate the threshold from the ray values.
The threshold is determined from threshold_factor times the mean of the first threshold_pixels values.
Parameters: - ray_values (numpy.ndarray) – Values of the ray.
 - threshold_factor (float) – Multiplicative factor for thresholding.
 - threshold_pixels (int) – Number of pixels (from beginning of ray) to use to determine threshold.
 
Returns: threshold – Threshold to set for candidate point.
Return type: float
- 
threshold_crossing(xs, ys, values, point_type)[source]¶ Check a ray for where it crosses a threshold.
The threshold is calculated using get_threshold.
Parameters: - xs (numpy.ndarray) – X indices of ray.
 - ys (numpy.ndarray) – Y indices of ray.
 - values (numpy.ndarray) – Image values along ray.
 - point_type (str) – Either ‘cr’ or ‘pupil’. Determines if threshold crossing is high-to-low or low-to-high and which threshold_factor and threshold_pixels value to use.
 
Returns: - y_index (int) – Y index of threshold crossing.
 - x_index (int) – X index of threshold crossing.
 
Raises: ValueError– If no threshold crossing found.
- 
update_params(index_length=150, n_rays=150, cr_threshold_factor=1.2, pupil_threshold_factor=1.2, cr_threshold_pixels=10, pupil_threshold_pixels=10)[source]¶ Update starburst point generation parameters.
Parameters: - index_length (int) – Initial default length for ray indices.
 - n_rays (int) – The number of rays to check.
 - cr_threshold_factor (float) – Multiplicative factor for thresholding corneal reflection.
 - pupil_threshold_factor (float) – Multiplicative factor for thresholding pupil.
 - cr_threshold_pixels (int) – Number of pixels (from beginning of ray) to use to determine threshold of corneal reflection.
 - pupil_threshold_pixels (int) – Number of pixels (from beginning of ray) to use to determine threshold of pupil.
 
allensdk.eye_tracking.feature_extraction module¶
- 
allensdk.eye_tracking.feature_extraction.get_circle_template(radius, fill=1, surround=0)[source]¶ Get circular template for estimating center point.
Returns a cached template if it has already been computed.
Parameters: radius (int) – Radius in pixels of the circle to draw. Returns: template – Circle template. Return type: numpy.ndarray 
- 
allensdk.eye_tracking.feature_extraction.max_correlation_positions(image, template, bounding_box=None, reject_coords=None)[source]¶ Correlate image with template and return the max location.
Correlation is done with mode set to mode and method ‘fft’. It is only performed over the image region within bounding_box if it is provided. The resulting coordinates are provided in the context of the original image.
Parameters: - image (numpy.ndarray) – Image over which to convolve the kernel.
 - template (numpy.ndarray) – Kernel to convolve with the image.
 - bounding_box (numpy.ndarray) – [xmin, xmax, ymin, ymax] bounding box on the image.
 - reject_coords (tuple) – (r, c) coordinates to disallow as best fit.
 
Returns: max_position – (y, x) mean location maximum of the convolution of the kernel with the image.
Return type: tuple
allensdk.eye_tracking.fit_ellipse module¶
Module for ellipse fitting.
The algorithm for the actual fitting is detailed at http://nicky.vanforeest.com/misc/fitEllipse/fitEllipse.html.
- 
class 
allensdk.eye_tracking.fit_ellipse.EllipseFitter(minimum_points_for_fit=40, number_of_close_points=15, threshold=0.0001, iterations=20)[source]¶ Bases:
objectWrapper class for performing ransac fitting of an ellipse.
Parameters: - minimum_points_for_fit (int) – Number of points required to fit data.
 - number_of_close_points (int) – Number of candidate outliers reselected as inliers required to consider a good fit.
 - threshold (float) – Error threshold below which data should be considered an inlier.
 - iterations (int) – Number of iterations to run.
 
- 
DEFAULT_ITERATIONS= 20¶ 
- 
DEFAULT_MINIMUM_POINTS_FOR_FIT= 40¶ 
- 
DEFAULT_NUMBER_OF_CLOSE_POINTS= 15¶ 
- 
DEFAULT_THRESHOLD= 0.0001¶ 
- 
allensdk.eye_tracking.fit_ellipse.eccentricity(parameters)[source]¶ Get the eccentricity of an ellipse from the conic parameters.
Parameters: parameters (numpy.ndarray) – Conic parameters of the ellipse. Returns: eccentricity – Eccentricity of the ellipse. Return type: float 
- 
allensdk.eye_tracking.fit_ellipse.ellipse_angle_of_rotation(parameters)[source]¶ Calculate the rotation of the ellipse given the model parameters.
Calculation from http://mathworld.wolfram.com/Ellipse.html
Parameters: parameters (numpy.ndarray) – Parameters of the ellipse fit. Returns: rotation – Rotation of the ellipse. Return type: float 
- 
allensdk.eye_tracking.fit_ellipse.ellipse_axis_length(parameters)[source]¶ Calculate the semi-axes lengths of the ellipse.
Calculation from http://mathworld.wolfram.com/Ellipse.html
Parameters: parameters (numpy.ndarray) – Parameters of the ellipse fit. Returns: semi_axes – Semi-axes of the ellipse. Return type: numpy.ndarray 
- 
allensdk.eye_tracking.fit_ellipse.ellipse_center(parameters)[source]¶ Calculate the center of the ellipse given the model parameters.
Calculation from http://mathworld.wolfram.com/Ellipse.html
Parameters: parameters (numpy.ndarray) – Parameters of the ellipse fit. Returns: center – [x,y] center of the ellipse. Return type: numpy.ndarray 
- 
allensdk.eye_tracking.fit_ellipse.ellipse_pass_filter(point, ellipse_params, tolerance, pupil_intensity_estimate=None, pupil_limits=None)[source]¶ Function to pass or reject an ellipse candidate point.
Points are rejected if they fall on the border defined by ellipse_params. If pupil_limits is provided and pupil_intensity_limits falls outside it the point is rejected as well.
Parameters: - point (tuple) – (y, x) point.
 - ellipse_params (numpy.ndarray) – Ellipse parameters to check against.
 - tolerance (float) – Tolerance for determining point is on ellipse.
 - pupil_intensity_estimage (float) – Estimated intensity of the pupil used for generating the point.
 - pupil_limits (tuple) – (min, max) valid intensities for the pupil.
 
Returns: passed – True if the point passes the filter and is a good candidate for fitting.
Return type: bool
- 
allensdk.eye_tracking.fit_ellipse.fit_ellipse(data, max_radius=None, max_eccentricity=None)[source]¶ Fit an ellipse to data.
Parameters: - data (numpy.ndarray) – [n,2] array of (y,x) data points.
 - max_radius (float) – Maximum radius to allow.
 - max_eccentricity (float) – Maximum eccentricity to allow.
 
Returns: - ellipse_parameters (tuple) – (x, y, angle, semi_axis1, semi_axis2) ellipse parameters.
 - error (float) – Mean error of the fit.
 
- 
allensdk.eye_tracking.fit_ellipse.fit_errors(parameters, data)[source]¶ Calculate the errors on each data point.
Parameters: - parameters (numpy.ndarray) – Paramaters of the fit ellipse model.
 - data (numpy.ndarray) – [n,2] array of (y,x) points.
 
Returns: Squared error of the fit at each point in data.
Return type: numpy.ndarray
- 
allensdk.eye_tracking.fit_ellipse.not_on_ellipse(point, ellipse_params, tolerance)[source]¶ Function that tests if a point is not on an ellipse.
Parameters: - point (tuple) – (y, x) point.
 - ellipse_params (numpy.ndarray) – Ellipse parameters to check against.
 - tolerance (float) – Tolerance for determining point is on ellipse.
 
Returns: not_on – True if point is not within tolerance of the ellipse.
Return type: bool
- 
allensdk.eye_tracking.fit_ellipse.quadratic_parameters(conic_parameters)[source]¶ Get quadratic ellipse coefficients from conic parameters.
Calculation from http://mathworld.wolfram.com/Ellipse.html
Parameters: conic_parameters (tuple) – (x, y, angle, semi_axis1, semi_axis2) ellipse parameters. Returns: quadratic_parameters – Polynomial parameters for the ellipse. Return type: tuple 
allensdk.eye_tracking.frame_stream module¶
- 
class 
allensdk.eye_tracking.frame_stream.CvInputStream(movie_path, num_frames=None, process_frame_cb=None)[source]¶ Bases:
allensdk.eye_tracking.frame_stream.FrameInputStream- 
frame_shape¶ 
- 
num_frames¶ 
- 
 
- 
class 
allensdk.eye_tracking.frame_stream.CvOutputStream(movie_path, frame_shape, frame_rate=30.0, fourcc='H264', is_color=True, block_size=1)[source]¶ 
allensdk.eye_tracking.plotting module¶
- 
class 
allensdk.eye_tracking.plotting.Annotator(output_stream=None)[source]¶ Bases:
objectClass for annotating frames with ellipses.
Parameters: output_stream (object) – Object that implements a write method that accepts ndarray frames as well as open and close methods. - 
COLORS= {'cr': (0, 0, 255), 'pupil': (255, 0, 0)}¶ 
- 
annotate_frame(frame, pupil_parameters, cr_parameters, seed=None, pupil_candidates=None)[source]¶ Annotate an image with ellipses for cr and pupil.
If the annotator was initialized with an output stream, the frame will be written to the stream.
Parameters: - frame (numpy.ndarray) – Grayscale image to annotate.
 - pupil_parameters (tuple) – (x, y, r, a, b) ellipse parameters for pupil.
 - cr_parameters (tuple) – (x, y, r, a, b) ellipse parameters for corneal reflection.
 - seed (tuple) – (y, x) seed point of pupil.
 - pupil_candidates (list) – List of (y, x) candidate points used for the ellipse fit of the pupil.
 
Returns: rgb_frame – Color annotated frame.
Return type: numpy.ndarray
- 
annotate_with_cumulative_cr(frame, filename=None)[source]¶ Annotate frame with all cr ellipses from the density map.
Parameters: - frame (numpy.ndarray) – Grayscale frame to annotate.
 - filename (string) – Filename to save annotated image to, if provided.
 
Returns: rgb_frame – Annotated color frame.
Return type: numpy.ndarray
- 
annotate_with_cumulative_pupil(frame, filename=None)[source]¶ Annotate frame with all pupil ellipses from the density map.
Parameters: - frame (numpy.ndarray) – Grayscale frame to annotate.
 - filename (string) – Filename to save annotated image to, if provided.
 
Returns: rgb_frame – Annotated color frame.
Return type: numpy.ndarray
- 
compute_density(frame, pupil_parameters, cr_parameters)[source]¶ Update the density maps with from the current frame.
Parameters: - frame (numpy.ndarray) – Input frame.
 - pupil_parameters (tuple) – (x, y, r, a, b) ellipse parameters for pupil.
 - cr_parameters (tuple) – (x, y, r, a, b) ellipse parameters for corneal reflection.
 
- 
initiate_cumulative_data(shape)[source]¶ Initialize density arrays to zeros of the correct shape.
Parameters: shape (tuple) – (height, width) to make the density arrays. 
- 
update_rc(name, ellipse_parameters, shape)[source]¶ Cache new row and column ellipse border points.
Parameters: - name (string) – “pupil” or “cr” to reference the correct object in the lookup table.
 - ellipse_parameters (tuple) – Conic parameters of the ellipse.
 - shape (tuple) – (height, width) shape of image used to generate ellipse border points at the right rows and columns.
 
Returns: cache_updated – Whether or not new values were cached.
Return type: bool
- 
 
- 
allensdk.eye_tracking.plotting.annotate_with_box(image, bounding_box, rgb_vals=(255, 0, 0), filename=None)[source]¶ Annotate image with bounding box.
Parameters: - image (numpy.ndarray) – Grayscale or RGB image to annotate.
 - bounding_box (numpy.ndarray) – [xmin, xmax, ymin, ymax] bounding box.
 - rgb_vals (tuple) – (r, g, b) 0-255 color values for annotation.
 - filename (string) – Filename to save annotated image to, if provided.
 
Returns: rgb_image – Annotated color image.
Return type: numpy.ndarray
- 
allensdk.eye_tracking.plotting.annotate_with_cumulative(frame, density, rgb_vals=(255, 0, 0), filename=None)[source]¶ Annotate frame with all values from density.
Parameters: - frame (numpy.ndarray) – Grayscale frame to annotate.
 - density (numpy.ndarray) – Array of the same shape as frame with non-zero values where the image should be annotated.
 - rgb_vals (tuple) – (r, g, b) 0-255 color values for annotation.
 - filename (string) – Filename to save annotated image to, if provided.
 
Returns: rgb_frame – Annotated color frame.
Return type: numpy.ndarray
- 
allensdk.eye_tracking.plotting.color_by_mask(rgb_image, mask, rgb_vals=(255, 0, 0))[source]¶ Color image at points indexed by mask.
The image is recolored in-place.
Parameters: - rgb_image (numpy.ndarray) – Color image to draw into.
 - mask (numpy.ndarray) – Boolean mask of points to color in.
 - rgb_vals (tuple) – (r, g, b) 0-255 color values for annotation.
 
- 
allensdk.eye_tracking.plotting.color_by_points(rgb_image, row_points, column_points, rgb_vals=(255, 0, 0))[source]¶ Color image at points indexed by row and column vectors.
The image is recolored in-place.
Parameters: - rgb_image (numpy.ndarray) – Color image to draw into.
 - row_points (numpy.ndarray) – Vector of row indices to color in.
 - column_points (numpy.ndarray) – Vector of column indices to color in.
 - rgb_vals (tuple) – (r, g, b) 0-255 color values for annotation.
 
- 
allensdk.eye_tracking.plotting.ellipse_perimeter_points(ellipse_params, image_shape)[source]¶ Generate row, column indices for ellipse perimeter.
Parameters: - ellipse_params (tuple) – (x, y, r, a b) ellipse parameters.
 - image_shape (tuple) – (height, width) shape of image.
 
Returns: - row_points (numpy.ndarray) – Row indices for ellipse perimeter.
 - column_points (numpy.ndarray) – Column indices for ellipse perimeter.
 
- 
allensdk.eye_tracking.plotting.ellipse_points(ellipse_params, image_shape)[source]¶ Generate row, column indices for filled ellipse.
Parameters: - ellipse_params (tuple) – (x, y, r, a b) ellipse parameters.
 - image_shape (tuple) – (height, width) shape of image.
 
Returns: - row_points (numpy.ndarray) – Row indices for filled ellipse.
 - column_points (numpy.ndarray) – Column indices for filled ellipse.
 
- 
allensdk.eye_tracking.plotting.get_filename(output_folder, prefix, image_type)[source]¶ Helper function to build image filename.
Parameters: - output_folder (string) – Folder for images.
 - prefix (string) – Image filename without extension.
 - image_type (string) – File extension for image (e.g. ‘.png’).
 
Returns: filename – Fill filename of image, or None if no output folder.
Return type: string
- 
allensdk.eye_tracking.plotting.get_rgb_frame(frame)[source]¶ Convert a grayscale frame to an RGB frame.
If the frame passed in already has 3 channels, it is simply returned.
Parameters: frame (numpy.ndarray) – Image frame. Returns: rgb_frame – [height,width,3] RGB frame. Return type: numpy.ndarray 
- 
allensdk.eye_tracking.plotting.plot_cumulative(pupil_density, cr_density, output_dir=None, show=False, image_type='.png')[source]¶ Plot cumulative density of ellipse fits for cr and pupil.
Parameters: - pupil_density (numpy.ndarray) – Accumulated density of pupil perimeters.
 - pupil_density – Accumulated density of cr perimeters.
 - output_dir (string) – Output directory to store images. Images aren’t saved if None is provided.
 - show (bool) – Whether or not to call pyplot.show() after generating both plots.
 - image_type (string) – Image extension for saving plots.
 
- 
allensdk.eye_tracking.plotting.plot_density(density, title=None, filename=None, show=False)[source]¶ Plot cumulative density.
Parameters: - density (numpy.ndarray) – Accumulated 2-D density map to plot.
 - title (string) – Title for the plot.
 - filename (string) – Filename to save the plot to.
 - show (bool) – Whether or not to call pyplot.show() after generating the plot.
 
- 
allensdk.eye_tracking.plotting.plot_summary(pupil_params, cr_params, output_dir=None, show=False, image_type='.png')[source]¶ Plot timeseries of various pupil and cr parameters.
Generates plots of pupil and cr parameters against frame number. The plots include (x, y) position, angle, and (semi-minor, semi-major) axes seperately for pupil and cr, for a total of 6 plots.
Parameters: - pupil_params (numpy.ndarray) – Array of pupil parameters at every frame.
 - cr_params (numpy.ndarray) – Array of cr parameters at every frame.
 - output_dir (string) – Output directory for storing saved images of plots.
 - show (bool) – Whether or not to call pyplot.show() after generating the plots.
 - image_type (string) – File extension to use if saving images to output_dir.
 
- 
allensdk.eye_tracking.plotting.plot_timeseries(x1, label1, x2=None, label2=None, title=None, filename=None, show=False)[source]¶ Helper function to plot up to 2 timeseries against index.
Parameters: - x1 (numpy.ndarray) – Array of values to plot.
 - label1 (string) – Label for x1 timeseries.
 - x2 (numpy.ndarray) – Optional second array of values to plot.
 - label2 (string) – Label for x2 timeseries.
 - title (string) – Title for the plot.
 - filename (string) – Filename to save the plot to.
 - show (bool) – Whether or not to call pyplot.show() after generating the plot.
 
allensdk.eye_tracking.ransac module¶
- 
class 
allensdk.eye_tracking.ransac.RansacFitter[source]¶ Bases:
object- 
fit(fit_function, error_function, data, threshold, minimum_points_for_fit, number_of_close_points, iterations, **kwargs)[source]¶ Find a best fit to a model using ransac.
Parameters: - fit_function (callable) – Method that fits a model to data.
 - error_function (callable) – Function that calculates error given parameters and a subset of data. Returns array of errors, one for each sample.
 - data (numpy.ndarray) – Matrix of data points of shape (#samples, #items/sample).
 - threshold (float) – Error threshold below which data should be considered an inlier.
 - minimum_points_for_fit (int) – Number of points required to fit data.
 - number_of_close_points (int) – Number of candidate outliers reselected as inliers required to consider a good fit.
 - iterations (int) – Number of iterations to run.
 - **kwargs – Additional constraint keyword arguments passed to fit_function.
 
Returns: - best_params (numpy.ndarray) – Best parameters of the model.
 - best_error (float) – Best error in the fitting.
 
Raises: ValueError: – If there is less data than minimum_points_for_fit.
- 
 
- 
allensdk.eye_tracking.ransac.check_outliers(error_function, parameters, data, outlier_indices, threshold)[source]¶ Check if any outliers should be inliers based on initial fit.
Parameters: - error_function (callable) – Function that calculates error given parameters and a subset of data. Returns array of errors, one for each sample.
 - parameters (numpy.ndarray) – Model parameters after some fit.
 - data (numpy.ndarray) – Matrix of data points of shape (#samples, #items/sample).
 - outlier_indices (numpy.ndarray) – Index array for initial outlier guess.
 - threshold (float) – Error threshold below which data should be considered an inlier.
 
Returns: Index array of new inliers.
Return type: numpy.ndarray
- 
allensdk.eye_tracking.ransac.fit_iteration(fit_function, error_function, data, threshold, minimum_points_for_fit, number_of_close_points, **kwargs)[source]¶ Perform one iteration of ransac model fitting.
Parameters: - fit_function (callable) – Method that fits a model to data.
 - error_function (callable) – Function that calculates error given parameters and a subset of data. Returns array of errors, one for each sample.
 - data (numpy.ndarray) – Matrix of data points of shape (#samples, #items/sample).
 - threshold (float) – Error threshold below which data should be considered an inlier.
 - minimum_points_for_fit (int) – Number of points required to fit data.
 - number_of_close_points (int) – Number of candidate outliers reselected as inliers required to consider a good fit.
 - **kwargs – Additional constraint keyword arguments passed to fit_function.
 
Returns: (model parameters, model error)
Return type: tuple
- 
allensdk.eye_tracking.ransac.partition_candidate_indices(data, minimum_points_for_fit)[source]¶ Generation indices to partition data into inliers/outliers.
Parameters: - data (np.ndarray) – Matrix of data points of shape (#samples, #items/sample).
 - minimum_points_for_fit (int) – Minimum number of points required to attempt fit.
 
Returns: (inliers, outliers) tuple of index arrays for potential
Return type: tuple
allensdk.eye_tracking.utils module¶
- 
allensdk.eye_tracking.utils.generate_ray_indices(index_length, n_rays)[source]¶ Generate index arrays for rays emanating in a circle from a point.
Rays have start point at 0,0.
Parameters: - index_length (int) – Length of each index array.
 - n_rays (int) – Number of rays to generate. Rays are evenly distributed about 360 degrees.
 
Returns: (xs, ys) tuple of [n_rays,index_length] index matrices.
Return type: tuple
- 
allensdk.eye_tracking.utils.get_ray_values(xs, ys, image)[source]¶ Get values of image along a set of rays.
Parameters: - xs (np.ndarray) – X indices of rays.
 - ys (np.ndarray) – Y indices of rays.
 - image (np.ndarray) – Image to get values from.
 
Returns: List of arrays of image values along each ray.
Return type: list
- 
allensdk.eye_tracking.utils.good_coordinate_mask(xs, ys, shape)[source]¶ Generate a coordinate mask inside shape.
Parameters: - xs (np.ndarray) – X indices.
 - ys (np.ndarray) – Y indices.
 - shape (tuple) – (height, width) shape of image.
 
Returns: Logical mask for xs and xs to ensure they are inside image.
Return type: np.ndarray
- 
allensdk.eye_tracking.utils.rotate_rays(xs, ys, angles)[source]¶ Rotate index arrays about angles.
Parameters: - xs (np.ndarray) – Unrotated x-index array of shape [1,n].
 - ys (np.ndarray) – Unrotated y-index array of shape [1,n].
 - angles (np.adarray) – Angles over which to rotate of shape [m,1].
 
Returns: (xs, ys) tuple of [m,n] index matrices.
Return type: tuple
Module contents¶
Top-level package for AllenSDK Eye Tracking.