运用在交通领域的视频监控系统是较为高端的,往高画质和智能化发展已成为共识。作为最重要且最基本的一种智能化应用,车牌识别(LPR)解决方案的需求大而强烈。传统上,基于DSP和(x86)PC的LPR方案对大多数的监控设备设备商而言,其开发时间会较长、成本较高,安装上较复杂严格。
最新基于SoC芯片的LPR方案,则可利用ARM芯片的通用处理能力,结合专门的程序优化,研发出安装方便和性能可靠的道路交通监控摄影机,以及相关影像监控设备,能降低制作成本,便于厂商大规模生产。
用技术响应LPR需求
LPR功能在交通安防工程中,是必要存在且有急迫需求的。据2012年的数据显示,中国市场全新部署超过了2万支交通监控摄像机,而台湾也有超过2千支。此外,数据也显示交通监控更为发达的美国和英国,其城市道路上使用的监控摄像机密度,大致在每0.7KM~1.2KM一支。若以此为标准来推估,中国地区未来每年增加的交通监控摄像机数量,可稳定在30,000到50,000支之间;台湾则是在4,000支左右。如果将用于停车场、小区、厂区出入口的安装需求也算进来,数量会更加可观。
现今可行的LPR算法解决方案,必须满足以下四个特点:
性能稳定。必须能在绝大部分环境下提供正确稳定的输出,LPR业界通行标准,要求全牌识别正确率不低于99%,全字符准确率不低于97%。
界面方便。这样的特性,使设备厂商能够尽其可能开发不同特色的上层应用,满足各类终端需求。LPR的上层包括建构车辆搜索、使用分析等程序,现今交通监控常见的各种衍生应用。为了达到开发上的方便性,必须要让下层的算法提供较为高档和完全的接口功能;在数据输出上,充分考虑不同的上层应用,提供容易改造的基础。
降低整合困难度。也就是降低具备LPR的设备产品本身开发难度,可以大大加快产品推出的速度,及时响应市场需求。
占用较低的处理器资源。如果LPR稍复杂而对CPU的要求提高,将会实际削弱算法的部署能力,影响设备的其他菜单现。
一些根基于ARM的新兴LPR程序如何运作,并且能符合上述的几项必备特点,让我们透过以下的交通监控测试为例来分析说明(测试样本为20,000张台湾交通监控图面和1,000小时录像)。 典型的SoC芯片级LPR解决方案,是基于通用的ARM将一个完整的车牌识别应用功能实现分为两个部分:被硬化的基础操作数IVE(智能影像引擎),以及上层功能实现。其核心程序模块包括:车辆检测和跟踪、车牌检测、字符分割,字符识别和规则输出。下面予以逐一说明。
从车体到车牌到数字
车辆检测和跟踪:将画面中的车辆从背景中分割出来并予以跟踪,从而明确每一辆需要进行车牌检测的车辆实体。要解决由于光照的变化、背景混乱运动的干扰、运动目标的影子、摄像机的抖动以及车辆目标的自遮挡和互遮挡等影响。内建ARM的SoC其LPR可达到“后向”和“前向”两种位移模式的分别处理。在这个阶段,车辆检测率效果已可达到99.6%的水平,而重复率低于0.2%。
车牌检测:车牌检测是最重要的LPR环节,其后的辨识效果,与此部分数据提取正确率的归一相关系数,是所有环节中最大的。在有车灯、尾灯、栅格等干扰图像的影响下,准确提取车牌并将其边缘准确切割是算法的重要能力。支持SoC的LPR已能使用边沿检测、正负线检测、旋转纠偏、角点检测等手段,使得车牌边沿的切割移位率,降低到3%的极值,为下一步的分析提供了可靠的数据源。
字元分割:要将需要辨识的字符目标从车牌中撷取出来。考虑到车牌种类的不同,这一步骤实际要求算法对不同种类的车牌自动适应并提取。以台湾车牌为例,旧式车牌中存在的4、5、6位数的车牌,以及新式车牌的7位数标准车牌,就需要算法自动判别筛选和撷取。此外,摩托车和大型车车牌长宽比上的较大区别,也是LPR技术必须解决的问题。典型支持ARM的LPR解决方案是基于内部字符角点的聚合特征,和字符间留白的线特征,自动制表符区域予以提取。当前撷取的正确率可达99.4%~99.8%之间。
字符识别:不同地区和国家的车牌字符字体不一。据了解,内建ARM的SoC其LPR方案当前可支持的字符包括26个英文大写字母、10个阿拉伯数字,和中国地区72个车牌类属标记字;拥有巨量的车牌库是这一环节准确率的保证。例如市面找得到有IMP-LPR所采用的是经典的图像增强加SVM模式进行识别,对特殊易混淆的字符,采用专门的分析算法予以针对性的区分,甚至特殊采用逆向金字塔方法,提取每一个字符的识别结果概率。透过这些方式产生的首选答案输出结果,正确率稳定在98%以上。
规则输出:不同国家和地区的车牌,其制式上字符位置和可选范围具有明确的定义,能用以提高整体车牌的准确率。以台湾新7位车牌为例,利用前3后4的结构,可以明确将识别结果中,首选答案中不符车牌制式规则的错误纠正过来。SoC的LPR方案也可考虑这一实际有效的方式,在程序架构上,允许外部依据车牌制式的概率,制定纠错输出的规则。采用这样的规则,能成功使其在台湾的车牌辨识率提升0.6%~0.8%。
运算资源耗用的影响
LPR程序对SoC资源消耗的高低,很大程度上决定了该方案实际整合入设备的难度和可行性(如表1)。理想的LPR能将整个程序依内聚性和复杂度,分拆为不同的操作数模块,提取耗用资源多且逻辑清晰的作为操作数加速的对象,利用SoC厂家提供的IVE操作数能力,大幅度提高整体性能。
除了分拆成不同运算模块,适应SoC内核的特性;有些发展较为齐备的LPR解决方案中,能支持多种的交通场景。包括道路监控、车载监控、停车场监控、路边监控。不同场景使用不同的车辆检测和车牌提取算法逻辑。
SoC结构与LPR解决方案
当前主流的安防S o C,不论是Amba re l l a、Gr a i n Media、HiSilicon、Sony和TI等,都包含了影像输入、编码、译码、网络传输等主要功能。在资源分配上,均包含主控CPU(ARM)、协处理器、高速缓存(Cache Memory)等,以及LPR性能关系最大的,主要是CPU和高速缓存。以海思Hi3516芯片为例,其包含一个标准频率440M的ARM A9处理器,以及16KB第一层快取(L1 Cache)和256KB第二层快取(L2 Cache)。
整合LPR过程中,设备系统基础功能占用的CPU是一个重要的限制条件。为了保证整个设备的正常工作,一般我们要求可供LPR使用的CPU资源不超过40%,极端情况下,可以到60%;LPR程序和系统主程序一起驻存在系统flash中,当系统启动时,LPR接到调用命令而启动分析。在整合设计的过程中,获取影像是基本要求之一。通常LPR要求获取分辨率不低于CIF的图,像进行处理。标准接口上获取YUV数据比获取编码的影像讯号,更能提高处理效率,减轻算法负荷。
至于输出端,LPR的结果是交由上层应用软件接续处理,包括必要的显示和关联动作控制。一个理想的LPR程序,可简化开发车牌辨识设备的难度。设备商开发应用的重心放在需要侦测的交通事件规则与逻辑上,而不必关心底层车牌识别的性能与实现过程,从而大大提高了产品应用的丰富性和针对性。
如果同时能提供上层通用的应用功能模块整合,进一步加快设备配置智能功能的开发速度,就能降低开发成本。此外,用户也可以进行自定义的规则分析,在降低用户开发难度,缩短产品开发周期的同时,增加了功能开发的灵活性,使得产品形态更加多样化、专业化。