如何在win10上运行Faster R-CNN

目前在GitHub上星数最多的faster r-cnn Pytorch实现是这个。在这个项目的ReadMe中,作者已经给出了程序的运行方法。但是,如果你想要在windows10上用python3运行,必须还要做一下几件事(这些都是作者踩过的大坑,花了我不少时间解决它们):

  1. 重新编译pycocotools。在原项目中,作者是用python 2.7 编译pycocotools的。这可能会导致bug。解决方案:去这里下载coco api,进入PythonAPI。如果你是windows10,必须更改一个文件。打开setup.py,将代码做如下改动:
from setuptools import setup, Extension
import numpy as np

# To compile and install locally run "python setup.py build_ext --inplace"
# To install library to Python site-packages run "python setup.py build_ext install"

ext_modules = [
    Extension(
        'pycocotools._mask',
        sources=['../common/maskApi.c', 'pycocotools/_mask.pyx'],
        include_dirs = [np.get_include(), '../common'],
        # extra_compile_args=['-Wno-cpp', '-Wno-unused-function', '-std=c99'],
        extra_compile_args=['-std=c99'],
    )
]

setup(
    name='pycocotools',
    packages=['pycocotools'],
    package_dir = {'pycocotools': 'pycocotools'},
    install_requires=[
        'setuptools>=18.0',
        'cython>=0.27.3',
        'matplotlib>=2.1.0'
    ],
    version='2.0',
    ext_modules= ext_modules
)

改完之后,通过命令make编译,把PythonAPI\pycocotools下的文件全部复制到aster-rcnn.pytorch-pytorch-1.0\lib\pycocotools下。这就完成了第一步。

  1. 确保你的cuda版本与visual studio符合。注意,visual studio 2019只与最新的cuda 10.2 兼容。
  2. 修复过时用法。打开faster-rcnn.pytorch/lib/roi_data_layer/minibatch.py,如下修改代码:
import numpy as np
import numpy.random as npr
# from scipy.misc import imread
import cv2
from model.utils.config import cfg
from model.utils.blob import prep_im_for_blob, im_list_to_blob
 for i in range(num_images):
    im = cv2.imread(roidb[i]['image'])
    # im = imread(roidb[i]['image'])

    if len(im.shape) == 2:
      im = im[:,:,np.newaxis]
      im = np.concatenate((im,im,im), axis=2)
  1. 重新构建build。打开lib文件夹,输入python setup.py build develop。如果报错,按照这里的办法做。
  2. 经过以上更改,你就可以按照readme里的方法来跑这个程序了。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容