Ao clicar em “Aceitar todos os cookies”, concorda com o armazenamento de cookies no seu dispositivo para melhorar a navegação no site, analisar a utilização do site e ajudar nos nossos esforços de marketing. Mais informações
Definições de cookies
Ao clicar em “Aceitar todos os cookies”, concorda com o armazenamento de cookies no seu dispositivo para melhorar a navegação no site, analisar a utilização do site e ajudar nos nossos esforços de marketing. Mais informações
Aprenda como treinar modelos YOLO para detectar animais selvagens usando o African Wildlife Dataset e usar o modelo para executar inferências em imagens não vistas.
A vida selvagem do nosso planeta é incrivelmente diversa, desde abelhas zumbindo até elefantes imponentes, e preservar essa biodiversidade é fundamental para manter um ecossistema equilibrado. No entanto, os esforços de conservação estão se tornando mais desafiadores devido à perda de habitat, à caça furtiva e às mudanças climáticas. Todos esses fatores afetam negativamente as populações de vida selvagem.
Os métodos tradicionais de monitoramento animal, como a análise manual de imagens de armadilhas fotográficas e a realização de levantamentos de campo, podem ser lentos e exigir muitos recursos. Esses esforços geralmente não conseguem cobrir grandes áreas e grandes populações de forma eficaz.
Para superar essas limitações, a inteligência artificial (IA) pode ser usada como uma ferramenta impactante na conservação da vida selvagem. Especificamente, modelos de visão computacional como o Ultralytics YOLO11 podem analisar dados visuais, como imagens e vídeos, para automatizar a identificação e o rastreamento de animais em tempo real.
Tarefas de visão computacional como a deteção de objetos e a segmentação de instâncias, suportadas pelo YOLO11, são muito úteis aqui. Ao analisar dados visuais, estas tarefas ajudam-nos a recolher dados cruciais, a identificar padrões ecológicos e a responder de forma mais eficaz às ameaças ambientais.
Neste artigo, vamos percorrer o processo de treinamento do YOLO11 para detectar animais. Vamos começar!
Começando com o Ultralytics YOLO11
Antes de mergulhar no tutorial, vamos dar uma olhada nas diferentes opções de configuração e ferramentas que você precisará para treinar e usar o YOLO11.
A principal ferramenta que vai precisar é o pacote Ultralytics Python, que facilita o trabalho com modelos YOLO para tarefas como treino, deteção de objetos e execução de inferências. Para usar o pacote Ultralytics, vai precisar de configurar um ambiente para executar o seu código, e existem várias opções que pode escolher.
Aqui estão algumas das opções mais populares para configurar seu ambiente de desenvolvimento:
Interface de linha de comando (CLI): A CLI, também conhecida como terminal, é uma ferramenta baseada em texto que permite interagir com o seu computador digitando comandos. Ao contrário das interfaces gráficas (GUIs), onde você clica em botões e usa um rato, a CLI exige que você digite instruções de texto para executar programas ou executar tarefas.
Jupyter Notebooks: Estes notebooks permitem que você escreva e execute código em pequenos blocos chamados células. É interativo, o que significa que você pode ver o resultado do seu código imediatamente, tornando mais fácil testar e depurar.
Google Colab: O Google Colab é uma plataforma baseada na nuvem que funciona como os Jupyter Notebooks, mas oferece acesso gratuito a GPUs poderosas. É fácil de configurar e você não precisa instalar nada no seu computador.
Embora existam outras opções para configurar seu ambiente que você pode explorar na documentação oficial da Ultralytics, as três opções mencionadas acima exigem muito pouca configuração e são fáceis de usar, tornando-as ideais para começar rapidamente.
Neste tutorial, mostraremos como configurar e treinar o YOLO11 usando o Google Colab, Jupyter Notebooks ou um simples ficheiro Python, pois os passos são muito semelhantes em todos estes ambientes.
Entendendo o Conjunto de Dados da Vida Selvagem Africana
Após selecionar um ambiente de desenvolvimento, para treinar o YOLO11 para detectar animais selvagens especificamente, precisamos de um conjunto de dados de alta qualidade de imagens rotuladas. Cada imagem deve mostrar claramente onde os animais estão e que tipo eles são, para que o modelo possa aprender a reconhecê-los através do aprendizado supervisionado.
Neste tutorial, usaremos o Conjunto de Dados da Vida Selvagem Africana. Ele é suportado pelo pacote Python Ultralytics e foi projetado especificamente para detetar animais comumente encontrados em ecossistemas africanos. Contém imagens anotadas de quatro espécies principais: búfalos, elefantes, rinocerontes e zebras.
Fig. 1. Uma amostra do Dataset de Vida Selvagem Africana.
Aqui estão algumas características importantes do African Wildlife Dataset:
Escala: O conjunto de dados consiste em 1504 imagens divididas em três subconjuntos: 1052 para treinamento, 225 para validação e 227 para teste. Essa divisão garante que o modelo aprenda de forma eficaz e seja avaliado minuciosamente.
Integração perfeita: A Ultralytics fornece um arquivo de configuração YAML que define caminhos de conjuntos de dados, classes e outros detalhes, facilitando o uso ao treinar modelos YOLO.
Licença aberta: Este conjunto de dados é distribuído sob a licença AGPL-3.0, incentivando a transparência e a colaboração.
Treinando o Ultralytics YOLO11 para detecção de animais
Agora que exploramos o Conjunto de Dados da Vida Selvagem Africana, podemos começar a treinar um modelo YOLO11 para detectar animais em imagens. O processo envolve configurar o ambiente de desenvolvimento, treinar o modelo YOLO11 e avaliar o desempenho do modelo.
Passo 1: Configurando o ambiente
Para começar, prepararemos um ambiente para treinar e testar o modelo. O Google Colab, os Jupyter Notebooks ou um simples arquivo Python podem ser usados, dependendo da sua preferência. Crie um novo notebook do Google Colab, Jupyter Notebook ou arquivo Python, conforme necessário.
Se estiver a usar o Google Colab, o ambiente por padrão é executado numa CPU (Central Processing Unit), o que pode tornar o treino mais lento. Para acelerar o processo, especialmente para modelos maiores, pode mudar o runtime para usar uma GPU. No Google Colab, pode navegar até ao separador "Runtime" no menu, selecionar "Change runtime type" e definir o acelerador de hardware para uma GPU (de preferência uma GPU T4). Isto é importante para reduzir os tempos de treino.
Em seguida, independentemente do ambiente que você estiver usando, você precisa instalar o pacote Python Ultralytics. Se você estiver usando um ambiente baseado em notebook (Google Colab ou Jupyter), execute o seguinte comando com um ponto de exclamação (!) no início
pip install ultralytics
Passo 2: Carregando o YOLO11 e preparando o conjunto de dados
Uma vez que o pacote Ultralytics está instalado, o próximo passo é carregar o modelo YOLO11 e preparar o conjunto de dados para treinamento. Primeiro, carregamos o modelo YOLO11, que já está pré-treinado em tarefas gerais de detecção de objetos. Este modelo pré-treinado nos dá um bom ponto de partida, pois já aprendeu a detectar vários objetos.
Em seguida, especificamos o conjunto de dados usando um arquivo YAML, que contém informações sobre as imagens e rótulos. Este arquivo informa ao modelo onde encontrar o conjunto de dados e quais objetos ele deve aprender a reconhecer.
O conjunto de dados African Wildlife é suportado pelo pacote Ultralytics, portanto, ele será baixado automaticamente quando você iniciar o treinamento, economizando o trabalho de configurá-lo manualmente.
Uma vez que o conjunto de dados está pronto, o modelo começa a treinar. O modelo passará pelo conjunto de dados várias vezes, um processo chamado de treinamento em múltiplas épocas, para melhorar sua capacidade de reconhecer animais nas imagens. Durante este processo, as imagens serão redimensionadas para um tamanho consistente para processamento, e o modelo trabalhará com um número definido de imagens de cada vez, conhecido como um lote. Isso ajuda o modelo a aprender de forma mais eficiente.
Resumidamente, o modelo é carregado, o conjunto de dados é baixado automaticamente e o treinamento começa a ser executado para detectar animais com base no African Wildlife Dataset quando o trecho de código abaixo é executado.
from ultralytics import YOLO
model = YOLO("yolo11n.pt")
results = model.train(data="african-wildlife.yaml", epochs=30, batch=8)
Passo 3: Passo a passo do treinamento YOLO11
Uma vez que o trecho de código acima é executado, o modelo começa a treinar com base nas configurações que lhe demos. Dissemos ao modelo através do código para percorrer as imagens de treinamento 30 vezes. Então, significa que o modelo vai olhar para todas as imagens no conjunto de dados 30 vezes, cada vez aprendendo um pouco mais.
Imagine que você está tentando aprender a desenhar um animal. Na primeira vez que você desenha, pode não ficar bom, mas depois de praticar repetidamente, você começa a melhorar. Cada vez que você tenta novamente, você aprende com o que deu errado e corrige. É isso que cada época faz pelo modelo - ele olha para as imagens, comete erros, aprende com eles e fica melhor em reconhecer animais a cada vez.
Se o código de treinamento estiver sendo executado com sucesso, você verá a seguinte saída à medida que o treinamento avança:
Configuração do treinamento: A primeira parte mostra a versão do Ultralytics, PyTorch e hardware que está sendo usado (CPU neste caso), juntamente com a configuração do treinamento, incluindo o modelo (yolo11n.pt), tamanho do lote, épocas e tamanho da imagem.
Resumo do modelo: Ele fornece informações sobre a complexidade do modelo, como o número de camadas e parâmetros, mostrando o tamanho do modelo.
Otimizador e taxa de aprendizado: Menciona o otimizador (por exemplo, AdamW) e a taxa de aprendizado, que controlam como o modelo ajusta seus parâmetros durante o treinamento.
Verificação do conjunto de dados: O modelo verifica o conjunto de dados, mostrando quantas imagens são válidas e estão prontas para o treinamento. Ele confirma que não há problemas com o conjunto de dados.
Progresso do treinamento: A saída é atualizada após cada época (ciclo de treinamento), mostrando o progresso do treinamento juntamente com os principais valores de perda (box_loss, cls_loss, dfl_loss), que indicam o quão bem o modelo está aprendendo.
Métricas de desempenho: Após cada época, você verá métricas de desempenho como precisão, recall e mAP (precisão média). Esses valores mostram o quão preciso o modelo é na detecção e classificação de objetos.
Uso de memória da GPU: Se você estiver usando uma GPU, a saída mostra o uso de memória para rastrear a utilização do hardware.
Fig 2. A saída que você verá enquanto o treinamento do modelo está em execução.
Passo 4: Avaliando o desempenho do modelo treinado sob medida
Após a conclusão do processo de treinamento, você pode revisar e validar as métricas de desempenho do modelo. No Google Colab, você pode navegar até a pasta "runs", depois para a pasta "detect" e, finalmente, para a pasta "train", onde encontrará logs exibindo os principais indicadores de desempenho.
Para usuários em um ambiente Python, os resultados do treinamento são salvos por padrão no diretório “runs/train/” dentro de seu diretório de trabalho atual. Cada execução de treinamento cria um novo subdiretório (por exemplo, runs/train/exp, runs/train/exp2, etc.), onde você pode encontrar os logs e outras saídas relacionadas ao treinamento.
Se estiver a usar a CLI, pode aceder facilmente a estes resultados e configurações usando o comando “yolo settings”, que lhe permite visualizar ou modificar os caminhos e outras configurações relacionadas com os logs de treino e detalhes da experiência.
Entre os logs, você também encontrará alguns gráficos que pode analisar para ver o quão bem o processo de treinamento do modelo foi. Esses gráficos, criados após a conclusão do treinamento, mostram se o modelo melhorou ao longo do tempo, cometendo menos erros e se tornando mais preciso.
Eles rastreiam o progresso do modelo, mostrando como a perda (a diferença entre as previsões do modelo e os valores reais) diminuiu e como a precisão aumentou durante o treinamento. Isso ajuda você a entender o quão bem o modelo aprendeu a reconhecer animais e o quanto ele melhorou até o final do treinamento.
Fig 3. Um exemplo dos gráficos que você pode analisar para avaliar seu modelo.
Principais métricas de avaliação de desempenho
Além disso, aqui está uma análise mais detalhada de algumas das métricas que você pode usar para avaliar o desempenho do modelo:
Precisão média (mAP): Esta métrica mede a precisão geral do modelo na detecção de animais em todas as classes, calculando a média das pontuações de precisão em diferentes níveis de recall.
Precisão: Isso representa a porcentagem de detecções que estão corretas, calculada dividindo o número de detecções verdadeiras positivas pelo número total de detecções feitas.
Recall: Indica a porcentagem de animais reais nas imagens que foram corretamente identificados pelo modelo, refletindo sua capacidade de capturar todas as instâncias relevantes.
Essas métricas de avaliação podem ajudar a ajustar o modelo para melhorar a precisão antes de usá-lo em aplicações do mundo real.
Executando inferências usando seu modelo YOLO11 treinado sob medida
Agora que treinamos e avaliamos o YOLO11, é hora de usá-lo para analisar imagens e executar inferências. Você pode usar as imagens de teste do conjunto de dados ou novas imagens de diferentes fontes.
Usaremos o seguinte trecho de código para executar o modelo em uma imagem no conjunto de dados de teste. Ele importa os módulos necessários da biblioteca Ultralytics. Em seguida, define o caminho para o melhor arquivo de pesos do modelo ("best.pt") armazenado no diretório de resultados. O modelo YOLO11 treinado de forma personalizada é carregado usando esses pesos.
Depois disso, o caminho para uma imagem do conjunto de dados de teste da Vida Selvagem Africana é definido. O modelo é aplicado a esta imagem para detecção de objetos, os resultados são gerados e a saída (como objetos detectados ou anotações) é salva.
from ultralytics import settings
best_model_path = results.save_dir / "weights/best.pt"
model = YOLO(best_path)
image_path = f"{settings['datasets_dir']}/african-wildlife/test/images/1 (168).jpg"img_results = model(image_path, save=True)
A imagem de saída mostrada abaixo será salva na pasta "predict" localizada dentro do diretório runs/detect. Para testes subsequentes, novas pastas como "predict2", "predict3" e assim por diante serão criadas para armazenar as imagens.
Fig 4. Executando uma inferência usando o modelo YOLO11 ajustado em uma imagem de teste.
Para testar imagens de diferentes fontes, você pode usar o código abaixo. Usamos uma imagem do Pexels. Você pode usar a mesma imagem ou qualquer outra imagem relevante.
A imagem de saída mostrada abaixo será salva na pasta apropriada.
Fig 5. Detectando vida selvagem usando o modelo YOLO11 ajustado em uma imagem não vista.
IA para a conservação da vida selvagem: Aplicações no mundo real
Modelos como o YOLO11 podem detectar e rastrear automaticamente animais, o que possibilita uma variedade de aplicações práticas. Aqui está um vislumbre de algumas das principais áreas onde a Visão de IA pode ser usada para apoiar os esforços de conservação da vida selvagem:
Monitoramento de espécies: A IA de visão pode ser usada para processar dados visuais como imagens e vídeos para identificar com precisão as espécies, contar as populações e rastrear seus movimentos ao longo do tempo.
Alertas de câmeras inteligentes: Em áreas remotas, a visão computacional pode ser usada para classificar continuamente animais e enviar alertas em tempo real, permitindo que as autoridades de vida selvagem respondam rapidamente a ameaças, como comportamento anormal de animais ou conflitos entre humanos e animais selvagens.
Análise de comportamento: Ao monitorar a migração, os hábitos alimentares e as interações sociais, os sistemas de visão de IA podem fornecer insights abrangentes sobre a dinâmica entre espécies.
Prevenção à caça ilegal: A visão computacional pode ser utilizada para detectar a presença humana não autorizada e sinais de caça ilegal, aproveitando o aprendizado de máquina e dados históricos para identificar pontos críticos de risco.
Principais conclusões
Os modelos de visão computacional como o YOLO11 podem desempenhar um papel fundamental na conservação da vida selvagem, automatizando a deteção e o rastreamento de animais. Com a IA de visão, podemos processar grandes volumes de imagens e vídeos de várias fontes, tornando possível executar avaliações precisas da vida selvagem.
O Ultralytics YOLO11, em particular, é uma ótima opção para detecção de objetos em tempo real, tornando-o perfeito para tarefas como vigilância anti-caça, análise comportamental e monitoramento de ecossistemas. Ao incorporar modelos orientados por IA aos esforços de conservação, podemos proteger melhor as espécies, melhorar o rastreamento da biodiversidade e tomar decisões mais informadas para proteger a vida selvagem ameaçada de extinção.