We welcome contributions to OpenEM! Please follow our guidelines below for issues and pull requests. We also have a section on adding new algorithm models to OpenEM.
Before starting work on OpenEM, feel free to contact the project maintainers at [email protected]. We are happy to discuss your ideas and help you define a path forward.
- Make sure your code conforms to the Google style guide for C++. Python code should be checked using pylint and each file should have a score of at least 9.0.
- Before initiating a pull request, please make sure you can still run both the top level train and test scripts for the relevant portions of code modified.
- If you are modifying the inference scripts, please ensure the python and C# bindings still work.
- Pull requests will be accepted when two project members have reviewed and approved it.
Issues should include the following:
- A brief summary of the issue.
- Whether the issue occurs in the docker image or Windows native.
- Steps to reproduce the issue.
One modification we expect users may want to make is to try a different network architecture. Our architectures are defined in the following files:
train
|-- openem_train
| |-- inception
| | |-- inception.py
| |-- rnn
| | |-- rnn.py
| |-- ssd
| | |-- ssd.py
| |-- unet
| | |-- unet.py
A function at the top of each of these files (named rnn_model, inception_model, etc.) defines the model architecture. You can try modifying these functions to improve performance. If you find an architecture that consistently outperforms the original, let us know or create a pull request.