Redian新闻
>
有个 NeuralNetwork training 的问题, 请教高手
avatar
有个 NeuralNetwork training 的问题, 请教高手# Programming - 葵花宝典
e*n
1
B2签证来了美国之后能坐cruise去百慕大玩一个星期吗?回美国的话还用再签吗?
avatar
E*e
2
应用场景是从Invoice document (any type of documents) 抓取 Key - value pair
, 怎样建neural network 来 extract key-value。 这个key-value 可以水平, 也可
以垂直, 也可以对角。
用image processing 可以 locate words/string, 然后用CNN+LSTM可以认。 但是怎么
建立NN来提取联系。
我想到的人脸识别,分两步走。 首先确定是人脸, 然后用两个NN,确定同一张脸的唯
一特征。 最后辨认。
有没有高手指导一下。 已经有公司做了。 但是网上搜不到这种类似的项目。 OCR 到
时很多。 但是这个key-value 关系的抓取不多见。
可以私下联系。
avatar
e*n
3
再问
avatar
r*t
4
Expensify 据说后端是人在做,至少前几年是这样。
联系不一定要NN来提,你认出来那些是key, 然后你知道那些地方最可能出现 value,
然后如果 direction 能对得上就行了啊。
avatar
l*n
5
先调整invoice的角度,让文字水平,然后再提取,避免方向的问题。
这个比较重要的是图片的质量,图片质量不高的时候,ocr识别问题很大,抓出来的key
-value也没用

pair

【在 E**********e 的大作中提到】
: 应用场景是从Invoice document (any type of documents) 抓取 Key - value pair
: , 怎样建neural network 来 extract key-value。 这个key-value 可以水平, 也可
: 以垂直, 也可以对角。
: 用image processing 可以 locate words/string, 然后用CNN+LSTM可以认。 但是怎么
: 建立NN来提取联系。
: 我想到的人脸识别,分两步走。 首先确定是人脸, 然后用两个NN,确定同一张脸的唯
: 一特征。 最后辨认。
: 有没有高手指导一下。 已经有公司做了。 但是网上搜不到这种类似的项目。 OCR 到
: 时很多。 但是这个key-value 关系的抓取不多见。
: 可以私下联系。

avatar
E*e
6
谢谢大家。
可能我没有说仔细这个问题。
现在一般先从传统的OCR认识text,输出word 和 坐标。 然后建模。 这步我知道怎么
做, classification问题,不难。当然,也可以用corenlp 或者LSTM 抓 value。 后
者问题是不能很好的抓vertical 的 value。 原因是你不能控制OCR 输出, 从而保证
key 和value 正好一起。 要不然问题很简单。
现在似乎直接从image上认出 text 要比传统的OCR 好, 尤其低质量的image。当然图
片质量好,没有必要用NN。 所以我想跳开传统OCR, 直接从image上认出这个key-
value pair。 找到word和并认出不难, 简单的CNN + LSTM 就行。 问题是怎么建立个
NN 或两个NN, 通过训练, 从而能让NN 自己extract key-value 。 比如, “
invoice” 和 A123456, 后者在 在”invoice“ 的周围。 感兴趣的可以看看公司
Rossum。
最终就是image 进, key-values 出来。

key

【在 l******n 的大作中提到】
: 先调整invoice的角度,让文字水平,然后再提取,避免方向的问题。
: 这个比较重要的是图片的质量,图片质量不高的时候,ocr识别问题很大,抓出来的key
: -value也没用
:
: pair

avatar
E*e
7
谢谢大家。
可能我没有说仔细这个问题。
现在一般先从传统的OCR认识text,输出word 和 坐标。 然后建模。 这步我知道怎么
做, classification问题,不难。当然,也可以用corenlp 或者LSTM 抓 value。 后
者问题是不能很好的抓vertical 的 value。 原因是你不能控制OCR 输出, 从而保证
key 和value 正好一起。 要不然问题很简单。
现在似乎直接从image上认出 text 要比传统的OCR 好, 尤其低质量的image。当然图
片质量好,没有必要用NN。 所以我想跳开传统OCR, 直接从image上认出这个key-
value pair。 找到word和并认出不难, 简单的CNN + LSTM 就行。 问题是怎么建立个
NN 或两个NN, 通过训练, 从而能让NN 自己extract key-value 。 比如, “
invoice” 和 A123456, 后者在 在”invoice“ 的周围。 感兴趣的可以看看公司
Rossum。
最终就是image 进, key-values 出来。

