目前在GitHub上星數(shù)最多的faster r-cnn Pytorch實(shí)現(xiàn)是這個(gè)。在這個(gè)項(xiàng)目的ReadMe中,作者已經(jīng)給出了程序的運(yùn)行方法。但是,如果你想要在windows10上用python3運(yùn)行,必須還要做一下幾件事(這些都是作者踩過(guò)的大坑,花了我不少時(shí)間解決它們):
- 重新編譯pycocotools。在原項(xiàng)目中,作者是用python 2.7 編譯pycocotools的。這可能會(huì)導(dǎo)致bug。解決方案:去這里下載coco api,進(jìn)入PythonAPI。如果你是windows10,必須更改一個(gè)文件。打開setup.py,將代碼做如下改動(dòng):
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
)
改完之后,通過(guò)命令make編譯,把PythonAPI\pycocotools下的文件全部復(fù)制到aster-rcnn.pytorch-pytorch-1.0\lib\pycocotools下。這就完成了第一步。
- 確保你的cuda版本與visual studio符合。注意,visual studio 2019只與最新的cuda 10.2 兼容。
- 修復(fù)過(guò)時(shí)用法。打開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)
- 重新構(gòu)建build。打開lib文件夾,輸入
python setup.py build develop。如果報(bào)錯(cuò),按照這里的辦法做。 - 經(jīng)過(guò)以上更改,你就可以按照readme里的方法來(lái)跑這個(gè)程序了。