部署Faster-RCNN TensorFlow版本

  • 创建Anaconda环境
    • Conda命令创建新环境
    • Conda安装所需包
    • gcc降级
  • 下载tf-faster-rcnn和数据集
    • 克隆代码
    • 根据你的显卡更新setup脚本中的arch参数
    • 编译Cython
    • 安装COCO API
    • 下载PASCAL VOC数据集
  • 用预训练模型演示并测试
    • 下载并解压预训练模型
    • 创建一个文件夹和一个软链接以使用预训练模型
    • 对示例图片的测试演示
    • 用预训练好的Resnet101模型对数据进行测试
  • 训练你的模型
    • 下载预训练模型和权重
    • 训练(测试和评估)
    • 用Tensorboard可视化
    • 测试与评估
    • 再评估
    • 补充说明
  • 自己标注数据集
    • XML格式
    • 安装conda包
    • 下载标注工具labelImg
    • 使用labelImg进行标注
  • 准备自己的数据集并进行训练
    • 建立数据集
    • 改程序
    • 训练与测试
    • 应用

创建Anaconda环境

首先利用Anaconda创建并配置一个独立的Python环境,在此我的环境名字为tf-faster-rcnn

Conda命令创建新环境

打开终端,通过conda命令创建名为tf-faster-rcnn的新环境,同时指定python版本为3.6:

su@Laptop-su:~$ conda create -n tf-faster-rcnn python=3.6

若想删除conda环境,可采用下面命令:

su@Laptop-su:~$ conda remove -n tf-faster-rcnn --all

Conda安装所需包

在终端内使用下面命令进入tf-faster-rcnn环境:

su@Laptop-su:~$ source activate tf-faster-rcnn

可以通过下面指令确认自己所在的环境位置:

(tf-faster-rcnn) su@Laptop-su:~$ conda env list

若要退出tf-faster-rcnn环境,返回默认环境,使用下面命令:

(tf-faster-rcnn) su@Laptop-su:~$ source deactivate

tf-faster-rcnn环境下,使用conda命令逐一安装所需包:
1.tensorflow-gpu

(tf-faster-rcnn) su@Laptop-su:~$ conda install tensorflow-gpu

会自动将最新版本的tensorflow-gpu版本以及其依赖的包比如cudatoolkitcudnnscipyscikit-learnnumpy安装完毕,我安装时如果不指定版本自动安装会安装tensorflow-gpu=1.12cudatoolkit=9.2cudnn=7.2.1,注意cuda的版本是要跟你的N卡驱动匹配的,看下图

我的N卡驱动版本是390.77,并且不想升级显卡驱动,因此CUDA最高可选择9.1,我决定先安装CUDA9.0
可以通过下面命令安装指定版本的包:

(tf-faster-rcnn) su@Laptop-su:~$ conda install cudatoolkit=9.0

再安装tensorflow,会自动将匹配CUDA9.0cudnn版本附带安装完毕

(tf-faster-rcnn) su@Laptop-su:~$ conda install tensorflow-gpu

这样安装完成后,我的环境里是tensorflow-gpu=1.12cudatoolkit=9.0cudnn=7.1.2

2.py-opencv

(tf-faster-rcnn) su@Laptop-su:~$ conda install py-opencv

我安装时自动安装的是py-opencv=3.4.2
3.matplotlib

(tf-faster-rcnn) su@Laptop-su:~$ conda install matplotlib

4.cython

(tf-faster-rcnn) su@Laptop-su:~$ conda install cython

5.pillow

(tf-faster-rcnn) su@Laptop-su:~$ conda install pillow

6.pyyaml

(tf-faster-rcnn) su@Laptop-su:~$ conda install pyyaml

7.easydict
conda库中不提供easydict的安装,需要使用pip命令进行安装:

(tf-faster-rcnn) su@Laptop-su:~$ pip install easydict

我安装时,自动安装的是easydict=1.9

gcc降级

我们要gittf-faster-rcnn不支持6以上版本的gcc,因此要对gcc进行降级或者改变不同版本的优先级.

  1. 查看gcc版本
    在终端中输入如下命令:
su@Laptop-su:~$ gcc -v

