Name | pysodmetrics JSON |
Version |
1.5.0
JSON |
| download |
home_page | None |
Summary | A simple and efficient metric implementation for grayscale/binary image segmentation like salient object detection, camouflaged object detection, and medical image segmentation. |
upload_time | 2025-08-09 03:41:33 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.6 |
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.
|
keywords |
salient object detection
camouflaged object detection
medical image segmentation
saliency detection
metric
deep learning
|
VCS |
 |
bugtrack_url |
|
requirements |
numpy
scipy
scikit-image
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
<div align="center">
<img src="https://github.com/lartpang/PySODMetrics/blob/main/images/logo.png?raw=true" alt="Logo" width="320" height="auto">
</br>
<h2>PySODMetrics: A simple and efficient implementation of SOD metrics</h2>
<a href="./readme_zh.md"><img src="https://img.shields.io/badge/README-%E4%B8%AD%E6%96%87-blue"></a>
<img src="https://img.shields.io/pypi/v/pysodmetrics">
<img src="https://img.shields.io/pypi/dm/pysodmetrics?label=pypi%20downloads&logo=PyPI&logoColor=white">
<img src="https://img.shields.io/github/last-commit/lartpang/PySODMetrics">
<img src="https://img.shields.io/github/last-commit/lartpang/PySODMetrics">
<img src="https://img.shields.io/github/release-date/lartpang/PySODMetrics">
<img src="https://api.star-history.com/svg?repos=lartpang/PySODMetrics&type=Date" alt="Star History Chart" width="600" height="auto">
</div>
## Introduction
A simple and efficient implementation of SOD metrics.
- Based on `numpy` and `scipy`
- 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](https://github.com/lartpang/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` |
| 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
- [examples/test_metrics.py](./examples/test_metrics.py)
- [examples/metric_recorder.py](./examples/metric_recorder.py)
## Reference
- [Matlab Code](https://github.com/DengPingFan/CODToolbox) by DengPingFan(<https://github.com/DengPingFan>): In our comparison (the test code can be seen under the `test` folder), the result is consistent with the code.
- The matlab code needs to change `Bi_sal(sal>threshold)=1;` to `Bi_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](https://github.com/DengPingFan/CODToolbox/issues/1).
- 2021-12-20 (version `1.3.0`): Due to the difference between numpy and matlab, in version `1.2.x`, there are very slight differences on some metrics between the results of the matlab code and ours. The [recent PR](https://github.com/lartpang/PySODMetrics/pull/3) 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 version `1.2.x` for them.
- <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}
}
```
Raw data
{
"_id": null,
"home_page": null,
"name": "pysodmetrics",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "lartpang <lartpang@gmail.com>",
"keywords": "salient object detection, camouflaged object detection, medical image segmentation, saliency detection, metric, deep learning",
"author": null,
"author_email": "lartpang <lartpang@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/c1/74/281d291a3eb1c94eb1b2216b895aa4fe19fabc49d42fbc78b1ca96d70a41/pysodmetrics-1.5.0.tar.gz",
"platform": null,
"description": "<div align=\"center\">\n <img src=\"https://github.com/lartpang/PySODMetrics/blob/main/images/logo.png?raw=true\" alt=\"Logo\" width=\"320\" height=\"auto\">\n </br>\n <h2>PySODMetrics: A simple and efficient implementation of SOD metrics</h2>\n <a href=\"./readme_zh.md\"><img src=\"https://img.shields.io/badge/README-%E4%B8%AD%E6%96%87-blue\"></a>\n <img src=\"https://img.shields.io/pypi/v/pysodmetrics\">\n <img src=\"https://img.shields.io/pypi/dm/pysodmetrics?label=pypi%20downloads&logo=PyPI&logoColor=white\">\n <img src=\"https://img.shields.io/github/last-commit/lartpang/PySODMetrics\">\n <img src=\"https://img.shields.io/github/last-commit/lartpang/PySODMetrics\">\n <img src=\"https://img.shields.io/github/release-date/lartpang/PySODMetrics\">\n <img src=\"https://api.star-history.com/svg?repos=lartpang/PySODMetrics&type=Date\" alt=\"Star History Chart\" width=\"600\" height=\"auto\">\n</div>\n\n## Introduction\n\nA simple and efficient implementation of SOD metrics.\n\n- Based on `numpy` and `scipy`\n- Verification based on Fan's matlab code <https://github.com/DengPingFan/CODToolbox>\n- The code structure is simple and easy to extend\n- The code is lightweight and fast\n\nYour improvements and suggestions are welcome.\n\n### Related Projects\n\n- [PySODEvalToolkit](https://github.com/lartpang/PySODEvalToolkit): A Python-based Evaluation Toolbox for Salient Object Detection and Camouflaged Object Detection\n\n### Supported Metrics\n\n| Metric | Sample-based | Whole-based | Related Class |\n| ----------------------------------------- | ------------------------------------------- | ------------------------ | ------------------------------------- |\n| MAE | soft,si-soft | | `MAE` |\n| S-measure $S_{m}$ | soft | | `Smeasure` |\n| weighted F-measure ($F^{\\omega}_{\\beta}$) | soft | | `WeightedFmeasure` |\n| Multi-Scale IoU | max,avg,adp,bin | | `MSIoU` |\n| E-measure ($E_{m}$) | max,avg,adp | | `Emeasure` |\n| F-measure (old) ($F_{beta}$) | max,avg,adp | | `Fmeasure` (Will be removed!) |\n| 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` |\n| BER | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | `FmeasureV2`+`BERHandler` |\n| Dice | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | `FmeasureV2`+`DICEHandler` |\n| FPR | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | `FmeasureV2`+`FPRHandler` |\n| IoU | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | `FmeasureV2`+`IOUHandler` |\n| Kappa | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | `FmeasureV2`+`KappaHandler` |\n| Overall Accuracy | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | `FmeasureV2`+`OverallAccuracyHandler` |\n| Precision | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | `FmeasureV2`+`PrecisionHandler` |\n| Recall | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | `FmeasureV2`+`RecallHandler` |\n| Sensitivity | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | `FmeasureV2`+`SensitivityHandler` |\n| Specificity | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | `FmeasureV2`+`SpecificityHandler` |\n| TNR | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | `FmeasureV2`+`TNRHandler` |\n| TPR | max,avg,adp,bin,si-max,si-avg,si-adp,si-bin | bin,si-max,si-avg,si-bin | `FmeasureV2`+`TPRHandler` |\n\n**NOTE**:\n- Sample-based `si-` variants calculate the sample-specific mean/maximum based on the sample-based fm sequence with a shape of `(num_targets, 256)`.\n- Whole-based `si-` variants calculate the mean/maximum based on the average fm sequence across all targets from all samples.\n- Because the `*adp` variants are specialized for `sample-based` computation, they do not support whole-based computation.\n\n## Usage\n\nThe core files are in the folder `py_sod_metrics`.\n\n- **[Latest, but may be unstable]** Install from the source code: `pip install git+https://github.com/lartpang/PySODMetrics.git`\n- **[More stable]** Install from PyPI: `pip install pysodmetrics`\n\n### Examples\n\n- [examples/test_metrics.py](./examples/test_metrics.py)\n- [examples/metric_recorder.py](./examples/metric_recorder.py)\n\n## Reference\n\n- [Matlab Code](https://github.com/DengPingFan/CODToolbox) by DengPingFan(<https://github.com/DengPingFan>): In our comparison (the test code can be seen under the `test` folder), the result is consistent with the code.\n - The matlab code needs to change `Bi_sal(sal>threshold)=1;` to `Bi_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](https://github.com/DengPingFan/CODToolbox/issues/1).\n - 2021-12-20 (version `1.3.0`): Due to the difference between numpy and matlab, in version `1.2.x`, there are very slight differences on some metrics between the results of the matlab code and ours. The [recent PR](https://github.com/lartpang/PySODMetrics/pull/3) 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 version `1.2.x` for them.\n- <https://en.wikipedia.org/wiki/Precision_and_recall>\n\n```text\n@inproceedings{Fmeasure,\n title={Frequency-tuned salient region detection},\n author={Achanta, Radhakrishna and Hemami, Sheila and Estrada, Francisco and S{\\\"u}sstrunk, Sabine},\n booktitle=CVPR,\n number={CONF},\n pages={1597--1604},\n year={2009}\n}\n\n@inproceedings{MAE,\n title={Saliency filters: Contrast based filtering for salient region detection},\n author={Perazzi, Federico and Kr{\\\"a}henb{\\\"u}hl, Philipp and Pritch, Yael and Hornung, Alexander},\n booktitle=CVPR,\n pages={733--740},\n year={2012}\n}\n\n@inproceedings{Smeasure,\n title={Structure-measure: A new way to evaluate foreground maps},\n author={Fan, Deng-Ping and Cheng, Ming-Ming and Liu, Yun and Li, Tao and Borji, Ali},\n booktitle=ICCV,\n pages={4548--4557},\n year={2017}\n}\n\n@inproceedings{Emeasure,\n title=\"Enhanced-alignment Measure for Binary Foreground Map Evaluation\",\n author=\"Deng-Ping {Fan} and Cheng {Gong} and Yang {Cao} and Bo {Ren} and Ming-Ming {Cheng} and Ali {Borji}\",\n booktitle=IJCAI,\n pages=\"698--704\",\n year={2018}\n}\n\n@inproceedings{wFmeasure,\n title={How to evaluate foreground maps?},\n author={Margolin, Ran and Zelnik-Manor, Lihi and Tal, Ayellet},\n booktitle=CVPR,\n pages={248--255},\n year={2014}\n}\n\n@inproceedings{MSIoU,\n title = {Multiscale IOU: A Metric for Evaluation of Salient Object Detection with Fine Structures},\n author = {Ahmadzadeh, Azim and Kempton, Dustin J. and Chen, Yang and Angryk, Rafal A.},\n booktitle = ICIP,\n year = {2021},\n}\n\n@inproceedings{SizeInvarianceVariants,\n title = {Size-invariance Matters: Rethinking Metrics and Losses for Imbalanced Multi-object Salient Object Detection},\n author = {Feiran Li and Qianqian Xu and Shilong Bao and Zhiyong Yang and Runmin Cong and Xiaochun Cao and Qingming Huang},\n booktitle = ICML,\n year = {2024}\n}\n```\n",
"bugtrack_url": null,
"license": "MIT License\n \n Copyright (c) 2020 lartpang\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in all\n copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n ",
"summary": "A simple and efficient metric implementation for grayscale/binary image segmentation like salient object detection, camouflaged object detection, and medical image segmentation.",
"version": "1.5.0",
"project_urls": {
"Bug Tracker": "https://github.com/lartpang/PySODMetrics/issues",
"Changelog": "https://github.com/lartpang/PySODMetrics/blob/master/CHANGELOG.md",
"Documentation": "https://github.com/lartpang/PySODMetrics",
"Homepage": "https://github.com/lartpang/PySODMetrics",
"Repository": "https://github.com/lartpang/PySODMetrics.git"
},
"split_keywords": [
"salient object detection",
" camouflaged object detection",
" medical image segmentation",
" saliency detection",
" metric",
" deep learning"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "e06181c35616fcd2f24df4618cc0841fe22e0c4c8717b8b4e7044dbf8e3843f2",
"md5": "7f97546d42c3a9f6679f8be68617d43b",
"sha256": "68199356b6441956f335dc2e622ecc649bb79d45f3c5232be892ef85200a1bde"
},
"downloads": -1,
"filename": "pysodmetrics-1.5.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "7f97546d42c3a9f6679f8be68617d43b",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 22283,
"upload_time": "2025-08-09T03:41:32",
"upload_time_iso_8601": "2025-08-09T03:41:32.108144Z",
"url": "https://files.pythonhosted.org/packages/e0/61/81c35616fcd2f24df4618cc0841fe22e0c4c8717b8b4e7044dbf8e3843f2/pysodmetrics-1.5.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "c174281d291a3eb1c94eb1b2216b895aa4fe19fabc49d42fbc78b1ca96d70a41",
"md5": "0c493b55bac3c0e6daf5f954b634bdc7",
"sha256": "60fda919299529cfb32df054dd4708335f72f60836d72821deda0c1c7c6e1903"
},
"downloads": -1,
"filename": "pysodmetrics-1.5.0.tar.gz",
"has_sig": false,
"md5_digest": "0c493b55bac3c0e6daf5f954b634bdc7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 22143,
"upload_time": "2025-08-09T03:41:33",
"upload_time_iso_8601": "2025-08-09T03:41:33.480434Z",
"url": "https://files.pythonhosted.org/packages/c1/74/281d291a3eb1c94eb1b2216b895aa4fe19fabc49d42fbc78b1ca96d70a41/pysodmetrics-1.5.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-09 03:41:33",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "lartpang",
"github_project": "PySODMetrics",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [
{
"name": "numpy",
"specs": [
[
"<",
"2.0"
],
[
">=",
"1.18"
]
]
},
{
"name": "scipy",
"specs": [
[
"<",
"2.0"
],
[
">=",
"1.5"
]
]
},
{
"name": "scikit-image",
"specs": [
[
"<",
"0.25"
],
[
">=",
"0.19"
]
]
}
],
"lcname": "pysodmetrics"
}