Faster-rcnn 配置方法

时间:2023-03-08 19:05:53
Faster-rcnn 配置方法

Faster-rcnn 在Linux下的配置方法

感谢@邓学长

建立过程:

(下载库的时候要按照库readme 进行操作)

在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(原始文件)