Este projeto propõe uma solução para o controle de velocidade de um veículo autônomo utilizando computação visual para detecção e classificação de imagens de sinalização de trânsito. A solução foi desenvolvida no simulador CARLA, uma plataforma de simulação para testes de veículos autônomos, e utiliza redes neurais treinadas com o modelo YOLO para detectar e classificar placas de trânsito.
O principal objetivo deste projeto é implementar um sistema de controle de velocidade que responda de forma rápida e assertiva às sinalizações de trânsito, garantindo uma direção mais segura. A solução foi integrada ao algoritmo de piloto automático do CARLA e validada em um mapa da cidade 01 do simulador, com diferentes rotas e placas de sinalização ao longo do trajeto.
- Detecção e Classificação de Placas de Trânsito: Utilização do modelo YOLO para identificar e classificar as placas de trânsito.
- Controle de Velocidade: O sistema ajusta a velocidade do veículo autônomo com base nas placas de trânsito detectadas durante o trajeto.
- Integração com o CARLA: A solução é integrada ao simulador CARLA, permitindo a execução de testes realistas em ambientes virtuais.
- Modo de Validação: Comparação do desempenho do sistema de controle de velocidade com o piloto automático do CARLA, com o módulo ativo e desativado.
- YOLO (You Only Look Once): Modelo de rede neural para detecção de objetos em tempo real, utilizado para detectar as placas de trânsito.
- CARLA: Simulador de código aberto para testes de veículos autônomos, utilizado como plataforma para a validação dos experimentos.
- Python: Linguagem de programação utilizada para desenvolvimento e treinamento dos modelos de redes neurais.
- OpenCV: Biblioteca para manipulação e processamento de imagens.
- CARLA Simulator: Você pode baixar o CARLA aqui. Siga as instruções de instalação para a plataforma de sua escolha.
- Dependências Python: As bibliotecas necessárias para o treinamento e execução do código são:
torch
(PyTorch)opencv-python
numpy
yolov5
(ou outro modelo YOLO para detecção de objetos)carla
(para interação com o simulador)
- Clone o repositório:
git clone https://github.com/seu-usuario/projeto-veiculo-autonomo.git
cd projeto-veiculo-autonomo
- Instale as dependências:
pip install -r requirements.txt
-
Treinamento do Modelo YOLO: Caso deseje treinar o modelo YOLO, siga os passos no arquivo
train_yolo.py
. Para detecção e classificação das placas de trânsito, será necessário usar um conjunto de dados de placas de trânsito (disponível em fontes públicas ou personalizado). -
Configuração do Simulador CARLA: Inicie o simulador CARLA em uma instância local ou em um servidor. Para rodar o simulador em um modo de teste, utilize os scripts fornecidos no repositório para interagir com o simulador.
-
Executando o Sistema de Controle de Velocidade: Após a configuração, execute o script de controle de velocidade, integrando a detecção de placas de trânsito com o módulo de piloto automático do CARLA:
python src/autopilot/main.py
- Validação dos Resultados: Durante a execução, o veículo autônomo ajustará sua velocidade conforme as placas de trânsito detectadas ao longo das rotas. A comparação entre o piloto automático com o módulo de controle ativo e inativo será exibida.
/src
│
├── /autopilot/
│
├── /Plate_Classification/
│
├── /Plate_Detector/
|
│
├── Makefile #
├── requirements.txt # Dependências Python
└── README.md # Este arquivo
Caso tenha dúvidas ou queira discutir melhorias, fique à vontade para abrir uma issue ou entrar em contato diretamente!
./download.sh
- Install Pyenv
curl https://pyenv.run | bash
- TBD
run the following command in the root directory of the project
./carla_env.sh
run the following command in the root directory of the project
./Simulator/CarlaUE4.sh -fps=10 -quality-level=Low -RenderOffScreen
or
./Simulator/CarlaUE4.sh -fps=10 -quality-level=Low
run the following command in the root directory of the project
pyenv activate carla-env
./Simulator/PythonAPI/examples/generate_traffic.py -n 80
./Simulator/PythonAPI/examples/dynamic_weather.py
./spawn_npc.py -n 80
./Simulator/PythonAPI/examples/manual_control.py
sudo apt install libomp5l libjpeg9 libtiff5-dev
cd /usr/lib/x86_64-linux-gnu/
sudo ln -s libtiff.so.6 libtiff.so.5