Skip to content

arthlz/Road-Surface-Classification

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚌 Desafio de Classificação de Superfícies de Vias(Asphalt, Belgian_blocks e Offroad)

Este repositório contém a solução para o desafio de classificação de imagens de superfícies de vias, focado na identificação de três categorias principais: Asphalt, Belgian Blocks e Off-road. O projeto aplica técnicas de Deep Learning e Visão Computacional para identificar padrões de pavimentação em condições reais de captura, priorizando a interpretabilidade do modelo e o tratamento de dados desbalanceados.


📋 Visão Geral do Problema

O objetivo é classificar imagens em três categorias distintas:

  • Asphalt: Superfícies asfálticas uniformes.

  • Belgian Blocks: Pavimentos de paralelepípedo (comumente confundidos com asfalto em baixa resolução).

  • Off-road: Superfícies não pavimentadas (terra, cascalho, areia).

O dataset fornecido apresenta condições visuais desafiadoras que simulam cenários reais de direção, incluindo:

  • Variações de iluminação (cenários diurnos e noturnos).

  • Condições climáticas adversas (chuva e ruído visual).

  • Heterogeneidade de captura (diferentes dispositivos e ângulos).

  • Desbalanceamento severo entre as classes.


🚀 Metodologia e Solução

A solução utiliza Transfer Learning com arquiteturas consagradas pré-treinadas no ImageNet, permitindo extrair características complexas mesmo com um volume limitado de dados.

1. Estratégia de Treino

  • Pré-processamento: Redimensionamento para 256px seguido de um CenterCrop de 224px para focar na textura central da via.
  • Data Augmentation: Uso de ColorJitter, RandomHorizontalFlip e rotações para aumentar a capacidade de generalização.
  • Tratamento de Desbalanceamento: Implementação de Weighted Random Sampler e pesos na função de perda (CrossEntropyLoss).

2. Experimentos Realizados

Experimento Arquitetura Foco Técnico
01 (Baseline) ResNet-18 Estabelecimento de métricas base sem pesos.
02 ResNet-50 Introdução de Weighted Loss e rede mais profunda.
03 ResNet-50 Intensificação de Data Augmentation para cenários noturnos/chuva.
04 EfficientNet-B0 Otimização de parâmetros e eficiência computacional.


Estrutura do repositório

  📁 Road-Surface-Classification/               # Raiz do repositório
  ├── 📂 dataset/                   # Diretório de dados
  │   ├── 📂 test/                        # Conjunto de teste
  │   │   ├── 📂 asphalt                  # Amostras de asfalto
  │   │   ├── 📂 belgian_blocks           # Amostras de paralelepípedos
  │   │   └── 📂 offroad                  # Amostras off-road
  │   └── 📂 train/                       # Conjunto de treinamento
  │       ├── 📂 asphalt                  # Amostras de asfalto
  │       ├── 📂 belgian_blocks           # Amostras de paralelepípedos
  │       └── 📂 offroad                  # Amostras off-road
  ├── ⚙️ venv/                            # Ambiente virtual (ignorado pelo Git)
  ├── 📄 .gitignore                       # Filtro de arquivos do Git
  ├── 📓 codigo_full.ipynb # Notebook principal
  ├── 📖 README.md                        # Documentação do projeto
  └── 📋 requirements.txt                 # Dependências do Python

Reprodutibilidade(Não será disponibilizado o dataset, mas o código está presente abaixo):

Entre no google colab e execute o notebook: 🔗 Colab


💻Programador:

Arthur Luz
Arthur Luz

🖥️ Tecnologias Utilizadas:

About

Artefato construído para classificação de superfície de vias utilizando visão computacional

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors