Faster-rcnn 配置方法
Faster-rcnn 在Linux下的配置方法
感谢@邓学长
建立过程:
(下载库的时候要按照库readme 进行操作)
-
opencv 的包下载安装,安装教程
-
用git命令将这个库下载到本地 faster-rcnn
在py3.5下安装
-
安装anaconda(可以考虑改一下源,下载比较快,用命令改conda)清华镜像源
-
下载另一个库Faster-RCNN_TF
-
创建科学计算环境
numpy,人工智能需要的库都下载下来,cython等等 -
conda install --channel 命令给电脑安装科学计算环境
-
如果报错中出现SyntaxError,那可能就是Python版本导致的不兼容,改一下相应的部分
-
把Faster-RCNN_TF 中的cython_bbox.xxx.so 复制到 lib/utils
-
到Faster-RCNN-TensorFlow-python3.5下中的lib/datasets中修改pascal_voc 文件中的内容,具体查看博客
-
运行 python train.py,跑完以后再跑demo.py
下面是适用于我本地环境的MATLAB代码
%注意修改下面四个值
xmlfilepath='/home/pprp/github/Faster-RCNN-TensorFlow-Python3.5/data/VOC2007/Annotations';
txtsavepath='/home/pprp/github/Faster-RCNN-TensorFlow-Python3.5/data/VOC2007/ImageSets/Main';
trainval_percent=0.5; #trainval占整个数据集的百分比,剩下部分就是test所占百分比
train_percent=0.5; #train占trainval的百分比,剩下部分就是val所占百分比
xmlfile=dir(xmlfilepath);
numOfxml=length(xmlfile)-2;#减去.和.. 总的数据集大小
trainval=sort(randperm(numOfxml,floor(numOfxml*trainval_percent)));
test=sort(setdiff(1:numOfxml,trainval));
trainvalsize=length(trainval); #trainval的大小
train=sort(trainval(randperm(trainvalsize,floor(trainvalsize*train_percent))));
val=sort(setdiff(trainval,train));
ftrainval=fopen([txtsavepath 'trainval.txt'],'w');
ftest=fopen([txtsavepath 'test.txt'],'w');
ftrain=fopen([txtsavepath 'train.txt'],'w');
fval=fopen([txtsavepath 'val.txt'],'w');
for i=1:numOfxml
if ismember(i,trainval)
fprintf(ftrainval,'%s\n',xmlfile(i+2).name(1:end-4));
if ismember(i,train)
fprintf(ftrain,'%s\n',xmlfile(i+2).name(1:end-4));
else
fprintf(fval,'%s\n',xmlfile(i+2).name(1:end-4));
end
else
fprintf(ftest,'%s\n',xmlfile(i+2).name(1:end-4));
end
end
fclose(ftrainval);
fclose(ftrain);
fclose(fval);
fclose(ftest);
-
可能过程中还是会报错,只要百度一下就应该可以解决
-
数据的放置结构(这个困惑了我好久)
-data
- VOCdevkit2007
- VOC2007
- Annotations (标签XML文件,用对应的图片处理工具人工生成的)
- ImageSets (生成的方法是用sh或者MATLAB语言生成)
- Main
- test.txt
- trian.txt
- trainval.txt
- val.txt
- JPEGImages(原始文件)
代码改变世界