会显示gcc version
在此我的gcc版本为7

  1. 查看安装有哪些版本的gcc
    在终端中输入如下命令:
su@Laptop-su:~$ ls /usr/bin/gcc*

如果没有需要的版本,则需要进行第3步安装指定版本

  1. 安装指定版本gcc
    以安装gcc5为例,在终端中输入如下命令:
su@Laptop-su:~$ sudo apt-get install gcc-5 g++-5
  1. 配置gcc优先级
    在终端中输入如下命令调整优先级,数值越低优先级越高:
su@Laptop-su:~$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-7 50
su@Laptop-su:~$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-5 40

输入如下命令,确认配置:

su@Laptop-su:~$ sudo update-alternatives --config gcc

同样也要设置一下g++的:

su@Laptop-su:~$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-7 50
su@Laptop-su:~$ sudo update-alternatives --install /usr/bin/g++ gc++/usr/bin/g++-5 40

如果想删除可选项的话可以键入以下指令:

su@Laptop-su:~$ sudo update-alternatives --remove gcc /usr/bin/gcc-7
  1. 检查当前gcc版本
    在终端中输入如下命令:
su@Laptop-su:~$ gcc -v

显示如下:

下载tf-faster-rcnn和数据集

克隆代码

在想要下载的位置下通过终端输入下列命令:

su@Laptop-su:~/GitHub$  git clone https://github.com/endernewton/tf-faster-rcnn.git

根据你的显卡更新setup脚本中的arch参数

修改tf-faster-rcnn/lib/setup.py中第130行的arch参数
比如我的显卡是1070,算力是6.1,所以是sm_61
你显卡的算力可以查询下面网址:
https://developer.nvidia.com/cuda-gpus#collapseOne

编译Cython

tf-faster-rcnn/lib路径下,在tf-faster-rcnn环境下输入终端命令:

# 清除之前编译结果
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn/lib$  make clean
# 编译
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn/lib$  make

安装COCO API

这是为了使用COCO数据库

