一个车厢号码识别算法(2005年的老程序----ccc)

一个车厢号码识别算法(2005年的老程序----ccc

2023-09-18 ccc

  • 程序的识别效果

一个车厢号码识别算法(2005年的老程序----ccc)_第1张图片

对图中的车厢号码部分用上下两条线限定分为,然后进行识别。

一个车厢号码识别算法(2005年的老程序----ccc)_第2张图片

一个车厢号码识别算法(2005年的老程序----ccc)_第3张图片

一个车厢号码识别算法(2005年的老程序----ccc)_第4张图片

一个车厢号码识别算法(2005年的老程序----ccc)_第5张图片

一个车厢号码识别算法(2005年的老程序----ccc)_第6张图片

一个车厢号码识别算法(2005年的老程序----ccc)_第7张图片

一个车厢号码识别算法(2005年的老程序----ccc)_第8张图片

一个车厢号码识别算法(2005年的老程序----ccc)_第9张图片

一个车厢号码识别算法(2005年的老程序----ccc)_第10张图片

一个车厢号码识别算法(2005年的老程序----ccc)_第11张图片

一个车厢号码识别算法(2005年的老程序----ccc)_第12张图片

一个车厢号码识别算法(2005年的老程序----ccc)_第13张图片

一个车厢号码识别算法(2005年的老程序----ccc)_第14张图片

一个车厢号码识别算法(2005年的老程序----ccc)_第15张图片

一个车厢号码识别算法(2005年的老程序----ccc)_第16张图片

一个车厢号码识别算法(2005年的老程序----ccc)_第17张图片

一个车厢号码识别算法(2005年的老程序----ccc)_第18张图片

从上面的识别效果可以看出,识别算法具有一定的鲁棒性,能够适应车厢号码的各种形态,并正确是识别。本算法在光照适当的条件下能够达到99%的识别率。

  • 基本算法原理

算法的基本原理就是:

  1. 基本图像块使用128x128归一图块
  2. 使用基本图快的周围趋势,以及左/上的穿透频率
  3. 使用最小二乘的距离运算
  4. 冗余模板计算冗余误差(多模板统计)

这个算法与当前的神经网络和机器学习算法没有任何关系,完全是自己开发出来的(在2004—2005年还没有接触到神经网络和机器学习等概念)。

  1. 周围趋势描述

使用左边缘线段探查图块中目标的左边缘,根据线段长度(像素数)从上到下生成边缘趋势值,用-1表示减小,0表示不变,1表示增大。同理对上边缘,从左到右,对右边缘从上到下,对下边缘从左到右进行处理,获得图块的边缘数据。

  1. 左/上穿透频率描述

用线段从左向右穿透图块,每一次遇到像素从0到1的变化表示一个波动,记录整个线段上的所有波动数,表示为该线段上的频率数,对于左频率,从上到下计算,对于上频率从左到右计算,每个频率值使用4比特表示最大为16。

  1. 冗余误差

对于模板图块使用各种形态的模板,判断比较时采用最小二乘的前n个模板值,统计其中出现的识别种类,以及误差,根据统计规则判定识别结果。

  • 图像处理

对于采集的图像,使用基本的灰度/二值图像处理方式,增加一些滤波手段,主要强调光照的一致性,比如环境光,应遮挡日光照射,夜间应使用照明灯(无影灯)。

一般车厢号码应在一定范围内,因此需要确定要处理的图像范围,没有必要全图处理。

这是一个老程序,在2005年完成的,使用delphi编写。现在拿出来看一下,个人觉得还有点价值。

你可能感兴趣的:(delphi,软件编程,数据采集监测,算法,最小二乘法,模式识别)