Featured image of post RegionCLIP踩坑记录

RegionCLIP踩坑记录

1. 登录AutoDL算力云

当然也有免费的平台

  • kaggle:

    不需要科学上网,但是文件加载有些麻烦,我第一次尝试失败(应该是我的问题),每个月有30个小时的GPU时长。

  • colab:需要科学上网,响应比较慢,但是传文件挺快的,没有conda,而且不知道为什么python版本限制在3.7改也改不回来。

AutoDL网址:https://www.autodl.com/

  • 可以登录我的账号。
  • 可以开发票(最爽!)。
  • 更接近于原生ubuntu,有jupyter和script等选择。
  • 显卡比较贵,而且晚上未必有。
  • 支持vscode远程连接!!!!

2. 加载+配置环境【最痛苦的一集】

  1. 首先,选择空闲卡,配置基础环境。

    image-20240924192126636

    先用最接近的,创建好之后还可以改。

  2. 进入控制台 - > 容器实例,查看SSH登录(也可直接在平台登陆)。

    image-20240924192530393

  3. 打开vscode,进入远程资源管理器,点击“+”,新建远程,填入登陆指令和密码。

    image-20240924192649321

  4. 进入后打开终端,会出现以下提示,说明连接成功。

    image-20240924192918088

  5. 创建文件夹Working,按照指令,先建立conda环境

    1
    2
    
    conda create -n regionclip python=3.9 # 创建环境
    source activate regionclip            # 进入环境
    

    image-20240924193331266

  6. 下载pytorch和cuda,作者给的指令貌似有些问题。

    1
    
    pip install torch==1.10.1+cu111 torchvision==0.11.2+cu111 torchaudio==0.10.1 -f https://download.pytorch.org/whl/cu111/torch_stable.html
    

    这条指令没什么问题。

  7. 将代码下载。

    1
    2
    3
    
    git clone git@github.com:microsoft/RegionCLIP.git
    # 或者
    git clone https://github.com/microsoft/RegionCLIP.git
    
  8. 配置基本环境。(这里bug非常多)

    1
    
    python -m pip install -e RegionCLIP
    
    • 运行这一条发现会出现这种情况:

      image-20240924221913196

    • 很多教程里面都没有提到这个内容,其实这是由于setuptools版本不兼容导致,应当运行以下代码:

      1
      
      pip install setuptools==59
      

      setup issue · Issue #60 · microsoft/RegionCLIP (github.com)

    • 但是这并不能完全解决问题,例如我仍然运行配置环境的代码,会出现以下错误:

    1
    2
    3
    4
    5
    6
    7
    
    Obtaining file:///mnt/d/ZYY/RegionCLIP
    Preparing metadata (setup.py) ... done
    ERROR: Exception:
    ······
    File "/home/frain/micromamba/envs/region/lib/python3.9/site-packages/pip/_vendor/packaging/version.py", line 202, in init
    raise InvalidVersion(f"Invalid version: '{version}'")
    pip._vendor.packaging.version.InvalidVersion: Invalid version: 'RegionCLIP'
    
    • 这需要我们对setup.py文件进行配置,将 version=get_version() 改成 version='0.1.0'
    • 然后就可以运行了。
  9. 然后配置额外的环境

    1
    2
    
    pip install opencv-python timm diffdist h5py scikit-learn ftfy
    pip install git+https://github.com/lvis-dataset/lvis-api.git
    

    应该会比较顺利

3. 下载预训练数据和数据集

这里面没什么好说的,按照教程下载即可,但注意预训练数据只需要按需下载,在以下的教程中,只需要下载pretrained_ckpt/concept_emb/lvis_1203_cls_emb_rn50x4.pthpretrained_ckpt/regionclip/regionclip_pretrained-cc_rn50x4.pth文件(文件路径需要存在)。

regionclip 服务器复现 - 知乎 (zhihu.com)

4. 测试运行

以下代码:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
python3 ./tools/train_net.py \
--eval-only \
--num-gpus 1 \
--config-file ./configs/LVISv1-InstanceSegmentation/CLIP_fast_rcnn_R_50_C4_custom_img.yaml \
MODEL.WEIGHTS ./pretrained_ckpt/regionclip/regionclip_pretrained-cc_rn50x4.pth \
MODEL.CLIP.TEXT_EMB_PATH ./pretrained_ckpt/concept_emb/lvis_1203_cls_emb_rn50x4.pth \
MODEL.CLIP.OFFLINE_RPN_CONFIG ./configs/LVISv1-InstanceSegmentation/mask_rcnn_R_50_FPN_1x.yaml \
MODEL.CLIP.TEXT_EMB_DIM 640 \
MODEL.RESNETS.DEPTH 200 \
MODEL.ROI_BOX_HEAD.POOLER_RESOLUTION 18\ 

可视化:

1
2
3
4
5
6
7
8
 python ./tools/visualize_json_results.py \
--input ./output/inference/lvis_instances_results.json \
--output ./output/regions \
--dataset lvis_v1_val_custom_img \
--conf-threshold 0.05 \
--show-unique-boxes \
--max-boxes 25 \
--small-region-px 8100\

终端运行即可。

可能会遇到的问题:

1
_C.cpython-36m-x86_64-linux-gnu.so: undefined symbol: _ZN2at19UndefinedTensorImpl10_singletonE

这个好像是pytorch重复编译的问题,解决办法:

1
remove -r build # 在RegionCLIP文件夹下
1
pip install -v -e  # 在有setup.py的文件夹下

等待时间比较长,运行结束问题解决!

5. My_RegionCLIP

我在原microsoft的RegionCLIP文件上进行了环境配置,生成了requirements.txt文件,可以一键配置环境。

1
 conda install --yes --file requirements.txt

另外,测试脚本也写好,在./run文件夹下面,可直接用sh run/run1.shsh run/run2.sh来运行。但是数据集和预训练数据过大,就没有再GitHub上传。

仓库地址:https://github.com/Sazerac-kk/My_RegionCLIP.git

自定义文本
使用 Hugo 构建
主题 StackJimmy 设计