Updates to IMU-based activity detection
Updates to project structure:
- deleted libduplo
- deleted metawear
- renamed libstats -> assemblystats
- renamed libprimesense -> primesense_datastream
- renamed pymetawear_logging -> metaweardevice
- renamed sweep_inference_params -> sweep_inference_param
- moved StatsPipeline from compute_stats.py into its own file
Updates to annotation interface:
- incorporated BlockAssembly object to parse and display annotated state
- added display box for notes
- unbind u/i/j/k keys from frame navigation (use arrow keys only from now on)
- cosmetic updates
- refactoring, style improvements
Updates to data collection interface:
- style improvements
Updates to BlockAssembly:
- visualization methods take file extension args, return image filename
- style improvements
Updates to compute_stats.py:
- move sub-experiment code into its own function
- change exception handling if script is run from ipython
- refactored, deleted redundant code
- style improvements
Updates to definitions.py:
- added imu/video sample rates
- added block activity label definitions
- style improvements
- moved metadata dtypes from DuploCorpus
- moved event2str method (duplicated in compute_stats/libduplo)
Updates to DuploCorpus:
- added method to read CSV-format notes
- all definitions are now imported from definitions.py
- style improvements
Updates to InferencePipeline:
- added subclass labels for supervised training of activity/likelihood model
- separated data processing for rgb/depth and accel/gyro
Updates to inferstate.py:
- read/write/cache notes
- added subclass labels
- separated data processing
Updates to labels.py:
- moved actions2str from compute_stats
- renamed extractBlockActivitySeqs -> extractBlockActionSeqs
- new implementation of extractBlockActivitySeq: parses notes files in format "grasp/release [, ]*"
Updates to metaweardevice.py:
- style improvements
Updates to metrics.py:
- renamed 'edge' metrics to 'avg' metrics
Updates to models.py:
- likelihood model takes optional subclass label sequences
- HMM can be initialized with extra counts during parameter estimation (see Hmm.fit())
Updates to primesense_datastream.py:
- style improvements
Updates to rawdata.py:
- preprocessSignalSeqs can handle NoneType args
Updates to utils.py:
- Added window length, stride length computation functions