% ====================================================================== % Artigo -- Classificação de Imagens RGB com SVM e Transfer Learning % Formato: SIGEport (IEEEtran, duas colunas), em português % Compilar com: pdflatex artigo_svm_rgb.tex % ====================================================================== \documentclass[a4paper]{SIGEport} \usepackage{graphicx} \usepackage[caption=false,font=footnotesize]{subfig} \usepackage{geometry} \usepackage{cite} \usepackage{amsmath} \usepackage{booktabs} \usepackage{array} \usepackage[hyphens]{url} \usepackage{microtype} \usepackage{float} \usepackage{placeins} \usepackage{listings} \lstset{ language=R, basicstyle=\ttfamily\scriptsize, breaklines=true, frame=single, xleftmargin=0.5em, xrightmargin=0.5em } \geometry{top=20mm,bottom=20mm,left=18mm,right=12mm} \begin{document} \title{Classifica{\c{c}}{\~a}o de Imagens de Sensoriamento Remoto RGB com SVM e Atributos Extraídos por \textit{Transfer Learning}} \author{Jo{\~a}o Marcos de Oliveira Costa$^1$, Eduardo Carlos Generoso J{\'u}nior$^1$, Vitor Cesa$^1$, Mateus Habermann$^1$ e Daniel Pamplona$^1$\\ % [VERIFICAR] afiliação de Mateus Habermann (IEAv/INPE no artigo galoa) {\small $^1$Instituto Tecnol{\'o}gico de Aeron{\'a}utica (ITA), S{\~a}o Jos{\'e} dos Campos/SP -- Brasil}\\ } \maketitle % ====================================================================== \begin{resumo} Este trabalho avalia o desempenho de classificadores baseados em \textit{Support Vector Machine} (SVM) para a classificação de imagens de sensoriamento remoto coletadas por drones sobre ambiente urbano. A extração de atributos é realizada por meio de \textit{transfer learning} com a rede convolucional MobileNetV2, pré-treinada no conjunto ImageNet, produzindo vetores de 1.280 características por imagem. O \textit{dataset} compreende 1.248 imagens TIFF organizadas em 13~classes de cobertura urbana coletadas sobre Guaratinguetá (SP). Cinco modelos foram comparados: SVM linear, SVM radial com parâmetros padrão, SVM radial com ajuste por busca em grade, SVM radial com redução dimensional via Análise de Componentes Principais (PCA) e \textit{Random Forest}. O melhor resultado foi obtido pelo SVM linear, com acurácia de 40,00\% na partição de teste e 40,15\% na validação cruzada \textit{k-fold} ($k=5$). O desempenho indica que a representação RGB, mesmo enriquecida por \textit{transfer learning}, impõe um teto de discriminação para ambientes urbanos com alta similaridade espectral entre classes, motivando a incorporação de bandas termais em trabalhos futuros. \end{resumo} \begin{chave} \textit{Support Vector Machine}; \textit{transfer learning}; MobileNetV2; sensoriamento remoto; imagens RGB; classificação urbana; \textit{Random Forest}. \end{chave} % ====================================================================== \section{Introdução} A classificação de imagens de sensoriamento remoto é tarefa central para o monitoramento ambiental, o planejamento urbano e a inteligência geoespacial. Com a popularização dos sistemas aéreos não tripulados (SANT), tornou-se possível coletar imagens de alta resolução espacial com baixo custo operacional, abrindo novas oportunidades para análises de cobertura e uso do solo em escala local~\cite{lacerda2023}. Imagens RGB capturadas por drones de pequeno porte oferecem três bandas espectrais (vermelho, verde e azul), suficientes para discriminar feições com resposta espectral visível distinta. Em áreas urbanas, a diversidade de materiais construtivos (concreto, asfalto, telhas cerâmicas, metálicas e de amianto, vegetação rasteira e arbórea) produz classes com alta similaridade espectral no domínio RGB, tornando a tarefa de classificação intrinsecamente desafiadora~\cite{cheng2020}. O uso de SVM em sensoriamento remoto é consolidado na literatura. Melgani e Bruzzone~\cite{melgani2004} demonstraram que SVMs com \textit{kernel} radial (RBF) superam classificadores clássicos em cenários hiperespectrais. Camps-Valls e Bruzzone~\cite{campsvalls2005} sistematizaram o emprego de métodos baseados em \textit{kernel} para imagens hiperespectrais, mostrando que a escolha adequada do \textit{kernel} e o ajuste de hiperparâmetros são determinantes para o desempenho. Em imagens RGB de resolução espacial muito alta, a escassez de informação espectral motiva o uso de descritores derivados de redes neurais convolucionais profundas como pré-processamento~\cite{cheng2020}. O \textit{transfer learning} consiste em reutilizar representações aprendidas por uma rede convolucional em uma tarefa de larga escala, tipicamente a classificação do conjunto ImageNet, como extratores de atributos para um domínio-alvo com menor quantidade de dados~\cite{sandler2018}. Essa abordagem elimina a necessidade de treinamento de ponta a ponta com dados rotulados escassos, tornando-se atrativa para \textit{datasets} de sensoriamento remoto de médio porte e viabilizando o uso de classificadores clássicos sobre representações profundas. Neste contexto, o presente trabalho aplica a rede MobileNetV2, pré-treinada no ImageNet, como extrator de atributos para um \textit{dataset} de imagens RGB de cobertura urbana em Guaratinguetá (SP), avaliando cinco variantes de classificadores SVM e \textit{Random Forest}. O trabalho complementa o estudo de Lacerda et al.~\cite{lacerda2023}, que empregou fusão RGB\,+\,TIR (\textit{thermal infrared}) com classificação orientada a objeto (GEOBIA) em área urbana similar, alcançando acurácia de 88,68\%; o presente estudo investiga o limite do canal RGB isolado com classificadores lineares e não-lineares sobre atributos profundos. O restante do artigo está organizado da seguinte forma: a Seção~2 apresenta a fundamentação teórica; a Seção~3 descreve a metodologia; a Seção~4 reporta os experimentos e resultados; a Seção~5 discute os achados; e a Seção~6 conclui o trabalho. % ====================================================================== \section{Fundamentação Teórica} \subsection{\textit{Support Vector Machine}} A SVM, introduzida por Cortes e Vapnik~\cite{cortes1995} e formalizada em~\cite{vapnik1995}, é um classificador de margem máxima que busca o hiperplano separador ótimo em um espaço de características. Dado um conjunto de treinamento $\{(\mathbf{x}_i, y_i)\}_{i=1}^n$, com $y_i \in \{-1,+1\}$, o problema primal é: \begin{equation} \min_{\mathbf{w},b,\boldsymbol{\xi}} \frac{1}{2}\|\mathbf{w}\|^2 + C\sum_{i=1}^n\xi_i, \label{eq:svm_primal} \end{equation} sujeito a $y_i(\mathbf{w}^\top\phi(\mathbf{x}_i)+b)\geq 1-\xi_i$ e $\xi_i\geq 0$, onde $C>0$ é o parâmetro de custo e $\phi(\cdot)$ é o mapeamento induzido por um \textit{kernel} $k(\mathbf{x},\mathbf{x}')=\phi(\mathbf{x})^\top\phi(\mathbf{x}')$. Para problemas não-linearmente separáveis, utiliza-se o \textit{kernel} RBF: \begin{equation} k(\mathbf{x},\mathbf{x}') = \exp\!\left(-\gamma\|\mathbf{x}-\mathbf{x}'\|^2\right), \label{eq:rbf} \end{equation} cujo hiperparâmetro $\gamma$ controla o raio de influência de cada vetor de suporte. A extensão para problemas multiclasse é feita pela estratégia \textit{one-vs-one}, que treina $\binom{K}{2}$ classificadores binários e decide por votação~\cite{melgani2004}; para $K=13$~classes, isso resulta em 78~classificadores binários. \subsection{\textit{Random Forest}} O \textit{Random Forest}, proposto por Breiman~\cite{breiman2001}, é um método de aprendizado por agrupamento (\textit{ensemble}) que combina múltiplas árvores de decisão. Cada árvore é treinada sobre uma subamostra aleatória do conjunto de treinamento (\textit{bagging}) e utiliza, em cada divisão de nó, um subconjunto aleatório de atributos. O resultado final é obtido por votação majoritária entre as árvores, o que reduz a variância em relação a um único classificador. Além da classificação, o método fornece estimativas de importância das variáveis por meio do critério \textit{MeanDecreaseGini}, que quantifica a contribuição média de cada atributo na redução da impureza de Gini ao longo de todas as árvores da floresta. \subsection{Atributos RGB em Sensoriamento Remoto} Imagens RGB de SANT possuem resolução espacial tipicamente inferior a 10~cm, mas apenas três bandas espectrais, muito aquém dos sensores hiperespectrais. Em ambientes urbanos, a discriminação de classes espectralmente similares (como asfalto versus concreto) requer descritores texturais ou morfológicos além da informação espectral pura~\cite{cheng2020}. Estudos de classificação de cenas de sensoriamento remoto com \textit{deep learning} mostram que arquiteturas convolucionais profundas capturam essas texturas de forma consistente mesmo quando treinadas em domínios distintos~\cite{cheng2020}. \subsection{\textit{Transfer Learning} e Redes Convolucionais} Redes neurais convolucionais (CNN) profundas aprendem hierarquias de representação, evoluindo de bordas e texturas locais nas camadas iniciais até padrões semânticos de alto nível nas camadas finais. Quando treinada no ImageNet, uma CNN codifica atributos genéricos transferíveis para outros domínios sem necessidade de re-treinamento completo~\cite{sandler2018}. A MobileNetV2~\cite{sandler2018} é uma arquitetura eficiente que emprega blocos de resíduo invertido com gargalo linear, com cerca de 3,4~milhões de parâmetros. Sem a camada de classificação final e com \textit{Global Average Pooling}, produz um vetor de 1.280~dimensões por imagem de entrada $224\times224$~px. Esses atributos alimentam um classificador externo, sem atualização dos pesos da rede. % ====================================================================== \section{Metodologia} \subsection{Conjunto de Dados} O \textit{dataset} é composto por 1.248 imagens TIFF coletadas por drone sobre a área urbana de Guaratinguetá (SP), organizadas em 13 classes de cobertura urbana (C1--C13), com 96~imagens por classe. % [VERIFICAR] resolução espacial e sensor exatos Para equalizar o impacto das classes no treinamento, foi realizada uma amostragem estratificada de 50~imagens por classe, totalizando 650~amostras. A Figura~\ref{fig:distclasses} mostra a distribuição das classes após a amostragem. \begin{figure}[h] \centering \includegraphics[width=0.98\columnwidth]{% trabalho_svm_rgb_files/figure-html/unnamed-chunk-6-1.png} \caption{Distribuição das classes no \textit{dataset} após amostragem estratificada (50 imagens/classe, 650 no total).} \label{fig:distclasses} \end{figure} \subsection{Extração de Atributos com MobileNetV2} Cada imagem foi redimensionada para $224\times224$~pixels e normalizada para o intervalo $[-1, 1]$ pela transformação $(x / 127{,}5) - 1{,}0$, conforme a pré-normalização específica do MobileNetV2. A rede foi carregada com pesos pré-treinados no ImageNet por meio do pacote \texttt{keras3} em~R~\cite{r_core}, sem a camada de classificação (\texttt{include\_top = FALSE}) e com \textit{Global Average Pooling} (\texttt{pooling = "avg"}), produzindo um vetor de 1.280~atributos por imagem: \begin{lstlisting} modelo_base <- application_mobilenet_v2( include_top = FALSE, weights = "imagenet", pooling = "avg", input_shape = c(224L, 224L, 3L) ) \end{lstlisting} As imagens foram processadas em lotes de 16 (\textit{batch size}), com resultado armazenado em \textit{cache} para evitar reprocessamento. Após a extração, atributos com variância próxima de zero (\textit{near-zero variance}, NZV) foram removidos e os demais padronizados (\textit{center}/\textit{scale}). \subsection{Divisão dos Dados e Validação} As 650~imagens foram divididas em 70\% para treinamento (455~imagens) e 30\% para teste (195~imagens) por amostragem estratificada (\textit{holdout}). Adicionalmente, foi aplicada validação cruzada \textit{k-fold} com $k=5$ dobras estratificadas, para estimativa mais robusta da generalização. Na validação cruzada, os melhores hiperparâmetros do SVM radial ajustado, obtidos na etapa de \textit{holdout} ($C=1$, $\gamma=0{,}001$), foram reutilizados em cada dobra para evitar o custo computacional de re-otimização. Para o \textit{Random Forest}, o número de árvores foi reduzido para 200 no \textit{k-fold} (contra 500 no \textit{holdout}) por razão de eficiência computacional. \subsection{Redução Dimensional com PCA} A Análise de Componentes Principais foi aplicada ao conjunto de treinamento. Para reter 95\% da variância explicada são necessários 249~componentes (Figura~\ref{fig:pca}), o que evidencia a alta dispersão da informação ao longo das 1.280~dimensões do espaço MobileNetV2. Optou-se por reter 30~componentes para treinar o modelo PCA\,+\,SVM~radial, com custo computacional reduzido. \begin{figure}[h] \centering \includegraphics[width=0.98\columnwidth]{% trabalho_svm_rgb_files/figure-html/unnamed-chunk-18-1.png} \caption{Variância acumulada pelos componentes principais. Para 95\% da variância, são necessários 249~componentes. A linha vertical indica o corte em 30~componentes utilizado no modelo PCA\,+\,SVM radial.} \label{fig:pca} \end{figure} \subsection{Modelos Avaliados} Cinco modelos foram treinados e avaliados: (i)~SVM linear, com $C=1$; % [VERIFICAR] valor exato de C para SVM linear (ii)~SVM radial com parâmetros fixos ($\mathit{cost}=10$, $\gamma=0{,}01$); (iii)~SVM radial ajustado por busca em grade, $C \in \{0{,}1;\;1;\;10;\;100\}$ e $\gamma \in \{0{,}001;\;0{,}01;\;0{,}05;\;0{,}1\}$, com melhor configuração $C=1$, $\gamma=0{,}001$; (iv)~PCA\,+\,SVM radial, com projeção em 30~componentes seguida de SVM radial com $\mathit{cost}=10$ e $\gamma=0{,}01$; e (v)~\textit{Random Forest} com 500~árvores e parâmetros padrão. Todos os modelos foram implementados em~R~\cite{r_core} com os pacotes \texttt{e1071} (SVM), \texttt{caret} e \texttt{randomForest}, com semente aleatória fixada em 123. % ====================================================================== \section{Experimentos e Resultados} \subsection{Comparação de Desempenho} A Tabela~\ref{tab:resultados} apresenta as métricas obtidas na partição de teste (\textit{holdout} 70/30) e na validação cruzada (\textit{k-fold}, $k=5$) para os cinco modelos. As métricas reportadas são acurácia global, índice Kappa de Cohen, sensibilidade macro-média, especificidade macro-média e F1-\textit{score} macro-médio. \begin{table}[h] \centering \caption{Métricas de desempenho (\textit{holdout} e \textit{k-fold})} \label{tab:resultados} {\scriptsize \begin{tabular}{lccccc} \toprule Modelo & Acur. & Kappa & Sens. & Espec. & F1 \\ \midrule \multicolumn{6}{l}{\textit{Holdout (70\%/30\%)}} \\ \midrule SVM linear & 0,400 & 0,350 & 0,400 & 0,950 & 0,402 \\ \textit{Rand. Forest} & 0,374 & 0,322 & 0,374 & 0,948 & 0,369 \\ PCA + SVM rad. & 0,359 & 0,306 & 0,359 & 0,947 & 0,370 \\ SVM rad. aj. & 0,354 & 0,300 & 0,354 & 0,946 & 0,352 \\ SVM radial & 0,144 & 0,072 & 0,144 & 0,929 & 0,193 \\ \midrule \multicolumn{6}{l}{\textit{K-fold} ($k = 5$)} \\ \midrule SVM linear & 0,402 & 0,352 & 0,402 & --- & 0,409 \\ PCA + SVM rad. & 0,368 & 0,315 & 0,368 & --- & 0,378 \\ SVM rad. aj. & 0,362 & 0,308 & 0,362 & --- & 0,367 \\ \textit{Rand. Forest} & 0,348 & 0,293 & 0,348 & --- & 0,350 \\ SVM radial & 0,159 & 0,088 & 0,159 & --- & 0,223 \\ \bottomrule \end{tabular}} {\scriptsize Especificidade macro não calculada para o \textit{k-fold}.} \end{table} O SVM linear obteve o melhor desempenho em ambas as estratégias de avaliação. Na validação cruzada, alcançou acurácia de 40,15\% e $\kappa=0{,}352$, indicando concordância razoável acima do acaso. A Figura~\ref{fig:comparacao} compara as acurácias dos cinco modelos no \textit{holdout}, e a Figura~\ref{fig:multimetrica} apresenta as demais métricas, confirmando a consistência do SVM linear como melhor modelo em todas as dimensões avaliadas. \begin{figure}[h] \centering \includegraphics[width=0.98\columnwidth]{% trabalho_svm_rgb_files/figure-html/unnamed-chunk-23-1.png} \caption{Comparação da acurácia dos cinco modelos na partição de teste (\textit{holdout}).} \label{fig:comparacao} \end{figure} \begin{figure}[h] \centering \includegraphics[width=0.98\columnwidth]{% trabalho_svm_rgb_files/figure-html/unnamed-chunk-24-1.png} \caption{Comparação de múltiplas métricas (acurácia, Kappa, sensibilidade e F1-\textit{score}) para os cinco modelos (\textit{holdout}).} \label{fig:multimetrica} \end{figure} \subsection{Análise por Classe} A Figura~\ref{fig:confusao} exibe a matriz de confusão do SVM linear no conjunto de teste. A sensibilidade por classe varia de 13\% (C12) a 60\% (C5 e C9), passando por valores intermediários como C8~(53\%), C6~(53\%) e C3~(47\%). As classes C11, C12 e C13 apresentam sensibilidades inferiores a 27\%, indicando que o modelo sistematicamente falha em discriminá-las das demais. A confusão predominante ocorre entre classes com resposta espectral similar no domínio visível, como diferentes tipos de telha e pavimentação. \begin{figure}[h] \centering \includegraphics[width=0.98\columnwidth]{% trabalho_svm_rgb_files/figure-html/unnamed-chunk-26-1.png} \caption{Matriz de confusão do SVM linear no conjunto de teste (195 amostras, 13 classes).} \label{fig:confusao} \end{figure} \subsection{Importância das Variáveis} A Figura~\ref{fig:importancia} mostra as 20~variáveis mais importantes segundo o critério \textit{MeanDecreaseGini} do \textit{Random Forest}. Os atributos mais relevantes para a classificação são vetores de ativação específicos da camada de \textit{Global Average Pooling} do MobileNetV2, identificados pelos índices \texttt{feat\_XXXX}. % [VERIFICAR] identificar quais índices dominam A distribuição da importância ao longo dos 20~principais atributos não apresenta concentração acentuada em poucos índices, sugerindo que a discriminação das classes urbanas depende de combinações distribuídas das ativações profundas, em vez de um subconjunto pequeno de características dominantes. \begin{figure}[h] \centering \includegraphics[width=0.98\columnwidth]{% trabalho_svm_rgb_files/figure-html/unnamed-chunk-28-1.png} \caption{As 20 variáveis mais importantes segundo o critério \textit{MeanDecreaseGini} do \textit{Random Forest}.} \label{fig:importancia} \end{figure} \subsection{\textit{Holdout} versus \textit{K-fold}} As métricas obtidas por \textit{k-fold} foram consistentes com as do \textit{holdout} (Figura~\ref{fig:hkf}), com variação máxima de 0,002 pontos de acurácia para o SVM linear, indicando ausência de sobreajuste significativo. A maior discrepância ocorreu com o \textit{Random Forest}, cujo desempenho no \textit{holdout} (37,44\%) superou o \textit{k-fold} (34,77\%). Parte dessa diferença é explicada pela redução de 500 para 200 árvores no \textit{k-fold}, adotada por razão de eficiência computacional. \begin{figure}[h] \centering \includegraphics[width=0.98\columnwidth]{% trabalho_svm_rgb_files/figure-html/unnamed-chunk-34-1.png} \caption{Comparação entre as acurácias obtidas por \textit{holdout} e por \textit{k-fold} ($k=5$) para os cinco modelos.} \label{fig:hkf} \end{figure} % ====================================================================== \section{Discussão} A acurácia máxima de 40,15\% para 13 classes está abaixo do que seria típico em cenários com maior diversidade espectral. O resultado contrasta com o de Lacerda et al.~\cite{lacerda2023}, que obteve 83,02\% somente com RGB e 88,68\% com fusão RGB\,+\,TIR em um problema de 8 classes. Três fatores explicam essa diferença. Em primeiro lugar, o número de classes: com 13 categorias de cobertura urbana visualmente similares, o problema é consideravelmente mais difícil que classificações com 8 ou menos classes. Em segundo lugar, a informação espectral: imagens RGB não capturam a reflectância termal (TIR), que diferencia materiais como telha cerâmica, concreto e asfalto, cujas emissividades são distintas mesmo quando a coloração no espectro visível é similar. Em terceiro lugar, a representatividade do \textit{transfer learning}: a MobileNetV2, treinada no ImageNet, aprende descritores otimizados para objetos fotográficos do cotidiano. Sua transferência para imagens de coberturas urbanas em ponto de vista \textit{nadir} é parcialmente efetiva, mas não especializada para texturas de materiais construtivos~\cite{cheng2020}. Um achado relevante é a superioridade do SVM linear sobre o SVM radial. Em espaços de alta dimensão (1.280 atributos), os dados tendem a se tornar mais linearmente separáveis, de modo que o \textit{kernel} linear encontra hiperplanos eficazes sem risco de sobreajuste. O \textit{kernel} RBF, por sua vez, é fortemente sensível ao parâmetro $\gamma$: com os valores padrão ($\gamma=0{,}01$, $\mathit{cost}=10$), a função de similaridade colapsa e o modelo alcança apenas 14,36\% de acurácia. Após ajuste por busca em grade ($\gamma=0{,}001$, $\mathit{cost}=1$), o desempenho sobe para 35,38\%, porém ainda abaixo do SVM linear. A aplicação de PCA antes do SVM radial com os mesmos parâmetros padrão ($\mathit{cost}=10$, $\gamma=0{,}01$) elevou a acurácia de 14,36\% para 35,90\%, mesmo sem re-otimização dos hiperparâmetros. Isso indica que a redução de 1.280 para 30~componentes corrige implicitamente a escala de $\gamma$, tornando o \textit{kernel} RBF funcional sem busca em grade. O custo, porém, é a perda de variância explicada: os 30~componentes capturam menos de 20\% da variância total (Figura~\ref{fig:pca}), o que limita o teto de desempenho. % ====================================================================== \section{Conclusão} Este trabalho avaliou cinco modelos (SVM linear, SVM radial em três configurações e \textit{Random Forest}) para a classificação de imagens de cobertura urbana RGB coletadas por drone, utilizando atributos de \textit{transfer learning} extraídos pela MobileNetV2. O SVM linear obteve o melhor desempenho, com acurácia de 40,15\% na validação cruzada \textit{k-fold}, superando o SVM radial ajustado (36,15\%), o \textit{Random Forest} (34,77\%) e o SVM radial padrão (15,85\%). Os resultados confirmam que: (i)~em espaços de alta dimensão gerados por CNN, o \textit{kernel} linear é competitivo; (ii)~a parametrização de $\gamma$ é crítica para o \textit{kernel} RBF; e (iii)~a redução dimensional por PCA corrige implicitamente a escala do \textit{kernel} sem re-otimização. Como principais direções futuras, destacam-se: (i)~incorporação da banda termal (TIR) para fusão de dados, conforme demonstrado em~\cite{lacerda2023}; (ii)~uso de arquiteturas CNN pré-treinadas em \textit{datasets} de sensoriamento remoto (\textit{domain-specific transfer learning}); (iii)~ampliação do número de amostras por classe; e (iv)~exploração de classificadores baseados em \textit{Transformers} para dados de cena. \bibliographystyle{IEEEtran} \bibliography{Referencias_SVM} \end{document}