Metadata-Version: 2.4
Name: segdan
Version: 0.1.2
Summary: AutoML framework for the construction of segmentation models.
Home-page: https://github.com/joortif/SegDAN
Author: Joaquin Ortiz de Murua Ferrero
Author-email: joortif@unirioja.es
Maintainer: Joaquin Ortiz de Murua Ferrero
Maintainer-email: joortif@unirioja.es
License: MIT license
Keywords: instance semantic segmentation pytorch huggingface embedding image analysis deep learning active learning computer vision
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python :: 3.10
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: Topic :: Scientific/Engineering :: Image Recognition
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Operating System :: OS Independent
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE.txt
Requires-Dist: albumentations>=2.0.6
Requires-Dist: huggingface_hub>=0.26.2
Requires-Dist: imagedatasetanalyzer>=0.3.4
Requires-Dist: matplotlib>=3.8.4
Requires-Dist: numpy>=1.26.4
Requires-Dist: opencv_contrib_python>=4.9.0.80
Requires-Dist: opencv_python>=4.9.0.80
Requires-Dist: opencv_python_headless>=4.9.0.80
Requires-Dist: pandas>=2.2.3
Requires-Dist: Pillow>=11.0.0
Requires-Dist: plotly>=6.0.1
Requires-Dist: PyYAML>=6.0.2
Requires-Dist: Requests>=2.32.3
Requires-Dist: scikit_learn>=1.4.2
Requires-Dist: scikit_multilearn>=0.2.0
Requires-Dist: scikit-image>=0.22.0
Requires-Dist: scipy>=1.13.0
Requires-Dist: tensorflow>=2.18.0
Requires-Dist: tkinter_tooltip>=3.1.2
Requires-Dist: tqdm>=4.66.6
Requires-Dist: ultralytics>=8.3.28
Requires-Dist: kneed>=0.8.5
Requires-Dist: lpips>=0.1.4
Requires-Dist: piq>=0.8.0
Requires-Dist: transformers>=4.38.2
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: maintainer
Dynamic: maintainer-email
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

# SegDAN



In this work, we present an AutoML framework that facilitates the construction of segmentation models implemented across multiple libraries. The framework supports users throughout the entire pipeline including the analysis and

split of datasets of images, the training of the models, and their evaluation. 



Thus, this framework will help to lower the entry barrier for applying state-of-the-art segmentation techniques.



## Architecture of the framework



The workflow is depicted in the image below and can be summarized as follows:



First, the user provides the path to a segmentation dataset, which includes a set of images and their corresponding

annotations, and some configuration parameters. 



Then, the dataset is analysed to show some statistics about it, and find possible issues (like duplicates or missing information). 



After that, the dataset is split using either a hold-out or a k-fold approach. 



Subsequently, several segmentation models are trained and compared using different metrics. 



Finally, from that comparison, the best model is selected and provided to the user. 



![Architecture of the framework](./assets/arquitecture.png)



## Compatible models



Currently, the framework is still under development, and support is limited to the [Segmentation Models](https://github.com/qubvel-org/segmentation_models.pytorch) library. The framework supports the following models for semantic segmentation:



| Model name |

|--------------|

| Unet | 

| Unet++ |

| MAnet | 

| Linknet | 

| FPN | 

| PSPNet | 

| PAN | 

| DeepLabV3 | 

| DeepLabV3+ | 

| UPerNet | 

| Segformer | 

| DPT | 



Models can be used with different encoders, that can be found in the Segmentation Models library [documentation](https://smp.readthedocs.io/en/latest/encoders.html).



## Usage



Our framework is designed to accommodate different types of users. Expert users can employ the framework as Python libraries or APIs, invoking various methods to analyse the dataset, perform data splitting, train segmentation models from

multiple libraries, and evaluate the results. In contrast, non-expert users can rely on a graphical wizard  that guides them through each step of the process, allowing them to configure and build segmentation models without

requiring programming knowledge. 



This wizard can also be employed by expert users to obtain an initial pipeline that can be later refined.

