m基于HOG特征提取和GA优化GRNN网络的交通标志检测和识别算法matlab仿真

简介: m基于HOG特征提取和GA优化GRNN网络的交通标志检测和识别算法matlab仿真

1.算法仿真效果
matlab2022a仿真结果如下:

3581abf3c986e170f6ef35c129daa8eb_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
93d6fc364ce0693921d1a9b6b5d4e0d7_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
57554c6a7f6d938ae2cea36f3e928139_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
cebcc60f927118806b90be11a6603df2_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
719bb3a5d2e6df0173fbf5239edaacab_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png
ebbe1fd9ff9bfead8c1b00f4e73a4ab8_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

2.算法涉及理论知识概要
2.1 遗传算法

   遗传算法GA把问题的解表示成“染色体”,在算法中也即是以二进制编码的串。并且,在执行遗传算法之前,给出一群“染色体”,也即是假设解。然后,把这些假设解置于问题的“环境”中,并按适者生存的原则,从中选择出较适应环境的“染色体”进行复制,再通过交叉,变异过程产生更适应环境的新一代“染色体”群。这样,一代一代地进化,最后就会收敛到最适应环境的一个“染色体”上,它就是问题的最优解。

   其主要步骤如下:

1.初始化

   选择一个群体,即选择一个串或个体的集合bi,i=1,2,...n。这个初始的群体也就是问题假设解的集合。一般取n=30-160。

   通常以随机方法产生串或个体的集合bi,i=1,2,...n。问题的最优解将通过这些初始假设解进化而求出。

2.选择

  根据适者生存原则选择下一代的个体。在选择时,以适应度为选择原则。适应度准则体现了适者生存,不适应者淘汰的自然法则。

给出目标函数f,则f(bi)称为个体bi的适应度。以

为选中bi为下一代个体的次数。

显然.从式(3—86)可知:

(1)适应度较高的个体,繁殖下一代的数目较多。

(2)适应度较小的个体,繁殖下一代的数目较少;甚至被淘汰。

这样,就产生了对环境适应能力较强的后代。对于问题求解角度来讲,就是选择出和最优解较接近的中间解。

3.交叉

   对于选中用于繁殖下一代的个体,随机地选择两个个体的相同位置,按交叉概率P。在选中的位置实行交换。这个过程反映了随机信息交换;目的在于产生新的基因组合,也即产生新的个体。交叉时,可实行单点交叉或多点交叉。

2.2hog特征提取
HOG特征提取方法就是将一个image(你要检测的目标或者扫描窗口):

1)灰度化(将图像看做一个x,y,z(灰度)的三维图像);

2)采用Gamma校正法对输入图像进行颜色空间的标准化(归一化);目的是调节图像的对比度,降低图像局部的阴影和光照变化所造成的影响,同时可以抑制噪音的干扰;

3)计算图像每个像素的梯度(包括大小和方向);主要是为了捕获轮廓信息,同时进一步弱化光照的干扰。

4)将图像划分成小cells(例如6*6像素/cell);

5)统计每个cell的梯度直方图(不同梯度的个数),即可形成每个cell的descriptor;

6)将每几个cell组成一个block(例如3*3个cell/block),一个block内所有cell的特征descriptor串联起来便得到该block的HOG特征descriptor。

7)将图像image内的所有block的HOG特征descriptor串联起来就可以得到该image(你要检测的目标)的HOG特征descriptor了。这个就是最终的可供分类使用的特征向量了。

2.3 GRNN

广义回归神经网络是径向基神经网络的一种,GRNN具有很强的非线性映射能力和学习速度,比RBF具有更强的优势,网络最后普收敛于样本量集聚较多的优化回归,样本数据少时,预测效果很好,还可以处理不稳定数据。虽然GRNN看起来没有径向基精准,但实际在分类和拟合上,特别是数据精准度比较差的时候有着很大的优势。

   GRNN是RBF的一种改进,结构相似。区别就在于多了一层求和层,而去掉了隐含层与输出层的权值连接(对高斯权值的最小二乘叠加)。

3e8731b67a0e1aa35773f8d0adb318f9_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

1.输入层为向量,维度为m,样本个数为n,线性函数为传输函数。

2.隐藏层与输入层全连接,层内无连接,隐藏层神经元个数与样本个数相等,也就是n,传输函数为径向基函数。

3.加和层中有两个节点,第一个节点为每个隐含层节点的输出和,第二个节点为预期的结果与每个隐含层节点的加权和。

4.输出层输出是第二个节点除以第一个节点。

    在GRNN神经网络中,一旦确立了学习样本数据后,只需要调整一个参数“光滑因子”即可确定其网络结构和权值,因此训练GRNN网络要比传统的神经网络更加便捷。所以选择GRNN。





3.MATLAB核心程序

    ftest  = func_feature2(X4);
    yout   = round(net2(ftest'));
    
    figure;
    subplot(121);
    imshow(X3);
    subplot(122);
    imshow(X4);
    if yout == 1
       title('识别结果为:非机动车行驶');    
    end
    if yout == 2
       title('减速让车');    
    end
    if yout == 3
       title('禁止鸣笛');    
    end
    if yout == 4
       title('禁止左转');    
    end
    if yout == 5
       title('慢');    
    end
    if yout == 6
       title('人行通道');    
    end
    if yout == 7
       title('限制速度');    
    end
    if yout == 8
       title('右转');    
    end
    if yout == 9
       title('注意行人');    
    end  
    
    
end
if  isempty(X4) == 0 & isempty(X5) == 0 & isempty(X6) == 1;
    ftest   = func_feature2(X4);
    yout1   = round(net2(ftest'));
    ftest   = func_feature2(X5);
    yout2   = round(net2(ftest')); 
    
    figure;
    subplot(131);
    imshow(X3);
    subplot(132);
    imshow(X4);
    if yout1 == 1
       title('识别结果为:非机动车行驶');    
    end
    if yout1 == 2
       title('减速让车');    
    end
    if yout1 == 3
       title('禁止鸣笛');    
    end
    if yout1 == 4
       title('禁止左转');    
    end
    if yout1 == 5
       title('慢');    
    end
    if yout1 == 6
       title('人行通道');    
    end
    if yout1 == 7
       title('限制速度');    
    end
    if yout1 == 8
       title('右转');    
    end
    if yout1 == 9
       title('注意行人');    
    end  
    
    
    subplot(133);
    imshow(X5);
    if yout2 == 1
       title('识别结果为:非机动车行驶');    
    end
    if yout2 == 2
       title('减速让车');    
    end
    if yout2 == 3
       title('禁止鸣笛');    
    end
    if yout2 == 4
       title('禁止左转');    
    end
    if yout2 == 5
       title('慢');    
    end
    if yout2 == 6
       title('人行通道');    
    end
    if yout2 == 7
       title('限制速度');    
    end
    if yout2 == 8
       title('右转');    
    end
    if yout2 == 9
       title('注意行人');    
    end  
    
    
end
相关文章
|
7月前
|
机器学习/深度学习 传感器 算法
基于GA-HIDMSPSO优化CNN-SVM分类预测的研究(Matlb代码实现)
基于GA-HIDMSPSO优化CNN-SVM分类预测的研究(Matlb代码实现)
211 0
|
8月前
|
数据可视化
基于遗传算法(GA)的配电网优化运行仿真
基于遗传算法(GA)的配电网优化运行仿真
|
9月前
|
机器学习/深度学习 算法 调度
基于遗传算法GA算法优化BP神经网络(Python代码实现)
基于遗传算法GA算法优化BP神经网络(Python代码实现)
574 0
|
9月前
|
机器学习/深度学习 数据采集 算法
【遗传算法(GA)和模拟退火(SA)对翼型升阻比进行优化】基于神经网络和无导数算法的翼型优化(Matlab代码实现)
【遗传算法(GA)和模拟退火(SA)对翼型升阻比进行优化】基于神经网络和无导数算法的翼型优化(Matlab代码实现)
270 0
|
7月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
676 0
|
7月前
|
数据采集 分布式计算 并行计算
mRMR算法实现特征选择-MATLAB
mRMR算法实现特征选择-MATLAB
430 2
|
8月前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
250 6
|
8月前
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
355 3
|
7月前
|
机器学习/深度学习 算法 机器人
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
使用哈里斯角Harris和SIFT算法来实现局部特征匹配(Matlab代码实现)
330 8
|
7月前
|
机器学习/深度学习 算法 自动驾驶
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
基于导向滤波的暗通道去雾算法在灰度与彩色图像可见度复原中的研究(Matlab代码实现)
379 8

热门文章

最新文章