深度学习目标检测项目实战(六)-基于Faster rcnn pytorch的遥感图像检测

这篇具有很好参考价值的文章主要介绍了深度学习目标检测项目实战(六)-基于Faster rcnn pytorch的遥感图像检测。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于Faster rcnn pytorch的遥感图像检测

代码:https://github.com/jwyang/faster-rcnn.pytorch/tree/pytorch-1.0

数据集

使用RSOD遥感数据集,VOC的数据格式如下:
深度学习目标检测项目实战(六)-基于Faster rcnn pytorch的遥感图像检测
RSOD是一个开放的目标检测数据集,用于遥感图像中的目标检测。数据集包含飞机,油箱,运动场和立交桥,以PASCAL VOC数据集的格式进行标注。
数据集包括4个文件夹,每个文件夹包含一种对象:
1.飞机数据集,446幅图像中的4993架飞机
2.操场,189副图像中的191个操场。
3.立交桥,176副图像中的180座立交桥。
4.油箱,165副图像中的1586个 油箱。
下载:https://github.com/RSIA-LIESMARS-WHU/RSOD-Dataset-
深度学习目标检测项目实战(六)-基于Faster rcnn pytorch的遥感图像检测

ubuntu使用Faster rcnn pytorch-1.0

ubuntu使用此代码比较顺利,因为编译Lib文件很容易就过了。
cuda环境:
参考:https://blog.csdn.net/qq_39542170/article/details/119800534
安装环境:
1.conda 创建python3.6的环境
2.运行

conda install pytorch==1.2.0 torchvision==0.4.0 cudatoolkit=10.1 -c pytorch

3.运行

pip install -r requirements.txt -i -i https://pypi.tuna.tsinghua.edu.cn/simple

如果报错:找不到包,则运行;

python -m pip install --upgrade pip

4.编译lib,编译前确保有gcc和g++环境,不知道怎么安装可以查

cd lib
python setup.py build develop

编译之后会生成可执行文件,然后就可以import那些frcnn模型包了。因为原作者也是在ubuntu,linux上编译,所以问题比较少。

数据准备:
需要在工程文件夹里新建data文件夹,并保持如下图同样的数据路径(文件夹名要一样,懒得改源码了),包括数据集和预训练模型,预训练模型在git上面有下载:

深度学习目标检测项目实战(六)-基于Faster rcnn pytorch的遥感图像检测

训练:

CUDA_VISIBLE_DEVICES=0,1 python trainval_net.py --dataset pascal_voc --net res101 --cuda 

其中需要修改的只是–net,可以是vgg16,也可以是res101。gpu看个人情况而定。

训练完成之后,会在models文件夹保存权重pth文件。
深度学习目标检测项目实战(六)-基于Faster rcnn pytorch的遥感图像检测
评估:

python test_net.py --dataset pascal_voc --net res101 --checksession 1 --checkepoch 20 --checkpoint 935--cuda

其中需要修改的只是–net,可以是vgg16,也可以是res101。gpu看个人情况而定。注意,这里的三个check参数,是定义了训好的检测模型名称,我训好的名称为faster_rcnn_1_20_935,代表了checksession = 1,checkepoch = 20, checkpoint = 935,这样才可以读到模型“faster_rcnn_1_20_935”。训练中,我设置的epoch为20,所以checkepoch选择20,也就是选择最后那轮训好的模型,理论上应该是效果最好的。当然着也得看loss。
测试之后就可以看到终端打印的每种类别(包括背景bg)的AP值,顺便可以计算mAP值,
vgg16训练的mAP如下:
深度学习目标检测项目实战(六)-基于Faster rcnn pytorch的遥感图像检测
resnet101训练的mAP如下:
深度学习目标检测项目实战(六)-基于Faster rcnn pytorch的遥感图像检测
测试图片:

python demo.py --net vgg16  --checksession 1  --checkepoch 20 --checkpoint 935 --cuda --load_dir models

