发明内容
为了在实际环境下搜索和识别交通标志,本发明使用Hough变换搜索交通标志,使用提取HOG特征, PCA投影, LDA投影及最近邻搜索的方法识别交通标志。本方法在实际环境中从车载摄像头获取的低质量的图像中能较准确的搜索识别交通标志,本发明属于驾驶辅助系统。
为解决车载处理器运算能力不足以实时进行搜索及识别的问题,本发明设计了如下解决方案,一种实时搜索及识别交通标志的方法,包括以下步骤:
采集车辆周边视频信息;
发送车辆周边视频信息到处理单元;
搜索并识别车辆周边视频信息里的交通标志;
显示并语音提示驾驶员识别出的交通标志。
进一步地,搜索并识别车辆周边视频信息里的交通标志包括如下步骤:
对视频信息进行Canny边缘检测;
对边缘进行基于梯度的Hough圆检测并标记圆的位置;
根据圆的位置在原图像中提取图像并且尺寸归一化到32×32像素,得到标志物图像并将标志物图像在LCD显示器上显示;
提取标志物图像HOG特征;
对HOG特征进行PCA投影及重建,根据重建结果判断是否为交通标志,若不是交通标志结束本次处理;
对主成分进行LDA投影,计算投影向量与每一个交通标志类中心距离,用最近邻法识别交通标志。
进一步地,Canny边缘检测的步骤如下:
高斯模糊减少噪音;
计算梯度;
沿梯度方向进行非极大值抑制;
双阀值检测并连接边缘。
所述Canny边缘检测的步骤如下:使用3×3的模板对灰度图像进行卷积以实现高斯模糊;使用微分算子及对高斯模糊图进行卷积计算x方向及y方向偏导数,计算近似梯度大小并根据及得到梯度方向;沿梯度方向进行非极大值抑制,即当前点梯度必须比沿着梯度方向两则点的梯度值大;双阀值检测并连接边缘,即设定高低两个阀值从而得到相应的强边缘及弱边缘,遍历强边缘根据邻居及弱边缘对强边缘进行更新从而得到完整的边缘图像。
进一步地,根据边缘进行基于梯度的Hough圆检测的步骤如下:
申请一个二维累加器阵列并置0;
计算每个边缘点梯度方向;
根据梯度方向及假定的圆半径计算圆心;
根据圆心对累加器进行累加;
根据累加器的极大值得到圆心;
根据每一个边缘点到圆心的距离得到最佳半径。
所述基于梯度的Hough变换搜索圆形限速交通标志的步骤如下:申请一个二维累加器阵列并置0,其中表示圆心坐标;计算每个边缘点对应原图像的梯度方向的正弦及余弦值: ,其中f是原图像灰度值;计算圆心:,,其中x,y是边缘点坐标,r是圆半径;对累加器进行累加为了检测到不同半径的圆,需要在间循环重复进行上述步骤;根据累加器的极大值得到圆心;根据每一个边缘点到圆心的距离得到最佳半径。
进一步地,提取梯度方向直方图特征的步骤如下:
伽马矫正;
计算梯度;
细胞单元(Cell)内构建梯度方向直方图;
区块(Block)归一化;
得到整个窗口HOG特征。
所述提取HOG特征的步骤如下:伽马矫正:,开方通过查表方法快速完成;计算梯度:使用模板及其转置对伽马校准后的图进行卷积得到;构建梯度方向直方图:在4×4像素的Cell内将梯度方向离散到0°-180°平均划分的9个直条(bin)中,以梯度大小进行加权投票,每个Cell得到一个9个bin的直方图; Block归一化:4个相邻Cell组成一个Block,对一个Block的36维向量v进行归一化,ε为防止除0的常数,归一化后再把v高于0.2的分量置0.2;Block每次移动4个像素,因此32×32像素的窗口包含横向,纵向共计49个Block,收集每个Block的36维向量并串接得到整个窗口的1764维HOG特征。
进一步地,对梯度方向直方图特征进行主成分分析法投影及重建的步骤如下:
梯度方向直方图特征归一化;
主成分分析投影;
重建;
计算重建前后差,则为交通标志;
其中Γ为梯度方向直方图特征,Ψ为样本平均梯度方向直方图特征,为PCA投影矩阵,为相应特征向量,K为提取特征向量个数, y为PCA投影后的主成分,为范数,为重建前后差值,为阀值。需要使用主成分分析法离线计算及Ψ;
进一步地,对主成分进行基于Fisher线性判别方法投影,计算投影向量与每一个交通标志类中心距离,用最近邻法识别交通标志的步骤如下:
对主成分y进行投影;
计算z与每一个类中心距离;
找到距离z最近的中心及其距离,则识别成功,识别为j类;
其中为线性判别分析投影矩阵,为相应的特征向量,z为线性判别分析投影后的维列向量,c为类数, 为第i个类中心列向量,θ为阀值。需要使用多个交通标志类用线性判别分析方法离线计算及 。
一种实时搜索及识别交通标志的装置,所述装置包括:视频信息采集单元,接口总成,处理单元,显示单元及扬声器。其中,视频信息采集单元:用于采集车辆周边视频信息;接口总成:用于外部设备与处理单元的通信;处理单元:用于搜索并识别车辆周边视频信息里的交通标志;显示单元:用于显示识别出的交通标志;扬声器:用于语音提示驾驶员识别出的交通标志。
进一步地,所述处理单元为ARM处理器及DSP数字信号处理器。
另外,所述视频信息采集单元包括一个或一个以上摄像头。所述摄像头为红外摄像头。也就是说,本发明的视频信息采集单元可以是一个摄像头,也可以是两个及两个以上的摄像头,一般情况下,我们使用一个摄像头就可以。另外,目前我们的方案采用的摄像头为红外摄像头,当然,如果有效果更好的摄像头出现,可以使用效果更好的摄像头。
本发明里,LCD(Liquid Crystal Display) 是液晶显示器的简称PCA( PrincipalComponent Analysis)是主成分分析的简称;LDA(Linear Discriminant Analysis)是线性判别分析的简称;HOG(Histograms of Oriented Gradients)是梯度方向直方图的简称。Hough是Paul Hough的名;Canny 是John Canny的名;Fisher 是Sir Ronald Fisher的名。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1所示是本发明实施例中一种实时搜索及识别交通标志的装置结构示意图。该结构图包括:视频信息采集单元100,前置红外摄像头101,后视摄像头102,侧置摄像头103,车机104,接口总成105,处理单元106,扬声器107,显示单元108。其中,前置红外摄像头101、后视摄像头102、侧置摄像头103,这三个位置的摄像头共同构成了视频信息采集单元100,它们分别负责车辆周边不同方向的视频信息的采集,本例里我们使用了三个摄像头,而在实际应用中,我们使用一个摄像头也是可以达到采集视频信息的效果。另外,接口总成105,处理单元106,扬声器107,显示单元108都内置于车机104内。各单元之间具体的工作过程如下,视频信息采集单元100把采集到的视频信息通过车机104内的接口总成的105传送到处理单元106,处理单元完成对信息的处理,将结果通过接口总成104发送到扬声器107及显示单元108。显示单元107显示出搜索到的多个交通标志图像,让驾驶员随时查看,扬声器108在识别完成后用语音播出交通标志内容提醒驾驶者,在搜索到交通标志之后3秒内完成识别。
图2所示为本发明所述方法的整体流程图。因为识别算法需要相当长的时间,作为本发明的一个实施例,所述方法使用了多线程处理包括搜索线程及识别线程。搜索线程流程如下:
获取当前帧;
从当前帧提取亮度信号,从而获得灰度图像;
对灰度图像进行Canny边缘检测;
对边缘进行基于梯度的Hough圆检测;
若没有检测到圆则返回第一步,否则立即在显示单元显示标志物图像;
发送信息给识别线程,告知检测到标志物图像,并且把标志物图像缩放到32×32像素,将图像首地址发送到识别线程;
判断是否退出,若否返回第一步;
若确定退出则发送检测到标志物图像的消息给识别线程。
释放资源,关闭线程。
识别线程的流程如下:
载入PCA及LDA算法所需数据矩阵;
等待,直到收到搜索线程发来的消息;
收到消息,判断是否退出程序,若需要退出则释放资源关闭线程;
对标志物图像提取HOG特征;
对HOG特征进行PCA投影及重建;
根据重建判断标志物图像是否为交通标志,若否则返回到等待状态;
对主成分进行LDA投影;
对LDA投影向量进行最近邻搜索;
若没有搜索到预存的交通标志则返回到等待状态;
语音播出识别出的交通标志内容提醒驾驶员;
返回到等待状态。
图3所示为发明所述Canny检测边缘的各步骤效果图。其中301所示为原灰度图效果,根据302- 305对Canny检测边缘步骤进行详细说明:
步骤1, 高斯模糊:使用3×3的模板对灰度图像进行卷积。302所示为高斯模糊后图像;
步骤2,用及对高斯模糊图进行卷积,计算x方向及y方向偏导数及,计算近似梯度值。303所示为梯度图像;
步骤3,非极大值抑制:根据及得到梯度方向(4方向,,,)设为当前点梯度,为沿梯度方向两端点梯度,不满足且则置。304所示为非极大值抑制效果图;
步骤4,双阀值检测并连接边缘:使用高低两个阀值,的点为弱边缘,存于表,的点为强边缘,存于表,为处梯度值。遍历每一个元素,如果其邻居属于则更新,即把该邻居添加到。
步骤5,得到最终的边缘即表。305所示为Canny算法得到的边缘。
图4为本发明所述基于梯度的Hough变换法检测圆示意图, 401所示为原图。进行Hough检测前已经使用所述Canny算法得到图像边缘。根据402-404对Hough变换步骤进行详细说明:
步骤1,申请二维累加器阵列并置0, 为圆心坐标,阵列A的行列范围分别为,;
步骤2,对边缘点循环:
步骤2.1计算 ,,为原灰度图对x及y的偏导数,, 402所示为边缘附近的梯度图像;
步骤2.2,对半径循环,为最小搜索半径, 为最大搜索半径:
步骤2.2.1计算:,, x,y是当前边缘坐标,r为当前半径;
步骤2.2.2阵列累加;
步骤3 得到累加完毕的,根据阵列A的极大值得到圆心坐标, 403,404所示为对应的阵列图像,图中阵列的极大值处即圆心位置;
步骤4根据边缘到圆心的距离得到最佳半径。
根据圆心和半径即得标志物图像位置,将其裁剪并且缩放到32×32像素,传给识别线程进行识别。
图5所示为提取HOG特征过程中定义的Block及Cell示意图,图6所示为提取HOG特征各步骤效果示意图,提取HOG特征的步骤如下:
步骤1,伽马矫正, 为处灰度,开方通过查表方法快速完成;
步骤2,计算梯度:使用模板及对伽马校准后的图进行卷积,得到,及;
步骤3,在每个Cell内建一个9个bin的直方图,由该Cell及邻居Cell的像素对直方图进行加权投票:
其中每个Cell是尺度为4×4像素, , θ即当前像素的梯度方向,θ被离散到0°-180°平均划分的9个bin中:,或表示直方图在或这个bin的值, 表示在该像素左上方Cell的直方图,其他3个含义类似。为2个Cell中心水平距离,为2个Cell中心垂直距离,为2个相邻bin的角度差。501所示为窗口划分若干个Block。502所示为Block包括4个Cell。503所示为梯度方向离散到9个bin及的定义,504所示为像素如何对其近邻的4个直方图进行贡献及 的定义;
步骤4,Block归一化:,其中一个Block为8×8像素,包括2×2个Cell,因此v为4个9维直方图串接成的36维向量,为二范数,ε为防止除0的小常数,归一化后再进行一次截止,把v高于0.2的分量置0.2;
步骤5,Block每次滑动4个像素,因此32×32像素的窗口包含横向,纵向共计49个Block。串接每一个Block的向量v,得到整个窗口1764维HOG特征。
图6所示为提取HOG特征各个步骤的效果示意图。作为示意图对其进行了放大以便看清细节,图6中的窗口放大到128×128像素, Block及Cell也相对应的放大到32×32像素及16×16像素。601所示为原图。602所示为梯度图。603所示为Block相对于窗口的尺度。604所示为每个Cell内建立的9方向直方图,整个窗口包含8×8个Cell。605所示为串接各Block从而得到HOG特征示意图。
使用PCA算法离线训练得到平均HOG特征Ψ及投影矩阵的步骤如下:
步骤1,准备一组样本,样本总数M,其中每个样本均是限速交通标志图像,并且尺寸均被缩放到32×32像素;
步骤2,使用上述方法提取每个图片的HOG特征,是1764维列向量;
步骤3,计算平均HOG特征:;
步骤4,计算差值特征:;
步骤5,计算协方差矩阵
步骤6,计算协方差矩阵C的特征值和特征向量:,并排序;
步骤7,归一化:
步骤8,得到投影矩阵
对HOG特征进行PCA投影提取主成分及重建以判断是否为交通标志的步骤如下:
步骤1:计算,Γ为1764维HOG特征,Ψ为上述训练结果;
步骤2:计算,为上述训练结果,y为主成分;
步骤3,计算,其中;
步骤4,计算重建前后差;
步骤5,则为交通标志,为阀值。越低则漏判交通标志的几率越低,越高则误判交通标志的几率越低。
使用LDA算法离线训练得到投影矩阵及类中心的步骤如下:
步骤1,准备样本,其中C为类数,为第i类样本集合,如限速50千米交通标志样本集合,为第i类包含样本数,为样本图像经过提取HOG特征并进行PCA投影所得主成分;
步骤2,计算类平均:及总平均:;
步骤3,计算类间散射矩阵:及类内散射矩阵,
步骤4,解方程:即求的特征值和特征向量并排序
步骤5,得到投影矩阵,
步骤6,得到投影后的类中心:
LDA投影并使用最近邻法识别交通标志的步骤如下:
步骤1,计算;
步骤2,计算z与每一个类中心距离;
步骤3,找到距离z最近的中心及其距离;
步骤4,则识别为j类,θ为阀值。θ越低则漏识几率越低,θ越高则误识几率越低。
图7所示为本发明的界面设计及实际运行效果图。701为主窗口,各种元素均在主窗口内。702为监视画面,用以显示当前实时画面。703为感兴趣区(ROI), 仅对ROI区域进行搜索及识别,ROI可以在运行时调整位置。704显示当前时间,给驾驶者查看。705包含4个窗口可以显示最近一次搜索到的最多4个交通标志,并且对应的边框将高亮显示。若搜索到的交通标志少于4个,则从左到右依次显示搜索到的交通标志,剩下的窗口显示为黑色;若搜索到的交通标志多于4个,则只显示其中的4个。705在下一次搜索到交通标志前将一直显示最近一次的结果给驾驶员随时查看。706为上侧触碰区,触碰该区域将ROI位置上移,若ROI达到顶部,则触碰后不再上移。707为下侧触碰区,触碰该区域将ROI位置下移,若ROI达到底部,则触碰后不再下移。708为退出按钮,用以关闭程序返回主界面。709所示为实际运行时的效果图,这个例子中搜索到了4个标志物图像并在705处显示,3S后识别出第一个限速交通标志,在扬声器中播放“限速60千米”的提示音。
本发明所述的技术方案并不限于具体实施方式中所述实施例。本实施例搜索线程中用基于梯度的Hough搜索圆形限速交通标志,将该步骤改变即可搜索正三角形警示交通标志。本领域技术人员根据本发明的技术方案得出其他的实施方式,同样属于本发明的技术创新范围。