General Information for Developers¶
Note
Project github: https://github.com/PUTvision/qgis-plugin-deepness
Project issues tracker: https://github.com/PUTvision/qgis-plugin-deepness/issues
Development environemnt preparation¶
Please visit README.md file in the main repository directory for instructions how to prepare the development environment.
Overview of core modules¶
- Below a general overview of core modules and classes is presented:
Deepness- Plugin entry class, managing UI and connecting it with processing functionalityDeepnessDockWidget- Core UI widget, which includes further smaller widgets. Actions started in UI (button clicks) are handled hereMapProcessingParameters- stores parameters from the UI, which will be passed to the further processing module
- (with different child classes for specialized models, e.g.
SegmentationParameters) MapProcessor- base class for processing the ortophoto. Actual processing done in specialized class, e.g.MapProcessorSegmentation.MapProcessoruses aModelBaseas the core processor of single tiles.
- Objects of this class are created and managed by the
Deepness. ModelBase- Wraps the ONNX model used during processing into a common interface (with different child classes for specialized models, e.g.Segmentorfor segmentation)
Apart from these core modules, there are many utility files, but not required to understand the core logic.
Processing data flow¶
- Core data and logic flow, on example of segmentation model on a ortophoto:
user selects some parameters, Segmentation model and ortophoto layer to process and then presses Run button
DeepnessDockWidgetis triggered, parameters from UI forms are written toSegmentationParametersobjectDeepnessDockWidgettriggersDeepnessand passes the processing parametersDeepnesscreates and startsMapProcessorSegmentationobject, initiating the processing withSegmentationParametersMapProcessorSegmentationruns in a separate processing thread, iterating over the ortophoto tile by tile. Once the processing is done, result layer is created and ‘Deepness’ is triggeredDeepnessdisplays processing result (success or error message)