win8 发表于 2019-2-5 18:33

[电子书切边/OCR]已经开搞,“真的只差一个码农了"

本帖最后由 win8 于 2019-2-10 11:39 编辑

虽说现在电子书扫描档自动切边、重排版、ocr已经很厉害了,但是很多时候仍然很惨。我在想能不能做一个结合深度学习对扫描书自动切边、重排版甚至ocr的软件。

处理的对象:
针对出版物,已经使用扫描仪采集导出的PDF电子书

处理的结果:
矫正倾斜/去除多余白边/去除页眉页脚,重新输出PDF,

更进一步的可能性:
1. (甚至结合OCR)制作一个排版更优秀的扫描档重排功能的Android阅读器应用.
2. 制作一个大幅减少工作量的PDF扫描档->图文混排电子书的转换工具.

核心思路:1. 把扫描书最中间的20页左右页提取为图片作为样本
2. 解析bitmap,对每页文字区域提取特征、对页眉页脚均匀连续的边线提取特征
3.针对提取到的特征自动校正图片的偏转方向
4. 根据文字区域特征、页眉页脚边线特征的相似性判断真实的页眉页脚区域,把这些区域裁切掉。并且训练出模型(至多包含奇数页、偶数页、无页眉页脚页)
5. 使用训练的模型对整本书进行自动裁切

备选方案:
1. 提取扫描书为位图文件(已经实现)
2. 对位图尺寸进行判定,高于512*512的位图压缩分辨率至200像素宽,并进行二值化
3. 针对(2)处理的结果作深度学习,基于识别文字轮廓/整行轮廓文字的图形对书页进行版面分析
4.针对排版分析结果输出缩图的正文区域,针对同一本书的正文区域再次做机器学习处理,令同一书的正文区域较为接近
5. 缩图的正文区域乘以缩图比例得到粗步的原图裁切区域。


>更多的:
一个文本类型的阅读器,针对文本内容用户可以进行手动矫正(错误的断行/错字/章节重复/广告/错误的OCR)。
针对文本进行分词并记录词频。
现实内容时,进行分词和自然语言的语义识别。如果分词结果很诡异,或者语义语法存在很大的问题,检索异常部分的文字图像是否与先前矫正的内容的相似性。如果相似度较高,那么自动校正文本。

> 更多的:
调用一页裁切的结果,使用互联网ocr接口对图片进行文本识别。
针对识别的结果用户进行手动矫正。
针对识别的结果进行分词并记录词频。
识别下页内容时,进行分词和自然语言的语义识别。如果分词结果很诡异,或者语义语法存在很大的问题,检索异常部分的文字图像是否与先前矫正的图像有高的相似性。如果相似度较高,那么自动校正文本。

已经在自己折腾了,有这个方向折腾的意向的话请联系我.
使用java,目的是PC和android设备都有机会使用,
一楼更新进度, 如果有大的进展我会顶下帖子

https://static.saraba1st.com/image/hrline/2.gif
2/6 完成了最最初步的工具,从PDF抽取图片并保存为文件.

使用方法:拖拽一个或多个文件,甚至是文件夹到run.bat上,软件自动提取图片并显示在命令行界面上。
其实就是找到现成的pdfbox库然后套了个壳子。
类似的工具其实有现成的,但是用别人的工具操作太复杂了……并且现成的工具不见得比这个好用。
链接: https://pan.baidu.com/s/1wdOgbtt_5mDGIUZI9OVvSA 提取码: ry32

https://static.saraba1st.com/image/hrline/2.gif



dada 发表于 2019-2-5 18:41

书里面的图片不好处理吧

win8 发表于 2019-2-5 18:51

dada 发表于 2019-2-5 18:41
书里面的图片不好处理吧

如果只自动切边,书里的图不用管。
如果做ocr书里的附图其实也好处理。可能现在也有成熟的方案了,我自己的想法是:
针位图里连续的·抽象为■,这样一行行的文字就变成了
■■■■■■■
■■■■■■■
这样文本区域就可以分离了,剩下的区域可以裁切为矩形附图。
如果附图内连续的·的数量小于一定值,直接把这个附图剔除掉。

lemon鱿鱼 发表于 2019-2-5 18:53

精钢魔像 发表于 2019-2-5 19:23

可行是可行,只要有分词字典。
但如果是正规的渠道,完全可以拿到电子档不是。似乎只能做古籍的电子化。

win8 发表于 2019-2-5 19:26

lemon鱿鱼 发表于 2019-2-5 18:53
我觉得单纯图像处理技术就够用了 可能用不到ml?
而且还是那个老问题 先有人工再有智能 要不lz先负责标注一 ...

卧槽 万万没想到你真打算做?
你觉得需要标注什么内容呢?需要保留的正文内容的矩形方框的4个坐标嘛?

