关于图像预处理 和halcon-OCR训练与识别经验分享

halcon-OCR 训练与识别小经验。

halcon的OCR训练与识别主要的算子就只有几个,但是在做的过程还是会遇到一些问题,刚好最近学习这个,在阅读了大量的经验贴和看了许多的视频之后,趁着还记得,把经验体会写下来分享一下。 (本文以mlp作为例子)

关于图像预处理 和halcon-OCR训练与识别经验分享

; 训练有如下5个算子(要按顺序写),结合我自己做的例子说明

  1. append_ocr_trainf (Character, Image : : Class, TrainingFile : )这一步是将图片中的文字与自己创立的Class(Fonts)文件相关联(要一一对应),并且存入TrainingFile(Trfpath)中,这样就给图片中的文字赋予含义了。(halcon没有中文字符库,所以要自己给它添加赋予文字含义)
  2. read_ocr_trainf_names( : : TrainingFile : CharacterNames, CharacterCount)查询trf训练文件中存储有哪些字符,以及字符在训练器中的数量。这一步默认操作即可
  3. create_ocr_class_mlp ( : : WidthCharacter, HeightCharacter, Interpolation, Features, Characters, NumHidden, Preprocessing, NumComponents, RandSeed : OCRHandle)
    NumHidden指隐藏层的层数,默认操作即可
  4. trainf_ocr_class_mlp( : : OCRHandle, TrainingFile, MaxIterations, WeightTolerance, ErrorTolerance : Error, ErrorLog)训练一个神经网络分类器
  5. write_ocr_class_mlp ( : : OCRHandle, FileName : )保存OCR的的.omc分类器到文件。
    关于图像预处理 和halcon-OCR训练与识别经验分享

识别主要有两个算子

  • read_ocr_class_mlp ( : : FileName : OCRHandle) FileName就是omc文件,此步骤是从文件中读取OCR的.omc分类器。
  • do_ocr_multi_class_mlp (Character, Image : : OCRHandle : Class, Confidence)
    这里的class就是识别的结果,confidence值越接近1,表示识别的结果越准确。

图像预处理

这边的主要问题就是提取出要识别的字符并实现字符的分割。可以利用halcon自带的灰度直方图和特征直方图工具,提取出字符。分割方面,如果不是太复杂的情况一般可以利用膨胀法将其膨胀成一个字体,一般我用到的算子如下

  • threshold(转化为二值图像,得出region)
  • dilation_circle(膨胀,自己调试参数,将要识别的字体膨胀成一整个不分离且与相邻字体不发生粘黏)
  • connection(分割字体,这时候应该就可以将各个字体分割开了,但是字体现在处在膨胀状态)
  • intersection(求两个区域相交的,这里设置两个区域一个是threshold得到的region,另一个是connection得到的区域,这样就可以将不是很复杂的区域字体分割开了)
  • sort_region(这个是对分隔好的字符排序,一般汉字排序特征可以选择character效果比较好)。

总结

最近做了很多的尝试,训练一个字体去识别其他字体,但是往往识别的结果都比较不好,后来做了许多实验才知道基本上你要识别哪些字体,你就要用那个字体去训练。比如你拿宋体的数字图像处理训练,去识别黑体的数字图像处理结果就行。自己做项目时,得想办法多搞项目的样本,用项目中的字体去训练,再去识别项目中的字体。也就是多搞样本, 多训练,才能提升准确率。
另外,halcon可以利用OCR助手打开trf文件,但是打不开omc文件,同一个文件后训练的trf文件会替代之前的trf文件。

Original: https://blog.csdn.net/aizzl97/article/details/121650115
Author: 不愿透露姓名的支中良同学
Title: 关于图像预处理 和halcon-OCR训练与识别经验分享

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/645091/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球