(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn$ cd data
# 下载COCO API
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn/data$ git clone https://github.com/pdollar/coco.git
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn/data$ cd coco/PythonAPI
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn/data/coco/PythonAPI$ make
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn/data/coco/PythonAPI$ cd ../../..

下载PASCAL VOC数据集

  1. 下载训练集,验证集,测试集以及VOCdevkit
    在想要存放数据集的位置打开终端,输入下列命令:
su@Laptop-su:/media/su/学习/数据集/样本库/PASCAL VOC$ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtrainval_06-Nov-2007.tar
su@Laptop-su:/media/su/学习/数据集/样本库/PASCAL VOC$ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCtest_06-Nov-2007.tar
su@Laptop-su:/media/su/学习/数据集/样本库/PASCAL VOC$ wget http://host.robots.ox.ac.uk/pascal/VOC/voc2007/VOCdevkit_08-Jun-2007.tar
  1. 将所有压缩包解压到一个名为VOCdevkit的文件夹中
su@Laptop-su:/media/su/学习/数据集/样本库/PASCAL VOC$ tar xvf VOCtrainval_06-Nov-2007.tar
su@Laptop-su:/media/su/学习/数据集/样本库/PASCAL VOC$ tar xvf VOCtest_06-Nov-2007.tar
su@Laptop-su:/media/su/学习/数据集/样本库/PASCAL VOC$ tar xvf VOCdevkit_08-Jun-2007.tar
  1. VOCdevkit文件夹应由如下构成
su@Laptop-su:/media/su/学习/数据集/样本库/PASCAL VOC/VOCdevkit$   # development kit
su@Laptop-su:/media/su/学习/数据集/样本库/PASCAL VOC/VOCdevkit/VOCdevkit/VOCcode$  # VOC utility code
su@Laptop-su:/media/su/学习/数据集/样本库/PASCAL VOC/VOCdevkit/VOCdevkit/VOC2007$  # image sets, annotations, etc.
  1. 创建数据集的软连接
su@Laptop-su:/media/su/学习/数据集/样本库/PASCAL VOC/VOCdevkit$ cd ~/GitHub/tf-faster-rcnn/data
su@Laptop-su:~/GitHub/tf-faster-rcnn/data$ ln -s "/media/su/学习/数据集/样本库/PASCAL VOC/VOCdevkit" VOCdevkit2007

用预训练模型演示并测试

下载并解压预训练模型

# Resnet101 for voc pre-trained on 07+12 set
su@Laptop-su:~/GitHub/tf-faster-rcnn$ ./data/scripts/fetch_faster_rcnn_models.sh

该sh文件中提供了两个下载地址,但是由于是外网可能下载很慢,可以直接从百度网盘下载并解压到 ./data/下
感谢下文博主传到百度云的链接:预训练模型 密码:8ahl
https://blog.csdn.net/char_QwQ/article/details/80980505

#解压
su@Laptop-su:~/GitHub/tf-faster-rcnn/data$ tar zxvf voc_0712_80k-110k.tgz

解压完如下图

创建一个文件夹和一个软链接以使用预训练模型

tf-faster-rcnn根目录创建一个output文件夹并且在其中存放预训练模型的软链接,output文件夹中会在每次训练后存放训练好的模型

su@Laptop-su:~/GitHub/tf-faster-rcnn$ NET=res101
su@Laptop-su:~/GitHub/tf-faster-rcnn$ TRAIN_IMDB=voc_2007_trainval+voc_2012_trainval
su@Laptop-su:~/GitHub/tf-faster-rcnn$ mkdir -p output/${NET}/${TRAIN_IMDB}
su@Laptop-su:~/GitHub/tf-faster-rcnn$ cd output/${NET}/${TRAIN_IMDB}
su@Laptop-su:~/GitHub/tf-faster-rcnn/output/res101/voc_2007_trainval+voc_2012_trainval$ ln -s ../../../data/voc_2007_trainval+voc_2012_trainval ./default
su@Laptop-su:~/GitHub/tf-faster-rcnn/output/res101/voc_2007_trainval+voc_2012_trainval$ cd ../../..

如下图

对示例图片的测试演示

上面的Res101网络预训练模型是已经经过imagenet和voc0712数据集训练好的,用demo来调用output文件夹下的该模型,展示其实际检测效果
注意切到tf-faster-rcnn的python环境下

(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn$ GPU_ID=0
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn$ CUDA_VISIBLE_DEVICES=${GPU_ID} ./tools/demo.py


用预训练好的Resnet101模型对数据进行测试

同样采用上面在ImageNet和VOC0712上训练过的Resnet101预训练模型,对其用VOC0712的test测试集进行测试(查阅test_faster_rcnn.sh会发现,其实所用的就是VOC07的test测试集)
感谢这位博主提供的参考
tf-faster-rcnn/lib/datasets/voc_eval.py的第121行的
with open(cachefile,'w') as f
改成:
with open(cachefile,'wb') as f

同时还要把第105行的
cachefile = os.path.join(cachedir, '%s_annots.pkl' % imagesetfile)
改为
cachefile = os.path.join(cachedir, '%s_annots.pkl' % imagesetfile.split("/")[-1].split(".")[0])

然后在终端中输入下面命令

(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn$ GPU_ID=0
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn$ ./experiments/scripts/test_faster_rcnn.sh $GPU_ID pascal_voc_0712 res101

结果如图所示
测试完毕后同样会在output文件夹下建立一个路径为

/output/res101/voc_2007_test/default/res101_faster_rcnn_iter_110000/

的文件夹,res101代表网络名称,voc_2007_test代表数据集,与训练不同,该文件夹下不再是模型文件

训练你的模型

下载预训练模型和权重

该程序目前支持VGG16和ResnetV1(包括50\101\152)网络结构,这4种网络结构都经过了ImageNet数据集的预训练,其预训练模型由slim提供,可以在这里下载。将其下载并放在data/imagenet_weights文件夹下。下面将以VGG16模型为例,讲解VGG16如何利用VOC数据集进行训练。

# 建立imagenet_weights文件夹
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn$  mkdir -p data/imagenet_weights
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn$  cd data/imagenet_weights
# 下载vgg16模型到imagenet_weights文件夹下并解压缩,你也可以到本小节上面的网址里下载
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn/data/imagenet_weights$  wget -v http://download.tensorflow.org/models/vgg_16_2016_08_28.tar.gz
tar -xzvf vgg_16_2016_08_28.tar.gz
# 模型重命名,这是为了给test_faster_rcnn.sh传入参数NET时符合其候选项命名
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn/data/imagenet_weights$ mv vgg_16.ckpt vgg16.ckpt
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn/data/imagenet_weights$ cd ../..

同理,下载ResNet101的方式如下:

# 建立imagenet_weights文件夹
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn$  mkdir -p data/imagenet_weights
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn$  cd data/imagenet_weights
# 下载vgg16模型到imagenet_weights文件夹下并解压缩,你也可以到本小节上面的网址里下载
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn/data/imagenet_weights$  wget -v http://download.tensorflow.org/models/resnet_v1_101_2016_08_28.tar.gz
tar -xzvf resnet_v1_101_2016_08_28.tar.gz
# 模型重命名,这是为了给test_faster_rcnn.sh传入参数NET时符合其候选项命名
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn/data/imagenet_weights$ resnet_v1_101.ckpt res101.ckpt
(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn/data/imagenet_weights$ cd ../..

训练(测试和评估)

训练的格式如下

./experiments/scripts/train_faster_rcnn.sh [GPU_ID] [DATASET] [NET]
# GPU_ID 是你要使用的GPU编号
# NET  是你采用的网络类型, 可选范围为{vgg16, res50, res101, res152}
# DATASET 是数据集,在train_faster_rcnn.sh中预先定义过{pascal_voc, pascal_voc_0712, coco} ,还可以根据自己需要进行添加
# Examples:
./experiments/scripts/train_faster_rcnn.sh 0 pascal_voc vgg16
./experiments/scripts/train_faster_rcnn.sh 1 coco res101

上面在演示demo时,在output中建立了一个经过VOC0712数据集训练好的Res101模型的软链接
如果有再次使用VOC0712数据集对Res101进行训练的需要,记得删除掉该软链接

下面使用VOC07数据集训练VGG16(,并测试):
为了节省时间并排除错误,我把迭代次数只设置了20次,即在./experiments/scripts/train_faster_rcnn.sh里的第22行把ITERS=70000改成ITERS=20,同时由于train_faster_rcnn.sh中最后有调用test_faster_rcnn.sh,因此记得把./experiments/scripts/test_faster_rcnn.shITERS也改成20。

(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn$ ./experiments/scripts/train_faster_rcnn.sh 0 pascal_voc vgg16

结果如图
可见由于只训练了20代,准确度是非常之差的

运行train_faster_rcnn.sh后会自动运行test_faster_rcnn.sh,即训练完会自动进行测试

用Tensorboard可视化

训练完成后,可以使用Tensorboard对训练过程的log进行可视化

(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn$ tensorboard --logdir=tensorboard/vgg16/voc_2007_trainval/ --port=7001 &

logdir用来设置想要把Tensorboardevent文件存放在哪里,port用来设置通过哪个端口显示Tensorboard界面

上述命令在tensorboard文件夹下创建了如下文件

在浏览器中输入对应网址打开tensorboard界面如下(我只训练了20代所以仅做参考)

测试与评估

类似训练的过程,只不过是调用test_faster_rcnn.sh而不是train_faster_rcnn.sh,即只用测试集进行测试,并不进行训练

./experiments/scripts/test_faster_rcnn.sh [GPU_ID] [DATASET] [NET]
# GPU_ID 是你要使用的GPU编号
# NET  是你采用的网络类型, 可选范围为{vgg16, res50, res101, res152}
# DATASET 是数据集,在train_faster_rcnn.sh中预先定义过{pascal_voc, pascal_voc_0712, coco} ,还可以根据自己需要进行添加
# Examples:
./experiments/scripts/test_faster_rcnn.sh 0 pascal_voc vgg16
./experiments/scripts/test_faster_rcnn.sh 1 coco res101

再评估

可以使用tools/reval.sh进行在评估

补充说明

默认情况下,训练好的网络存放在:

output/[NET]/[DATASET]/default/



测试的输出结果存放在:

output/[NET]/[DATASET]/default/[SNAPSHOT]/



训练和验证的Tensorboard信息存放在:

tensorboard/[NET]/[DATASET]/default/
tensorboard/[NET]/[DATASET]/default_val/


自己标注数据集

推荐使用下面工具按照VOC数据集采用的xml格式标注

XML格式

安装conda包

  1. lxml
(tf-faster-rcnn) su@Laptop-su:~/GitHub$ conda install lxml
  1. qt
(tf-faster-rcnn) su@Laptop-su:~/GitHub$ conda install qt

下载标注工具labelImg

git到哪个路径无所谓,后面执行标注工具时切到该路径即可

su@Laptop-su:~/GitHub$ git clone https://github.com/tzutalin/labelImg.git

共计200+M大小,下载速度较慢,大概1小时,耐心等候,若断网需要删除重下
下载好后,到标注工具文件夹下输入如下代码配置完毕:

(tf-faster-rcnn) su@Laptop-su:~/GitHub/labelImg$ pyrcc5 -o resources.py resources.qrc

输入下面代码调用标注工具:

(tf-faster-rcnn) su@Laptop-su:~/GitHub/labelImg$ python labelImg.py

界面如图

使用labelImg进行标注

  1. 改变标注文件夹位置
    点击Menu/File中的Change default saved annotation folder

  2. 选择图片路径
    点击Open Dir

  3. 创建矩形框
    点击Create RectBox

  4. 点击和松开鼠标左键来选择一个要标注的区域

  5. 可以使用鼠标右键拖拽矩形框来进行复制或移动

快捷键 用途
Ctrl + u 载入某路径下的所有图片
Ctrl + r 改变标注文件存放默认路径
Ctrl + s 保存
Ctrl + d 复制当前标签与矩形框
Space Flag the current image as verified
w 创建矩形框
d 下一张图片
a 上一张图片
del 删除选中的矩形框
Ctrl++ 放大
Ctrl– 缩小
↑→↓← 键盘方向键移动选中的矩形框

准备自己的数据集并进行训练

建立数据集

我们将仿照VOC2007的格式建立自己的数据集

  1. 找到你存放PASCAL VOC数据集的位置建立一个文件夹,我的数据集命名为"MSDD"

  2. 在MSDD文件夹下,建立3个文件夹

    ananotations_cache里存放的是标注缓存数据,如果你对数据集有改动,记得清除缓存数据,否则的话依旧加载的是原始数据

  3. results文件夹下依次创建如下路径

  4. VOC2007文件夹下创建如下3个子文件夹

    在Annotations目录下存放所有的xml标签文件,名字格式为000001.xml
    在JPEGImages目录下存放所有的jpg图片,名字格式为000001.jpg

  5. 在ImageSets文件夹下创建3个子文件夹

其中Main文件夹下存放的是记录各个子集所包含样本编号的txt文件
可以有很多子集,运行程序时指定哪个子集就会使用哪个子集

在这里我做了4个子集
txt中的格式如下

建议在筛选训练集、验证集、测试集时使用随机方法,在此我仅做演示

  1. 在data文件夹下建立软链接

建立软链接的方式上面提到过了

其实完全可以直接把数据集放在data文件夹下,但是因为有时一个数据集可能为多个代码重复使用,因此,使用软链接不失为一种更佳的方式

改程序

  1. 新建msdd.py
    在lib/dataset/目录下复制pascal_voc.py并以自己的数据集命名
    该文件会生成该各个子数据集的imdb,如msdd_train、msdd_val等
    改了哪些位置注意看下面的对照
# pascal_voc.py
class pascal_voc(imdb):def __init__(self, image_set, year, use_diff=False):name = 'voc_' + year + '_' + image_setif use_diff:name += '_diff'imdb.__init__(self, name)self._year = yearself._image_set = image_setself._devkit_path = self._get_default_path()self._data_path = os.path.join(self._devkit_path, 'VOC' + self._year)self._classes = ('__background__',  # always index 0'aeroplane', 'bicycle', 'bird', 'boat','bottle', 'bus', 'car', 'cat', 'chair','cow', 'diningtable', 'dog', 'horse','motorbike', 'person', 'pottedplant','sheep', 'sofa', 'train', 'tvmonitor')self._class_to_ind = dict(list(zip(self.classes, list(range(self.num_classes)))))self._image_ext = '.jpg'self._image_index = self._load_image_set_index() # Default to roidb handlerself._roidb_handler = self.gt_roidbself._salt = str(uuid.uuid4())self._comp_id = 'comp4'# PASCAL specific config optionsself.config = {'cleanup': True,'use_salt': True,'use_diff': use_diff,'matlab_eval': False,'rpn_file': None}
# msdd.py
class msdd(imdb):def __init__(self, image_set):name = 'msdd_' + image_setimdb.__init__(self, name)self._year = '2007'self._image_set = image_setself._devkit_path = self._get_default_path()self._data_path = os.path.join(self._devkit_path, 'VOC' + self._year)  # 数据位置 data/MSDD/VOC2007self._classes = ('__background__',  # always index 0 'cr', 'ln', 'pa', 'ps', # 改成自己的类别'rs', 'sc')self._class_to_ind = dict(list(zip(self.classes, list(range(self.num_classes)))))self._image_ext = '.jpg'  # 建议使用jpg格式self._image_index = self._load_image_set_index()# Default to roidb handlerself._roidb_handler = self.gt_roidbself._salt = str(uuid.uuid4())self._comp_id = 'comp4'# PASCAL specific config optionsself.config = {'cleanup': True,'use_salt': True,'use_diff': False, # 关闭use_diff'matlab_eval': False,'rpn_file': None}
# pascal_voc.pydef _get_default_path(self):"""Return the default path where PASCAL VOC is expected to be installed."""return os.path.join(cfg.DATA_DIR, 'VOCdevkit' + self._year)
# msdd.pydef _get_default_path(self):"""Return the default path where PASCAL VOC is expected to be installed."""return os.path.join(cfg.DATA_DIR, 'MSDD') # 开发包位置 data/MSDD
  1. 修改factory.py
    该文件同样在lib/dataset/目录下
    该文件生成由各个子数据集(xxx_train、xxx_test)的imdb格式组成的字典,其中会调用如pascal_voc.py、msdd.py等文件,以按各个数据集的指定格式生成各个子数据集的imdb

仿照其他格式在相应位置插入下面代码

# factory.py
# Set up mssd_<split>
for split in ['train', 'val', 'trainval', 'test']:# 只能选ImageSets/Main中有的txt文件,可以仅选一部分name = 'msdd_{}'.format(split)__sets[name] = (lambda split = split: msdd(split))
  1. 修改train_faster_rcnn.sh
    仿照其他数据集,添加自己数据集,可选的IMDB都是在factory.py中生成的
# train_faster_rcnn.shmsdd)TRAIN_IMDB="msdd_trainval" # 训练所用IMDBTEST_IMDB="msdd_test" # 测试所用IMDBSTEPSIZE="[50000]"  ITERS=20   ANCHORS="[8,16,32]"RATIOS="[0.5,1,2]";;
  1. 修改test_faster_rcnn.sh
    仿照其他数据集,添加自己数据集,可选的IMDB都是在factory.py中生成的
# test_faster_rcnn.shmsdd)TRAIN_IMDB="msdd_trainval" # 训练所用IMDBTEST_IMDB="msdd_test" # 测试所用IMDBITERS=20   ANCHORS="[8,16,32]"RATIOS="[0.5,1,2]";;

训练与测试

(tf-faster-rcnn) su@Laptop-su:~/GitHub/tf-faster-rcnn$ ./experiments/scripts/train_faster_rcnn.sh 0 msdd vgg16

应用

修改tools/demo.py里面的’CLASSES‘、’NETS’以及’DATASETS’变量为和自己的数据集相关,修改main函数里面测试图片名,即可利用训练好的模型对几张图片进行检测应用

部署Faster-RCNN TensorFlow版本相关推荐

  1. faster rcnn tensorflow版本遇到的问题记录

    1. fatal error: nsync_cv.h: No such file or directory a. 找到~/tensorflow/venvpy27/lib/python2.7/site- ...

  2. 自己的数据:Faster Rcnn Tensorflow

    参见:https://blog.csdn.net/kebi199312/article/details/89331367 https://blog.csdn.net/u011574296/articl ...

  3. faster r-cnn训练、测试、检测(含批量检测图片)

    faster r-cnn(tensorflow版本)训练VOC数据集.测试.检测指南 使用的faster r-cnn代码github地址 https://github.com/endernewton/ ...

  4. caffe下matlab、python的配置和faster RCNN的运行

    因为自己的电脑没有安装linux环境,显卡也不支持CUDA,所以在实现faster RCNN的demo的过程中还是很麻烦的. 完善项目文件 下图是vs2013 打开的caffe解决方案的工程目录.由于 ...

  5. Tensorflow下用自己的数据集对Faster RCNN进行训练和测试(二)1

    原 Tensorflow下用自己的数据集对Faster RCNN进行训练和测试(二) 2018年08月21日 22:20:38 子季鹰才 阅读数:1811 对于Tensorflow版本的Faster ...

  6. 毕设日志2019.4.2——tf版本的faster rcnn的代码运行

    今天参考https://blog.csdn.net/sinat_33486980/article/details/81045315 一文进行tf版本的faster rcnn的demo运行未果,原因是到 ...

  7. tf-faster-rcnn代码学习.目标检测(Tensorflow版Faster R-CNN)

    TF-Faster R-CNN 电脑配置 代码来源 环境配置 demo测试 参考博客 训练自己的数据集 测试阶段 Tensorboard查看收敛情况 电脑配置 系统:Ubuntu 16.04 GPU型 ...

  8. Windows下Faster R-CNN 配置/Matlab版本编译

    配置环境: Windows10x64 Matlab2015Ra VS2013 Opencv2.4.11 CUDA7.5 GTX950M CUDA7.5安装 因为Cuda7.5做了很大的优化改进,而且对 ...

  9. faster rcnn windows 下c++版本

    faster rcnn windows 下c++版本 参考了http://www.cnblogs.com/louyihang-loves-baiyan/p/5485955.html,和http://b ...

  10. Faster R-CNN的安装及测试(Python版本和Matlab版本)

    rbg的Python版本 一.拉取源码 git clone --recursive https://github.com/rbgirshick/py-faster-rcnn.git 拉取完成后,在/h ...

最新文章

  1. 基于xampp搭建的个人博客。
  2. Vue3 VSCode新建项目报错The template root requires exactly one element.
  3. IIS支持下载.config后缀名的文件
  4. OpenHarmony移植案例与原理:如何适配服务启动引导部件bootstrap_lite
  5. Notadd —— 基于 nest.js 的微服务开发框架
  6. sqlserver 2008完整安装教程
  7. 实时音频编解码之十一Opus编码
  8. VINS-Mono代码解读——视觉跟踪 feature_trackers
  9. 联想服务器修改显存,如何调整用于显卡的共享内存
  10. 多个约束的lagrange multiplier证明.
  11. Android Fragment 从源码的角度去解析(上)
  12. 双非二本一战上岸科软经验贴
  13. BZOJ 1565 [NOI2009]植物大战僵尸
  14. 尚硅谷电商管理平台笔记2
  15. 如何用python统计英语文章词频?
  16. uctf信息安全_UCTF2016 twi Writeup
  17. Java实现快递管理系统四(View+Main+Dao总结)
  18. 2个Android蓝牙无法连接的原因和解决方法
  19. 实现简单迷宫小游戏(几行代码)-免费附源码
  20. Android端肤色检测

热门文章

  1. 并行Zhang细化算法FPA算法
  2. php执行sql语句
  3. 非常实用的log调试工具:logcat
  4. python 图像iou_python实现IOU计算
  5. Android用View实现球形旋转滚动效果(中秋篇)
  6. 【数值分析】弦截法求解-Python实现
  7. 阿里云点播获取播放路径
  8. 自动填写个人信息(问卷星)
  9. 浅谈用Excel开发MIS的方法
  10. Spring的AOP介绍