image

Acesse bootcamps ilimitados e +650 cursos pra sempre

60
%OFF
Article image
Rafael Diniz
Rafael Diniz27/08/2025 14:08
Share

Do Zero ao Detector: Como Criei um Modelo YOLOv8 Personalizado com o Projeto "Olhar Seletivo"

    Olá, comunidade!

    No mundo da visão computacional, os modelos pré-treinados no dataset COCO são um ponto de partida fantástico. Com suas 80 classes de objetos, eles são incrivelmente poderosos. Mas, e quando seu projeto precisa de um detector leve, rápido e especializado em apenas duas ou três dessas classes? Foi exatamente esse o desafio que me propus a resolver com o projeto "Olhar Seletivo".

    Neste artigo, vou compartilhar o pipeline completo que construí para automatizar a criação de um modelo YOLOv8 treinado para detectar apenas pessoas e carros, transformando um processo complexo em uma série de scripts executáveis e organizados.

    O Desafio: Eficiência e Foco

    Usar um modelo YOLOv8 pré-treinado é ótimo, mas carregar uma rede que conhece 80 categorias de objetos para detectar apenas duas é um desperdício de recursos. Além disso, o processo de baixar o gigantesco dataset COCO, filtrar as anotações corretas e convertê-las para o formato YOLO (.txt) é um trabalho manual, demorado e propenso a erros.

    O objetivo era claro: criar um fluxo de trabalho automatizado, replicável e eficiente.

    A Solução: Um Pipeline Automatizado com "Olhar Seletivo"

    Para resolver esse problema, estruturei um projeto no GitHub com uma série de scripts que cuidam de todo o trabalho pesado. A escolha da tecnologia foi estratégica:

    YOLOv8: Pela sua arquitetura de ponta, velocidade e facilidade de uso fornecida pela Ultralytics.

    Python: Pela sua versatilidade e pelo ecossistema robusto de bibliotecas para ciência de dados.

    PyCOCOtools: Para manipular as anotações do dataset COCO de forma programática.

    O projeto foi organizado em um pipeline lógico de 4 etapas principais, mais as ferramentas de relatório.

    Passo 1: Preparação e Automação dos Dados

    O primeiro e mais crucial passo foi a criação do script 1_prepare_dataset.py. Ele é o coração da automação, responsável por:

    1. Baixar as imagens de validação do COCO 2017 e os arquivos de anotações.
    2. Filtrar o arquivo JSON gigante para encontrar apenas as imagens e anotações relacionadas às classes de interesse (person e car).
    3. Converter as anotações do formato COCO (bbox [x, y, largura, altura]) para o formato YOLO (normalizado [class_id, x_center, y_center, w, h]).
    4. Organizar tudo em uma estrutura de pastas limpa, pronta para o treinamento.

    Passo 2: Treinamento do Modelo YOLOv8

    Com os dados perfeitamente organizados, o script 2_train_model.py entra em ação. Utilizando a biblioteca ultralytics, ele carrega o modelo pré-treinado yolov8n.pt e inicia o fine-tuning (ajuste fino) sobre nosso dataset personalizado. A configuração do dataset é definida em um arquivo coco_custom.yaml, o que torna o processo modular e fácil de ajustar.

    YAML

    # config/coco_custom.yaml
    path: ../datasets/coco_custom
    train: images/val2017
    val: images/val2017
    
    names:
    0: person
    1: car
    

    Passo 3: Avaliação Formal do Modelo

    Um modelo não é nada sem métricas. O script 3_evaluate_model.py usa a função de validação do YOLO para calcular métricas de performance cruciais, como o mAP (Mean Average Precision). Isso nos permite avaliar objetivamente o quão bom o nosso detector se tornou após o treinamento.

    Passo 4: Inferência - O "Olhar Seletivo" em Ação

    Com um modelo treinado e validado, a parte mais divertida é vê-lo em ação! O script 4_run_inference.py carrega nosso melhor modelo (best.pt) e o aplica em um diretório de imagens novas, salvando os resultados com as caixas de detecção desenhadas.

    O resultado é um detector leve e preciso, com um "olhar" focado exatamente no que pedimos.

    imageimageimage

    Exemplo de uma detecção feita pelo modelo treinado. Observe como ele identifica múltiplas pessoas e o veículo com suas respectivas pontuações de confiança.

    Conclusão e Próximos Passos

    O projeto "Olhar Seletivo" prova que é possível criar detectores de objetos de alta performance e altamente especializados sem a necessidade de datasets completamente novos. Ao filtrar e refinar um recurso existente como o COCO, podemos construir soluções leves, rápidas e eficientes para problemas específicos.

    Este pipeline não se limita a carros e pessoas; ele pode ser facilmente adaptado para qualquer uma das 80 classes do COCO, abrindo portas para uma infinidade de aplicações, desde contagem de animais em imagens de drones até a detecção de equipamentos de segurança em canteiros de obras.

    Obrigado pela leitura! Espero que este projeto inspire outros a otimizar seus fluxos de trabalho em visão computacional.

    Gostou do projeto? Confira o código-fonte completo no meu GitHub!

    [https://github.com/RafaelAraujoDiniz-Dev/Olhar_Seletivo]

    #BairesDev #YOLOv8 #ComputerVision #MachineLearning #Python #AI #DeepLearning #ObjectDetection #DataScience #Portfolio

    Share
    Recommended for you
    Ri Happy - Front-end do Zero #2
    Avanade - Back-end com .NET e IA
    Akad - Fullstack Developer
    Comments (0)