第五步:训练OCR分类器
读取训练文件,使用多层感知器创建一个OCR分类器,配置如下:
使用MLP训练一个OCR分类器,设置训练参数,即最大迭代次数、权重和容错率
* Create the classifier.We read out the classes from the train file.* Therefore, the training part of the program is generic and can be* used to train any OCR classifier.read_ocr_trainf_names (TrainFile, CharacterNames, CharacterCount)create_ocr_class_mlp (8, 10, 'constant', 'default', CharacterNames, 20, 'normalization', 26, 42, OCRHandle)* Train the classifiertrainf_ocr_class_mlp (OCRHandle, TrainFile, 100, 0.01, 0.01, Error, ErrorLog)*
执行至此,我们已经完成了一个OCR分类器的训练,下面进行测试 。
文章插图
第六步:测试
首先扩展图片,,输入一个矩形,其边长为图像的新定义域 。这意味着矩阵的所有像素都包含在进一步的操作中 。因此,通过读取或生成图像来获得相同的定义域 。矩阵的大小不会改变 。
然后进行快速二值化等处理,这一步操作与第二步类似,不加赘述 。
接下来使用刚刚训练的OCR分类器进行测试lp,对Image中排好序的利用刚刚训练的OCR分类器,句柄为进行测试,测试结果为Class,精度为 。
* Now test the classifier on the whole training imagefull_domain (Image, Image)* Segment characters the same way as beforebinary_threshold (Image, Region, 'max_separability', 'dark', UsedThreshold1)dilation_circle (Region, RegionDilation, 3.5)connection (RegionDilation, ConnectedRegions)intersection (ConnectedRegions, Region, RegionIntersection)sort_region (RegionIntersection, Characters, 'character', 'true', 'row')* Classificationdo_ocr_multi_class_mlp (Characters, Image, OCRHandle, Class, Confidence)*
执行至此,可以看到控制变量窗口处的Class变量为
完成此次OCR训练器的测试
第七步:显示
首先测得每个字符的面积、行、列,设置显示字体,显示Class的内容 。
* Display resultsarea_center (Characters, Area, Row, Column)dev_display (Image)set_display_font (WindowHandle, 16, 'sans', 'true', 'false')disp_message (WindowHandle, Class, 'image', Row - 16, Column + 8, 'blue', 'false')set_display_font (WindowHandle, 16, 'mono', 'true', 'false')disp_message (WindowHandle, 'Classification result', 'window', 12, 12, 'black', 'true')dev_set_check ('~give_error')delete_file (TrainFile)dev_set_check ('give_error')
执行至此,可以看到训练结果
总结
这个简单的OCR识别例程就分析到这里,首先要得到单个的训练数据,然后创建分类器,训练分类器,最后测试并显示 。
- 我国的三款武器成世界顶尖,甩美国至少八条街,东风17只是其一 中国之最*事科技
- 全球主题公园排名:上海迪士尼第十,珠海长隆第八,榜首毫无悬念 世界十大游乐场
- 彩色桂林,还原100多年前八桂之地最真实的历史风貌 桂林历史之最
- 大语文学习:属于中国的世界之最 学习世界之最
- JavaEE——Spring学习笔记03【AOP开发】
- 一 Flutter学习 状态管理
- Python实战-使用微信遥控你的电脑
- 八 MSS代码解读-MmwDemo_mboxReadTask线程
- 游戏江湖二八分化:前十厂商挣了810亿,但腾讯网易赚走八成 世界十大游戏公司
- 中国十大皇陵,秦始皇陵只能排第八,唐宗汉武年代虽久,气势不输 中国十大古墓