win8 发表于 2019-2-5 19:30

精钢魔像 发表于 2019-2-5 19:23
可行是可行,只要有分词字典。
但如果是正规的渠道,完全可以拿到电子档不是。似乎只能做古籍的电子化。 ...

除了古籍电子化还有看盗版书啊。虽说现在电子图书是多了,还是只有扫描档没图文档的电子书多些。

猫不萌 发表于 2019-2-5 19:36

还真有人信了程序员的帮忙做标注

—— 来自 HUAWEI COL-AL10, Android 9上的 S1Next-鹅版 v2.1.2

精钢魔像 发表于 2019-2-5 20:02

win8 发表于 2019-2-5 19:30
除了古籍电子化还有看盗版书啊。虽说现在电子图书是多了,还是只有扫描档没图文档的电子书多些。
...

盗版书啊,可能下次扫黄打非就被干掉了。

win8 发表于 2019-2-5 20:33

精钢魔像 发表于 2019-2-5 20:02
盗版书啊,可能下次扫黄打非就被干掉了。

也不纯是盗版书啊,读秀啊什么的下载,电子图书馆的文献传递,正当途径也能拿到很多是扫描档的图书

sorayang 发表于 2019-2-5 20:52

win8 发表于 2019-2-5 19:30
除了古籍电子化还有看盗版书啊。虽说现在电子图书是多了,还是只有扫描档没图文档的电子书多些。
...

