BIT 变化检测模型复现 深度学习学习笔记 基于transformer结构的图像处理模型

这篇具有很好参考价值的文章主要介绍了BIT 变化检测模型复现 深度学习学习笔记 基于transformer结构的图像处理模型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 前言:

BIT是用transformer结构进行变化检测的一个孪生网络,它的backbone用的是Resnet结构,具体结构分析可以参考这个链接的作者写的,非常清楚, http://t.csdn.cn/rA9sH。
下面就是来讲我自己的实现过程,比较简单。

2. 数据结构

首先,在官网找到相应的代码,下载解压到自己的本地。github上面的链接为:https://github.com/justchenhao/BIT_CD
然后下载测试数据集LEVIR-CD,链接为:https://justchenhao.github.io/LEVIR/
这个BIT需要的数据结构跟直接下载的LEVIR-CD的数据结构不太一样,我们还需要修改一下数据结构。
我们把数据结构改成下面这种形式的:
BIT 变化检测模型复现 深度学习学习笔记 基于transformer结构的图像处理模型

具体就是A文件夹里面放一期影像的训练、验证、测试数据,B里面放另一期影像的训练、验证、测试数据,然后label里面放标签,list里面放train.txt,val.txt,test.txt。
BIT 变化检测模型复现 深度学习学习笔记 基于transformer结构的图像处理模型
每一个txt里面放的是用于训练的数据的名称,后面训练的数据就是从这个txt里面读取相应的图片名字,然后读取对应图片进行训练的。
BIT 变化检测模型复现 深度学习学习笔记 基于transformer结构的图像处理模型

3. 环境配置

BIT的环境配置相对简单,先看官方给出的Requirements
BIT 变化检测模型复现 深度学习学习笔记 基于transformer结构的图像处理模型
也就是说,我们主要有以下几个重要的包就行,同时BIT对于包的版本要求也不高,只需要包的版本跟这个相同或者比这个高就行。
可以在cmd里面输入:pip list命令查看自己是否都安装了这几个包,然后具体的版本是多少, 下面是我的pip list结果,BIT 变化检测模型复现 深度学习学习笔记 基于transformer结构的图像处理模型
可以看到我已经安装了pytorch和torchvision了,并且版本比要求的高,所以我就只需要安装einops就行了。我直接用命令行:pip install einops安装了。

然后用pycharm打开我们解压好的代码,选择【File】-【Settings】然后打开python解译器的界面,将我们刚刚安装了满足条件的相关包的那个环境选择为BIT的编译环境,这里是我的环境。
BIT 变化检测模型复现 深度学习学习笔记 基于transformer结构的图像处理模型
这样环境就调试好了。

4. 训练

用于训练的文件是main_cd.py,这里有一些参数需要修改一下才能训练,重要的参数可以看下面的截图。
checkpoint_root参数:会默认在项目所在位置生成一个文件夹,
project_name就是在checkpoint_root这个路径下下面生成的一个文件夹,这个文件夹中存放每次训练的模型及相关log文件,每次训练需要一个不同的project_name
dataset 这里建议不用修改,因为这里跟data_config.py文件时关联的。
data_name这里也建议不修改,我们后面来修改data_config.py文件。
其他参数的意义就不用介绍了,有一点深度学习基础的都懂。
BIT 变化检测模型复现 深度学习学习笔记 基于transformer结构的图像处理模型
到这里,是不是很懵逼,我训练数据集的路径还没指定呢,怎么训练?在哪里指定呢?
我们需要在data_config.py中修改,这里只需要把root_dir修改成自己的数据集路径就行了。
BIT 变化检测模型复现 深度学习学习笔记 基于transformer结构的图像处理模型
下面就可以点击运行main_cd.py了。

我这里还报了一个错,我debug的时候,发现找不到tifffile这个包,原因就是这个tifffile包没有安装**,然后我又安装了这个包。这个包不能直接用pip安装,会找不到合适的版本,推荐在这个网站上安装,https://www.lfd.uci.edu/~gohlke/pythonlibs/
直接搜索tifffile,找到最新的包下载相关的.whl文件,然后pip install 这个.whl文件就行。安装成功之后就可以运行了。
BIT 变化检测模型复现 深度学习学习笔记 基于transformer结构的图像处理模型
还遇到了这个错误:
ModuleNotFoundError: No module named ‘torchvision.models.utils
是因为我们的torch版本比较高(高于1.6),所以报错了,需要将报错语句
from torchvision.models.utils import load_state_dict_from_url”改成“from torch.hub import load_state_dict_from_url

就可以了。

5. 预测

预测用到的时demo.py这个文件,这里需要注意的是,checkpoint_rootproject_name需要输入的是我们前面训练时的那个checkpoint_rootproject_name,否则就没办法找到我们训练好的模型了。预测的时候会默认调用project_name文件夹下保存的我们训练过程中最好的那一个模型。
output_folder是预测结果保存的路径,自己根据情况输入想保存的路径就行。
这里的datasetdata_name我还是跟前面训练的时候保持了一致,所以其实我还是用原来的那一批数据,只不过我在“split”里面,改成了“test”,就是说,我用来预测的数据用的是LEVIR数据集里面的test文件夹里面的数据。
BIT 变化检测模型复现 深度学习学习笔记 基于transformer结构的图像处理模型
需要注意的是,预测的时候,数据格式跟训练的时候的数据结构要保持一致,也就是说,**预测也需要有label文件夹的,如果没有会报错。**至于为什么,我目前还没弄懂。

