OBBDetection环境配置步骤
本文仅涉及OBBDetection的环境配置,因为我要复现Oriented R-CNN for Object Detection,具体怎样训练自己的数据集网上有好多攻略…
我对OBBDetection环境进行配置的时候出现了很多错误,导致一直配不成功,看了别的大佬的解决办法也没用,用这种方式配好了,给大家一种参考吧。
个人是租的autodl显卡RTX4090,网上很多步骤都是3080ti,我使用4090多加了一行步骤也可以。
一、创建环境
conda create -n orcnn python=3.7 -y conda activate orcnn conda install pytorch==1.7.1 torchvision==0.8.2 torchaudio==0.7.2 cudatoolkit=11.0 -c pytorchcuda使用的11.0,因为我发现太新的几乎必失败,可以按照我这个环境版本来。
二、配置OBBDetection的BboxToolkit
下载后的OBBDetection其实有两部分,一个是OBBDetection,一个是BboxToolkit,这里下载好代码后,要进入OBBDetection/BboxToolkit目录下安装BbokToolkit的依赖,否则后面会报错。
下载代码: git clone https://github.com/jbwang1997/OBBDetection.git --recursive cd OBBDetection cd BboxToolkit pip install -v -e . cd ..安装完BboxToolkit的依赖后回到OBBDetection的文件夹路径下
三、安装mmcv
很多都是这里报错,除了版本对应,还有可能需要调整显卡的识别版本。
这里官方其实推荐mmcv-full要1.3以上,最新的默认1.6,实测会报错,用1.4.0可以。
pip install mmcv-full==1.4.0 -f https://download.openmmlab.com/mmcv/dist/cu110/torch1.7.0/index.html --no-cache-dir- 后面官方推荐安的是
mmpycocotools,但是好像已经废弃了,用pycocotools来替代。 - 运行
export TORCH_CUDA_ARCH_LIST="8.0"来调整显卡识别版本,30系显卡好像可以不用运行。
pip install -r requirements/build.txt pip install pycocotools export TORCH_CUDA_ARCH_LIST="8.0" pip install -v -e .最后运行pip install -v -e .会有点慢,而且输出很多格式很混乱的文字,不用管,只要最后出现Successfully installed Pillow6.2.2 mmdet-2.2.0+cb0cb7a就是成功了。
四、下载预训练权重用于测试
下载他给的预训练权重,地址为:https://github.com/jbwang1997/OBBDetection/tree/master/configs/obb/oriented_rcnn
在OBBDetection文件夹下创建一个新的文件夹ckpt,用来保存预训练权重文件,把刚才下载的预训练文件(.pth后缀)放到这里面。
输入运行代码:
python demo/huge_image_demo.py demo/dota_demo.jpg configs/obb/oriented_rcnn/faster_rcnn_orpn_r101_fpn_1x_ms_rr_dota10.py ckpt/faster_rcnn_orpn_r101_fpn_1x_dota10_epoch12.pth BboxToolkit/tools/split_configs/dota1_0/ss_test.json注意这里代码有一个:kpt/faster_rcnn_orpn_r101_fpn_1x_dota10_epoch12.pth,这里的faster_rcnn_orpn_r101_fpn_1x_dota10_epoch12.pth换成你下载的预训练权重文件名,我下载的第一个就是这个,就不用改了。
五、训练demo测试
运行上面的代码后会出现如下:
这就是环境配置成功了,下面的步骤让它显示demo图像,更清晰直观一点。
找到OBBDetection中的mmdet/apis/inference.py,修改代码:
# 在开头导入importcv2# 找到最后一个函数:show_result_pyplot,在这个函数里的最后一行加入:cv2.imwrite("xxxx320.jpg",img)重新运行代码:
python demo/huge_image_demo.py demo/dota_demo.jpg configs/obb/oriented_rcnn/faster_rcnn_orpn_r101_fpn_1x_ms_rr_dota10.py ckpt/faster_rcnn_orpn_r101_fpn_1x_dota10_epoch12.pth BboxToolkit/tools/split_configs/dota1_0/ss_test.json最后会在OBBDetection的根目录生成图片xxxx320.jpg,打开如下就是配成功了。
