被测数据矩阵二维码
上面的被测数据矩阵二维码是玻璃上雕刻还是什么工艺弄出来的DataMatrix Code。还有一些字符,不过这里不对比研究字符,只对比读取二维码的性能。
本NI视觉和Halcon数据矩阵二维码读取性能对比评测共使用了21幅数据矩阵图像。通过对比发现Halcon的性能要远强于NI VISION。首先是Halcon对于提供的图片,基本上都可以正常的解码,标准识别参数无法解码时,使用增强识别参数或最大识别参数时也是可以解码的。而NI视觉则很多图片无法解码,性能差了一截。另一个就是解码耗时,Halcon基本上是毫秒级的,就算不能解码时,迭代超时也就几十毫秒的样子。而NI视觉能解码则是几十毫秒级别的,而不能解码时迭代超时更是达到了几百毫秒。二者在耗时上可能存在20倍的性能差异。下面来看一下相关的图片测试:
01可解码耗时66ms
02解码耗时14ms
03解码耗时5ms
上面的三幅图像是同一产品,不同亮度的情况下。都可以解码,但是耗时差别非常大。
04无法解码
05解码4ms
06无法解码
上面的三幅图像仍然是同一产品不同亮度时,过亮和过暗都无法解码,只有中间亮度能解码。
07无法解码
08无法解码
09无法解码
10无法解码
11无法解码
12无法解码
上面是另外两个码的不同亮度的验证,均解码失败。
13无法解码
14无法解码
15无法解码
16解码耗时14ms
17解码耗时12ms
18无法解码
19解码15ms
20无法解码
21无法解码
从上面看到,共测试了21幅图像,大部分都无法解码,能解码的只有少量几个图像。而且从解码耗时来看,像01能解码,但是耗时花费了几十毫秒比较慢。其他几个对比度比较好的图像,解码也是好几毫秒或十几毫秒。而如果没有正常解码,则迭代过程比较长,耗时都是几百毫秒后才失败。这里的问题可能会比较多。
再来看一下Halcon对于这些图像的处理。这里简单的封装了一个二维码读取的VI。更多详细的介绍可以参考《LabVIEW HALCON图像处理入门教程》http://visionbbs.cn/thread-28124-1-1.html。
简单封装的二维码识别函数示例程序框图
01标准识别参数无法解码耗时37ms(首次)
01标准识别参数无法解码耗时11ms(第二次)
01使用增强识别可解码,耗时17毫秒(首次)
01使用增强识别可解码,耗时7毫秒(第二次)
01使用增强识别可解码,耗时7毫秒(首次)
01使用增强识别可解码,耗时7毫秒(第二次)
01图像的码识别要略难一些,使用标准识别参数无法识别,只能使用增强识别或最大识别参数时才可以识别。但是即使是无法识别,首次耗时只有37ms,第二次时耗时11ms,远小于NI视觉的几百ms。HALCON的迭代处理的更好一些。下面再来看一下其他的图像,这里最大识别参数的解码并验证耗时,不再验证标准和增强参数是否可解码,从实际的效果来看,最大识别的速度是最快最强大的。
02解码7ms
03解码4ms
04解码4ms
05解码6ms
06解码6ms
07解码7ms
08解码3ms
09解码3ms
10解码4ms
11解码5ms
12解码8ms
13解码4ms
14解码5ms
15解码12ms
16解码4ms
17解码4ms
18解码4ms
19解码11ms
20解码4ms
21解码5ms
从上面的效果来看,21幅图像Halcon均可正常解码,大部分的都是几毫秒,长一点的则十几毫秒。这性能和效率可是远强于NI视觉。
NI视觉和Halcon数据矩阵二维码读取性能对比评测