一般数据在进行训练和验证的时候需要label,在进行精度评价test的时候也需要label,但是进行推理时,也就是我们在predict的时候是不需要输入label的。后面我会更新如何修改代码,让模型在预测时不需要输入标签数据。

把相关参数设置好之后,就可以点击预测了。

但是,我又遇到了这样一个错误:

RuntimeError: Error(s) in loading state_dict for BASE_Transformer**

BIT 变化检测模型复现 深度学习学习笔记 基于transformer结构的图像处理模型
找了好久,一直不明白为什么会遇到这个奇怪的错误,然后终于让我在网上发现了这个大佬的debug过程,这里给大家链接,可以参考一下:
http://t.csdn.cn/9Ws8C

其实就是我们的预测时调用的模型跟我们训练的时候调用的模型不一致。

这是我们预测的模型:
BIT 变化检测模型复现 深度学习学习笔记 基于transformer结构的图像处理模型
这是我们训练时用的模型
BIT 变化检测模型复现 深度学习学习笔记 基于transformer结构的图像处理模型
可以看出来,两个模型不一样,我们只需要将预测的模型改成与训练的模型一样的就行了。
BIT 变化检测模型复现 深度学习学习笔记 基于transformer结构的图像处理模型
完成。文章来源地址https://www.toymoban.com/news/detail-497380.html

到了这里,关于BIT 变化检测模型复现 深度学习学习笔记 基于transformer结构的图像处理模型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 目标检测(Object Detection)学习笔记(概述与传统算法与基于深度学习算法)

    本文为课程研讨需要,对目标检测算法进行理论学习,无实战内容,欢迎交流探讨 目标检测(Object Detection) 的任务是找出图像中所有感兴趣的目标(物体),不同于分类和回归问题,目标检测还需要确定目标在图像中的位置 (定位) ,而确定识别目标的类别和位置 (分类

    2024年02月02日
    浏览(39)
  • 基于深度学习的高精度浣熊检测识别系统(PyTorch+Pyside6+模型)

    摘要:基于深度学习的高精度浣熊检测(水牛、犀牛、斑马和大象)识别系统可用于日常生活中或野外来检测与定位浣熊目标,利用深度学习算法可实现图片、视频、摄像头等方式的浣熊目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标

    2024年02月09日
    浏览(49)
  • 基于深度学习的CCPD车牌检测系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于CCPD数据集的高精度车牌检测系统可用于日常生活中检测与定位车牌目标,利用深度学习算法可实现图片、视频、摄像头等方式的车牌目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训练数据集,使用Pysdie6库来搭建

    2024年02月14日
    浏览(60)
  • 基于深度学习的高精度山羊检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度山羊检测识别系统可用于日常生活中或野外来检测与定位山羊目标,利用深度学习算法可实现图片、视频、摄像头等方式的山羊目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训练数据集,使用

    2024年02月07日
    浏览(61)
  • 基于深度学习的高精度袋鼠检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度袋鼠检测识别系统可用于日常生活中或野外来检测与定位袋鼠目标,利用深度学习算法可实现图片、视频、摄像头等方式的袋鼠目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训练数据集,使用

    2024年02月08日
    浏览(48)
  • 基于深度学习的高精度烟雾检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度烟雾检测识别系统可用于日常生活中或野外来检测与定位烟雾目标,利用深度学习算法可实现图片、视频、摄像头等方式的烟雾目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训练数据集,使用

    2024年02月11日
    浏览(53)
  • 基于深度学习的高精度刀具检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度刀具检测识别系统可用于日常生活中或野外来检测与定位刀具目标,利用深度学习算法可实现图片、视频、摄像头等方式的刀具目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训练数据集,使用

    2024年02月13日
    浏览(44)
  • 基于深度学习的高精度动物检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度动物检测识别系统可用于日常生活中或野外来检测与定位动物目标(狼、鹿、猪、兔和浣熊),利用深度学习算法可实现图片、视频、摄像头等方式的动物(狼、鹿、猪、兔和浣熊)目标检测识别,另外支持结果可视化与图片或视频检测结果的导

    2024年02月08日
    浏览(82)
  • 基于深度学习的高精度水果检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度水果(苹果、香蕉、葡萄、橘子、菠萝和西瓜)检测识别系统可用于日常生活中或野外来检测与定位水果目标,利用深度学习算法可实现图片、视频、摄像头等方式的水果目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统

    2024年02月11日
    浏览(47)
  • 基于深度学习的高精度猴子检测识别系统(PyTorch+Pyside6+YOLOv5模型)

    摘要:基于深度学习的高精度猴子检测识别系统可用于日常生活中或野外来检测与定位猴子目标,利用深度学习算法可实现图片、视频、摄像头等方式的猴子目标检测识别,另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv5目标检测模型训练数据集,使用

    2024年02月12日
    浏览(72)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包