Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
54 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
Development Roadmap | ||
========== | ||
|
||
IO module `deepposekit.io` | ||
------ | ||
- [x] Abstract data IO with `deepposekit.io.BaseGenerator` | ||
- [x] Support for custom data sets by subclassing `deepposekit.io.BaseGenerator` | ||
- [x] Support for loading DeepLabCut formatted data `deepposekit.io.DLCDataGenerator` | ||
- [x] Utility function for initializing a new image set for annotation `deepposekit.io.utils.initialize_image_set` | ||
- [x] Utility function for merging a new image set to an existing dataset `deepposekit.io.utils.merge_new_images` | ||
- [ ] Add methods for appending new images to `deepposekit.io.BaseGenerator` with | ||
`deepposekit.io.BaseGenerator.append_images()` | ||
- [ ] Utility function for merging multiple arbitrary `deepposekit.io.BaseGenerator` with `deepposekit.io.utils.merge_data` | ||
- [ ] Utility function for converting `deepposekit.io.DLCDataGenerator` data to `deepposekit.io.DataGenerator` data and vice-versa | ||
- [ ] Support more DLC features within `deepposekit.io.DLCDataGenerator`. | ||
- [ ] Support passing multiple `deepposekit.io.BaseGenerator` for `deepposekit.io.TrainingGenerator`, but ensure all are compatible before training the model. | ||
|
||
Annotation module `deepposekit.annotate` | ||
------ | ||
- [ ] Add support for `deepposekit.annotate.Annotator` to edit DeepLabCut formatted data `deepposekit.io.DLCDataGenerator`. Ensure this does not destroy compatibility with DLC. | ||
- [ ] Remove extra step of initializing a skeleton and remove `deepposekit.annotate.Skeleton` | ||
- [ ] Abstract `deepposekit.annotate.gui.GUI` and `deepposekit.annotate.Annotator` to use new `deepposekit.io.BaseGenerator` with abstracted data IO | ||
- [ ] Develop submodule `deepposekit.annotate.outliers` with functions for identifying outlier data for adding to data sets | ||
|
||
Models modules `deepposekit.models` | ||
------ | ||
- [x] Add `MobileNetV2` and `DenseNet` backbones to `deepposekit.models.DeepLabCut` | ||
- [ ] Support arbitrary image sizes (not just powers of 2) with `tf.keras.layers.ZeroPaddding2D` | ||
- [ ] Support dynamic image sizes with with automatic size inference. **Is this possible without reducing functionality?** | ||
|
||
Examples and Documentation | ||
------ | ||
- [ ] Improve and update docstrings across the package | ||
- [ ] Add example notebook for using custom data sets | ||
- [x] Add example notebook for using DeepLabCut formatted data | ||
- [ ] Add example for identifying outliers and appending new images to a training set | ||
|
||
Tests (once API has stabilized) | ||
------ | ||
- [ ] Import all modules and submodules | ||
- [ ] Download example data | ||
- [ ] Run training for all models | ||
- [ ] Save model | ||
- [ ] Load model | ||
- [ ] Resume training | ||
- [ ] Predict on new data | ||
|
||
Future | ||
------ | ||
- [x] Update to tf.keras (stand-alone keras will be deprecated) | ||
- [ ] Update to Tensorflow 2.0 | ||
- [ ] `deepposekit.pose3d` module? Does it make sense to support this, or just make the API abstract enough to let others use their own solution for 3D? | ||
- [ ] `deepposekit.localize` module. Train models that localize individuals using confidence maps. Update and further abstract `deepposekit.annotate`, `deepposekit.models`, etc. | ||
- [ ] `deepposekit.multiple` module. Add support for small groups of multiple individuals? Does it make sense to support this or focus on `deepposekit.localize`? |