Groups
Sign in
Groups
HappyOCR
Conversations
About
Send feedback
Help
关于HappyOCR之四
15 views
Skip to first unread message
benliud
unread,
Dec 28, 2007, 2:55:05 AM
12/28/07
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to HappyOCR
OCR一个很关键的问题是网络训练,字库越大训练时间越长,识别效果也越好。训练程序以前有一个,可以用,不过时不时会陷入极小点导致死循环训练不到结
果,需要手工干预。这次发布出来的是新写的,支持多CPU,改进了一些算法,希望能适当的提高速度,看起来训练也不太容易陷入极小,可以比较放心的让它
长时间跑。另外值得一提的是字体倒入到数据库是极其缓慢的过程,要倒入5万个字进入sqlite字库需要2个多小时,字库越大可能还会更慢,数据库的写
入就是比较慢的,sqlserver似乎要更快点,不太记得了,不过也是个慢过程。所以将来如果有人自己从头做起的话,要注意这一点。字体转换很快,但
倒入到数据库很慢。当然,训练网络就更慢了,那是核心部分。
关于BP网络,前面提到当前采用的是576*3*1的结构,即输入的是一个24*24的图象,输出是一个数值,正确输出确定为0.8,错误输出要求小于
0.6,在识别时,所有网络输出自己的独立识别结果,最接近0.8的就是识别结果,当只有一个识别结果处于0.8左右,而其他都<0.6时,基本可以确
定这个识别是准确的。结果在0.6-1.0之间的都是可疑识别,将这些可疑识别对0.8的距离排序,就可以得到一个识别序列供用户选择,正确的字基本上
都会在10个最优结果里面。
关于训练网络的方法是这样的,先训练正确的字,穿插训练随机样本做反面训练,当全部正确的字都可以识别后,识别所有字库里的字,不正确的字输出必须让他
小于0.5,否则就训练这个字直到所有不正确的字输出都小于0.5及所有正确的字输出都接近0.8为止,很多时间花在反复校验字库中所有字的识别上。字
库越多,这种校验所费时间就越大。
Reply all
Reply to author
Forward
0 new messages