石鑫华视觉 手机微信QQ:13450001061 / 18038383457

图像编程

NI视觉和Halcon一维码读取性能对比评测

文章来源:石鑫华视觉网时间:2024-02-26 08:29:30 点击:53

NI视觉和Halcon一维码读取性能对比评测

被测一维码

         上面的被测一维码是料带上的标签。里面有多个不同类型的一维条形码,有些质量要好一点,有些质量则比较差。

         本NI视觉和Halcon一维码读取性能对比评测共使用了8幅一维码图像。通过对比发现Halcon的性能要远强于NI VISION。首先是Halcon对于提供的图片,基本上都可以正常的解码,遇到一些比较差的条码,调整一些参数也是可以解码的,各种类型的条码解码也相对准确。而NI视觉则很多图片无法解码,就算能解码,条码类型也是错误的,解码出来的数据都是不正确的,性能差了一截。另一个就是解码耗时,Halcon基本上是几十毫秒级的。而NI视觉能解码则是几百毫秒级别的。二者在耗时上可能存在几倍的性能差异。下面来先来看一下NI视觉和Halcon在耗时上的差异:

NI视觉读一维码耗时

         因为VBAI中的读一维码函数并没有返回耗时,所以这里使用了VBAI中的处理时间来评估。切换到运行界面可以看到处理时间是334ms,整个连续运行时速度也不是太快,一秒钟也就三幅图像的样子,所以这个处理时间是可信的。当然,这里的处理时间其实还包含了读图、后期的覆盖等过程。真实的时间读码耗时应该是会小一些的,但是也不会短太多。再来看一下Halcon的耗时:

Halcon处理耗时是72ms

         从上面的效果来看,先不管解码的数量以及是否正确,且看耗时,NI视觉是334ms,Halcon则是72ms,NI视觉的耗时比Halcon长了四五倍。可见速度上差了不少。下面再来看一下解码性能,主要是看解码数量以及是否正确解码。

01解码9个

         这里将条码类型设置为code 93和code 128两种类型。如果设置成自动,那么可能会有很多错误的条码类型:

自动

         可以看到上面的自动,有些位置的条码框选是不对的,只有条码的局部,有些条码则没有正常识别。更无语的是最左边的那个框选在一个字符串上,也当成了一个条码。而从自动判断出来的条码类型来看还有codebar,实际上并不存在这种类型的条码。所以NI视觉在全图中识别条码时,最好还是指定具体的类型为佳,自动的性能真的不是太好。后面的几个测试图,全使用指定Code 93和Code 128,不使用自动。

01解码的结果都是正确的(最小条宽1,最小边缘强度40,最小条数5)

02解码12个

03解码10个

         上面的三幅图像是一个产品的三种不同亮度下的对比,共有13个有效条码,但是最多只识别了12个,少的则只有10个,差别比较大。

04解码3个

05解码10个

         使用同样的参数,04中只解码了3个。而调整最小边缘强度为30:

04解码11个

05解码11个

         04、05和01~03还是同一产品,只是位置不同,不同亮度对比,仍然只解码了部分条码。而且可以看到,最小边缘强度对于解码有很大的影响。

06解码3个全错

         06开始是另一个产品,共有7个有效一维条码,条码类型是code 39和code 128。这里将条码类型code93改成code39。06在NI视觉中只有4个结果,结果都是错误的。

07解码1个错误

08解码2个全错

         第二个产品的中,NI视觉解码的数据全是错的。还有将字符、二维码等当成一维条码来解码的情况。

         下面再来看一下Halcon的解码效果:

01解码13个

02解码13个

03解码11个,一个错误

         03中图像太亮,有三个条码被当成一个条码了,识别错误。

04解码11个

05解码12个

         04和05中,则少解码了一两个。看样子是倾斜时分辨率不太够引起的。

04设置较小的ROI仍然无法解码两个分辨率不够的条码

06解码7个-一个错误

07解码8个-2个错误

         07中也出现了一个将字符识别成了条码的问题,判断的条码类型是UPC-E。这种问题应该是可以避免的,因为HALCON中的读取条码类型是auto,可以指定只读取code 39和code128(需要修改程序,这里没有再做验证)。

08解码10个-3个错误

         总体来看,Halcon的要比NI视觉的读码性能强不少,虽然些因为图像质量实在太差,在Halcon中也确实读不出来。

NI视觉和Halcon一维码读取性能对比评测视频号解说


首页
84162741QQ
联系