Reconocimiento de señales de tráfico basado en Matlab

        El aumento de la propiedad de automóviles crea peligros de tráfico, en parte porque los conductores y los vehículos no reconocen bien la información de las señales de tráfico. Brindar a los conductores buena información de tránsito y ayudarlos a tomar decisiones a través de algunos medios técnicos puede reducir la tasa de accidentes de tránsito; al mismo tiempo, como una parte importante de la percepción ambiental, el reconocimiento de señales de tránsito puede proporcionar buena información de señales de tránsito para conducir vehículos y mejorar la experiencia de conducción. Con base en estos dos puntos, es de importancia práctica y teórica estudiar la identificación de las señales de tránsito. La tecnología de reconocimiento de señales de tráfico se puede dividir en dos categorías, a saber, los métodos de detección tradicionales y los métodos basados ​​en el aprendizaje profundo. Botón: "1341703358" ; puede obtener recursos detallados

1.1 Segmentación por colores

Los espacios de color comunes son RGB, LAB, HSV, etc. El modelo RGB está estrechamente relacionado con el sistema visual humano, es decir, todos los colores son combinaciones de diferentes proporciones de rojo R, verde G y azul B. Las ventajas son intuitivas y fáciles de entender, pero la correlación entre sus variables también lo es. fuerte; el modelo LAB se enfoca más en la uniformidad perceptiva, L representa brillo, positivo y negativo de A representan rojo y verde, positivo y negativo de B representan amarillo y azul, y la característica es que la información de color y brillo se puede ajustar por separado; HSV es un modelo no lineal, H representa el ángulo polar y S representa la saturación, V representa la luminosidad y el espacio de color HSV se usa más en el campo de la visión artificial y el procesamiento de imágenes, que puede expresar de manera más intuitiva el tono, la viveza y el brillo , y es más propicio para el contraste de color. Además, los distintos modelos se pueden convertir entre sí.

1.2 Detección de formas

        Realice la detección de bordes en la imagen segmentada por color para obtener las características del contorno del borde de cada canal de conexión, y luego use el algoritmo diseñado para las características de forma de la propia señal de tráfico para detectar el contorno con esta característica.La región obtenida se define como una región de interés para la extracción de características y la clasificación del clasificador. El área donde el valor de gris del píxel cambia bruscamente en una imagen se denomina borde de la imagen. En términos simples, la detección de bordes consiste en conectar píxeles de borde en una imagen para formar un área cerrada, de modo que el logotipo se pueda distinguir fácilmente del fondo.

1.3 Extracción de características y clasificador

        La clave para el reconocimiento de señales de tránsito y otras imágenes es usar un algoritmo o modelo rápido y robusto para extraer la información que describa efectivamente el objetivo de detección en la imagen, y usar esta información para distinguirlo de otras imágenes. extracción. Por ejemplo, el equipo ganador del Desafío de reconocimiento visual a gran escala de ImageNet en 2010 y 2011 usó algoritmos como SIFT y LBP para extraer características manualmente y luego los usó para la clasificación del clasificador, logrando una tasa de error del 28,2 %. Los métodos tradicionales de extracción de características incluyen HOG, LBP, SIFT, etc. SIFT (transformación de características de escala invariable) utiliza algunos puntos locales en el objeto que están relacionados con el objeto y no tienen nada que ver con el tamaño y la dirección de rotación para representar el objeto, lo que puede reducir el impacto de la iluminación, el ruido, etc. en el objeto reconocimiento; HOG (Histograma de Gradiente de Orientación) La forma del objetivo local es descrita por el gradiente, y la información de contorno de la imagen es capturada por esta característica; LBP (modo binario local) usa el valor de gris del píxel central como el umbral para obtener el código binario correspondiente para representar la característica de textura local. Después de la extracción de características, se utiliza un clasificador para clasificarlo. Como el clasificador bayesiano, la máquina de vectores de soporte, el clasificador de redes neuronales y Adaboost, etc.

1.4 Implementación del Código


% 在Traffic_Iden变得可见之前执行
function Traffic_Iden_OpeningFcn(hObject, eventdata, handles, varargin)
% .此函数没有输出args,请参见输出FCN
% hObject    图的句柄
% eventdata  保留-在未来的MATLAB版本中定义
% handles    具有句柄和用户数据的结构(参见GUIDATA)
% varargin   Traffic_Iden的命令行参数(见VARARGIN)