此处我们需输入使用的网络(vgg16),以及训练好的模型路径(models)。我们测试的图片都在images文件夹里。在此处有坑。作者提供了4张image做测试,因为测试完的图像会输出到images文件夹里,所以做完一次测试,images文件夹会有8张图片(输出图片命名规则是在原图像文件名后面加上"_det"),而原作者没有把他自己测试后的图片删去,所以大家在做demo测试时,别忘把以"_det"结尾的检测输出文件先删去,否则测试完你的images文件夹可能会得到16张图像。当然,你可以放一些你自己在网上搜的图片在images文件夹里进行demo测试,看看效果。但检测类别一定在训练的类别中要有。

报错:
一些报错经验和解决方法大家可以参考这篇博客:
https://www.cnblogs.com/wind-chaser/p/11359521.html
里面特别注意训练前要改类别个数和类别名。

win10使用Faster rcnn pytorch-1.0

cuda环境:
参考:https://blog.csdn.net/qq_39542170/article/details/119800534

第一次安装过程(未成功,特此记录,虽然没有什么用,大家想成功安装就看第二次安装过程):
安装环境:
1.conda 创建python3.6的环境
2.运行

pip install torch==1.5.0+cu101 torchvision==0.6.0+cu101 -f https://download.pytorch.org/whl/torch_stable.html

如果你们可以直接运行安装:

conda install pytorch==1.4.0 torchvision==0.5.0 cudatoolkit=10.1 -c pytorch

就不要用我上面提到的安装方法,因为可能会报fPIC的错误。

3.运行

pip install -r requirements.txt -i -i https://pypi.tuna.tsinghua.edu.cn/simple

如果报错:找不到包,则运行;

python -m pip install --upgrade pip

4.安装visual studio 2019,安装下面教程安装:
visual studio 2019安装教程(详细的很)

5.编译lib

cd lib
python setup.py build develop

win10编译没有那么幸运,一堆错误,先将遇到的错误总结如下:

报错经验:
1.D:\anaconda3\envs\frcnn\include/pyconfig.h:241:15: error: ‘std::_hypot’ has not been declared #define hypot _hypot
解决方法:把对应的#define hypot _hypot改为#define _hypot hypot

2.nvcc fatal : Cannot find compiler ‘cl.exe’ in PATH

解决方法:win10+2019+cuda11.6 nvcc fatal : Cannot find compiler ‘cl.exe‘ in PATH

3.nvcc -fPIC: No such file or directory
解决方法:这个报错跟torch有关,如果你们可以直接运行安装:

conda install pytorch==1.4.0 torchvision==0.5.0 cudatoolkit=10.1 -c pytorch

就不要用我上面提到的安装方法。如果用了我上面的方法,那么需要改这个文件下的东西:
深度学习目标检测项目实战(六)-基于Faster rcnn pytorch的遥感图像检测
在文件夹里将所有
“‘-fPIC’”
替换为
‘-fPIC’

4.报错:

C:/Users/Skaldak/FasterRCNN/lib/model/csrc/cuda/ROIAlign_cuda.cu(275): error: 
no instance of function template "THCCeilDiv" matches the argument list
            argument types are: (long long, long)

C:/Users/Skaldak/FasterRCNN/lib/model/csrc/cuda/ROIAlign_cuda.cu(275): 
error: no instance of overloaded function "std::min" matches the argument list
            argument types are: (<error-type>, long)

C:/Users/Skaldak/FasterRCNN/lib/model/csrc/cuda/ROIAlign_cuda.cu(321): 
error: no instance of function template "THCCeilDiv" matches the argument list
            argument types are: (int64_t, long)

C:/Users/Skaldak/FasterRCNN/lib/model/csrc/cuda/ROIAlign_cuda.cu(321): 
error: no instance of overloaded function "std::min" matches the argument list
            argument types are: (<error-type>, long)

解决方法:
参考:win10和win7系统配置faster rcnn(pytorch)

深度学习目标检测项目实战(六)-基于Faster rcnn pytorch的遥感图像检测
5.collect2.exe: error: ld returned 1 exit status
放弃。

那么,经历了以上报错之后,我重振旗鼓,首先考虑是不是环境的问题,于是有了第二次安装过程。
第二次安装过程(成功):
安装环境:
1.conda 创建python3.6的环境
2.运行

