当前位置:首页 > 基于halcon的IC卡检测讲解
基于 HALCON 的神经网络训练,首先要生成一个训练文件,文件内容包含字符样本图像和对应的目标输出结果。HALCON在接下来网络训练的过程中,会自动提取这些字符的一些特征向量,例如字符的笔划宽度、笔划方向、噪声程度、灰度值等,映射到某一个输出结果,并根据目标向量与输出结果的误差反向调节字符识别网络的权值,训练得到最理想的网络,使之适用。HALCON 训练文件生成过程中, 需要用到大量的字符样本, 这些从多张张字符图片中获得, 图片中包含了数字和大小写字母,不同的图片中字符的特征稍微不同。 通过HALCON实现输入图片中字符的分割,从而获得字符样本,再利用函数生成训练文件。得到训练文件后,就可以对字符进行训练,调用函数输入参数包含训练文件和训练停止条件,最终训练生成“.omc”类型的神经网络文件,即字符分类器文件。然后就可以调用函数进行字符识别了。整个过程可以如下图所示:
关键的halcon语句: 创建神经网络分类器
create_ocr_class_mlp(8, 10, 'constant', 'default', CharacterNames, 80, 'none', 10, 42, OCRHandle)
训练神经网络
trainf_ocr_class_mlp(OCRHandle, TrainFile, 200, 1, 0.01, Error, ErrorLog) 根据训练文件进行识别:
do_ocr_multi_class_mlp(TestWordsSortedRegions, TemplateImage2, OCRHandle1, Class, Confidence)
(三)条形码识别模块
1.条形码介绍
条码(barcode)是由一组按一定编码规则排列的条空符号,用以表示一定的字符,数字及符号组成的信息。条码系统是由条码符号设计,制作及扫描阅读组成的自动识别系统。条码卡分为一维码
和二维码两种。一维码比较常用,如日常商品外包装上的条码就是一维码。它的信息存储量小,仅能存储一个代号,使用时通过这个代号调取计算机网络中的数据。
2.图像识别条形码的原理
首先对条形码图像进行图像预处理,用中心检测,相似边测量方法来判别条空,再通过译码,校验,纠错处理来识读,这样就可以大大排除以上各种因素的干扰,提高条码的识读率。
3.在halcon中识别条形码的步骤
创建模板
create_bar_code_model ([], [], BarCodeHandle) 使用模板,DecodedDataStrings保存识别到的结果
find_bar_code (GrayImage, SymbolRegions, \\ BarCodeHandle, 'auto', \\DecodedDataStrings)
五.系统实现过程及结果
1.系统运行界面
界面由4个按钮和一个文本框还有一个halcon窗口控件组成,其中“模板选择”用来选择一张在Halcon中提前训练好的模板。“选择图像”按钮可以选择一张图像,借此来模拟采集部分。用来测试有3张不同的图片(位置不同,模拟高速采集中图像的变化)识别结果从文本框输出
2.系统运行时,后台先对训练模板进行分别对字符和条形码进行模板匹配,采集一张图片后分别进行识别结果如下: 测试图一:
共分享92篇相关文档