-
0.3 (dev): This is a major release, refactoring most of
pysaliency.datasets
including some breaking changes.- Feature:
Scanpaths
is a new class for storing scanpaths. It has a similar API to the oldFixationTrains
, but exclusively cares about scanpaths. For example, the length of a Scanpaths instance is the number of scanpaths, not the number of fixations. It is intended to make iterating over and working with scanpaths more convenient. - Feature:
ScanpathFixations
is a new subclass ofFixations
intended for handling fixations that come from scanpaths. It is intended to replace the oldFixationTrains
class.ScanpathFixations
has ascanpaths: Scanpaths
attribute storing the source scanpaths (what used to be stored manually astrain_xs
etc inFixationTrains
). UnlikeFixationTrains
,ScanpathFixations
does not have any attributes that are not derived from the scanpaths.FixationTrains
is now a deprecated subclass ofScanpathFixations
which adds the old properties and constructor and allows for attributes which are neither scanpath attributes nor scanpath fixation attributes. - Feature:
VariableLengthArray
for inuititively handling data like scanpaths where each row can have a different length.Fixations.x_Hist
,Fixations.y_hist
,Scanpaths.xs
etc are now instances ofVariableLengthArray
. Fixations.lengths
has been renamed toFixations.scanpath_history_length
to make it clear that it is the length of the scanpath history.Fixations.lengths
is now a deprecated alias.- In general, naming convention for attriutes has been changed to use the plural form if the attribute is a list of values for each
element (i.e.,
Scanpaths.xs
) and the singular form if the attribute is a single value (i.e.,Scanpaths.length
,Fixations.x
). This resulted in renamingFixations.subjects
toFixations.subject
. The old name is now a deprecated alias. - Bugfix: Compatibility with torch 2.2 and numpy 2.0
- Bugfix!: The download location of the RARE2012 model changed. The new source code results in slightly different predictions.
- Feature: The RARE2007 model is now available as
pysaliency.external_models.RARE2007
. It's execution requires MATLAB. - matlab scripts are now called with the
-batch
option instead of-nodisplay -nosplash -r
, which should behave better. - Enhancement: preloaded stimulus ids are passed on to subsets of Stimuli and FileStimuli.
- Feature:
pysaliency.read_hdf5
now takes additional keyword arguments which are passed to the respective class methods. This allows, e.g., to loadFileStimuli
with caching disabled.
- Feature:
-
0.2.22:
- Enhancement: New Tutorial.
- Bugfix:
SaliencyMapModel.AUC
failed if some images didn't have any fixations. - Feature:
StimulusDependentSaliencyMapModel
- Bugfix: The NUSEF dataset scaled some fixations not correctly to image coordinates. Also, we now account for some typos in the dataset source data.
- Feature: CrossvalMultipleRegularizations and GeneralMixtureKernelDensityEstimator in baseline utils (names might change!)
- Feature: DVAAwareScanpathModel
- Feature: ShuffledBaselineModel is now much more efficient and able to handle large numbers of stimuli. hence, ShuffledSimpleBaselineModel is not necessary anymore and a deprecated alias to ShuffledBaselineModel
- Feature: ShuffledBaselineModel can now compute predictions for very large numbers of stimuli without needing to have all individual predictions in memory due to a recursive reduce logsumexp implementation.
- Feature:
plotting.plot_scanpath
to visualize scanpaths and saccades. WIP, expect the API to change! - Feature: DeepGaze I and DeepGazeIIE models
- Feature: COCO Freeview dataset
- Feature:
optimize_for_information_gain(framework='torch', ...) now supports a
cache_directory`, where intermediate steps are cached. This supports resuming crashed optimization runs. - Bugfix: fixed some edge cases in
optimize_for_information_gain(framework='torch')
- Feature: COCO Seach18 dataset
- Feature:
FixationTrains.train_lengths
- Feature:
FixationTrains.scanpath_fixation_attributes
allows handling of per-fixation attributes on scanpath level, e.g. fixation durations. According attributes as in a Fixations instance are automatically created, e.g. for durations there will be an attributedurations
and an attributeduration_hist
. Also for scanpath_attributes (e.g., attributes applying to a whole scanpath, such as task) will also generate an attribute for each fixation to make this information available in Fixations instance. - Feature:
scanpaths_from_fixations
reconstructs a FixationTrains object from a Fixations instance - Bugfix:
t_hist
got replaced withy_hist
in Fixations instances (but luckily not in FixationTrains instances) - Bugfix: torch code was broken due to changes in torch 1.11
- Bugfix: SALICON dataset download did not work anymore
- Bugfix: NUSEF datast links changed
-
0.2.21:
- Added new datasets: PASCAL-S and DUT-OMRON
- Feature: FixedStimulusSizeModel and DVAAwareModel
- Feature: Fixations finally support len()
- Experimental feature: conditional_log_densities(stimuli, fixations) and conditional_saliency_maps(...). This is WIP to enable batch processing in models.
- Fallback models for stimulus dependent models
- MixtureScanpathModel
- Reimplemented AUC for special case of only one positive sample, leading to substantial speedup
- There is a new version of the CAT2000 train dataset which fixes some details in the processing. Since it changes the dataset, by default the old processing is used.
- Feature: ShuffledSimpleBaselineModel. Baseline model to be used with ShuffledAUCSaliencyMapModel in cases where using ShuffledBaselineModel is not feasible.
pysaliency.get_toronto
now returns aFixations
instance instead ofFixationTrains
since we don not have scanpath information.pysaliency.baseline_utils.KDEGoldModel
now supports a keyword argumentgrid_spacing
which controls how densly the log density of the KDEModel is computed before it is linearly interpolated. This can substantially speed up computations on high resolution images.- Feature:
pysaliency.precomputed_models.SaliencyMapModelFromArchive
andModelFromArchive
for loading model predictions from ZIP, TAR and RAR files. - Bugfix: all matlab scripts where missing in the pip installation since the change to setuptools.
-
0.2.20:
- Stimuli now support attributes, just like Fixations. The CAT2000 train and test datasets now have the stimulus categories as attribute.
- failure to download and setup a dataset will no longer result in leftover dataset files that keep pysaliency from trying again.
- crossvalidation splits now support stratifying stimulus attributes
- the MIT1003 dataset now also contains the history of fixation durations
- FixationIndexDependentModel
- Bugfix: The CC of a constant saliency map wrt to a nonconstant one now returns zero (instead of nan as previously).
- Feature: Added keyword argument
attributes
toFixations
constructor - Feature: Provide KLDiv and SIM as functions that can be applied to saliency maps without need for a model.
-
0.2.19:
- added pytorch implementation for optimization of similarity metric as alternative to tensorflow implementation which still uses tensorflow 1.x
- added pytorch implementation for saliency map processing as alternative to theano implementation.
- removed obsolete dependency on openmp
- made import of pytorch, theano and tensorflow optional
- bugfixes in precomputed models for stimuli sets with nested directories