1. 数据集介绍
中国交通标志数据集:
https://nlpr.ia.ac.cn/pal/trafficdata/detection.html
该数据集包含58类交通标志。
2. 数据处理
按照文件标签,将数据集划分了58类,如下:
对应的类别信息记录如下:
限速5km/h
限速15km/h
限速30km/h
限速40km/h
限速50km/h
限速60km/h
限速70km/h
限速80km/h
禁止左转和直行
禁止右转和直行
禁止直行
禁止左转
禁止左转和右转
禁止右转
禁止超车
禁止掉头
禁止停车
禁止鸣笛
解除40km/h限速
解除50km/h限速
直行或右转
直行
左转
左转或右转
右转
左侧行驶
右侧行驶
环岛行驶
一切机动车
可以鸣笛
非机动车形式
左掉头
前方施工
前方红绿灯
注意危险
注意行人
注意非机动车
注意儿童
向右急转弯
向左急转弯
下陡坡
上陡坡
慢行
右侧T形交叉
左侧T形交叉
村庄
反向弯路
无人看守铁路道口
施工
连续弯路
有人看守铁路道口
事故易发路段
停止让行
禁止通行
禁止停车
禁止驶入
减速让行
停车检查
3.特征提取
图像的Hu的七个不变矩
function inv_m7 = invariable_moment(in_image)
% 将输入的RGB图像转换为灰度图像
image=rgb2gray(in_image);
%将图像矩阵的数据类型转换成双精度型
image=double(image);
%%%=================计算 、 、 =========================
%计算灰度图像的零阶几何矩
m00=sum(sum(image));
m10=0;
m01=0;
[row,col]=size(image);
for i=1:rowfor j=1:colm10=m10+i*image(i,j);m01=m01+j*image(i,j);end
end
%%%=================计算 、 ================================
u10=m10/m00;
u01=m01/m00;
%%%=================计算图像的二阶几何矩、三阶几何矩============
m20 = 0;m02 = 0;m11 = 0;m30 = 0;m12 = 0;m21 = 0;m03 = 0;
for i=1:rowfor j=1:colm20=m20+i^2*image(i,j);m02=m02+j^2*image(i,j);m11=m11+i*j*image(i,j);m30=m30+i^3*image(i,j);m03=m03+j^3*image(i,j);m12=m12+i*j^2*image(i,j);m21=m21+i^2*j*image(i,j);end
end
%%%=================计算图像的二阶中心矩、三阶中心矩============
y00=m00;
y10=0;
y01=0;
y11=m11-u01*m10;
y20=m20-u10*m10;
y02=m02-u01*m01;
y30=m30-3*u10*m20+2*u10^2*m10;
y12=m12-2*u01*m11-u10*m02+2*u01^2*m10;
y21=m21-2*u10*m11-u01*m20+2*u10^2*m01;
y03=m03-3*u01*m02+2*u01^2*m01;
%%%=================计算图像的归格化中心矩====================
n20=y20/m00^2;
n02=y02/m00^2;
n11=y11/m00^2;
n30=y30/m00^2.5;
n03=y03/m00^2.5;
n12=y12/m00^2.5;
n21=y21/m00^2.5;
%%%=================计算图像的七个不变矩======================
h1 = n20 + n02;
h2 = (n20-n02)^2 + 4*(n11)^2;
h3 = (n30-3*n12)^2 + (3*n21-n03)^2;
h4 = (n30+n12)^2 + (n21+n03)^2;
h5 = (n30-3*n12)*(n30+n12)*((n30+n12)^2-3*(n21+n03)^2)+(3*n21-n03)*(n21+n03)*(3*(n30+n12)^2-(n21+n03)^2);
h6 = (n20-n02)*((n30+n12)^2-(n21+n03)^2)+4*n11*(n30+n12)*(n21+n03);
h7 = (3*n21-n03)*(n30+n12)*((n30+n12)^2-3*(n21+n03)^2)+(3*n12-n30)*(n21+n03)*(3*(n30+n12)^2-(n21+n03)^2);
inv_m7= [h1 h2 h3 h4 h5 h6 h7];
end
4. BP网络训练
P_train = datasets(1:3000,1:end-1)'; %训练集特征
T_train = datasets(1:3000,end)'; %训练集标签
P_test = datasets(3001:end,1:end-1)'; %测试集特征
T_test = datasets(3001:end,end)'; %测试集标签
4. 进行测试
交通标志识别
完整代码及数据集获取:Matlab图像处理——基于BP神经网络的车牌标识识别系统 (qq.com)
如果你想要进一步了解更多的相关知识,可以关注下面公众号联系~会不定期发布相关设计内容包括但不限于如下内容:信号处理、通信仿真、算法设计、matlab appdesigner,gui设计、simulink仿真......希望能帮到你!