Skip to main content
Logo

PyIRSTDMetrics: A simple and efficient implementation for the IRSTD performance analysis

arXiv

News

  • 2025-9-23: Our paper (Rethinking Evaluation of Infrared Small Target Detection) accepted by NeurIPS 2025 (D&B) has been released on the arXiv (2509.16888).

Introduction

A simple and efficient implementation for the IRSTD performance analysis.

Your improvements and suggestions are welcome.

Supported Metrics

Metric Sample-based Whole-based Related Class Level
IoU max,avg,adp,bin (nIoU) bin (IoU) CMMetrics+IOUHandler pixel
F1 max,avg,adp,bin bin CMMetrics+FmeasureHandler pixel
Precision max,avg,adp,bin bin CMMetrics+PrecisionHandler pixel
Recall max,avg,adp,bin bin CMMetrics+RecallHandler pixel
TPR max,avg,adp,bin bin CMMetrics+TPRHandler pixel
FPR max,avg,adp,bin bin CMMetrics+FPRHandler pixel
Pd/Fa ✔ ProbabilityDetectionAndFalseAlarmRate (like MatchingBasedMetrics+DistanceOnlyMatching) target
Pd/Fa ✔ ShootingRuleBasedProbabilityDetectionAndFalseAlarmRate target
Pd/Fa ✔ MatchingBasedMetrics+DistanceOnlyMatching/OPDCMatching target
hIoU ✔ MatchingBasedMetrics+OPDCMatching hybrid
hIoU-based loc error analysis ✔ HierarchicalIoUBasedErrorAnalysis
hIoU-based seg error analysis ✔ HierarchicalIoUBasedErrorAnalysis

NOTE:

  • If you want to align the original implementation, use DistanceOnlyMatching/ProbabilityDetectionAndFalseAlarmRate.
  • If you want a more reasonable matching effect, use OPDCMatching we designed.
  • hIoU is a new metric that balances both pixel-level and target-level performance analysis and we provide a detailed error analysis tool based on it.

As shown in plot_average_metrics of examples/metric_recorder.py:

  • precision and recall sequences can be used to plot the PR curve.
  • TPR and FPR sequences can be used to plot the ROC curve.

Usage

The core files are in the folder py_irstd_metrics.

  • [Latest, but may be unstable] Install from the source code: pip install git+https://github.com/lartpang/PyIRSTDMetrics.git
  • [More stable] Install from PyPI: pip install pyirstdmetrics

Examples

Performance Improvements

  • In v1.0.2, we significantly optimized the OPDC matching computation (OPDCMatching).

Benchmark: v1.0.1 vs v1.0.2

To reproduce the benchmark, see examples/benchmark_metrics.py.

Thanks

  • BasicIRSTD is a PyTorch-based open-source and easy-to-use toolbox for infrared small target detction (IRSTD).

Citation

@misc{HierarchicalIoUBasedAnalysis,
  title         = {Rethinking Evaluation of Infrared Small Target Detection},
  author        = {Youwei Pang and Xiaoqi Zhao and Lihe Zhang and Huchuan Lu and Georges El Fakhri and Xiaofeng Liu and Shijian Lu},
  year          = {2025},
  eprint        = {2509.16888},
  archiveprefix = {arXiv},
  primaryclass  = {cs.CV},
}
@inproceedings{IRSTD-ACM-nIoU,
  title     = {Asymmetric Contextual Modulation for Infrared Small Target Detection},
  booktitle = WACV,
  author    = {Dai, Yimian and Wu, Yiquan and Zhou, Fei and Barnard, Kobus},
  year      = {2021},
  volume    = {},
  number    = {},
  pages     = {949-958},
  doi       = {10.1109/WACV48630.2021.00099},
  issn      = {2642-9381},
  month     = {Jan},
}
@article{IRSTD-DNANet-PdFa,
  title   = {Dense Nested Attention Network for Infrared Small Target Detection},
  author  = {Li, Boyang and Xiao, Chao and Wang, Longguang and Wang, Yingqian and Lin, Zaiping and Li, Miao and An, Wei and Guo, Yulan},
  journal = IEEE_J_IP,
  year    = {2023},
  volume  = {32},
  number  = {},
  pages   = {1745-1758},
  doi     = {10.1109/TIP.2022.3199107},
  issn    = {1941-0042},
  month   = {},
}
@article{MIRSTD-ShootingRules-DTUM,
  title   = {Direction-Coded Temporal U-Shape Module for Multiframe Infrared Small Target Detection},
  author  = {Ruojing Li and Wei An and Chao Xiao and Boyang Li and Yingqian Wang and Miao Li and Yulan Guo},
  journal = {IEEE Transactions on Neural Networks and Learning Systems},
  year    = {2023},
  volume  = {36},
  pages   = {555-568},
}

Metadata

Release files for pyirstdmetrics 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyirstdmetrics 1.0.2
File Size Uploaded
pyirstdmetrics-1.0.2.tar.gz 16.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyirstdmetrics 1.0.2
File Interpreter ABI Platform
pyirstdmetrics-1.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 30.1 kB

Release files / pyirstdmetrics-1.0.2.tar.gz

Download URL pyirstdmetrics-1.0.2.tar.gz
Size 16.1 kB
Tags Source
SHA-256 checksum
How to use checksums
ee608f526d673d1e3a58a219114a71c8ac2c5fdd3c9d44d6f392d2577ceb7ecb
BLAKE2b-256 checksum
How to use checksums
abf96a52d22aad66ab48f2b49dc2f0447183bbc611cfbd1754363f96b5114ffe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 23, 2026.

Transparency log

Release files / pyirstdmetrics-1.0.2-py3-none-any.whl

Download URL pyirstdmetrics-1.0.2-py3-none-any.whl
Size 14.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3268eb40a0f8b119e8848a0a630451dab7442a034f82c65aa997852bb6f116e1
BLAKE2b-256 checksum
How to use checksums
f102d538f022f74c45423f233825fbff83fbfe93c6ee4257ebdbdbf0822fb6a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 23, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page