目录
DA-Faster-RCNN: Domain Adaptive Faster R-CNN for object detection in the wild
发表在CVPR2018,是第一篇将无监督域适应方法应用在目标检测领域的研究。作为一个域适应目标检测小白,前前后后花了大概一周的时间代码才work,记录一下自己的辛酸史。
1.环境配置
ubuntu20.4.0
GPU:2080Ti
python:3.6.
pytorch:1.6.0
torchvision:0.7.0
CUDA:10.2.0
##说明
在安装pytorch前,使用 nvidia-smi 查看电脑的CUDA版本:
注意这里的Driver version和CUDA Version要满足下表关系:1. CUDA 12.4 Release Notes — Release Notes 12.4 documentation (nvidia.com)
这里的CUDA version指的是所能够兼容的CUDA Toolkit (Pytorch)的最高版本,可以向下兼容CUDA/cudnn/CUDA Toolkit/NVCC区别简介 - emanlee - 博客园 (cnblogs.com)
因此只要这里查看的CUDA version>10.2即可
2.搭建环境
整个搭建流程参考文章:搭建目标检测模型之Domain Adaptive Faster R-CNN for Object Detection in the Wild
# 克隆项目
git clone https://github.com/krumo/Domain-Adaptive-Faster-RCNN-PyTorch.git
# 新建虚拟环境
conda create -n da-faster-rcnn python=3.6
# 切换环境
conda activate da-faster-rcnn
# 切换到项目路径
cd Domain-Adaptive-Faster-RCNN-PyTorch
# 装包
conda install ipython
pip install ninja yacs cython matplotlib
# 安装opencv-python
pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-python==4.3.0.38
安装open-cvpython时会卡住,或者报错,参考 这篇文章
查看gcc版本,使用gcc-7,参考 Ubuntu22.04多版本gcc g++切换
gcc -v
安装pytorch,torchvision,cudatoolkit,这里先安装pytorch1.4.0的版本,不然后续安装maskrcnn会出错:RuntimeError: Error compiling objects for extension
conda install pytorch==1.4.0 torchvision==0.5.0 cudatoolkit=10.1 -c pytorch
安装pycocotools
## 不要clone到Domain-Adaptive-Faster-RCNN-PyTorch项目下
## 我这里是在项目外新建了package包
cd package
git clone https://github.com/cocodataset/cocoapi.git
cd cocoapi/PythonAPI
python setup.py build_ext install
安装PyTorch Detection
## 同样还是clone到package文件夹下
cd package
git clone https://github.com/facebookresearch/maskrcnn-benchmark.git
cd maskrcnn-benchmark
python setup.py build develop
3.准备数据集
参考搭建目标检测模型之Domain Adaptive Faster R-CNN for Object Detection in the Wild
数据集准备完成第一步状态:
使用该文章中的脚本调整数据集,datasets在项目主文件夹下,annotaion中是json文件,traint/test/val中是原始图片
4.一些报错
# ModuleNotFoundError: No module named 'apex'
# 同样可以clone到package文件夹下
git clone https://www.github.com/nvidia/apex
cd apex
python setup.py install
这里安装的pytorch版本为1.6.0,与参考文章中的1.4.0不同。
conda install pytorch==1.6.0 torchvision==0.7.0 cudatoolkit=10.2 -c pytorch
使用1.4.0在项目运行中会出现amp问题,参考mask-rcnn的issue1327
在pytorch1.6.0以上的版本中才支持amp