conda install pytorch==1.4.0 torchvision==0.5.0 cudatoolkit=10.1 -c pytorch

你们也可以运行:

pip install torch==1.2.0+cu92 torchvision==0.4.0+cu92 -f https://download.pytorch.org/whl/torch_stable.html

3.运行

pip install -r requirements.txt -i -i https://pypi.tuna.tsinghua.edu.cn/simple

如果报错:找不到包,则运行;

python -m pip install --upgrade pip

4.安装visual studio 2019,安装下面教程安装:
visual studio 2019安装教程(详细的很)

5.编译lib

cd lib
python setup.py build develop

6.重新编译编译lib/pycocotools
因为原作者是使用ubuntu编译的,所以wins10直接使用会报“can not import ‘_mask’”的错误,所以需要下载:https://github.com/cocodataset/cocoapi/tree/master
然后进入PythonAPI,将12行的

extra_compile_args=['-Wno-cpp', '-Wno-unused-function', '-std=c99'],

改为

extra_compile_args=['-std=c99'],

然后运行

python setup.py build develop

把编译完成的内容替换原来的lib/pycocotools的内容,替换完为:
深度学习目标检测项目实战(六)-基于Faster rcnn pytorch的遥感图像检测

报错经验:
1.报错:

C:/Users/Skaldak/FasterRCNN/lib/model/csrc/cuda/ROIAlign_cuda.cu(275): error: 
no instance of function template "THCCeilDiv" matches the argument list
            argument types are: (long long, long)

C:/Users/Skaldak/FasterRCNN/lib/model/csrc/cuda/ROIAlign_cuda.cu(275): 
error: no instance of overloaded function "std::min" matches the argument list
            argument types are: (<error-type>, long)

C:/Users/Skaldak/FasterRCNN/lib/model/csrc/cuda/ROIAlign_cuda.cu(321): 
error: no instance of function template "THCCeilDiv" matches the argument list
            argument types are: (int64_t, long)

C:/Users/Skaldak/FasterRCNN/lib/model/csrc/cuda/ROIAlign_cuda.cu(321): 
error: no instance of overloaded function "std::min" matches the argument list
            argument types are: (<error-type>, long)

解决方法:
参考:win10和win7系统配置faster rcnn(pytorch)

深度学习目标检测项目实战(六)-基于Faster rcnn pytorch的遥感图像检测
2.TORCH_API Value* insertGetAttr
这个错误困扰我很久,很多博主都没遇到,于是我从编译gcc.exe找到了灵感。结果发现,我下载的mingw64里面的gcc.exe不能用来编译此项目,但是好在安装了visual studio 2019,于是我们可以换一种编译器去编译,即msvc 。
之前是运行:

python setup.py build develop

现在变为运行:

python setup.py build_ext --compiler=msvc develop

进行编译,终于成功了!

wins10下测试图片:
先在images文件放要检测的图片,比如:
深度学习目标检测项目实战(六)-基于Faster rcnn pytorch的遥感图像检测
这里先来两张,
然后运行:

python demo.py --net vgg16  --checksession 1  --checkepoch 20 --checkpoint 935 --cuda --load_dir models

检测结果:
深度学习目标检测项目实战(六)-基于Faster rcnn pytorch的遥感图像检测
有_det就是检测保存的图片,看看效果:
深度学习目标检测项目实战(六)-基于Faster rcnn pytorch的遥感图像检测
深度学习目标检测项目实战(六)-基于Faster rcnn pytorch的遥感图像检测

实属不易,需要代码的可以私文章来源地址https://www.toymoban.com/news/detail-464636.html

