目前在GitHub上星数最多的faster r-cnn Pytorch实现是这个。在这个项目的ReadMe中,作者已经给出了程序的运行方法。但是,如果你想要在windows10上用python3运行,必须还要做一下几件事(这些都是作者踩过的大坑,花了我不少时间解决它们):
- 重新编译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下。这就完成了第一步。
- 确保你的cuda版本与visual studio符合。注意,visual studio 2019只与最新的cuda 10.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)
- 重新构建build。打开lib文件夹,输入
python setup.py build develop。如果报错,按照这里的办法做。 - 经过以上更改,你就可以按照readme里的方法来跑这个程序了。