看盗版的历来都是伸手党,行动力没你想象的那么高(对说的就是我自己,连买了书拆掉扫描做PDF都能拖很长时间

win8 发表于 2019-2-5 21:06

sorayang 发表于 2019-2-5 20:52
看盗版的历来都是伸手党,行动力没你想象的那么高(对说的就是我自己,连买了书拆掉扫描做PDF都能 ...

拆书扫描重封可真是个费力气的活,而且往往会舍不得。
手机 拿支架撑起来,书拿玻璃板压平手按住,语音控制拍照,速度快好多

lemon鱿鱼 发表于 2019-2-5 21:11

zhongjie 发表于 2019-2-5 21:32

顺便求推求推OCR的软件

win8 发表于 2019-2-5 22:08

zhongjie 发表于 2019-2-5 21:32
顺便求推求推OCR的软件

图书ocr ,abbyy fine reader排第二,没人敢称第一。
号称识别正确率99.9%以上,然而我自己做文字版电子书时还是觉得识别率惨,都想自己整一套了。
知名流氓马克丁代理,目测找不到v14皮角便携版。

win8 发表于 2019-2-5 22:13

lemon鱿鱼 发表于 2019-2-5 21:11
我随口说说的 别在意

-- 来自 能搜索的 Stage1官方 iOS客户端

好罢

李狗蛋 发表于 2019-2-5 22:15

我特意看了看这帖子的日期,又看了看帖子,没看明白。但是扫描全能王挺好用

台球论坛网友 发表于 2019-2-5 22:50

YoumuChan 发表于 2019-2-6 00:11

20页的训练集?
那别想ml了,只能靠传统方法的

sorayang 发表于 2019-2-6 00:26

对了,如果都OCR转换成纯文本了,还切边干嘛...

猫不萌 发表于 2019-2-6 01:01

zhongjie 发表于 2019-2-5 21:32
顺便求推求推OCR的软件

白描

—— 来自 HUAWEI COL-AL10, Android 9上的 S1Next-鹅版 v2.1.2

gx19860411 发表于 2019-2-6 01:06

我这里有很多扫描版的城市年鉴需要提取文字、表格和相应的数字,不知道能实现不?大家立项了私我下,提供义务劳动

-- 来自 能搜索的 Stage1官方 Android客户端

win8 发表于 2019-2-6 07:54

YoumuChan 发表于 2019-2-6 00:11
20页的训练集?
那别想ml了,只能靠传统方法的

先训练,然后针对具体一本书先抽20页微调参数。

win8 发表于 2019-2-6 07:58

sorayang 发表于 2019-2-6 00:26
对了,如果都OCR转换成纯文本了,还切边干嘛...

切边和斜边修正是ocr前置步骤。不切边ocr还是要先分块,而且目前的软件ocr结果会略惨

win8 发表于 2019-2-6 07:59

gx19860411 发表于 2019-2-6 01:06
我这里有很多扫描版的城市年鉴需要提取文字、表格和相应的数字,不知道能实现不?大家立项了私我下,提供义 ...

大哥你是认真的?
…义务标注?

YoumuChan 发表于 2019-2-6 10:41

win8 发表于 2019-2-6 07:54
先训练,然后针对具体一本书先抽20页微调参数。

transfer learning的话20页也不够啊
不如做一个每一页只有短边的轴上页面有弯曲,长边的轴上都是直的这样的假设
然后传统方法来算具体的弯曲情况以及摄像头的畸变以及拍摄角度
毕竟感觉对于一个校正了畸变的扫描页,二值化以后,横向累积的直方图会有很明显的分布,有字的地方和行与行的间距差别会很大

gx19860411 发表于 2019-2-6 11:03

win8 发表于 2019-02-06 07:59:08
大哥你是认真的?
…义务标注?建议建个群大家好好聊,这事蛮有意义的。
我的需求和你的还不太一样,如果能附带实现的话当然标到射爆啊!

-- 来自 能手机投票的 Stage1官方 Android客户端

win8 发表于 2019-2-6 12:19

YoumuChan 发表于 2019-2-6 10:41
transfer learning的话20页也不够啊
不如做一个每一页只有短边的轴上页面有弯曲,长边的轴上都是直的这样 ...

我说的扫描档是指常见的扫描仪得到的,一般会有旋转角读,摄像头畸变和弯曲情况倒比较少了.
所以现在的假定是没有畸变,只有四个边缘残缺/多余/旋转/缩放的情况
毕竟现在还没动手...我倒是很乐观

win8 发表于 2019-2-6 12:49

gx19860411 发表于 2019-2-6 11:03
建议建个群大家好好聊,这事蛮有意义的。
我的需求和你的还不太一样,如果能附带实现的话当然标到射爆啊!
...

……拉不到人啊,建个群也没什么乱用
如果真有进展会找你的

YoumuChan 发表于 2019-2-6 13:12

win8 发表于 2019-2-6 12:19
我说的扫描档是指常见的扫描仪得到的,一般会有旋转角读,摄像头畸变和弯曲情况倒比较少了.
所以现在的假定 ...

没有畸变,页面不弯曲的话,那你直接二值化,横着加起来,直方图,找一个角度使得直方图最为规则不就行了,跟以前识别验证码用的分割算法差不多...

dangoron 发表于 2019-2-6 19:28

http://www.k2.t.u-tokyo.ac.jp/vision/BFS-Auto/index-j.html
看看这个?

BRRM 发表于 2019-2-6 19:55

想法还算靠谱,但人力成本不太好计算,就算开源找大家一起来合作,恐怕也不好找到人。

win8 发表于 2019-2-6 23:17

……已经自己在折腾了,有这个方向折腾的意向的话请联系我.
一楼更新进度, 如果有大的进展我会顶下帖子

衛藤美彩 发表于 2019-2-7 00:58

cn706 发表于 2019-2-7 11:33

说起OCR,现在还有人做版面分析吗?特别是从图像、照片中提取表格的

美人希 发表于 2019-2-7 12:09

打标这东西我没理解错的话是要动用千人级别的才有效率。

— from OPPO PAAM00, Android 8.1.0 of S1 Next Goose v2.1.2

rootkitchao 发表于 2019-2-7 19:36

感觉传统的数字图像处理就能解决了。
假设扫描的书是正常的并且扫描的时候没有出现折叠的情况。膨胀一下让文字连成线,霍夫曼变换搞定....
ML的东西在手机上速度是个很大的问题,用来做目标检测的RetinaNet把Backbone换成适合手机跑的Mobilenet V2,320*320分辨率在海思Kirin 955上只有2fps...

-- 来自 能看大图的 Stage1官方 iOS客户端

qftp 发表于 2019-2-7 22:32

win8 发表于 2019-2-7 23:14

rootkitchao 发表于 2019-2-7 19:36
感觉传统的数字图像处理就能解决了。
假设扫描的书是正常的并且扫描的时候没有出现折叠的情况。膨胀一下让 ...

我觉得传统图像处理可能解决不了的。
书页边缘线以及发暗的部分,不规则的页眉页脚,书口的印刷内容...很难统一处理。
速度倒是问题不大,如果用在图书转换上,那就拉个进度条慢慢跑。如果用在阅读器上,那就读一页预处理2页。翻页速度太快就不处理,等到停下来再处理。

win8 发表于 2019-2-7 23:21

美人希 发表于 2019-2-7 12:09
打标这东西我没理解错的话是要动用千人级别的才有效率。

— from OPPO PAAM00, Android 8.1.0 of S1 Next...

初步先训练一个模型,然后软件带一个手动调整的功能。
软件提供“协助开发”的开关,向用户申明:
如果打开开关,
1.手动调整后,会上传手动调整的结果和页面图片。
2.用户每打开一本书都缓存2页图片和裁切参数,在wifi环境下后台自动上传到云存储。

然后定期审核下用户提交的样本,跑下云空间的样本就好了。
页: [1]
查看完整版本: [电子书切边/OCR]已经开搞,“真的只差一个码农了"