文/王浩炎
近年来,自动驾驶及辅助驾驶系统的热度逐渐增长,诸如车道偏离警告、自动刹车及泊车辅助等系统广泛应用,如何高效高质量的对道路的实况进行分析,对道路图片的特征进行分割提取成为人们研究的焦点。作为并行处理器中的一种,细胞神经网络(CNN)在各种图像处理领域发展前景广大。本文通过实现道路边缘提取系统证实了细胞神经网络在自动驾驶及辅助驾驶系统领域具有广阔的前景。
CNN是一类非线性模拟动力系统,它具有规律的结构、可扩展的维数等特性,具有连续实时、能高速并行计算等特点。CNN因结构接近于生物细胞组织,所以得名,CNN属于人工神经网络。CNN是很多的简单处理单元通过并联形成,一个神经元只有简单的功能,但是许许多多神经元组合起来就拥有强大的并行计算力。CNN和生物大脑组织结构差不多,也就是并行的结构,它在处理数据的顺序上也是并行的。普通计算机仅有一个处理单元和串行的计算处理顺序,但是对于CNN来说,拥有多个处理单元并在其上同时运算。因此CNN在对图像处理上具有传统计算机方法所无法具有的优势。
1988年10月,CNN首次发表在CAS杂志上,然后引起全球范围研究者的瞩目,此后无数关于CNN的论文争相在各种杂志、期刊以及会议上发表,促使CNN迅速发展。CNN也因为自身的所具有的广阔的应用前景成为当下研究热点问题。
CNN可实现性强,所以一发表就广泛应用于图像处理等许多研究领域。CNN主要是在以下几个方面应用:图像处理、联想记忆、模式识别、信号处理和解偏微分方程等方面。尤其是最近几年,CNN的发展突飞猛进,特别是在模式识别和图像处理这些方面,爆炸式发展。
但是我们可以看到,尽管CNN理论已经应用成熟,但是其在自动驾驶及辅助驾驶系统等领域却没有得到很好的应用,目前,市面上的自动驾驶系统使用的算法多为决策矩阵算法、聚类算法、模式识别算法和回归算法这四类,在图像识别上使用聚类算法用于识别模糊图片,使用模式识别算法用于提取图片特征,但是其运算模式都不如并行计算的细胞神经网络,因此对于传统图片识别算法,CNN在图片识别和特征提取上具有高效率和高鲁棒性。
CNN的结构是一种空间阵列,并且其细胞连接是局域性的。如图1所示,CNN结构显示为M×N的空间阵列,是M×N数量的细胞局域连接而成,可以看到细胞Cij连接Nij(r)阵列中的邻域细胞,那些不能相连的细胞,就需要以传播效应的方式互相影响。
以阵列是M×N的CNN为例,在阵列里每个细胞Cij(1≤ i ≤M,1≤ j ≤N)具有一下几个参数:阈值Ιij、外界输入uij、输出yij、状态变量xij,图2所示,为CNN中细胞的等效电路,由电压定律(KVL)和基尔霍夫电流定律(KCL),得出下列描述细胞Cij动态过程的一阶非线性微分方程。
状态方程:
输出方程:
输入方程:
约束条件:
电路参数条件:
其中,
x:是细胞Cij的起始态;1≤i,k≤M;1≤j,l≤N;
Eij:是电压源,单独独立;Rx表示线性电阻;C表示线性电容;
Akl:称为反馈模板,代表在邻域细胞Ckl中,输出ykl和细胞Cij两者连接的权值;
图1:M*N的CNN结构
图2:CNN每个细胞的等效电路图
Bkl:称为控制模板,代表在邻域细胞Ckl内,输入ukl和细胞Cij两者连接的权值。
模板A和B所代表的含义:Aij(或Bij)是细胞Cij的自反馈权重(或自控制权重),同时还是A(或B)的中心元素;Akl(或Bkl)是细胞邻域Nij(r)内的细胞Ckl的反馈权重(或控制权重),同样还是A(或B)中除中心元素以外的其它元素,邻域Nij(r)的定义决定k和l的取值范围。这里举了具有3×3结构的A和B的例子,如下所示:
其 中(i-1,j-1),(i-1,j) ,(i-1,j+1),(i,j-1),(i+1,j-1),(i,j+1),(i+1,j),(i+1,j+1)为(i,j)的邻域,通称为(k,l)。
CNN的具有规则的阵列,每个细胞都有一样的电路结构,都有相同数量的领域细胞,数量为(2r+1)2,前面提到了非线性微分方程式(1)~(6),可以表示一个CNN阵列,证明这种特点。
CNN单个细胞最多存在三个节点,并且每个细胞节点数目一样,因此其具有局域性的互联细胞这样一个特点,适用于并行计算。
前面通过分析A和B可知CNN具有动力学的机制,分别是输入控制和输出反馈,控制模板B对输入控制起决定影响,反馈模板A又反过来决定输出反馈。非线性微分方程式(3)也表现细胞输入输出关系是单调递增的,方便在硬件上实现。
同时CNN还具有参数的非唯一性等特点。
在本系统中,“A”模板是反馈矩阵,“B”模板是控制矩阵,另外,“i”是偏差值。在本系统中主要功能是提取给定图中道路的主要边缘特征,并去掉不重要的细节,从而产生一个相对干净的边缘映射。本系统可以在车道偏离警告、自动刹车及泊车辅助等系统广泛应用。
从图3原图和图4结果图对比可以看到,去除不必要的数据,成功提取出道路边缘,从而达到我们的要求。
如图5所示,显示为程序界面,我们将要处理的照片输入,调整3×3的反馈矩阵和控制矩阵,调整偏差值为0.1。
如图6所示,显示为输出结果,我们可以看到利用CNN完美的检测出图片的边缘,边缘检测的完整并且噪声小,产生了最清晰的映射。并且我们可以看到检测时间只有0.9s,并行化的处理将对图像处理的运算能力和效率大大提高。
通过实验我们可以看到,CNN在对图像进行处理上,提取的结果比较细腻,信息量大,且对边缘提取连续性好,在各个朝向的边缘提取上具有很好的效果,并且在处理时间上,我们也可以看出CNN相对于传统算法,并行计算的模式大大加快了CNN在处理数据上的速度,并且通过实验发现,处理速度的快慢与所需要处理图像的大小没有什么关系。从而验证CNN在自动驾驶领域具有广泛的应用前景。
本文对CNN进行了深入学习与探究,并实现了道路边缘提取系统,对图像进行了处理,并对图像处理结果进行分析,证实CNN在图像处理方面所具有的可行性和高效性等特点,以及在自动驾驶领域中的广泛应用价值。
图3:处理原图
图4:处理结果
图5:输入界面
图6:图像输出结果