• Faster Rcnn训练自己的数据集过程大白话记录


    声明:每人都有自己的理解,动手实践才能对细节更加理解!

    参考:https://www.cnblogs.com/darkknightzh/p/10043864.html

    一.算法理解

      此处省略一万字。。。。。。。。。。。。。。。。。。

    二.训练及源码理解

      首先配置:

      在./lib/utils文件下....运行

      python setup.py build_ext --inplace

      python setup.py build_ext install

      Go to ./lib/utils文件夹下...运行
      python setup.py build_ext --inplace
    1. 数据介绍:检测图片当中的手写体区域,图片不多自己标注了大约800张,但是图片中的手写体区域大约几千个,之前训练CTPN自己制作的数据集。
    2. 数据格式:分为3个文件夹,首先是JPEGImages(存放的训练图片,命名格式:000000.png,000001.png...等),然后是ImageSets(里面分Layout(包括test.txt,train.txt,trainval.txt,val.txt,存放训练测试验证的文件名称)和Main即可),另外Annotations(存放的是标注数据,xml格式的,之前数据标注在txt里面,自己转为xml标标准格式存储,或者用labelImg-master(Windows)标注,直接生成xml即可),至此数据准备完毕。。。。。。。
    3. 模型准备:默认前段卷积网络VGG16,vgg16需要自己下载,存放在路径.data/imagenet_weights/vgg16.ckpt
    4. 训练:train.py,主要流程及核心代码如下
      net.create_architecture(sess, "TRAIN", self.imdb.num_classes, tag='default')
      rois, cls_prob, bbox_pred = self.build_network(sess, training)  rois为roi pooling层得到的框,cls_prob分类得分,bbox_pred框预测
      net = self.build_head(is_training)  vgg16卷积层提取特征,图片缩小16倍
      rpn_cls_prob, rpn_bbox_pred, rpn_cls_score, rpn_cls_score_reshape = self.build_rpn(net, is_training, initializer)  rpn网络(anchor生成与原图对应坐标),分类得分,候选框偏移等
      rois = self.build_proposals(is_training, rpn_cls_prob, rpn_bbox_pred, rpn_cls_score)  通过超出图片区域,nms等筛选出合适的rois
      cls_score, cls_prob, bbox_pred = self.build_predictions(net, rois, is_training, initializer, initializer_bbox) roi pooling,全连接预测等
    5. 训练自己数据修改的地方,手写体识别就设置了一个类别:chinese,在源码pascal_voc.py中修改self._classes=('__background__', 'chinese')可以按照自己的类别进行修改,注意图片后缀格式,然后修改各种路径就可以训练了。
    6. 测试:迭代了10000次,用demo代码进行测试,数据较少,训练次数也不多,效果还可以,注意修改CLASSES = ('__background__', 'chinese') 预测结果如图所示:
    7.  

  • 相关阅读:
    ThreadLocal的魔数为什么是0x61c88647?
    java流程控制之 高级for循环
    java流程控制之 for循环 九九乘法表
    java流程控制之 while循环 1到1000中能被5整除的数 按3个数据一行输出
    java流程控制之 for循环 1到1000中能被5整除的数 按3个数据一行输出
    java流程控制之 for循环 1到100的奇偶数和
    java流程控制之 while 循环
    java流程控制之 while 循环 1到100的和
    java流程控制之 switch
    java流程控制之顺序结构
  • 原文地址:https://www.cnblogs.com/lzq116/p/12106552.html
Copyright © 2020-2023  润新知