机器视觉解决方案、视觉检测方案、图像处理方案
字符识别在机器视觉行业里的应用是非常多的。各种各样的字符都有识别的需求。而作为3C产品中的零件的PCB、FPC等,则应用更多。一般用于识别料号、判断型号是否正确等。而字符印刷品质,在这些产品上则比较少使用。因为PCB、FPC一般都是在内部,用户通常看不到,所以对外观要求不高。

黑白相机OCR

黑白相机OCR

彩色相机OCR

彩色相机OCR
机器视觉光源
像这种产品,通常对比度比较大,所以对光源的要求并不是那么高。条形光源、环形光源、同轴光源等,都可以满足要求。根据实际情况,如安装空间选择大小、检测产品的颜色选择光源颜色,比较好处理。
光源控制器
这类项目的光源,通常都是使用一个小光源就可以了,基本上所有的光源控制器都是可以使用的。没有太多要求,选择常规的模拟控制器就可以。
工业相机
PCB、FPC上的字符通常比较大,而且也不需要检测印刷缺陷。所以对工业相机的分辨率要求并不高。考虑常规的130万像素左右的相机就可以了。
工业镜头
工业镜头的选择,通常使用FA镜头就可以满足要求。焦距则根据拍摄范围、工作距离要求、相机芯片大小来确定。
图像处理算法
这种产品以前使用传统的OCR来做字符识别,稳定性还是有一些难度的,很多字符会识别错。现在则可以使用深度学习的方法来处理了。稳定性会了很多。不过对于一些字符识别中常见的误判问题,仍然是会存在的。例如o、O和0,I、l、i、1等,如果有类似字符,而使用的字体无法将其明显的区分开来,那么识别错的情况仍然是会存在的。又或者因为印刷品质不佳,字符有缺损或有其他污渍,也会造成字符识别的误判。先来看一下Halcon的深度OCR处理效果:

黑白图像深度OCR

黑白图像深度OCR

彩色图像深度OCR

彩色图像深度OCR
可以看到,上面的效果中,黑白图像的效果要好一些,做深度OCR时准确率要高一些。而使用彩色图像时,字符本身是黑色的,而FPC上同样的黑色的背景,干扰比较多,所以对比度不高,很多容易识别错误。比较典型的是/和背景连在一起时,容易判断为7,又或者是被分割成不同的字符段。再来看一下飞桨OCR的效果:

黑白图像飞桨OCR

黑白图像飞桨OCR

彩色图像飞桨OCR

彩色图像飞桨OCR
可以看到飞桨OCR也有同样的问题,/和7容易混淆。所以对于这种情况,还是需要重新打光解决一下,或者是使用灰度图像来处理,尽量把背景的干扰去掉。
机器视觉项目实现难度
★★★★
使用深度OCR等技术,实际上可调整的参数比较少。如果处理时准确性达不到要求,那通常只能想一下其他办法了。如改善打光方法;原材料印字时,使用其他的字体来处理。如果字符串是有固定模式的,如必须是数字,如果出现了字母O,那就改为0。如果必须是字母,如果出现了1,那就改为I。是/,认成了7,也可以改会正确的。但是,如果必须是数字,本身是3,而被识别成了8,那就无法修正了。这种情况,只能改善一下项目硬件,又或者是重新采集图像重测试一下看看效果。