Changelog
3.0.0 (2023-01-09)
⚠ BREAKING CHANGES
- neuralnet: make get_state_dict return deep copy
Features
- augmentation: add jpeg2000 compression step (6700c95)
- caching: abstract face detection/feature extraction load/save with cachers (8994668)
- feature-extraction: add stationary wavelet packets extraction (905c78a)
- nn: add load_from_checkpoint argument to optimizer when fine tuning (32c41d5)
- utils: add glob_multiple utility function (51328a3)
Bug Fixes
- cli: add pretty printing of exceptions when not verbose (26a374d)
- dataset: allow data augmentation to skip failing step (f5e6b96)
- neuralnet: make get_state_dict return deep copy (7236c50)
2.0.0 (2022-12-12)
⚠ BREAKING CHANGES
- augmentation: change default N2 noise value for print&scan simulation
- dataset: remove automatic bgr to rgb conversion
- cli: reset seed before training and before evaluation
- augmentation: change signature of augmentation process_element
Features
- augmentation: add grayscale augmentation (b81d2db)
- augmentation: add jpeg and resize augmentations (5b52035)
- augmentation: add print&scan augmentation step (458394b)
- augmentation: add stack config to grayscale step (a79e642)
- config: add json metrics file report (4032d95)
- dataset: allow for empty test set (ef11f07)
- feature-extraction: add prnu, fourier and wavelets (4393e3e)
- loaders: add cfd/cfdmorph loaders (4454797)
- loaders: add morph level args to CFDMorph loader (f273cc5)
- loaders: add png and jpg loading for cfd and cfdmorph (0106e99)
- model: add feature inception resnet (d247360)
- model: use 8 instead of 5 decimals in scores (5b818d4)
- preprocessing: add dataset-variant preprocessing (daa6247)
- preprocessing: add select channel and color space conversions (b8795b9)
- preprocessing: make maximum value configurable for each channel (ef58d51)
Bug Fixes
- augmentation: change default N2 noise value for print&scan simulation (428957d)
- augmentation: make print&scan sigma proportional to image diagonal (4ce23e1)
- callbacks: fix missing image report if fine tuning (9b7abb6)
- cli: reset seed before training and before evaluation (3d8d62b)
- dataset: fix use before assign in offline processing (677d798)
- model: mitigate memory leak in model evaluation (a7919b6)
Code Refactoring
- augmentation: change signature of augmentation process_element (cab004f)
- dataset: remove automatic bgr to rgb conversion (5e28a29)
1.0.6 (2022-12-08)
Bug Fixes
- deps: update dependency scikit-learn to ~1.2.0 (c856597)
1.0.5 (2022-12-07)
Bug Fixes
- deps: update dependency wandb to v0.13.6 (65436b3)
1.0.4 (2022-11-20)
Bug Fixes
- deps: update dependency numpy to v1.23.5 (061aea3)
1.0.3 (2022-11-09)
Bug Fixes
- deps: update dependency tensorboard to ~2.11.0 (c2bdf22)
1.0.2 (2022-11-04)
Bug Fixes
- deps: update dependency wandb to v0.13.5 (2fa7a78)
1.0.1 (2022-11-03)
Bug Fixes
- deps: update dependency matplotlib to v3.6.2 (e192a41)
1.0.0 (2022-11-02)
Features
- add logging (474f39f)
- augmentation: add applies_to field (8a1a21e)
- augmentation: add augmentation steps (2eb2b8e)
- callbacks: add early stopping (ad48f03)
- callbacks: add memory profiling to tensorboard (5fdd28f)
- callbacks: add model checkpoint (b5ffef8)
- callbacks: add steps count (13b7ea4)
- callbacks: add tensorboard batch viz, graph (c7c868e)
- callbacks: add tensorboard callback (a86ddeb)
- cli: add --no-warmup argument to skip warmup (c9fce89)
- cli: add cli argparser (ac5cc8c)
- cli: add configurable warmup workers count (171bc21)
- cli: add model fitting to cli (21e0d0c)
- cli: avoid creating train/val workers when only inferencing (0258090)
- config: add config model (6060d89)
- config: add configurable seed (0f43c1a)
- config: add templating to scores files path (1a2c3e5)
- dataset: add check to make sure all elements have the same number of x (97993c9)
- dataset: add dataset element object (4754cfb)
- dataset: add dataset factory and torch dataset (c1080f9)
- dataset: add dataset loader (9627071)
- dataset: add explicit loader with args (e105f53)
- dataset: add length (fec1bae)
- dataset: add stats printing (8bc2a73)
- dataset: add warmup function (3b78208)
- dataset: create testing groups and rework splitting (ac433b3)
- face-detection: add dlib detector (b78add1)
- face-detection: add face detector module (3767762)
- face-detection: add opencv and mtcnn detectors (cf0cc4e)
- feature-extraction: add feature extractors (2dafd04)
- loaders: add biometix morphed loader (1ecc55a)
- loaders: add morphdb loader (6de92b8)
- loaders: add pmdb loader (a74c60b)
- loaders: add several loaders (553f258)
- losses: add adam (56992b3)
- metrics: add accuracy (2ebd862)
- metrics: add eer and bpcer@apcer (0f25bc7)
- metrics: add epoch_* metrics for tensorboard, checkpoint and early stopping callbacks (212351a)
- metrics: add metrics (7938b00)
- metrics: add tpr and tnr (cea5757)
- metrics: allow multiple values in one metric (e45cddd)
- metrics: expose device in which metrics are run (c50a2fc)
- model: add alexnet, vgg and resnet (81b603f)
- model: add base model class (ded81c9)
- model: add inception resnet (6fbe362)
- model: add mobilenet (cbdfa5f)
- model: add neural network class (4d0eff2)
- model: add random guesser (a4dd65a)
- model: add save/load checkpoint (097c78f)
- model: add squeezenet (7e6b44d)
- model: add vision transformer (1c441ff)
- model: move scores file path eval to model score computation (ecf21f8)
- optimizers: add binary cross entropy (3f34637)
- preprocessing: add normalization preprocessing (230650a)
- preprocessing: add preprocessing phase after feature extraction (47c35e4)
- preprocessing: add uint8 -> float32 preprocessing (24bf94b)
- registry: add - as ignored char (1b395c7)
- registry: add transparent registrable classes (3da9dd6)
- registry: allow snake case names (9925ad9)
- registry: make kwargs with _ assignable only explicitly (906c73c)
Bug Fixes
- add dataset root to dataset element (c07e304)
- augmentation: change signature of step to take only the image (bb161e2)
- callbacks: add mkdir to model checkpoint target directory (dc8c170)
- callbacks: change bona fide to live image reporting (f25c69b)
- callbacks: fix tensorboard graph/image display (598ef5a)
- callbacks: import early stopping (d097f89)
- callbacks: remove tensorboard graph (b3ed308)
- cli: create dataloaders just for warming up for better progress reporting (bf77bb7)
- cli: disable persistent workers if no workers are used (8ff3170)
- cli: use consume to warm up the datasets (4a302ef)
- config: allow for no preprocessing (5df3bfc)
- config: change DirectoryPath to str for yet-to-be directories (b096dbf)
- config: fix arg name cannot start with underscore (9745aa3)
- config: make args default to empty (3ddb895)
- config: validate paths without checking their existence (397bad0)
- dataset: add missing y label to yielded element (cb98631)
- dataset: add randomization of dataset at each epoch (7842a32)
- dataset: allow float32 images (755c1a2)
- dataset: apply color and channel transposion (3e9f853)
- dataset: force gc collection if not loaded from cache (45e1353)
- dataset: make face detection offline (8c97c30)
- dataset: remove offline processing when not warming up (eb6ae71)
- dataset: remove warmup function and instead use boolean flag (28b42de)
- dataset: skip elements if face detection or feature extraction fails (d67702c)
- dataset: use specialized list to avoid memory leaks (cd3b3ac)
- deps: update dependency matplotlib to v3.6.1 (429ca2e)
- deps: update dependency numpy to v1.23.4 (70ab22f)
- deps: update dependency scikit-learn to v1.1.3 (cfc8a7e)
- deps: update dependency scipy to v1.9.2 (7c84265)
- deps: update dependency scipy to v1.9.3 (5b49637)
- face-detection: clip bounding box inside image (cfadaca)
- face-detection: fix numpy arrays not json serializable (714ef60)
- face-detection: take biggest bounding box for opencv/mtcnn multiple results (8d96535)
- loaders: make amsl loader deterministic (5e8b92f)
- metrics: adapt bpcer@apcer to be more lax (2374786)
- metrics: add conditional to remove nan cases (5158c87)
- metrics: improve display of accuracy and bpcer@apcer (4a68287)
- metrics: use abstract property for name (acad600)
- model: add list case to _dict_to_device and fix prediction scores accumulation (a8f6c47)
- model: add missing definition of resnet model if pretrained (ef090a7)
- model: apply sigmoid to logits output, remove cumulative loss (5b3b2d6)
- model: change scores file format (6bc5b9d)
- model: fix epoch loading from state dict (c32ee11)
- model: import neural nets module for registration (08fc220)
- model: load metrics from model constructor (445cdff)
- model: move metrics reset outside batch processing (bbfbb68)
- model: move predictions to correct device when computing metrics (8f5df94)
- nn: don't load callbacks if not training (c6879b2)
- preprocessing: add interpolation to resize (7ee7580)
- preprocessing: redo args validation for normalize (db7e546)
- registry: fix bug when loading class with args (365d942)
- registry: move args sanitization to config (a690b80)
- use more accurate way of counting steps in data loader (c726320)