key

【在 l******n 的大作中提到】
: 先调整invoice的角度,让文字水平,然后再提取,避免方向的问题。
: 这个比较重要的是图片的质量,图片质量不高的时候,ocr识别问题很大,抓出来的key
: -value也没用
:
: pair

avatar
E*e
8
这可以用传统的ML 做。 无非就是用附近的word 来做feature。 但是对poor image不
好。 NN表现在poor image 上更好

【在 r****t 的大作中提到】
: Expensify 据说后端是人在做,至少前几年是这样。
: 联系不一定要NN来提,你认出来那些是key, 然后你知道那些地方最可能出现 value,
: 然后如果 direction 能对得上就行了啊。

avatar
l*n
9
简单的receipt在同一行的,就是key-value。附件这个是我自己用照片ocr出来的,一
行的split出来就是key-value,做成json使用很方便
如果有table,就是去下一行同样的位置找
我遇到的receipt都很简单,其他的复杂情况我没遇到

【在 E**********e 的大作中提到】
: 谢谢大家。
: 可能我没有说仔细这个问题。
: 现在一般先从传统的OCR认识text,输出word 和 坐标。 然后建模。 这步我知道怎么
: 做, classification问题,不难。当然,也可以用corenlp 或者LSTM 抓 value。 后
: 者问题是不能很好的抓vertical 的 value。 原因是你不能控制OCR 输出, 从而保证
: key 和value 正好一起。 要不然问题很简单。
: 现在似乎直接从image上认出 text 要比传统的OCR 好, 尤其低质量的image。当然图
: 片质量好,没有必要用NN。 所以我想跳开传统OCR, 直接从image上认出这个key-
: value pair。 找到word和并认出不难, 简单的CNN + LSTM 就行。 问题是怎么建立个
: NN 或两个NN, 通过训练, 从而能让NN 自己extract key-value 。 比如, “

avatar
g*t
10
我猜他是想学习这个“谁在谁下面一行”这样的一个位置关系或者rule,但
是说不清楚吧?
所以他说两个NN。NN本身是map fitting,
Map之间的Map也是Map,这点弄明白了就可以套类库试一下了。
这类似于识别海滩上哪些男女是恋人类似。有文献可以参考。
这就好比向量空间也可以用一组向量来表示类似。


: 简单的receipt在同一行的,就是key-value。附件这个是我自己用照片
ocr出来
的,一

: 行的split出来就是key-value,做成json使用很方便

: 如果有table,就是去下一行同样的位置找

: 我遇到的receipt都很简单,其他的复杂情况我没遇到



【在 l******n 的大作中提到】
: 简单的receipt在同一行的,就是key-value。附件这个是我自己用照片ocr出来的,一
: 行的split出来就是key-value,做成json使用很方便
: 如果有table,就是去下一行同样的位置找
: 我遇到的receipt都很简单,其他的复杂情况我没遇到

avatar
l*n
11
谁在谁下面这种问题,我觉得问题的本质是个结构分类。这种结构分类是由关键词决定
的,用ocr的关键词来做就好。比如receipt上面总有title啥的
比如你知道这是costco加油站的,那做个costco加油站的template,只要有costco,
oil这种词就extract相关位置的信息就好。更一般的做法是你可以把所有的ocr信息作
为输入,然后标记label,然后用nn来train。其实nn都不需要,用个rf效果就应该不错。

【在 g****t 的大作中提到】
: 我猜他是想学习这个“谁在谁下面一行”这样的一个位置关系或者rule,但
: 是说不清楚吧?
: 所以他说两个NN。NN本身是map fitting,
: Map之间的Map也是Map,这点弄明白了就可以套类库试一下了。
: 这类似于识别海滩上哪些男女是恋人类似。有文献可以参考。
: 这就好比向量空间也可以用一组向量来表示类似。
:
:
: 简单的receipt在同一行的,就是key-value。附件这个是我自己用照片
: ocr出来
: 的,一

