伪装物体检测 (CVPR2020-口头报告)
0. 前言
-
欢迎加入COD社区! 我们创建了一个微信群,你可以通过添加联系人(微信ID:CVer222)加入。请附上你的单位。
-
本仓库包括详细介绍、强大的基准模型(搜索与识别网络,SINet)以及一键评估代码,用于伪装物体检测(COD)。
-
如果你对我们的论文有任何问题,请随时通过电子邮件联系樊登平或纪戈鹏。如果你在研究中使用SINet或评估工具箱,请引用本文。
0.1. :fire: 新闻 :fire:
- [2021/07/07] :boom: SINet的最新增强版本即将发布,该版本已被IEEE TPAMI 2022接收(论文 | GitHub)。SINet-V2可以在保持实时推理的同时,大幅超越现有COD方法的性能。
- [2020/10/22] :boom: 训练代码可通过电子邮件(dengpfan@gmail.com)获取。 请提供你的姓名和单位。请注意代码仅可用于研究目的。
- [2020/11/21] 更新评估工具: Bi_cam(cam>threshold)=1 -> Bi_cam(cam>=threshold)=1;
- [2020/10/22] 对于等式(4): j = k+1, M -> j = m, k-1。 (注意m是特定层,在我们的论文中应等于1)。
- [2020/09/09] SINet是开放基准网站(https://paperswithcode.com/task/camouflaged-object-segmentation)上的最佳方法。
- [2020/08/27] 更新了表3的描述(基线模型使用训练设置(iii)而非(iv)进行训练)。
- [2020/08/05] 在线演示已发布! (http://mc.nankai.edu.cn/cod)。
- [2020/06/11] 我们重新组织了训练集,列在2.2. 使用部分,请重新下载。
- [2020/05/05] :boom: 发布测试代码。
- [2020/04/25] 训练/测试代码即将更新...
0.2. 目录
0.3. 文件结构
SINet
├── EvaluationTool
│ ├── CalMAE.m
│ ├── Enhancedmeasure.m
│ ├── Fmeasure_calu.m
│ ├── main.m
│ ├── original_WFb.m
│ ├── S_object.m
│ ├── S_region.m
│ └── StructureMeasure.m
├── Images
│ ├── CamouflagedTask.png
│ ├── CamouflagingFromMultiView.png
│ ├── CmpResults.png
│ ├── COD10K-2.png
│ ├── COD10K-3.png
│ ├── COVID'19-Infection.png
│ ├── locust detection.png
│ ├── new_score_1.png
│ ├── PolypSegmentation.png
│ ├── QuantitativeResults-new.png
│ ├── SampleAquaticAnimals.png
│ ├── Search-and-Rescue.png
│ ├── SINet.png
│ ├── SubClassResults-1.png
│ ├── SubClassResults.png
│ ├── Surface defect Detection2.png
│ ├── TaskRelationship.png
│ ├── Telescope.png
│ └── UnderwaterEnhancment.png
├── MyTest.py
├── README.md
├── requirement.txt
└── Src
├── backbone
├── __init__.py
├── SearchAttention.py
├── SINet.py
└── utils
1. 任务关系
图1: 任务关系。给定一张输入图像(a),我们展示了(b)全景分割(检测包括背景和物体在内的通用对象)、(c)显著性目标检测(检测吸引人注意力的孤立目标)以及(d)提出的隐蔽目标检测任务的真实标注,其目标是检测具有与自然栖息地相似模式的物体。在这个例子中,两只蝴蝶的边界与香蕉融为一体,使它们难以识别。
图2: 给定一张输入图像(a),我们展示了(b)全景分割(检测通用物体包括背景和物体)、(c)显著实例/物体检测(检测吸引人类注意力的物体)和(d)所提出的伪装物体检测任务的真值图,该任务的目标是检测与自然栖息地具有相似模式(如边缘、纹理或颜色)的物体。在这个例子中,两只蝴蝶的边界与香蕉融为一体,使它们难以识别。这项任务比传统的显著物体检测或通用物体检测要困难得多。
显著物体检测(SOD)基准工作的参考文献
[1] 视频SOD: 将更多注意力转移到视频显著物体检测上。CVPR, 2019。(项目主页)
[2] RGB SOD: 杂乱中的显著物体:将显著物体检测带到前景。ECCV, 2018。(项目主页)
[3] RGB-D SOD: 重新思考RGB-D显著物体检测:模型、数据集和大规模基准。TNNLS, 2020。(项目主页)
[4] 协同SOD: 深入研究协同显著物体检测。CVPR, 2020。(项目主页)
2. 提出的基线方法
2.1. 概述
图3: 我们的SINet框架概述,包括两个主要组件:感受野(RF)和部分解码器组件(PDC)。RF旨在模仿人类视觉系统中RF的结构。PDC重现了动物捕食的搜索和识别阶段。SA = [71]中描述的搜索注意力函数。详见第4节。
2.2. 使用方法
训练和测试实验使用PyTorch在一块24GB显存的GeForce RTX TITAN GPU上进行。
注意,我们的模型也支持低内存GPU,这意味着你可以降低批次大小 (在
apex-mode=O1
模式下每张图像约419 MB,在apex-mode=O2
模式下每张图像约305 MB)
-
配置环境(先决条件):
注意,SINet仅在具有以下环境的Ubuntu操作系统上进行了测试。 它可能也适用于其他操作系统,但我们不能保证。
-
在终端中创建虚拟环境:
conda create -n SINet python=3.6
。 -
安装必要的包:
pip install -r requirements.txt
。 -
(可选:仅用于训练)安装NVIDIA-Apex 以使用混合精度加速训练过程。 (安装说明) (在CUDA-10.0和Cudnn-7.4下)。
-
-
下载训练和测试集:
-
下载新的测试数据集(COD10K-test + CAMO-test + CHAMELEON)并将其移动到
./Dataset/TestDataset/
, 可以在这个Google Drive链接或百度网盘链接(提取码:z83z)中找到。 -
下载新的训练数据集(COD10K-train),可以在这个Google Drive链接或百度网盘链接(提取码:djq2)中找到。请参考我们的原始论文了解其他训练数据。
-
-
测试配置:
-
下载所有预训练模型和测试数据后,只需运行
MyTest.py
即可生成最终的预测图: 替换你的训练模型目录(--model_path
)并指定推理掩码的保存目录(--test_save
) -
请注意,我们重新训练了我们的模型(在下图中标记为$\diamondsuit$),采用Apex库的混合训练策略(
mode=O1
), 在40个epoch后获得了更好的性能。这里我们提供了一个新的预训练模型 (百度网盘 [提取码:2pp2]/Google Drive)。之后,我们将尝试基于不同骨干网络的SINet来提高性能, 并提供更全面的比较。
-
-
评估你训练的模型:
- 一键评估使用MATLAB代码编写(修改自链接),
请按照
main.m
中的说明操作,只需运行它即可在./EvaluationTool/EvaluationResults/Result-CamObjDet/
中生成评估结果。
- 一键评估使用MATLAB代码编写(修改自链接),
请按照
3. 结果
3.1. 定性比较
图4: 我们的SINet和两个表现最佳的基线方法在COD10K上的定性结果。详情请参阅我们的论文。
3.2. 定量比较(总体/子类)
表1:不同数据集上的定量结果。最佳得分以粗体突出显示。
表2:我们COD10K数据集中各子类的结构度量(Sα)定量结果-(1/2)。每个类别的最佳得分以粗体突出显示。
表3:我们COD10K数据集中各子类的结构度量(Sα)定量结果-(2/2)。每个类别的最佳得分以粗体突出显示。
3.3. 结果下载
4. 提出的COD10K数据集
图5:从我们的COD10K中提取的20个子类的个体样本(2/5)–水生动物。
图6:提出的COD10K数据集中注释的多样性和细致程度。与先前工作中仅提供粗粒度对象级注释(存在三种主要偏差,如水印嵌入、粗糙注释和遮挡)不同,我们提供了六种不同的注释,包括边缘级(第4行)、对象级(第5行)、实例级(第6行)、边界框(第7行)和属性(第8行)。更多属性详情请参阅论文。
图7:我们标注重新验证阶段的规范化质量控制。严格遵守四个主要的拒绝或接受标准,以接近注释准确性的上限。
5. 评估工具箱
我们提供了完整且公平的一键式评估工具箱,用于在统一标准内进行基准测试。 更多信息请参考以下链接: Matlab版本:https://github.com/DengPingFan/CODToolbox Python版本:https://github.com/lartpang/PySODMetrics
6. 潜在应用
- 医疗(息肉分割和COVID-19感染分割诊断) 更多详情请参考此页面(https://github.com/DengPingFan/Inf-Net)。
图8:肺部感染分割。
图9:CT轴向切片中COVID-19感染区域的示例,其中红色和绿色区域分别表示磨玻璃影和实变。图片来源于此处。
(COVID-19 CT分割数据集(链接:https://medicalsegmentation.com/covid19/,访问时间:2020-04-11)。)
- 农业(蝗虫检测以防止入侵)
图10:蝗灾检测。
- 艺术(例如,用于逼真的图像混合或娱乐艺术)
图11:答案可在此处找到(从多个视角对物体进行伪装,CVPR 2014。)
- 计算机视觉(例如,用于搜索和救援工作,或稀有物种发现)
图13:搜索和救援以拯救生命。
- 水下图像增强
图14:更多详情请参考"一个水下图像增强基准数据集及其他,TIP2019"。
- 表面缺陷检测
图15:更多详细信息请参考"基于纹理分析技术的表面缺陷检测最新进展综述,2008年"。
7. 用户研究测试
--> 点击此处探索更多有趣内容(YouTube链接) <--
8. 引用
如果您认为本工作有用,请引用我们的论文:
@inproceedings{fan2020Camouflage,
title={Camouflaged Object Detection},
author={Fan, Deng-Ping and Ji, Ge-Peng and Sun, Guolei and Cheng, Ming-Ming and Shen, Jianbing and Shao, Ling},
booktitle={IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
year={2020}
}
9. 许可证
-
COD10K数据集仅供非商业用途使用。
-
您不得直接或间接地复制、使用或传播COD10K数据集或任何内容,或由此衍生的任何工作成果或数据用于商业目的。
本代码仅供学术交流使用,不得用于商业目的。如需商业使用,请与我联系。
在遵守以下条件的情况下,允许redistribution和使用源代码,无论是否经过修改:
-
源代码的redistribution必须保留上述版权声明、本条件列表和以下免责声明。
-
以二进制形式redistribution必须在随分发提供的文档和/或其他材料中复制上述版权声明、本条件列表和以下免责声明
本软件由版权所有者和贡献者"按原样"提供,不作任何明示或暗示的保证,包括但不限于对适销性和特定用途适用性的保证。在任何情况下,版权所有者或贡献者均不对任何直接、间接、偶然、特殊、惩戒性或后果性损害(包括但不限于替代商品或服务的采购;使用、数据或利润的损失;或业务中断)承担责任,无论是基于合同、严格责任还是侵权行为(包括疏忽或其他原因)的任何责任理论,即使事先被告知可能发生此类损害。
10. 致谢
我们要感谢CHAMELEON和CAMO数据集的作者们的工作。他们在这些数据集上付出了巨大努力,推动了这一领域的发展。我们还要感谢图像标注人员以及Wenguan Wang、Geng Chen和Hongsong Wang提供的有见地的反馈和讨论。
11. 待办事项
如果您想提高可用性或有任何建议,请随时直接与我联系(电子邮件)。
-
支持
NVIDIA APEX
训练。 -
支持不同的骨干网络( VGGNet、 ResNet、 ResNeXt、 Res2Net、 iResNet 和 ResNeSt 等)
-
支持分布式训练。
-
支持轻量级架构和实时推理,如MobileNet、SqueezeNet。
-
支持分布式训练
-
添加更多全面的竞争对手。
12. 常见问题
-
如果页面无法加载图片(主要在国内网络环境下)。