% 选择Traffic_Iden的默认命令行输出
handles.output = hObject;
handles.cd0 = cd;
handles.Color = 0;
handles.I = [];

axes(handles.axes1);
set(gca,'Xtick',[]);%去除x轴的刻度
set(gca,'Ytick',[]);%去除y轴的刻度
box on;

axes(handles.axes2);
set(gca,'Xtick',[]);
set(gca,'Ytick',[]);
box on;

axes(handles.axes3);
set(gca,'Xtick',[]);
set(gca,'Ytick',[]);
box on;

axes(handles.axes4);
set(gca,'Xtick',[]);
set(gca,'Ytick',[]);
box on;

% 更新句柄结构
guidata(hObject, handles);


%UIWA IT使Traffic_Iden等待用户响应(参见UIRESUME)
% uiwait(handles.figure1);


% 此函数的输出返回到命令行
function varargout = Traffic_Iden_OutputFcn(hObject, eventdata, handles) 
% varargout 用于返回输出arg的vargout单元数组
% hObject   图的句柄
% eventdata 保留-在未来的MATLAB版本中定义
% handles   具有句柄和用户数据的结构(参见GUIDATA)

% 获取句柄结构中的默认命令行
varargout{1} = handles.output;


% 按单选按钮3中的按钮执行。
function radiobutton3_Callback(hObject, eventdata, handles)
% hObject    单选按钮3的句柄
% eventdata  保留-在未来的MATLAB版本中定义
% handles    具有句柄和用户数据的结构(参见GUIDATA)


%提示:get(hObject,‘Value’)返回单选按钮3的切换状态


% 按单选按钮4中的按钮执行。
function radiobutton4_Callback(hObject, eventdata, handles)
% hObject    单选按钮4的句柄
% eventdata  保留-在未来的MATLAB版本中定义
% handles    具有句柄和用户数据的结构(参见GUIDATA)

%提示:get(hObject,‘Value’)返回单选按钮4的切换状态


% 按单选按钮5中的按钮执行
function radiobutton5_Callback(hObject, eventdata, handles)
% hObject    单选按钮5的句柄
% eventdata  保留-在未来的MATLAB版本中定义
% handles    具有句柄和用户数据的结构(参见GUIDATA)

% Hint: get(hObject,'Value') returns toggle state of radiobutton5


	
%执行按钮按下按钮1。
function pushbutton1_Callback(hObject, eventdata, handles)
% hObject    按钮1的句柄
% eventdata  保留-在未来的MATLAB版本中定义
% handles    具有句柄和用户数据的结构(参见GUIDATA)
%%  读图
axes(handles.axes1);
cla;%清除坐标系,相当于初始化axes
axes(handles.axes2);
cla;
axes(handles.axes3);
cla;
axes(handles.axes4);
cla;
if filename

    cd(cd1);%目录
    d = imread(filename);%获取图片数据
    cd(handles.cd0);
    handles.I = d;
    axes(handles.axes1);%创建坐标系
    imshow(d);%显示灰度图
    handles.filename = filename; 

    box on;%显示右边和上边框
    
end

handles.Color = 0;
cd(handles.cd0);
set(handles.text2,'string','');
guidata(hObject, handles);


% 执行按钮按下按钮2。
function pushbutton2_Callback(hObject, eventdata, handles)
% hObject    按钮2的句柄
% eventdata  保留-在未来的MATLAB版本中定义
% handles    具有句柄和用户数据的结构(参见GUIDATA)
%% 提取标志
% 按照颜色来分
Color = 0; % 颜色标记  1是红 2 是蓝 3是黄色

if get(handles.radiobutton3,'Value')
    
    Color = 1;
    
elseif get(handles.radiobutton4,'Value')
    
    Color = 2;
    
elseif get(handles.radiobutton5,'Value')
        
        DI = rgb2gray(Image);  %灰度图
        
end

axes(handles.axes2);
imshow(DI);

axes(handles.axes3);

imshow(GI);

handles.GI = GI;

guidata(hObject, handles);

1.5 Resultados

referencias

[1] Semáforos GB14887-2011.

[2] Chen Chao. Ejemplos de aplicaciones de MATLAB [M] Beijing: Electronic Industry Press, 2011.11.

Supongo que te gusta

Origin blog.csdn.net/Jiangtagong/article/details/123903447
Recomendado
Clasificación