到了这里,关于深度学习目标检测项目实战(六)-基于Faster rcnn pytorch的遥感图像检测的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 目标检测算法:Faster-RCNN论文解读

    前言 ​ 其实网上已经有很多很好的解读各种论文的文章了,但是我决定自己也写一写,当然,我的主要目的就是帮助自己梳理、深入理解论文,因为写文章,你必须把你所写的东西表达清楚而正确,我认为这是一种很好的锻炼,当然如果可以帮助到网友,也是很开心的事情

    2024年02月08日
    浏览(52)
  • 遥感影像目标检测:从CNN(Faster-RCNN)到Transformer(DETR)

    我国高分辨率对地观测系统重大专项已全面启动,高空间、高光谱、高时间分辨率和宽地面覆盖于一体的全球天空地一体化立体对地观测网逐步形成,将成为保障国家安全的基础性和战略性资源。未来10年全球每天获取的观测数据将超过10PB,遥感大数据时代已然来临。随着小

    2024年02月22日
    浏览(51)
  • [探地雷达]利用Faster RCNN对B-SCAN探地雷达数据进行目标检测

    引用量较高的一篇会议论文。 由于真实雷达图像较少,作者采用了GPR工具箱,使用不同配置,合成了部分模拟雷达图。然后采用Cifar-10数据(灰度图)对Faster RCNN进行预训练,再采用真实和合成数据进行微调。 论文地址https://arxiv.org/pdf/1803.08414.pdf 探地雷达(GPR)是应用最广泛的

    2024年02月12日
    浏览(50)
  • 基于Faster rcnn pytorch的遥感图像检测

    代码:https://github.com/jwyang/faster-rcnn.pytorch/tree/pytorch-1.0 使用RSOD遥感数据集,VOC的数据格式如下: RSOD是一个开放的目标检测数据集,用于遥感图像中的目标检测。数据集包含飞机,油箱,运动场和立交桥,以PASCAL VOC数据集的格式进行标注。 数据集包括4个文件夹,每个文件夹

    2024年02月06日
    浏览(46)
  • 从R-CNN到Faster-RCNN再到YOLOV5,目标检测网络发展概述

     R-CNN由Ross Girshick于2014年提出,R-CNN首先通过 选择性搜索算法Selective Search 从一组对象候选框中选择可能出现的对象框,然后将这些选择出来的对象框中的图像resize到某一固定尺寸的图像,并喂入到 CNN模型 (经过在ImageNet数据集上训练过的CNN模型,如AlexNet)提取特征,最后将

    2024年02月05日
    浏览(62)
  • 【深度学习】计算机视觉(11)——Faster RCNN(下)

    接上一篇。其实没什么东西了,只是因为参考的文章太多太多太多太多太多太多了没办法附在文末,所以我直接新开了一篇。 参考来源: 一文读懂Faster RCNN Cython 的简要入门、编译及使用 【python基础】easydict的安装与使用 TensorFlow2深度学习实战(十六):目标检测算法Faster

    2024年02月01日
    浏览(69)
  • GIS之深度学习10:运行Faster RCNN算法

    (未完成,待补充) 获取Faster RCNN源码 (开源的很多,论文里也有,在这里不多赘述) 替换自己的数据集(图片+标签文件) (需要使用labeling生成标签文件) 打开终端,进入gpupytorch环境 运行voc_annotation.py文件生成与训练文件  结果所示: 运行:train.py文件  终端/编码器运

    2024年03月13日
    浏览(74)
  • 【深度学习】计算机视觉(12)——Faster RCNN(最终篇)

    接上一篇。其实没什么东西了,只是因为参考的文章太多太多太多太多太多太多了没办法附在文末,所以我直接新开了一篇。 参考来源: 一文读懂Faster RCNN Cython 的简要入门、编译及使用 【python基础】easydict的安装与使用 TensorFlow2深度学习实战(十六):目标检测算法Faster

    2024年02月02日
    浏览(51)
  • 目标检测YOLO实战应用案例100讲-基于深度学习的交通标志小目标检测与识别研究

    目录 前言 目标检测算法相关理论  2.1 深度学习理论基础  2.1.2卷积神经网络 

    2024年02月11日
    浏览(50)
  • 目标检测YOLO实战应用案例100讲-基于深度学习的遥感目标检测算法FPGA部署实现研究

    目录 基于深度学习的目标检测网络剪枝及FPGA部署  基于深度学习的目标检测网络和神经网络剪枝概述 

    2024年02月10日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包