Cruise007
高级工程师
高级工程师
  • 最后登录2017-03-23
  • 发帖数47
  • 金币1212枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
阅读:1760回复:29

OCR识别详细步骤

楼主#
更多 发布于:2016-12-02 08:44
一、总体概述
1 Halcon 例子 里面其实自带字符训练和识别
2 Halcon OCR训练分SVM和MLP两种
3  Halcon提供了一些识别模型,但是毕竟自己的项目跟他的不一样,所以需要自己训练自己的模型
二、详细流程
4 下面先以SVM训练和识别开始(创建训练文件,训练,识别)
SVM训练和识别(训练自己的0-9和A-Z)
第一步:准备图片
              每个字符对应一个文件夹,为了后期遍历文件夹方便,文件夹名字以字符直接命名,见下图。

图片:1.png



图片:2.png




第二步:创建训练文件

* 声明一个字符数组,并且将0-9和A-Z赋值此数组

CharH := []  
for i := 0 to 9 by 1  
  CharH:= chr(round(i + ord('0')))  
endfor  
for i := 10 to 36-1 by 1  
  CharH:= chr(round(i-10 + ord('A')))  
endfor  
NumChar := |CharH|

*声明一个训练文件.trf

trainFile := 'ZHANG-Num0-9A-Z.trf'  
dev_set_check ('~give_error')  
delete_file (TrainFile)  
dev_set_check ('give_error')


*遍历每个文件夹以及每个文件夹里面的字符图片,将每个文件夹与一个字符关联起来(这里每个文件夹里面的图片对应文件夹名“字符”
此帖售价 10 金币,已有 27 人购买 [记录] [购买]
此段为出售的内容,购买后显示
第三步:训练文件(可以选择SVM训练或者MLP训练,根据自己选择的训练函数决定),获得最终模型文件.omc
此段为出售的内容,购买后显示


第四步 用自己训练的.omc 文件进行识别要识别的图片

<pre name="code" class="cpp">* Read the SVM font file from file 读取刚刚自己创建的识别模型文件  
read_ocr_class_svm ('C:/Users/Public/Documents/MVTec/HALCON-11.0/examples/solution_guide/zhang/ZHANG-Num0-9A-Z_SVM.omc', OCRHandle)  
*读取待识别的图片  
read_image(ImageSige,'C:/Users/CQU/Desktop/QQ截图20160327192542.jpg')    
*有两个识别函数,他们之间的区别看帮助文档</span>  
do_ocr_single_class_svm(ImageSige, ImageSige, OCRHandle, 1, Class)  
* Clear the classifier from memory  
clear_ocr_class_svm (OCRHandle)  


第五步:检验无误就可以随意使用.omc 文件了
<span style="font-family: Arial, Helvetica, sans-serif;">
*MLP跟SVM一样,把对应的函数替换即可,具体教程看其提供的案例</span>  
努力到无能为力,拼搏到感动自己
fengxiaoyun987
专家
专家
  • 最后登录2017-03-23
  • 发帖数631
  • 金币2160枚
  • 贡献勋章0枚
  • 社区居民
  • 原创写手
沙发#
发布于:2016-12-02 09:39
打开看看,不过10个金币真心有点贵!
Cruise007
高级工程师
高级工程师
  • 最后登录2017-03-23
  • 发帖数47
  • 金币1212枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
板凳#
发布于:2016-12-02 14:50
fengxiaoyun987:打开看看,不过10个金币真心有点贵!回到原帖
金币也不当钱花,没什么用
努力到无能为力,拼搏到感动自己
fengxiaoyun987
专家
专家
  • 最后登录2017-03-23
  • 发帖数631
  • 金币2160枚
  • 贡献勋章0枚
  • 社区居民
  • 原创写手
地板#
发布于:2016-12-02 16:33
Cruise007:金币也不当钱花,没什么用回到原帖
谢谢大神,请教大神为啥没用还要设置金币买呢,开个玩笑
Cruise007
高级工程师
高级工程师
  • 最后登录2017-03-23
  • 发帖数47
  • 金币1212枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
4楼#
发布于:2016-12-02 18:47
fengxiaoyun987:谢谢大神,请教大神为啥没用还要设置金币买呢,开个玩笑回到原帖
只是感觉自己码了半个多小时,怎么也要奖励一下吧
努力到无能为力,拼搏到感动自己
qq7742810
技术员
技术员
  • 最后登录2016-12-03
  • 发帖数27
  • 金币120枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
5楼#
发布于:2016-12-03 10:26
真心感谢楼主!目前在学习这款软件,一点点摸索没资料很是难受啊
Cruise007
高级工程师
高级工程师
  • 最后登录2017-03-23
  • 发帖数47
  • 金币1212枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
6楼#
发布于:2016-12-03 11:40
qq7742810:真心感谢楼主!目前在学习这款软件,一点点摸索没资料很是难受啊回到原帖
后面打算把所有的总结按照循序渐进的原则统稿为pdf格式,免费为大家提供,并提供原理性分析
努力到无能为力,拼搏到感动自己
tobyxie
助理工程师
助理工程师
  • 最后登录2017-02-28
  • 发帖数12
  • 金币360枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
7楼#
发布于:2016-12-05 08:52
真心感谢楼主!学习了。。。。。。。
tmxyz1950
技术员
技术员
  • 最后登录2017-02-23
  • 发帖数39
  • 金币102枚
  • 贡献勋章0枚
8楼#
发布于:2016-12-05 23:03
真心感谢楼主!顺便捞点金币。。。。。。
Cruise007
高级工程师
高级工程师
  • 最后登录2017-03-23
  • 发帖数47
  • 金币1212枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
9楼#
发布于:2016-12-06 08:57
tobyxie:真心感谢楼主!学习了。。。。。。。回到原帖
不客气,多交流
努力到无能为力,拼搏到感动自己
Cruise007
高级工程师
高级工程师
  • 最后登录2017-03-23
  • 发帖数47
  • 金币1212枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
10楼#
发布于:2016-12-06 09:00
Cruise007:不客气,多交流回到原帖
怎么捞
努力到无能为力,拼搏到感动自己
Cruise007
高级工程师
高级工程师
  • 最后登录2017-03-23
  • 发帖数47
  • 金币1212枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
11楼#
发布于:2016-12-06 09:43
tmxyz1950:真心感谢楼主!顺便捞点金币。。。。。。回到原帖
怎么捞
努力到无能为力,拼搏到感动自己
zjc907
技术员
技术员
  • 最后登录2017-01-06
  • 发帖数28
  • 金币102枚
  • 贡献勋章0枚
  • 社区居民
12楼#
发布于:2016-12-06 10:47
入门级别的要多吸取前人的经验。
fushishan
初学者
初学者
  • 最后登录2017-03-14
  • 发帖数7
  • 金币49枚
  • 贡献勋章0枚
  • 社区居民
13楼#
发布于:2016-12-06 10:54
学习 学习  感谢楼主热心分享
Cruise007
高级工程师
高级工程师
  • 最后登录2017-03-23
  • 发帖数47
  • 金币1212枚
  • 贡献勋章0枚
  • 社区居民
  • 忠实会员
14楼#
发布于:2016-12-06 21:31
zjc907:入门级别的要多吸取前人的经验。回到原帖
时间是个好东西,终究会成为大神的
努力到无能为力,拼搏到感动自己
上一页
游客

返回顶部