avatar
g*t
12
把训练集和label整理好。任何有监督学习的算法的接口都是类似的。套了以后调参数
。trail and error。
就是关系这个领域,没听到DL的突破(我没怎么看文献)。所以是不是有优势不太清楚。


: 谁在谁下面这种问题,我觉得问题的本质是个结构分类。这种结构分类是由关键
词决定

: 的,用ocr的关键词来做就好。比如receipt上面总有title啥的

: 比如你知道这是costco加油站的,那做个costco加油站的template,只要有
costco,

: oil这种词就extract相关位置的信息就好。更一般的做法是你可以把所有的ocr
信息作

: 为输入,然后标记label,然后用nn来train。其实nn都不需要,用个rf效果就应
该不错。



【在 l******n 的大作中提到】
: 谁在谁下面这种问题,我觉得问题的本质是个结构分类。这种结构分类是由关键词决定
: 的,用ocr的关键词来做就好。比如receipt上面总有title啥的
: 比如你知道这是costco加油站的,那做个costco加油站的template,只要有costco,
: oil这种词就extract相关位置的信息就好。更一般的做法是你可以把所有的ocr信息作
: 为输入,然后标记label,然后用nn来train。其实nn都不需要,用个rf效果就应该不错。

avatar
j*w
13
这个 pipeline 可行?
1 用 OCR 把图片变成文字:https://cloud.google.com/vision/docs/ocr。留意到这
个 API 是返回坐标的,所以理论上可以重建文字的位置;
2 用 NLP 中的 NER 来标记命名实体,比如价格,电话等;
3 利用命名实体的位置来左右或者上下对齐,来尝试找到 key value pair。

【在 E**********e 的大作中提到】
: 谢谢大家。
: 可能我没有说仔细这个问题。
: 现在一般先从传统的OCR认识text,输出word 和 坐标。 然后建模。 这步我知道怎么
: 做, classification问题,不难。当然,也可以用corenlp 或者LSTM 抓 value。 后
: 者问题是不能很好的抓vertical 的 value。 原因是你不能控制OCR 输出, 从而保证
: key 和value 正好一起。 要不然问题很简单。
: 现在似乎直接从image上认出 text 要比传统的OCR 好, 尤其低质量的image。当然图
: 片质量好,没有必要用NN。 所以我想跳开传统OCR, 直接从image上认出这个key-
: value pair。 找到word和并认出不难, 简单的CNN + LSTM 就行。 问题是怎么建立个
: NN 或两个NN, 通过训练, 从而能让NN 自己extract key-value 。 比如, “

avatar
j*w
14
刨除技术的因素,我觉得这个项目有一个难点是很难完全自动化,完全无需人的核验。
因为收据涉及到钱,很敏感。连准确率到 95% 可能有些人也不会接受。
类似的技术用来数据化实体名片就没问题。10 张名片能对 9 张我就用。
avatar
n*s
15
我来做的话分3步,第一个NN做带位置的OCR把各个独立字串识别出来。
第二步把独立字串中的Key找出来,输入是字串本身及周围字串的内容及位置。
第三步找出某个Key所对应的Value,输入是Key本身和周围的字串内容及位置。

pair

【在 E**********e 的大作中提到】
: 应用场景是从Invoice document (any type of documents) 抓取 Key - value pair
: , 怎样建neural network 来 extract key-value。 这个key-value 可以水平, 也可
: 以垂直, 也可以对角。
: 用image processing 可以 locate words/string, 然后用CNN+LSTM可以认。 但是怎么
: 建立NN来提取联系。
: 我想到的人脸识别,分两步走。 首先确定是人脸, 然后用两个NN,确定同一张脸的唯
: 一特征。 最后辨认。
: 有没有高手指导一下。 已经有公司做了。 但是网上搜不到这种类似的项目。 OCR 到
: 时很多。 但是这个key-value 关系的抓取不多见。
: 可以私下联系。

