Já pensou em mostrar um objeto para a câmera e saber a cor que ele é? Esse projeto trabalha com essa ideia!
O código é escrito em Python3.8.5 e utiliza das bibliotecas scikit-learn e OpenCV para processar imagens, extrair características e treinar um modelo de classificação, utilizando o algoritmo K-Nearest Neighbors, que consegue identificar a cor em predominância na imagem.
De modo geral, as características das imagens são extraídas partindo do histograma de cada um dos canais de cor (R, ou vermelho, G, ou verde e B, ou azul). Com isso um array com todas as saídas de cada um dos histogramas é montado e utiliza-se da Análise de Componentes Principais (PCA) para a extração das características passadas para o treinamento do modelo e também na predição.
Com isso, o modelo consegue reconhecer os padrões dos canais das imagens para classificá-las em 5 diferentes cores:
- Vermelho
- Amarelo
- Verde
- Azul
- Laranja
Para rodar esse código na sua máquina é simples! Segue o tutorial:
- Clone esse repositório (ou dê fork e clone!)
git clone https://github.com/MariaEduardaDeAzevedo/classificador-de-cores.git
- Vá até o diretório clonado...
cd classificador-de-cores
- Crie um ambiente virtual!
python3 -m venv env
- Inicie o ambiente vitual...
source env/bin/activate
- Instale o requirements.txt...
ou
pip install -r requirements.txt
pip3 install -r requirements.txt
- Descompacte o arquivo imagens.zip
- Rode o script open_cam.py
python3 open_cam.py
- Se divirta!