Windows10下配置Faster-RCNN-TensorFlow-Python3-master运行环境,并训练中文点触验证码,定位中文位置。

一、下载Faster-RCNN-TensorFlow-Python3-master

源码链接:https://github.com/smallcorgi/Faster-RCNN_TF

二、搭建运行所需要的环境

1、首先检查电脑上已经安装anaconda

2、打开Anaconda Prompt使用下面命令,切换到项目文件目录下

cd D:/xxxxx/xxx/.....

3、在此文件目录下,运行

pip install -r requirements.txt

4、再使用cd命令跳转到/data/coco/PythonAPI文件目录下

cd /data/coco/PythonAPI

5、运行

python setup.py build_ext --inplace
python setup.py build_ext install

TIP:运行上面命令可能遇到:Unable to find vcvarsall.bat

解决方法:参考:https://blog.csdn.net/a6822342/article/details/80841056?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

6、再cd跳转到/lib/utils文件目录下,运行

cd /lib/utils
python setup.py build_ext --inplace

三、数据集准备

1、数据集获取代码并自行标注:并使用labelImg进行标注https://download.csdn.net/download/feng_1_ying/12236599

2、将数据转换成VOC格式,先在图像数据集文件加下创建命名为Main的文件例如:imagesets/Main,然后运行以下程序生成test.txt train.txt trainval.txt val.txt,打开Main文件可以查看是否生成这四个文件。

https://download.csdn.net/download/feng_1_ying/12236607

结果如图所示

Windows10下配置Faster-RCNN-TensorFlow-Python3-master运行环境,并训练中文点触验证码,定位中文位置。_第1张图片

3、把自己的xml文件放置在Faster-RCNN-TensorFlow-Python3-master/data/VOCdevkit2007/VOC2007/Annotations路径下

4、把jpg文件放在Faster-RCNN-TensorFlow-Python3-master/data/VOCdevkit2007/VOC2007/JPEGImages路径下

5、将第二步生成的四个TXT文件放在Faster-RCNN-TensorFlow-Python3-master/data/VOCdevkit2007/VOC2007/ImageSets/Layout 和 Faster-RCNN-TensorFlow-Python3-master/data/VOCdevkit2007/VOC2007/ImageSets/Main路径下

四、开始训练

1、下载权重数据:http://download.tensorflow.org/models/vgg_16_2016_08_28.tar.gz

2、在data目录下创建一个imagenet_weights文件夹,解压权重数据并把解压后的vgg_16.ckpt重命名为vgg16.ckpt,然后放到imagenet_weights文件夹中。

3、在Faster-RCNN-TensorFlow-Python3-master\lib\datasets\pascal_voc.py里面修改自己的标注的类别,其中

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._classes = ('__background__',  # always index 0
                         'chinese')

4、在Faster-RCNN-TensorFlow-Python3-master\lib\config\config.py里可以修改最大迭代次数(max_iters)。可以将40000改成自己所需要的。

tf.app.flags.DEFINE_integer('max_iters', 40000, "Max iteration")

5、如果把最大迭代次数max_iters改小了,就要相应的改小snapshot_iterations,否则如果max_iters小于snapshot_iterations,会没有结果输出
 

tf.app.flags.DEFINE_integer('snapshot_iterations', 5000, "Iteration to take snapshot")

6、如果图像训练集不是JPG格式的需要修改lib\datasets\pascal_voc.py中

将self._image_ext = '.jpg'修改为自己图片的格式.例如:

修改为:

7、运行train.py

训练结果被保存到了Faster-RCNN-TensorFlow-Python3-master\default\voc_2007_trainval\default

TIP:如果要再次进行训练,需要把Faster-RCNN-TensorFlow-Python3-master\default\voc_2007_trainval\default和Faster-RCNN-TensorFlow-Python3-master/output/vgg16/voc_2007_trainval/default路径下之前训练产生的模型和Faster-RCNN-TensorFlow-Python3-master/data/cache路径下的cache删掉
五、测试图像

在demo.py中

1. 修改类别,跟pascal_voc.py里的类别一致

CLASSES = ('__background__',
           'person')

 2. 测试数据集改成自己的数据,并替换Faster-RCNN-TensorFlow-Python3-master\data\demo中的图像文件,图像文件的名字与修改后的文件名要一致

im_names = ['000001.jpg', '000002.jpg', '000003.jpg', '000004.jpg',
                '000005.jpg']

3、将

NETS = {'vgg16': ('vgg16_faster_rcnn_iter_70000.ckpt',), 'res101': ('res101_faster_rcnn_iter_110000.ckpt',)}
DATASETS = {'pascal_voc': ('voc_2007_trainval',), 'pascal_voc_0712': ('voc_2007_trainval+voc_2012_trainval',)}

修改成为

NETS = {'vgg16': ('vgg16.ckpt',), 'res101': ('res101_faster_rcnn_iter_110000.ckpt',)}
DATASETS = {'pascal_voc': ('voc_2007_trainval',), 'pascal_voc_0712': ('voc_2007_trainval',)}

4、 新建Faster-RCNN-TensorFlow-Python3-master\output\vgg16\voc_2007_trainval\default目录,将Faster-RCNN-TensorFlow-Python3-master\default\voc_2007_trainval\default下的这四个文件复制到output\vgg16\voc_2007_trainval\default中

然后将这四个文件的文件名改为

5.、将demo.py中104行代码中的default='res101'改为default='vgg16'

6、运行demo.py

六、输出平均精度均值(mAP)

1、在demo.py的import下面添加这些代码,引入新的库

from lib.utils.timer import Timer
# 计算mAP的值
from lib.utils.test import test_net
from lib.datasets.factory import get_imdb

2.、在demo.py的最后添加以下代码

        print('~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~')
        print('Demo for data/demo/{}'.format(im_name))
        demo(sess, net, im_name)
    imdb = get_imdb("voc_2007_trainval")
    test_net(sess, net, imdb, 'default')
    plt.show()

3、 打开pascal_voc.py 修改下面的函数中的filename

def _get_voc_results_file_template(self):
        # VOCdevkit/results/VOC2007/Main/_det_test_aeroplane.txt
        # filename = self._get_comp_id() + '_det_' + self._image_set + '_{:s}.txt'
        filename = self._image_set + '_{:s}'
        path = os.path.join(
            self._devkit_path,
            'results',
            'VOC' + self._year,
            'Main',
            filename)
        return path

4.、新建\data\VOCDevkit2007\results\VOC2007\Main目录

5、运行demo.py,则可显示mAP

你可能感兴趣的:(深度学习项目)