avatar
E*e
16
谢谢大家踊跃发言。
1.目前公司的一个平台在做, 是一边学习, 一遍总结rule, 没有一开始训练大量
data,所以准确率不到80%, 而且需要很多regular expression。而且传统的OCR的认
识准确率影响最终结果, 尤其是image 质量不太好的。
2. invoice number 的 key 其实不唯一, 加上OCR认识误差。 会有很多variation。
比如, invoice, inveice#, invoice number, invoice No 或者 inv。或者
dollar amount 的key 更多, total amount, amount due, total。。。
3. 大家说的, 我将要做, 用传统的ML 方法, 无非就是 给定一个value,比如 $ 20
.99,然后找周围最近的1-grams, 2-grams words (total 或者total amount, 然后
输出一个feature matrix。 下面就是classification 问题。 技术和逻辑上很清楚。
4. 但是,像我说的, image 质量比较差的情况, 完全抓瞎了。 但是NN可以整个word
recognition, 准确率会高。 而且, 不需要regular expression。 只要label key
和 value , 然后训练, 最终可以发现key-value 的maping rule。
5. 在3 里,那个feature matrix 其实人已经规定了rule , 上下左右,最近的key。
现在问题是怎么设计NN, 我只需要label key 和value, 当然还有各自的位置。然后
整个图片(3300x2550)放进NN, NN会自己找到所谓的最近邻mapping rule。 输出多
个key-value pairs。
6. 基于图片的 CNN+LTSM (character-wise 和 word-wise recognition ) 已经搞定
了。下面是设计NNstructure。 应该也是先找到key 和 它的坐标。 然后找它周围的
word。或者直接在一张图上label key, value, 坐标。 那怎么准备输入的X。是合并
坐标image的tensor 然后转化成一维向量吗。
已有公司做了, 准确率已经超过公司的现在的产品。 我将要开始传统的ML 建模。 图
片质量好的的话, 准确率应该也会比较高。 但是NN抓取key-value 代表未来的方向,
处理低质量的图片比较准确。 而且客户的文档扫描的多。
谢谢。 我继续搜。

【在 n***s 的大作中提到】
: 我来做的话分3步,第一个NN做带位置的OCR把各个独立字串识别出来。
: 第二步把独立字串中的Key找出来,输入是字串本身及周围字串的内容及位置。
: 第三步找出某个Key所对应的Value,输入是Key本身和周围的字串内容及位置。
:
: pair

avatar
E*e
17
谢谢。
这个invoice不是统一的。 不同的vendor 出的invoice 格式很不一样, 用的key 也不
一样。
而且如果OCR 出错, 这个key就不好定了。 需要regular expression。 一旦引入
regex, 那么variation 就多了。

【在 l******n 的大作中提到】
: 简单的receipt在同一行的,就是key-value。附件这个是我自己用照片ocr出来的,一
: 行的split出来就是key-value,做成json使用很方便
: 如果有table,就是去下一行同样的位置找
: 我遇到的receipt都很简单,其他的复杂情况我没遇到

avatar
E*e
18
你这个男女关系类比很贴切。 谢谢。

【在 g****t 的大作中提到】
: 把训练集和label整理好。任何有监督学习的算法的接口都是类似的。套了以后调参数
: 。trail and error。
: 就是关系这个领域,没听到DL的突破(我没怎么看文献)。所以是不是有优势不太清楚。
:
:
: 谁在谁下面这种问题,我觉得问题的本质是个结构分类。这种结构分类是由关键
: 词决定
:
: 的,用ocr的关键词来做就好。比如receipt上面总有title啥的
:
: 比如你知道这是costco加油站的,那做个costco加油站的template,只要有
: costco,
:
: oil这种词就extract相关位置的信息就好。更一般的做法是你可以把所有的ocr

avatar
E*e
19
基于template的OCR 抓取很简单, 问题是vendor的发票不统一。 不想中国的增值税发票

错。

【在 l******n 的大作中提到】
: 谁在谁下面这种问题,我觉得问题的本质是个结构分类。这种结构分类是由关键词决定
: 的,用ocr的关键词来做就好。比如receipt上面总有title啥的
: 比如你知道这是costco加油站的,那做个costco加油站的template,只要有costco,
: oil这种词就extract相关位置的信息就好。更一般的做法是你可以把所有的ocr信息作
: 为输入,然后标记label,然后用nn来train。其实nn都不需要,用个rf效果就应该不错。

avatar
E*e
20
这个到是一个方向。我也稍微试了一下。一个问题是垂直方向不好辨认NER。 NER取决
于周围的token的language 方面的特性, 动词, 名词, 大小写, 词根啊。 问题是
从OCR出来不能想人眼一样直接排序。 所以一个NER周围的tokens不定。 水平方向的
key-value, 用glove, nlp ,lstm 很容易的。 非垂直方向就不定了。 当然, 图片
如果来自一个版本, 也容易。

【在 j*****w 的大作中提到】
: 这个 pipeline 可行?
: 1 用 OCR 把图片变成文字:https://cloud.google.com/vision/docs/ocr。留意到这
: 个 API 是返回坐标的,所以理论上可以重建文字的位置;
: 2 用 NLP 中的 NER 来标记命名实体,比如价格,电话等;
: 3 利用命名实体的位置来左右或者上下对齐,来尝试找到 key value pair。

avatar
l*n
21
所以做这个一般都要求scan图片,600dpi才能有比较好的结果,手机照片效果不好

【在 E**********e 的大作中提到】
: 谢谢。
: 这个invoice不是统一的。 不同的vendor 出的invoice 格式很不一样, 用的key 也不
: 一样。
: 而且如果OCR 出错, 这个key就不好定了。 需要regular expression。 一旦引入
: regex, 那么variation 就多了。

avatar
l*m
22
你们这个深学基础不是太多,不要一口吃个胖子,一点一点来。比如OCR先换成深学,
这个open source都不少。有点感觉在往上加


20

【在 E**********e 的大作中提到】
: 谢谢大家踊跃发言。
: 1.目前公司的一个平台在做, 是一边学习, 一遍总结rule, 没有一开始训练大量
: data,所以准确率不到80%, 而且需要很多regular expression。而且传统的OCR的认
: 识准确率影响最终结果, 尤其是image 质量不太好的。
: 2. invoice number 的 key 其实不唯一, 加上OCR认识误差。 会有很多variation。
: 比如, invoice, inveice#, invoice number, invoice No 或者 inv。或者
: dollar amount 的key 更多, total amount, amount due, total。。。
: 3. 大家说的, 我将要做, 用传统的ML 方法, 无非就是 给定一个value,比如 $ 20
: .99,然后找周围最近的1-grams, 2-grams words (total 或者total amount, 然后
: 输出一个feature matrix。 下面就是classification 问题。 技术和逻辑上很清楚。

avatar
l*n
23
现在的ocr都有dl的算法, 比如最popular的tesseract

【在 l*******m 的大作中提到】
: 你们这个深学基础不是太多,不要一口吃个胖子,一点一点来。比如OCR先换成深学,
: 这个open source都不少。有点感觉在往上加
:
: 。
: 20

avatar
w*r
24
you sure tesseract's ocr is dl-based?

【在 l******n 的大作中提到】
: 现在的ocr都有dl的算法, 比如最popular的tesseract
avatar
w*r
25
I think each key should have a semantic class. For example, "Tel."/"
Telephone"/"Tel #", even typo like "Tol #" all belong to a same class.
I once interviewed a startup doing this. No expert, but know it is
definitely no easy.

【在 E**********e 的大作中提到】
: 谢谢。
: 这个invoice不是统一的。 不同的vendor 出的invoice 格式很不一样, 用的key 也不
: 一样。
: 而且如果OCR 出错, 这个key就不好定了。 需要regular expression。 一旦引入
: regex, 那么variation 就多了。

avatar
l*m
26
the latest version is based on DL.
K, V pair labeling is very similar to semantic parsing. If you don't have
detailed labels, in my opinion, RL would help in a weakly supervising
manner.

【在 w*****r 的大作中提到】
: you sure tesseract's ocr is dl-based?
avatar
E*e
27
你说得对。 key本生就可以多种variantion,加上ocr问题,最后抓取率受影响。
现在DL的优点在于image直接认,准确率决定于你的训练集。我也evaluate TESSERAT。
现在的TESSERAT 确实基于LSTM 的神经网络,确实比传统的OCR在低质量的图片表现胜
出。

【在 w*****r 的大作中提到】
: I think each key should have a semantic class. For example, "Tel."/"
: Telephone"/"Tel #", even typo like "Tol #" all belong to a same class.
: I once interviewed a startup doing this. No expert, but know it is
: definitely no easy.

相关阅读
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。