faster-RCNN训练【环境配置→自建数据集→训练→改错】

前期工作:下载pycharm、anaconda、visual studio,下载faster-RCNN代码(我用的是B站霹雳吧啦Wz大佬的代码,地址如下(直接点击没有找到项目的话,新开个网页复制这个网址进入,需要挂梯子):GitHub - WZMIAOMIAO/deep-learning-for-image-processing: deep learning for image processing including classification and object-detection etc.

1.visual studio下载完要安装【使用C++的桌面开发】

如图3所示,按红框里的选。如果一开始没装,打开Visual Studio,按图1-图3红框依次点击,最后点图3右下角“修改”即可。

图1

图2
图3

2.conda环境配置

打开这个:(在电脑搜索栏搜“Anaconda Promp”就行),

依次输入以下代码,注意此处的“fasterRCNN”是你给环境起的名字,可以自行更改。

conda create -n fasterRCNN python=3.8
activate fasterRCNN
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch

输入下面代码,成功最好,如果出错了 ,就不管了,你先跳过,后面出错了看本文第六章【6.各种错误如何解决】

pip install -r requirements.txt

 3.pycharm环境配置

进到项目中,点右下角红框处(我这里是已经配置好了,你显示的肯定不跟我一样),

点红框

这里按图片顺序点,注意第4个红框选的那个python.exe文件,是你创建的环境中的文件

4.训练数据集制作

我这里从图像打标开始,如果你已经有图像以及对应的xml文件,可以直接看4.3划分数据集

4.1安装labelimg

进入Anaconda Promp,依次输入以下代码:

​activate fasterRCNN

【下面这个代码2就安装的时候输就行了,安装完了之后每次启动labelimg只用输代码1和代码3】 

pip install labelimg -i https://pypi.tuna.tsinghua.edu.cn/simple
labelimg

就进入到labelimg里了

4.2打标

点A,选择要打标的图片所在的文件夹;点B,选择标签保存的文件夹。(可以选择同一个文件夹)

按“W”,你鼠标上出来一条十字线,然后框上你需要标的目标,输入标签名就行了。按“A”和“D”是切换上一张图、下一张图,切换图片后自动保存上一张标签。

全部打完看看标签格式是不是xml(就是右键点击文件——属性),如果是txt,要改成xml格式(写个脚本就能实现,之后我会把脚本放上来,如果我忘放了,留言或者私信一下)

【打标特别注意事项:

1.如果你发现一张图上没有需要标的目标,可以跳过,但是一定记得打完标把这张图删掉!

2.如果你在一张图上打了个标签,并且标签已经保存了,但又不想要这个标签了,把这个标签删掉后,删掉后本图片上没有其他目标了,那么你文件夹中会有一个对应的 空的 xml文件,一定记得把这个xml文件和对应的图片删掉!】

4.3划分数据集

在faster_rcnn文件夹下建立红框中的文件夹,最好名字一模一样,不然后面还要改代码,几个名字放在这里,空格别复制啊:VOCdevkit     VOC2012   Annotations   ImageSets   JPEGImages  Main

把你所有的图片放在上述JPEGImages文件夹中;xml文件放在Annotations文件夹中。

打开代码【split_data.py】(红框),看下路径(黄框)没问题,直接运行。

这个代码是将数据划分为训练集和验证集,原代码写的验证集比例是0.5(橘框),我这里改成0.2了,可以随便改。

在根目录(最外层目录)下会生成两个txt文件【train.txt】和【val.txt】,剪切两个文件,粘贴到你前面创建的ImageSets的Main文件夹下

打开文件【pascal_voc_classes.json】,改成你的标签,最后一个标签记得给后面的逗号删掉,把多余的空行也删掉。

5.开始训练!!!!!!!!!!!!

我用的gpu训练,打开【train_multi_GPU.py】(红框)这个文件,可以改下黄框里的内容,调整训练参数;204行的目标类别数也要改成你数据集的类别数;如果你路径和我的不一样,记得把图片中200行的路径也改了。运行!!!!

6.各种错误如何解决:

① The package for pytorch located at XXXXX appears to be corrupted

环境没安好,重新安一下

解决:进入Anaconda Prompt,依次输入:

​activate fasterRCNN
conda clean --packages

问你Y/N就输Y,回车,下同 

conda clean --all
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch

②RuntimeError: CUDA out of memory

解决:把batchsize调小

③ModuleNotFoundError: No module named XXX

解决:按红框顺序点,然后在下面输入pip install XXX

前面requirements.txt那没装好,就会出现好几个这个问题,出一个这个问题你就pip一个,直到不出这个错


④json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 1 colu

标签错啦

解决:打开根目录下的文件【pascal_voc_classes.json】,看看标签哪里有问题,打错字了、有多余空行、最后一个标签后面还有逗号......改就完了。

⑤AttributeError: 'Namespace' object has no attribute 'rank'

解决:train_multi_GPU.py文件最后一堆parser.add_argument最后加上以下代码

parser.add_argument('--rank', type=int, default=-1, help='The rank of the current process in distributed training')

如图:

⑥训练出现一个警告:UserWarning: torch.meshgrid: in an upcoming release, it will be required to pass the indexing argume

解决:找到报错的地方,在括号里的最后加上:indexing = 'ij'

即:torch.meshgrid(shifts_y, shifts_x,indexing = 'ij')

⑦Loss is nan,stopping training

解决:可以先试试把batchsize调大,如果没用或者出现RuntimeError: CUDA out of memory问题,用以下方法:

打开【train_eval_utils.py】,把with torch.cuda.amp.autocast这行黄框代码注释了,记得把下面两行的缩进删除

【在整个项目中找某句代码小技巧:全局搜索】

全局搜索:

箭头处输入需要搜索的代码

⑧RuntimeError: CUDA error: device-side assert triggered

解决:把类别数(红框)改成你数据集的类别数

### 关于 Faster R-CNN 环境配置教程 #### PyTorch 版本的环境配置 对于基于PyTorch的Faster R-CNN实现,环境搭建主要依赖于Python及其科学计算库numpy, 数据处理工具pandas等基础包以及最重要的深度学习框架PyTorch本身。为了使整个开发流程更加顺畅,建议创建一个新的虚拟环境来进行项目的安装和运行[^1]。 ```bash conda create -n faster_rcnn python=3.8 conda activate faster_rcnn pip install torch torchvision torchaudio ``` 接着,根据具体需求安装额外的支持软件包,比如用于图像读取和预处理PIL/Pillow、数据增强albumentations以及其他辅助性的第三方库。此外,还需注意CUDA版本的选择以匹配本地GPU设备情况,确保可以充分利用硬件资源加速模型训练过程[^3]。 #### TensorFlow 版本的环境配置 当采用TensorFlow作为底层框架时,则需按照官方推荐的方式完成相应组件的部署工作。这通常涉及到设置合适的Python解释器版本,并通过pip命令行工具下载必要的依赖项,包括但不限于tensorflow-gpu(如果计划利用NVIDIA显卡)、opencv-python头文件以便处理视觉类任务等等[^4]。 ```bash virtualenv --system-site-packages ./venv_tf_frcnn source venv_tf_frcnn/bin/activate # Linux or macOS .\venv_tf_frcnn\Scripts\activate.bat # Windows pip install tensorflow==2.x opencv-python matplotlib cython contextlib2 pillow lxml jupyter lvis ``` 值得注意的是,在某些情况下可能还需要手动编译部分C++源码片段或是调整特定参数设定来优化性能表现;因此强烈建议仔细查阅相关文档资料获得最准确的操作指导。 #### Keras 版本的环境配置 而针对Keras版Faster R-CNN来说,除了常规的Python环境准备之外,重点在于正确引入keras-retinanet这一专门面向对象识别场景设计好的开源套件。其内部已经集成了大量实用的功能模块和服务接口,极大地降低了使用者的学习成本和技术门槛[^2]。 ```bash pip install keras_retinanet ``` 随后可根据个人喜好挑选适合自己的前端界面风格——无论是简洁直观还是功能全面都可以找到满意的解决方案;同时积极关注社区动态分享交流经验心得也是提升技能水平的有效途径之一。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值