第一次使用FasterRCNN,尝试使用开源的代码来实现object feature extraction。看了网上有很多的博文都是复现和介绍FasterRCNN,或者直接使用torchvision里面的包,这里我介绍下使用Facebook MMF实现的FasterRCNN,包括安装和使用。
第一步,建立conda环境并安装python、pytorch和torchvision,MMF要求python>=3.7,pytorch>=1.6。如果有同学不了解conda的环境构建,可以参考我的另一篇文章。此外,安装时注意各软件版本之间的匹配,否则容易出错。
第二步,执行一下命令,在conda环境下安装MMF。主要还是参考官网
git clone https://github.com/facebookresearch/mmf.git
cd mmf
pip install --editable .
第三步,在conda环境下安装maskrcnn,按照如下命令。记住,这里的maskrcnn是较新版本,避免了很多问题。
conda install ipython
pip install ninja yacs cython matplotlib
conda install pycocotools
# 安装maskrcnn
git clone https://gitlab.com/vedanuj/vqa-maskrcnn-benchmark.git
cd vqa-maskrcnn-benchmark/
python setup.py build develop # 该命令执行前需要删除build/文件夹,否则会遇到GPU编译问题
# 安装cv2
pip install opencv-python -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
第四步,执行特征抽取代码。详见参考
如果执行过程中,出现了如下问题,我们需要进一步解决:
①
if torch._six.PY3:AttributeError: module ‘torch._six‘ has no attribute ‘PY3‘
则,我们需要进入相应的文件,并修改内容 torch._six.PY3 为 torch._six.PY37:
vi maskrcnn-benchmark/utils/imports.py
# 修改:
if torch._six.PY3:
import importlib
import importlib.util
import sys
# 修改后:
if torch._six.PY37:
import importlib
import importlib.util
import sys
② 如果没有apex模块
ModuleNotFoundError: No module named 'apex'
则我们需要安装该模块,通过以下方式:
git clone https://github.com/NVIDIA/apex
cd apex
python3 setup.py install
③ 无法使用GPU进行支持:
这时候的问题很可能是你的CUDA环境地址没有配置,导致使用GPU时无法寻找到CUDA。我们使用以下命令进行验证:
import torch
from torch.utils.cpp_extension import CUDA_HOME
print(torch.cuda.is_available(), CUDA_HOME)
# 输出应该是True, XXXX/cudaXXX。如果是别的信息,就是错误。
当典型的输出CUDA_HOME=None时,说明CUDA环境没有配置。此时,我们需要将其加到系统中:命令行输入vim ~/.bashrc,然后在末尾加入:
export PATH=/usr/local/cuda-XXX/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-XXX/lib64:$LD_LIBRARY_PATH
# XXX是指你的CUDA版本,如我的CUDA版本是10.2,此时输入
export PATH=/usr/local/cuda-10.2/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH
然后,命令行输入source ~/.bashrc使之有效。接着,重新安装maskrcnn,(记住安装之前删掉build/文件夹)。之后,我们就可以愉快的使用了。
或者下载后送入相应的文件夹进行安装。
参考文献:
https://github.com/facebookresearch/maskrcnn-benchmark/blob/main/INSTALL.md
https://gitlab.com/vedanuj/vqa-maskrcnn-benchmark/-/tree/master/
https://github.com/facebookresearch/mmf/blob/main/tools/scripts/features/extract_features_vmb.py
https://github.com/ronghanghu/vqa-maskrcnn-benchmark-m4c
https://blog.csdn.net/weixin_42782150/article/details/109820615
https://blog.csdn.net/u013679159/article/details/104288338