离线服务器RepPoints v2配置
一、系统要求
Centos7.4,cuda10.1,python3.7,pytorch=1.5.1,mmcv=0.6.2,gcc=5.4,pycocotools=2.0.2,opencv-python=4.1.1.26,numpy=1.19.2,若有其他依赖包自行进行安装。
二、服务器升级gcc
由于种种原因,最终将服务器gcc=4.8.5升级为5.4.0版本,下面就介绍下如何在服务器升级gcc。
(1)安装包准备
gcc-5.4.0.tar.gz 安装包 地址:http://mirror.hust.edu.cn/gnu/gcc/
gmp-4.3.2.tar.bz2 gcc依赖包 地址:http://mirror.hust.edu.cn/gnu/gmp/
mpfr-2.4.2.tar.bz2 gcc依赖包 地址:http://mirror.hust.edu.cn/gnu/mpfr/
mpc-0.8.1.tar.gz gcc依赖包 地址:http://mirror.hust.edu.cn/gnu/mpc/
isl-0.14.tar.bz2 gcc依赖包 地址:http://isl.gforge.inria.fr/
这里的版本是对应的,我们可以在解压后的gcc-5.4.0的contrib/download_prerequisites文件里查看到gcc-5.4.0对应依赖包的版本,如图:
注意:离线服务器要将wegt这句话注释了,否则会报错
(2)离线服务器安装
将gcc-5.4.0及依赖包上传到服务器,
依次进行如下操作:
tar -xvzf gcc-5.4.0.tar.gz
#将mpfr、mpc、gmp、isl四个安装包移入gcc-5.4.0文件中
mv gmp-4.3.2.tar.bz2 gcc-5.4.0
mv mpfr-2.4.2.tar.bz2 gcc-5.4.0
mv mpc-0.8.1.tar.gz gcc-5.4.0
mv isl-0.14.tar.bz2 gcc-5.4.0
cd gcc-5.4.0/
./contrib/download_prerequisites
mkdir temp
cd temp
../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
make -j16 #进行编译,编译时间较长,如果你的机器提示线程不足可以尝试make -j4或者make -j8
make install
gcc -v
#出现下面的结果表明升级成功
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/local/libexec/gcc/x86_64-unknown-linux-gnu/5.4.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
Configured with: ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
Thread model: posix
gcc version 5.4.0 (GCC)
'''
gcc -v 出现5.4.0即表示更新成功了,这种方法我尝试时不需要配置环境的,
如果在使用本文档配置出现错误时可以尝试将环境变量配置一下:
cd /usr/bin/
sudo ln -s /usr/local/gcc-5.4/bin/gcc /usr/local/bin/gcc54
sudo ln -s /usr/local/gcc-5.4/bin/g++ /usr/local/bin/g++54
vi /etc/profile
#添加如下代码
export LD_LIBRARY_PATH=/usr/local/gcc-5.4/lib:/usr/local/gcc-5.4/lib64:$LD_LIBRARY_PATH
#保存退出后,生效
source /etc/profile
'''
三、编译并运行RepPointsV2的测试文件
(1)下载RepPointsV2官方代码,地址:https://github.com/Scalsol/RepPointsV2
解压RepPointsV2-master.zip
cd RepPointsV2-master/
python setup.py develop
#编译后成功后
pip list #会有mmdet 2.2.0+unknown /home/deployer/RepPointsV2-master的版本mmdet出现
ls mmdet/ops/corner_pool/
#会看到有corner_pool_ext.cpython-37m-x86_64-linux-gnu.so代表编译完成
(2)运行测试文件
vi demo_image.py
from mmdet.apis import init_detector, inference_detector
import mmcv, os, time
config_file = 'configs/reppoints_v2/reppoints_v2_r50_fpn_giou_1x_coco.py'
checkpoint_file = 'checkpoints/reppoints_v2_r50_fpn_giou_1x_coco-766a3447.pth'
# build the model from a config file and a checkpoint file
model = init_detector(config_file, checkpoint_file, device='cuda:0')
save_path = '11test_result'
local_file = os.listdir('11test_pic/')
for i in range(len(local_file)):
img = '11test_pic/'+local_file[i] # or img = mmcv.imread(img), which will only load it once
print(f'img : {img}')
result = inference_detector(model, img)
model.show_result(img, result, score_thr=0.5, thickness=1, font_scale=0.5, out_file=save_path+'/result_'+local_file[i])
#运行demo_image.py文件即可以进行文件夹内图片的检测
if 你觉得原版结果可以:
pass
else:
#修改下原版的mmcv.imshow_det_bboxes()画图
####这里先用python -c "import mmcv;print(mmcv)"找到mmcv安装包的位置
#结果中<module 'mmcv' from '/home/deployer/anaconda3/lib/python3.7/site-packages/mmcv-0.6.2-py3.7-linux-x86_64.egg/mmcv/__init__.py'>
/home/deployer/anaconda3/lib/python3.7/site-packages/mmcv-0.6.2-py3.7-linux-x86_64.egg/mmcv就是mmcv的安装包,再运行如下语句进行画图修改
vi /home/deployer/anaconda3/lib/python3.7/site-packages/mmcv-0.6.2-py3.7-linux-x86_64.egg/mmcv/visualization/image.py
找到80行的imshow_det_bboxes函数,将125行后面修改为下面的代码:
tl = round(0.002 * (img.shape[0] + img.shape[1]) / 2) + 1
for bbox, label in zip(bboxes, labels):
tf = max(tl - 1, 1)
bbox_int = bbox.astype(np.int32)
left_top = (bbox_int[0], bbox_int[1])
right_bottom = (bbox_int[2], bbox_int[3])
cv2.rectangle(img, left_top, right_bottom, bbox_color, thickness=tl, lineType=cv2.LINE_AA)
label_text = class_names[
label] if class_names is not None else f'cls {label}'
if len(bbox) > 4:
label_text += f'|{bbox[-1]:.02f}'
t_size = cv2.getTextSize(label_text, 0, fontScale=tl / 3, thickness=tf)[0]
c2 = left_top[0] + t_size[0], left_top[1] - t_size[1] - 3
cv2.rectangle(img, left_top, c2, bbox_color, -1, cv2.LINE_AA)
cv2.putText(img, label_text, (left_top[0], left_top[1] - 2), 0, tl / 3, [225, 255, 255], thickness=tf, lineType=cv2.LINE_AA)
vi mmdet/models/detectors/base.py
#修改这个文件夹下的292行的show_result函数的bbox_color和text_color,固定框子颜色
bbox_color=(234, 71, 87),
text_color=(141, 97, 71),
至此,测试代码运行完成,看看结果吧。
数据集来自voc2007
本次分享就到此结束。