Este documento fornece uma visão geral e uma documentação passo a passo para o projeto de Detecção de Placas, que utiliza várias bibliotecas populares, como OpenCV, YOLOv8, Python 3.10, MQTT Cliente e EasyOCR. O objetivo do projeto é detectar placas de veículos em imagens enviadas por um microcontrolador ESP32 Cam através do protocolo MQTT.
Certifique-se de ter os seguintes componentes e software instalados em seu sistema:
- Python 3.10
- OpenCV
- YOLOv8
- MQTT Cliente
- EasyOCR
- Bibliotecas nativas (se necessário para o seu ambiente)
- Docker
- Ubuntu
- build-essential
Siga os passos abaixo para renomear o arquivo .env.example
para .env
:
-
Navegue até o diretório raiz do seu projeto.
-
Localize o arquivo chamado
.env.example
. Esse arquivo geralmente está na raiz do projeto. -
Renomeie o arquivo
.env.example
para.env
. Você pode fazer isso usando o comandomv
no terminal ou por meio de um gerenciador de arquivos.mv .env.example .env
Antes de iniciar o projeto, verifique se você configurou corretamente o ambiente.
-
Certifique-se de que o Python 3.10 está instalado em seu sistema. Você pode verificar a versão do Python digitando o seguinte comando no terminal:
python --version
-
Instale as dependências necessárias executando o seguinte comando:
Make
-
Baixe e instale as bibliotecas nativas necessárias para o seu ambiente específico. Certifique-se de seguir as instruções fornecidas pela biblioteca, especialmente se você estiver usando um sistema operacional diferente do Ubuntu.
build-essential, python3 e pip3
O projeto está organizado da seguinte forma:
src/
training/
test/
./ (best.onnx, last.pt, best.pt)
src
: Aplicação cli que assitraning
: Script reponsável por organizar o dataset para fazer o treinamento.test
: Utilizado para fazer teste em imagem dectecção de placas e OCR.(best.onnx, last.pt, best.pt)
: Modelos YoloV8 treinandos para classe de Placas
Existem duas partes neste projeto: detecção de placa em uma imagem local e detecção de placa em uma imagem recebida via MQTT. Siga as instruções abaixo para executar cada uma das partes.
Para executar a detecção de placa em uma imagem local, siga os passos abaixo:
-
Navegue até a pasta raiz do projeto.
-
Execute o seguinte comando no terminal:
make client
Para executar a detecção de placa em uma imagem local, siga os passos abaixo:
-
Navegue até a pasta raiz do projeto.
-
Execute o seguinte comando no terminal:
make start
-
Agora o Micro Serviço irá aguardar uma imagem para processar
-
Execute um publish para testar
make publish
Para executar a detecção de placa em uma imagem local, siga os passos abaixo:
-
Navegue até a pasta raiz do projeto.
-
Execute o seguinte comando no terminal:
chmod +x setup.sh make train
-
Os resultados são salvos em
runs/detect/train#
Certifique-se de ter o Docker e Make instalado em seu sistema antes de prosseguir.
-
Navegue até o diretório que contém o Dockerfile.
-
Para instalar o servidor MQTT, execute o seguinte comando:
make mqtt-server-install
Isso instalará o servidor MQTT necessário para o projeto.
-
Para executar o contêiner MQTT, execute o seguinte comando:
make mqtt-start
make mqtt-stop
Isso iniciará o contêiner MQTT com base nas configurações fornecidas.
Certifique-se de ler a documentação completa para obter informações detalhadas sobre as opções disponíveis e as configurações necessárias para o projeto.
Altere o datasets_dir contido em .config/ultralytics/settings.yaml
para /home/{$user_project_path}/AutoPark/PlateDetection/training/datasets