- Default path to download files is
~/.cache/epic-kitchens
instead of~/epic-kitchens
- Add
epic_kitchens.metrics
andepic_kitchens.scoring
containing method for computing metrics and manipulating model scores. Of particular note isepic_kitchens.metrics.compute_metrics
which computes top-{1,5} accuracy, many-shot precision and recall for the verb, noun and action prediction tasks.
- We now depend on
scikit-learn
for computing metrics.
- Depend on
moviepy
>= 1.0.0 due toimageio
breakingffmpeg
download capabilities.
epic_kitchens.gulp.visualisation
visualisers returnedImageSequenceClip
instead of IPython HTML display element, which caused the videos not to show up in Jupyter, these methods now return anIPython.display.HTML
element- Fix bug in
epic_kitchens.gulp.visualisation.combine_flow_uv_frames
wherehstack_frames
wasn't called withwidth_axis
correctly causing a RuntimeError
- Add sphinx 1.8.2 to requirements.txt to get RTFD to build the docs
- Add
epic_kitchens.meta
package containing helpers for downloading and reading label class definitions, and training and test set annotations. - Add
epic_kitchens.data.visualisation
package containing tools that allow you to view arbitrary action segments RGB or Flow contained in aEpicVideoDataset
usingmoviepy
. This is useful when sifting through results per instance.
- Improve documentation and bring it all in line with google doc string standards
- Add
__getitem__
method toEpicVideoDataset
to enable segments to be retrieved by ID, rather than having to obtain thevideo_segments
and filter by ID. - Make
idx
arg optional inVideoDataset.load_frames
, by default we now load all the frames for the segment, this behaviour is equivalent toVideoDataset.load_frames(segment, range(0, segment.num_frames)
- Support string paths to constructor of
EpicVideoDataset
andEpicVideoFlowDataset
- Support test datasets in
EpicVideoDataset
andEpicVideoFlowDataset
: Simply setclass_type
asNone
and the video segment'slabel
property will beNone
. - Bugfix: Gulped flow frames were read in a random order (due to the results of
glob.glob
not being sorted lexicographically), so if you have used a version prior to 1.5.0 you should discard your gulped flow, and regulp using the fixed adapter - our sincere apologies for the inconvenience caused.
WARNING: People who have gulped flow: If you have used any previous version of the library to gulp flow, then you should discard that flow and regulp the flow due to the previous version of the adapter reading frames in an unsorted manner resulting in flow segments within the gulp file being randomly shuffled.
- Add
sample_transform
kwarg toVideoDataset
, this allows you to transform each frame or optical flow stack by providing a function that takes in a list of PIL images and produces a list of PIL images - Add
segment_filter
kwarg toVideoDataset
, this allows you to selectively filter action segments from a video by providing a function that takes aVideoSegment
and makes a decision on whether to include the segment in the dataset or not, thus allowing you to filter to include or exclude specific classes etc.
- Both
epic_kitchens.preprocessing.split_segments
andepic_kitchens.gulp
now support reading CSV labels as well as a pickled labels. - Support un-narrated action segment splitting in
epic_kitchens.preprocessing.split_segments
to enable splitting using the test timestamp CSVs. - Add
--unlabelled
option toepic_kitchens.gulp
to enable gulping of test set that doesn't have label data.
- Fix crash due to passing
Path
object toos.path.lexists
inepic_kitchens.preprocessing.split_segments
on Python 3.5 (3.6+ supports this)
- Expose
epic_kitchens.preprocessing.split_segments
as an entrypoint - Add docs for
epic_kitchens.preprocessing.*
setup.py
used to importepic_kitchens
which would fail if all dependencies weren't already satisfied, which is the case in fresh virtual environments causing the installation to fail, now the metadata is kept in a separate file read in tosetup.py
to avoid this issue.
epic_kitchens.gulp
in 1.0.0rc0 didn't read in the pickled dataframe before constructing theEpicDatasetAdapter
causing an exception to be thrown therefore rendering the script useless.
- Change CLI interface of
epic_kitchens.preprocessing.split_segments
to match that ofepic_kitchens.gulp
in terms of argument ordering and whether arguments are mandatory or not.