pysodmetrics
PySODMetrics: A Simple and Efficient Implementation of Grayscale/Binary Segmentation Metrcis
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.0%) to scientific vocabulary
Keywords
Repository
PySODMetrics: A Simple and Efficient Implementation of Grayscale/Binary Segmentation Metrcis
Basic Info
- Host: GitHub
- Owner: lartpang
- License: mit
- Language: Python
- Default Branch: main
- Homepage: https://pypi.org/project/pysodmetrics/
- Size: 281 KB
Statistics
- Stars: 181
- Watchers: 2
- Forks: 21
- Open Issues: 3
- Releases: 14
Topics
Metadata Files
readme.md
Introduction
A simple and efficient implementation of SOD metrics.
- Based on
numpyandscipy - Verification based on Fan's matlab code https://github.com/DengPingFan/CODToolbox
- The code structure is simple and easy to extend
- The code is lightweight and fast
Your improvements and suggestions are welcome.
Related Projects
- PySODEvalToolkit: A Python-based Evaluation Toolbox for Salient Object Detection and Camouflaged Object Detection
Supported Metrics
| Metric | Sample-based | Whole-based | Related Class |
| ----------------------------------------- | ------------------------------------------- | ------------------------ | ------------------------------------- |
| MAE | soft,si-soft | | MAE |
| S-measure $S{m}$ | soft | | Smeasure |
| weighted F-measure ($F^{\omega}{\beta}$) | soft | | WeightedFmeasure |
| Human Correction Effort Measure | soft | | HumanCorrectionEffortMeasure |
| Multi-Scale IoU | max,avg,adp,bin | | MSIoU |
| E-measure ($E{m}$) | max,avg,adp | | Emeasure |
| F-measure (old) ($F{beta}$) | max,avg,adp | | Fmeasure (Will be removed!) |
| F-measure (new) ($F{beta}$, $F{1}$) | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | FmeasureV2+FmeasureHandler |
| BER | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | FmeasureV2+BERHandler |
| Dice | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | FmeasureV2+DICEHandler |
| FPR | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | FmeasureV2+FPRHandler |
| IoU | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | FmeasureV2+IOUHandler |
| Kappa | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | FmeasureV2+KappaHandler |
| Overall Accuracy | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | FmeasureV2+OverallAccuracyHandler |
| Precision | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | FmeasureV2+PrecisionHandler |
| Recall | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | FmeasureV2+RecallHandler |
| Sensitivity | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | FmeasureV2+SensitivityHandler |
| Specificity | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | FmeasureV2+SpecificityHandler |
| TNR | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | FmeasureV2+TNRHandler |
| TPR | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | FmeasureV2+TPRHandler |
NOTE:
- Sample-based si- variants calculate the sample-specific mean/maximum based on the sample-based fm sequence with a shape of (num_targets, 256).
- Whole-based si- variants calculate the mean/maximum based on the average fm sequence across all targets from all samples.
- Because the *adp variants are specialized for sample-based computation, they do not support whole-based computation.
Usage
The core files are in the folder py_sod_metrics.
- [Latest, but may be unstable] Install from the source code:
pip install git+https://github.com/lartpang/PySODMetrics.git - [More stable] Install from PyPI:
pip install pysodmetrics
Examples
Reference
- Matlab Code by DengPingFan(https://github.com/DengPingFan): In our comparison (the test code can be seen under the
testfolder), the result is consistent with the code.- The matlab code needs to change
Bi_sal(sal>threshold)=1;toBi_sal(sal>=threshold)=1;in https://github.com/DengPingFan/CODToolbox/blob/910358910c7824a4237b0ea689ac9d19d1958d11/Onekey_Evaluation_Code/OnekeyEvaluationCode/main.m#L102. For related discussion, please see the issue. - 2021-12-20 (version
1.3.0): Due to the difference between numpy and matlab, in version1.2.x, there are very slight differences on some metrics between the results of the matlab code and ours. The recent PR alleviated this problem. However, there are still very small differences on E-measure. The results in most papers are rounded off to three or four significant figures, so, there is no obvious difference between the new version and the version1.2.xfor them.
- The matlab code needs to change
- https://en.wikipedia.org/wiki/Precision_and_recall
```text @inproceedings{Fmeasure, title={Frequency-tuned salient region detection}, author={Achanta, Radhakrishna and Hemami, Sheila and Estrada, Francisco and S{\"u}sstrunk, Sabine}, booktitle=CVPR, number={CONF}, pages={1597--1604}, year={2009} }
@inproceedings{MAE, title={Saliency filters: Contrast based filtering for salient region detection}, author={Perazzi, Federico and Kr{\"a}henb{\"u}hl, Philipp and Pritch, Yael and Hornung, Alexander}, booktitle=CVPR, pages={733--740}, year={2012} }
@inproceedings{Smeasure, title={Structure-measure: A new way to evaluate foreground maps}, author={Fan, Deng-Ping and Cheng, Ming-Ming and Liu, Yun and Li, Tao and Borji, Ali}, booktitle=ICCV, pages={4548--4557}, year={2017} }
@inproceedings{Emeasure, title="Enhanced-alignment Measure for Binary Foreground Map Evaluation", author="Deng-Ping {Fan} and Cheng {Gong} and Yang {Cao} and Bo {Ren} and Ming-Ming {Cheng} and Ali {Borji}", booktitle=IJCAI, pages="698--704", year={2018} }
@inproceedings{wFmeasure, title={How to evaluate foreground maps?}, author={Margolin, Ran and Zelnik-Manor, Lihi and Tal, Ayellet}, booktitle=CVPR, pages={248--255}, year={2014} }
@inproceedings{MSIoU, title = {Multiscale IOU: A Metric for Evaluation of Salient Object Detection with Fine Structures}, author = {Ahmadzadeh, Azim and Kempton, Dustin J. and Chen, Yang and Angryk, Rafal A.}, booktitle = ICIP, year = {2021}, }
@inproceedings{SizeInvarianceVariants, title = {Size-invariance Matters: Rethinking Metrics and Losses for Imbalanced Multi-object Salient Object Detection}, author = {Feiran Li and Qianqian Xu and Shilong Bao and Zhiyong Yang and Runmin Cong and Xiaochun Cao and Qingming Huang}, booktitle = ICML, year = {2024} }
@inproceedings{HumanCorrectionEffortMeasure, title = {Highly Accurate Dichotomous Image Segmentation}, author = {Xuebin Qin and Hang Dai and Xiaobin Hu and Deng-Ping Fan and Ling Shao and Luc Van Gool}, booktitle = ECCV, year = {2022} } ```
Owner
- Name: Pang
- Login: lartpang
- Kind: user
- Location: China
- Company: DUT
- Website: https://lartpang.github.io
- Repositories: 12
- Profile: https://github.com/lartpang
My Conquest is the Sea of Stars.
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it using these metadata." authors: - family-names: "Pang" given-names: "Youwei" date-released: 2020-11-21 keywords: - metrics - metrics-reported - metrics-evaluation - metrics-library - salient-object-detection - camouflaged-object-detection - saliency-detection - saliency-methods license: MIT License title: "PySODMetrics" abstract: "A simple and efficient implementation of SOD metrics" url: "https://github.com/lartpang/PySODMetrics" repository-code: "https://github.com/lartpang/PySODMetrics" version: v1.4.3
GitHub Events
Total
- Create event: 4
- Release event: 4
- Issues event: 6
- Watch event: 35
- Issue comment event: 7
- Push event: 8
- Fork event: 3
Last Year
- Create event: 4
- Release event: 4
- Issues event: 6
- Watch event: 35
- Issue comment event: 7
- Push event: 8
- Fork event: 3
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 10
- Total pull requests: 1
- Average time to close issues: about 1 month
- Average time to close pull requests: about 10 hours
- Total issue authors: 9
- Total pull request authors: 1
- Average comments per issue: 2.9
- Average comments per pull request: 0.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 4
- Pull requests: 0
- Average time to close issues: about 1 month
- Average time to close pull requests: N/A
- Issue authors: 4
- Pull request authors: 0
- Average comments per issue: 2.0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- ycyinchao (2)
- esp9999 (1)
- yzw-xax (1)
- Leno-B (1)
- Chef-Steph (1)
- gsx1216 (1)
- lartpang (1)
- LYKlyk (1)
- Gi-gigi (1)
- piercus (1)
Pull Request Authors
- GewelsJI (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 1,454 last-month
- Total dependent packages: 0
- Total dependent repositories: 4
- Total versions: 12
- Total maintainers: 1
pypi.org: pysodmetrics
A simple and efficient metric implementation for grayscale/binary image segmentation like salient object detection, camouflaged object detection, and medical image segmentation.
- Homepage: https://github.com/lartpang/PySODMetrics
- Documentation: https://github.com/lartpang/PySODMetrics
- License: MIT License Copyright (c) 2020 lartpang Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
Latest release: 1.5.1
published 6 months ago
Rankings
Maintainers (1)
Dependencies
- numpy *
- scipy *
- scipy >=1.5,<2
- actions/checkout v2 composite
- actions/setup-python v2 composite