Skip to content

codecookinging/ctpn2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ctpn_new

2018.3.24 更新

这里是我们将要重构代码的地方,每个人的模块代码将存放在这里,在向仓库提交前请确保在根目录中的.gitignore文件中中添加了 ctpn_tensorflow/*,使得git忽略你在原实现下的代码改动。然后将代码push,必要时PR。之后这份README请大家共同维护,在较大的更新时请在这里添加你所做的工作的描述,减少大家理解代码的时间。

之后将在这里上传基本的项目结构,大家有任何的建议都可以在群里说,Happy Hacking😄

2018.3.25 更新

新的项目结构

ctpn_new--|___ctpn 网络抽象层,以及网络运行时需要做的一些操作
          |___data_process 读取训练数据并处理成需要的形式,返回roidb对象
          |___input_layer 网络结果第一层,给核心网络提供每轮batch所需的数据
          |___network 核心网络 基类base_network和两个子类train_network和test_network
          |___lib 运行时所需要的某些cython扩展
          |___prepare 数据预处理脚本,结果直接输出到dataset
          |___run 训练数据和测试数据程序的入口
          |___configure.yml 全局配置 唯一配置

所有程序的运行都在ctpn_new目录下运行,书写时请注意包和模块的路径问题

数据处理格式说明

要将数据整理成的格式如下,存放在dataset/for_train下

---| Imageset 保存图片文件
   ----|xxxxxx.jpg xxxxxx为图片名(不带扩展名)
   | Imageinfo 保存每张图片对应的txt文本
   ----|xxxxxx.txt xxxxxx为图片名(不带扩展名) ,每一行为一个文本框,格式为xmin,ymin,xmax,ymax,width,height,channel
   ----|..........
   | train_set.txt 保存所有训练样本对应的文件名 每行为一张图片的信息

说明:Imageinfo下的每个txt格式变更,原来xmin,ymin,xmax,ymax,width,height,channel弃用,新的格式为xmin,ymin,xmax,ymax, train_set.txt格式变为 xxxx.jpg,scale,width,height,channel, scale是缩放比例

说明:Imageinfo下的每个txt格式变更,原来xmin,ymin,xmax,ymax,width,height,channel弃用,新的格式为xmin,ymin,xmax,ymax, train_set.txt格式变为 xxxx.jpg,width,height,channel,scale scale为缩放比例

将原始数据放在dataset/ICPR_text_train下,文件夹分别为image和text, 两个文件夹的数据必须对应一致。在ctpn_new目录下运行预处理脚本, 处理后的数据将存在dataset/for_train下

重要提示 请大家在书写代码之前确认.gitignore中已经加入了如下的语句,并做一次提交, 然后在开始写代码:

ctpn_tensorflow/*
ctpn_new/dataset/*

2018.3.26 更新

dataset为数据和缓存文件目录,为提高代码共享的效率,添加gitignore 之后被忽略,但应保持其结构一致,避免不必要的麻烦,dataset项目目录结构如下

dataset---|___checkpoints tensorflow断点存储目录
          |___ICPR_text_train 原始数据集
                 |___text 
                 |___image  text和image文件夹中的数据必须一一对应
          |___for_train 训练数据集
                 |___Imageset
                 |___Imageinfo
                 |___train_set.txt
          |___for_test 测试数据集 暂时没有设计
          |___pretrain
                 |____VGG16.npy预训练模型参数
          |___output 网络运行中间的输出目录
          |___log 日志输出目录
          |___cache 存储

为增加程序的鲁棒性,所欲的路径在书写代码都要判断路径是否存在,若不存在则创建

数据处理部分,建议做一个类imagedatabese(名字无所谓),类里面有一个关键属性,就是roidb。roidb是一个列表,其长度等于图片的张数,列表的每个元素都是一个字典,一个字典包含列一张图片的全部信息,字典先包含如下键和值:

  • image_name:图片的名字
  • image_scale:图片的缩放比例
  • image_width:图片的宽
  • image_height:图片的高
  • gt_box:一个N×4的矩阵,矩阵的每一行表示一个文本框的坐标,x1,y1,x2,y2,共N个文本框

不需要gt_ishard,dont_care_area这两个键 源代码里面有一个类RoiDataLayer,他的输入参数之一是imagedatabase类的的imdb属性。该类的核心功能是根据imdb生成可以输入到网络的blobs,其核心函数是源代码中的get_next_minibach(),该函数的功能是返回一个blobs,并把指针下移一位,图片都不需要翻转。

2018.3.27更新

数据预处理、roidb模块、网络模块初步完成,下一步可以开始进行测试。开始着手分析具体每张图片中文本框的形状分布。

2018.4.1更新

注意,为保持一致,im_info里面装着的是(高,宽,缩放比)。任何情况下,高在宽的前面,先是高的信息,再是宽的信息!! 缩放比定义为:修改后的尺寸 / 原图尺寸

2018.4.9 更新

测试数据集的目录机构

data 
  |_______img 预测框的图片,每次运行测试时候要清空
  |_______predict 预测的文本框 每张图片对应一个txt文本,每行为一个文本框 格式如下
  |_______gt 真值文本框 每张图片对应一个txt文本,每行为一个真值框

按照比赛的要求,需要提交的文本格式如下,xxxxxx.jpg 对应一个 xxxxxx.txt

所给的训练样本为四个角点的顺时针或逆时针方向排列的,起点不固定,我们统一处理成以左上角为起点,顺时针旋转

最后生成的预测框,以如下的为标准每行文本按照如下的格式,即左上 右上 右下 左下的格式提交,即顺时针方向

 x1 y1            x2 y2 



 x4 y4            x3 y3

 x1,y1,x2,y2,x3,y3,x4,y4
 ......

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages