CTPN训练自己的数据集过程大白话记录

一.算法理解

  此处省略1万字。。。。。。。。。。。。。。

二.训练及源码理解

  配置以下3步:

  在utils文件夹和utils\bbox文件夹下创建__init__.py文件

  在utils\bbox文件夹下执行python setup.py install

  将.pyd文件拷贝到utils\bbox文件夹下

  1. 数据介绍:检测图片当中的手写体区域,图片不多自己标注了385张,但是图片中的手写体区域大约几千个,后面训练Faster Rcnn也有用到。
  2. 数据格式:首先我是用精灵标注手写体区域存在json文件中,,josn解析提取图片名和标签坐标存在txt中,格式:768,1622,1124,1622,1124,1750,768,1750,chinese,###,总共4个角8个坐标,还有一个标签,全部用的chinese,然后用split_label.py将数据拆分成一个个小框,格式:188,399,191,430只有左上角和右下角坐标。将数据image文件夹和label文件夹(拆分后的数据标签)存放在mlt文件夹里即可。
  3. main/trian.py即可训练核心代码:
    bbox_pred, cls_pred, cls_prob = model.model(input_image)  生成预测框,类别得分和概率
    lstm_output = Bilstm(rpn_conv, 512, 128, 512, scope_name='BiLSTM') 双层LSTM,考虑前后特征的联系
    bbox_pred = lstm_fc(lstm_output, 512, 10 * 4, scope_name="bbox_pred") 
    cls_pred = lstm_fc(lstm_output, 512, 10 * 2, scope_name="cls_pred") 全连接分类得分和候选框预测
    total_loss, model_loss, rpn_cross_entropy, rpn_loss_box = model.loss(bbox_pred, cls_pred, input_bbox,
    input_im_info) 模型的各种损失,交叉熵损失,rpn损失
  4. demo.py进行预测,包括小框合并。

猜你喜欢

转载自www.cnblogs.com/lzq116/p/12106925.html