OWOD的代码是基于detectron2库搭建成功的,具体的搭建过程参考Ubuntu下配置detectron2_于大宝0626的博客-CSDN博客过程详细,据此搭建即可。

遇到的问题:

  在复现过程中,第一次使用anaconda的镜像建立自己的docker环境,最后运行时出现“path should be string,bytes,os.pathlike or integer,not nonetype”的报错,具体原因是没有CUDA_HOME的路径,试图找到这个路径,得知使用anaconda搭建时相关内容会自动配置,但不可见。第一次复现失败。

  第二次使用拉取pytorch镜像的方式搭建docker环境,由于OWOD的git上说明 Python ≥ 3.6,PyTorch ≥ 1.4,所以本次使用的是python3.8,pytorch1.8.0,cuda11.1创建docker环境,最后运行时出现“RuntimeError: radix_sort: failed on 1st step: cudaErrorInvalidDevice: invalid device ordinal”(无效的设备序数)的报错,具体原因是查到可能是pytorch1.8.x的bug,最后使用拉取pytorch/pytorch 1.9.1-cuda11.1-cudnn8-devel镜像搭建docker成功。

  获取detectron2时可能会出现命令运行成功却没有找到此文件夹的情况,根本问题还是没下载下来,可以更换官方提供的命令多次尝试。或者网络的问题导致失败。我在下载过程中以上问题均遇到过,耐心尝试即可。(Ubuntu下apt-get方式Git的安装:sudo apt-get update
sudo apt-get install git)

detectron2搭建成功后即可复现OWOD

1.下载OWOD代码。

2.进入项目文件夹(cd OWOD-master),激活环境,输入语句配置detectron

 python setup.py build develop

3.下载预训练模型https://github.com/JosephKJ/OWOD/issues/86放在OWOD-master下,找到OWOD-master/configs/OWOD/t1/t1_train.yaml,把预训练模型的文件路径(如果在自己的docker中路径为/workspace_disk/OWOD-master/R-50.pkl,否则报错找不到该文件)替换原文件中weight的内容。

4.下载数据集https://github.com/JosephKJ/OWOD/issues/86(第一行439MB的)

制作数据集:

(1)在OWOD-main中找到datasets文件夹,在这里建VOC2007文件夹

(2)把下载的数据集中的Annotations与JPEGImages文件夹放在VOC2007下(下载的数据集中可能还有其它文件夹,不用管)

(3)在datasets/VOC2007中建ImageSets文件建,在ImageSets中建Main文件夹

(4)将datasets/OWOD_imagesets下的所有文件放到datasets/VOC2007/ImageSets/Main下

5.训练(num-gpus参数可自行调整)

python tools/train_net.py --num-gpus 1 --config-file ./configs/OWOD/t1/t1_train.yaml SOLVER.IMS_PER_BATCH 8 SOLVER.BASE_LR 0.0025 OUTPUT_DIR "./output/t1"

6.后续使用自己的数据集进行训练的过程还会继续记录,未完待续......

其中可能的报错

(1)ImportError: libGL.so.1: cannot open shared object file: No such file or directory

解决方法:

apt-get update
apt install libgl1-mesa-glx

(2)ImportError: libgthread-2.0.so.0: cannot open shared object file: No such file or directory

解决方法:

apt-get install libglib2.0-dev

 (3)可能报错缺少'reliability'和'reliability'

解决方法:

pip install reliability
pip install shortuuid
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