BasicISOS 是一个用于红外弱小目标分割的框架, 目前支持:
- 单卡训练
- 从断点续训练
- 多卡训练 (采用DDP模式)
- 测试和推理
它同时包含了我们文章的官方实现 Local Contrast and Global Contextual Information Make Infrared Small Object Salient Again
当然它也可以用于其他的二分类任务 (如:医学分割、显著物体检测等)
numpy >= 1.21.2 (maybe lower is ok)
opencv >= 4.5.3 (maybe lower is ok)
pytorch >= 1.9.1 (maybe >= 1.8.1 is also ok)
albumentations >= 0.5.2
etc.
📋 注:我们所使用的所有环境在requirements.txt里,但并不一定要完全与我们所使用的环境版本相同。
如果你想要在自己的数据集上训练,你需要按照下列的结构准备数据:
|-SIRST
|-trainval
|-images
|-xxx.png
|-masks
|-xxx.png
|-test
|-images
|-xxx.png
|-masks
|-xxx.png
我们已经重新整理了 SIRST 和 IRSTD, 你可以直接下载和解压使用。
使用下面的命令进行训练:
python train.py --opt ./options/ucf_train.yaml
📋 使用代码进行训练后,它会自动在./experiments目录下创建一个文件件,里面会保存这次实验的所有logs,损失值和评价指标的tensorboard曲线, 模型参数和训练状态。
使用下面的命令进行预测:
python test.py --opt ./test_options/ucf_test.yaml
📋 简单例子:
- 下载并解压数据集
- 下载预训练权重
- 更改配置文件./test_options/test_demo.yaml, 具体地:你需要改使用的 device (cpu are not support right now), data_root and net_path使其符合你自己的环境。
你可以下载预训练权重(我们还提供了整个训练的logs):
Model name | IoU | nIoU |
---|---|---|
UCF Net | 80.89 | 78.72 |
Model name | IoU | nIoU |
---|---|---|
UCF Net | 68.92 | 69.26 |
文档会后面持续更新,包括如何定义自己的数据增强方式,如何添加自己的网络等
📋 BasicISOS v1.0 几乎由我个人完全建立的 wcyjerry (其中一些代码借鉴修改于 BasicSR), 如果你想帮助我们进行框架的维护和改进,请联系我 [email protected]
Feel free to pull requests and issues.