# LayoutGen **Repository Path**: arlose/LayoutGen ## Basic Information - **Project Name**: LayoutGen - **Description**: layout generation - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-03-09 - **Last Updated**: 2023-09-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 版面数据生成 == 本项目最终实现应为,用户指定区域形式,可以直接对应生成相应文字、表格、图片、公式等内容。 依赖:python3.5+ & `freetype-py, scipy, numpy, pillow, pyqt5, opencv-python` ## TODO - [x] 继续收集公式图片,561/500(fj **) - [x] 继续收集图片,1200/1000(可以从VOC2007里随机选)(zhr **) - [ ] 继续收集纸张背景图片,18/300(zhr **) - [ ] 文字扭曲变换(kxc *) - [ ] 图像插入时使用泊松方式 (fj *) - [x] 噪声添加及处理(zhr **) - [ ] 图片背景生成(桌面,台面等)(zhr *) - [ ] 继续收集中英日文资料,不同领域(小说,科技,新闻,百科)每个领域至少6篇,每篇不少于10000 words(字)(zhr ***) - [x] text资料规范化脚本(zhr ***) - [ ] 日文字体文件(zhr **) - [x] 垂直标题生成(fj ***) - [x] 表格生成(fj **) - [ ] craft训练脚本(kxc ***) - [x] 区域属性检测批量生成脚本(zhr ***) - [ ] 区域属性检测训练脚本(zhr ***) - [ ] 倾斜区域检测模型调研(fj,zhr **) 初步考察ExtremeNet https://github.com/xingyizhou/ExtremeNet - [ ] GAN、Style transfer类真实场景生成(fj **) - [ ] 垂直文字上下分段(fj *) - [x] 表格样式(fj **)使用表格图片增加多样性 - [ ] 分割线条样式(fj *) - [x] 纸张背景(非纯白,从实际图片中选取特定模式)(fj) - [x] 中英文字体文件(zhr) - [x] 行间距段间距设置(fj) - [x] 段落第一行缩进(fj) - [x] 段落最后一行随机截断(fj) - [x] 标准标注格式生成(kxc) - [x] 纸张扭曲变换(kxc) - [x] 纸张随机截断(kxc)(训练代码包含随机裁剪) - [x] 彩色图像转为灰度图像插入 (fj) - [x] 标题生成(fj) - [x] 公式生成(fj) - [x] 中日韩生成测试(fj) - [x] 自动版面随机生成(fj) - [x] 垂直日文(kxc,fj) - [x] char和affinity训练 - [x] 批量生成脚本(kxc) ## BUG List 1. [x] 输出英文会出现乱码,出现时查看是什么内容和字体 2. [x] 文字渲染越界程序中断(见bugs/bug2) 3. [x] 竖排文字生成越过右边界,竖排文字每列仅有一个文字造成歧义(见bugs/bug3)。 4. [x] 加载字符出错, 加try catch查看 5. [x] 水平中日韩标题重叠(title水平垂直判断bug) ![](https://arloseimg.oss-cn-hangzhou.aliyuncs.com/20200330115534.png) 6. [x] 垂直文字偏差 ![](https://arloseimg.oss-cn-hangzhou.aliyuncs.com/20200331165253.png) 7. [x] 标题文字偏差,前面不空格 ![](https://arloseimg.oss-cn-hangzhou.aliyuncs.com/20200331165359.png) 8. [x] 标注超出部分 ![](https://arloseimg.oss-cn-hangzhou.aliyuncs.com/20200331165512.png) 9. [ ] 公式、文本区域重叠(txt文本中存在乱码,需要整理删除, 见bugs/bug6) 目标:生成下面类似的图片 ![](https://arloseimg.oss-cn-hangzhou.aliyuncs.com/20200313101822.png) # 代码流程 整个代码分为UI和算法两部分,UI代码位于`GUI.py`中,算法代码位于`utils.py`中 ## 算法部分 算法部主要为两个class,一个功能为从文字库中取文字,另一个则为渲染文字。 文字渲染流程为: 1. 获取配置文件中设置的区域位置信息(配置文件中的blank和各个spacing对后续的随机影响较大) 2. 根据位置信息(同时与blank和spacing参数有关)来随机生成该区域内应生成的段落数和各段落行数 3. 根据段落数和行数信息来生成文字 4. 同时对文字进行彩色渲染 5. 生成坐标信息写入txt文档,以供后续使用 ## UI部分 UI部分无特殊流程,在此仅指明各个class的用途 `shhaoLabel`为画图的版面。 `shhaoTreeWidget`为区域选择版面和属性设置版面合二为一。 `shhaoWidget`为整个页面的版面设置信息。 # 日志记录 暂时完成情况: 完成文字、表格、图片的简单随机生成。 - txt中随机取文字完成 - 区域内段落数,段落中行数随机生成 - 区域间距自定义 - 行间距,段间距自定义完成 - 表格随机行列数完成 - 表格内文字随机生成 - 随机取图片置于指定位置 ## date 2019-12-08 添加文字随机颜色 修改输入surface,从一维转为三维,相应代码调整。