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 a treinar modelos YOLO para detetar animais na natureza utilizando o African Wildlife Dataset e utilize o modelo para efetuar inferências em imagens não vistas.
A vida selvagem do nosso planeta é incrivelmente diversificada, desde o zumbido das abelhas aos elefantes imponentes, e a preservação desta biodiversidade é fundamental para manter um ecossistema equilibrado. No entanto, os esforços de conservação estão a tornar-se mais difíceis devido à perda de habitat, à caça furtiva e às alterações climáticas. Todos estes factores afectam negativamente as populações de animais selvagens.
Os métodos tradicionais de monitorização de animais, como a análise manual de imagens de armadilhas fotográficas e a realização de inquéritos no terreno, podem ser lentos e exigir muitos recursos. Muitas vezes, estes esforços não conseguem cobrir eficazmente grandes áreas e grandes populações.
Para ultrapassar estas limitações, a inteligência artificial (IA) pode ser utilizada como uma ferramenta com impacto na conservação da vida selvagem. Especificamente, os modelos de visão por computador, como o Ultralytics YOLO11, podem analisar dados visuais, como imagens e vídeos, para automatizar a identificação e o seguimento de animais em tempo real.
As tarefas de visão por computador, como a deteção de objectos e a segmentação de instâncias, apoiadas pelo YOLO11, são muito úteis neste contexto. Ao analisar dados visuais, estas tarefas ajudam-nos a recolher dados cruciais, a identificar padrões ecológicos e a responder mais eficazmente às ameaças ambientais.
Neste artigo, vamos percorrer o processo de treino do YOLO11 para detetar animais. Vamos começar!
Introdução ao Ultralytics YOLO11
Antes de nos debruçarmos sobre o tutorial, vejamos as diferentes opções de configuração e ferramentas necessárias para treinar e utilizar o YOLO11.
A principal ferramenta de que vai precisar é o pacote Ultralytics Python, que facilita o trabalho com modelos YOLO para tarefas como treino, deteção de objectos e execução de inferências. Para utilizar o pacote Ultralytics, terá de configurar um ambiente para executar o seu código, e existem várias opções à sua escolha.
Aqui estão algumas das opções mais populares para configurar o seu ambiente de desenvolvimento:
Interface de linha de comandos (CLI): A CLI, também conhecida como terminal, é uma ferramenta baseada em texto que permite interagir com o computador através da introdução de comandos. Ao contrário das interfaces gráficas (GUIs), em que o utilizador clica em botões e utiliza um rato, a CLI requer que o utilizador escreva instruções de texto para executar programas ou tarefas.
Notebooks Jupyter: Esses notebooks permitem que você escreva e execute código em pequenos pedaços chamados células. É interativo, o que significa que pode ver o resultado do seu código imediatamente, facilitando o teste e a depuração.
Google Colab: O Google Colab é uma plataforma baseada na nuvem que funciona como o Jupyter Notebooks, mas oferece acesso gratuito a poderosas GPUs. É fácil de configurar e não precisa de instalar nada no seu computador.
Embora existam outras opções para configurar o seu ambiente que pode explorar na documentação oficial do Ultralytics, as três opções mencionadas acima requerem muito pouca configuração e são fáceis de utilizar, o que as torna ideais para começar rapidamente.
Neste tutorial, vamos mostrar como configurar e treinar o YOLO11 usando o Google Colab, Jupyter Notebooks ou um simples ficheiro Python, uma vez que os passos são muito semelhantes em todos estes ambientes.
Compreender o conjunto de dados sobre a fauna selvagem africana
Depois de selecionar um ambiente de desenvolvimento, para treinar o YOLO11 para detetar especificamente animais selvagens, precisamos de um conjunto de dados de alta qualidade de imagens rotuladas. Cada imagem deve mostrar claramente onde estão os animais e de que tipo são, para que o modelo possa aprender a reconhecê-los através da aprendizagem supervisionada.
Neste tutorial, vamos utilizar o African Wildlife Dataset. É suportado pelo pacote Ultralytics Python e foi especificamente concebido para detetar animais normalmente encontrados nos ecossistemas africanos. Contém imagens anotadas de quatro espécies principais: búfalos, elefantes, rinocerontes e zebras.
Figura 1. Um vislumbre do Conjunto de Dados sobre a Vida Selvagem em África.
Eis algumas das principais caraterísticas do Conjunto de Dados sobre a Vida Selvagem em África:
Escala: O conjunto de dados é composto por 1504 imagens divididas em três subconjuntos: 1052 para treino, 225 para validação e 227 para teste. Esta divisão garante que o modelo aprende efetivamente e é avaliado exaustivamente.
Integração perfeita: O Ultralytics fornece um ficheiro de configuração YAML que define os caminhos do conjunto de dados, as classes e outros detalhes, facilitando a sua utilização no treino de modelos YOLO.
Licença aberta: Este conjunto de dados é distribuído ao abrigo da licença AGPL-3.0, incentivando a transparência e a colaboração.
Treino do Ultralytics YOLO11 para deteção de animais
Agora que explorámos o African Wildlife Dataset, podemos começar a treinar um modelo YOLO11 para detetar animais em imagens. O processo envolve a configuração do ambiente de desenvolvimento, o treino do modelo YOLO11 e a avaliação do desempenho do modelo.
Passo 1: Configurar o ambiente
Para começar, vamos preparar um ambiente para treinar e testar o modelo. Podem ser utilizados o Google Colab, os Jupyter Notebooks ou um simples ficheiro Python, dependendo da sua preferência. Crie um novo bloco de notas do Google Colab, Jupyter Notebook ou ficheiro Python em conformidade.
Se estiver a utilizar o Google Colab, o ambiente é executado por predefinição numa CPU (Unidade Central de Processamento), o que pode tornar o treino mais lento. Para acelerar o processo, especialmente para modelos maiores, pode mudar o tempo de execução para utilizar uma GPU. No Google Colab, pode navegar para o separador "Tempo de execução" no menu, selecionar "Alterar tipo de tempo de execução" e definir o acelerador de hardware para uma GPU (de preferência uma GPU T4). Isto é importante para reduzir os tempos de formação.
Em seguida, independentemente do ambiente que estiver a utilizar, é necessário instalar o pacote Python do Ultralytics. Se estiver a utilizar um ambiente baseado num notebook (Google Colab ou Jupyter), execute o seguinte comando com um ponto de exclamação (!) no início
pip install ultralytics
Passo 2: Carregar o YOLO11 e preparar o conjunto de dados
Uma vez instalado o pacote Ultralytics, o passo seguinte é carregar o modelo YOLO11 e preparar o conjunto de dados para treino. Primeiro, carregamos o modelo YOLO11, que já está pré-treinado em tarefas gerais de deteção de objectos. Este modelo pré-treinado dá-nos um bom ponto de partida, uma vez que já aprendeu a detetar vários objectos.
Em seguida, especificamos o conjunto de dados utilizando um ficheiro YAML, que contém informações sobre as imagens e as etiquetas. Este ficheiro indica ao modelo onde encontrar o conjunto de dados e quais os objectos que deve aprender a reconhecer.
O conjunto de dados da fauna selvagem africana é suportado pelo pacote Ultralytics, pelo que será descarregado automaticamente quando iniciar a formação, poupando-lhe o trabalho de o configurar manualmente.
Quando o conjunto de dados estiver pronto, o modelo começa a treinar. O modelo irá analisar o conjunto de dados várias vezes, um processo designado por treino em várias épocas, para melhorar a 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 lote. Isto ajuda o modelo a aprender de forma mais eficiente.
Resumindo, o modelo é carregado, o conjunto de dados é descarregado automaticamente e o treino começa a ser executado para detetar animais com base no Conjunto de Dados da Vida Selvagem Africana quando o excerto 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 da formação YOLO11
Quando o trecho de código acima é executado, o modelo começa a treinar com base nas definições que lhe demos. Dissemos ao modelo, através do código, para percorrer as imagens de treino 30 vezes. Portanto, isso significa que o modelo examinará todas as imagens do conjunto de dados 30 vezes, aprendendo um pouco mais a cada vez.
Imagine que está a tentar aprender a desenhar um animal. A primeira vez que desenha, pode não ficar bem, mas depois de praticar vezes sem conta, começa a melhorar. De cada vez que tenta novamente, aprende com o que correu mal e corrige-o. É isso que cada época faz pelo modelo - olha para as imagens, comete erros, aprende com eles e melhora o reconhecimento dos animais de cada vez.
Se o código de treino estiver a ser executado com êxito, verá o seguinte resultado à medida que o treino progride:
Configuração do treino: A primeira parte mostra a versão do Ultralytics, PyTorch, e o hardware que está a ser utilizado (CPU neste caso), juntamente com a configuração de treino, incluindo o modelo (yolo11n.pt), tamanho do lote, épocas e tamanho da imagem.
Resumo do modelo: Fornece informações sobre a complexidade do modelo, tais como o número de camadas e parâmetros, mostrando a dimensão do modelo.
Optimizador e taxa de aprendizagem: Menciona o optimizador (por exemplo, AdamW) e a taxa de aprendizagem, que controlam a forma como o modelo ajusta os seus parâmetros durante o treino.
Verificação do conjunto de dados: O modelo analisa o conjunto de dados, mostrando quantas imagens são válidas e estão prontas para treino. Confirma que não existem problemas com o conjunto de dados.
Progresso do treino: A saída é actualizada após cada época (ciclo de treino), mostrando o progresso do treino juntamente com os principais valores de perda (box_loss, cls_loss, dfl_loss), que indicam o grau de aprendizagem do modelo.
Métricas de desempenho: Após cada época, você verá métricas de desempenho como precisão, recuperação e mAP (precisão média média). Esses valores mostram a precisão do modelo na deteção e classificação de objetos.
Uso de memória da GPU: Se estiver a utilizar uma GPU, a saída mostra a utilização da memória para controlar a utilização do hardware.
Figura 2. O resultado que verá quando o modelo de treino estiver a ser executado.
Passo 4: Avaliar o desempenho do modelo treinado à medida
Após a conclusão do processo de formação, pode rever e validar as métricas de desempenho do modelo. No Google Colab, pode navegar para a pasta "runs" (execuções), depois para a pasta "detect" (detetar) e, finalmente, para a pasta "train" (treinar), onde encontrará registos que apresentam os principais indicadores de desempenho.
Para os utilizadores num ambiente Python, os resultados do treino são guardados por defeito no diretório "runs/train/" no diretório de trabalho atual. Cada execução de treino cria um novo subdiretório (por exemplo, runs/train/exp, runs/train/exp2, etc.), onde pode encontrar os registos e outros resultados relacionados com o treino.
Se estiver a utilizar o CLI, pode aceder facilmente a estes resultados e definições utilizando o comando "yolo settings", que lhe permite ver ou modificar os caminhos e outras configurações relacionadas com os registos de formação e os detalhes da experiência.
Entre os registos, encontrará também alguns gráficos que pode consultar para ver se o processo de formação do modelo correu bem. Estes gráficos, criados após a conclusão do treino, mostram se o modelo melhorou ao longo do tempo, cometendo menos erros e tornando-se mais preciso.
Acompanham 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 treino. Isto ajuda-o a compreender até que ponto o modelo aprendeu a reconhecer animais e até que ponto melhorou no final do treino.
Figura 3. Um exemplo dos gráficos que pode analisar para avaliar o seu modelo.
Principais métricas de avaliação do desempenho
Além disso, eis um olhar mais atento a algumas das métricas que pode utilizar para avaliar o desempenho do modelo:
Precisão média média (mAP): Esta métrica mede a exatidão global do modelo na deteção de animais em todas as classes, calculando a média das pontuações de precisão em diferentes níveis de recolha.
Precisão: Representa a percentagem de detecções que estão corretas, calculada dividindo o número de detecções positivas verdadeiras pelo número total de detecções efectuadas.
Recuperação: Indica a percentagem de animais reais nas imagens que foram corretamente identificados pelo modelo, reflectindo a sua capacidade de captar todas as instâncias relevantes.
Estas métricas de avaliação podem ajudar a afinar o modelo para melhorar a precisão antes de o utilizar em aplicações do mundo real.
Executar inferências utilizando o seu modelo YOLO11 treinado à medida
Agora que treinámos e avaliámos o YOLO11, está na altura de o utilizar para analisar imagens e fazer inferências. Pode utilizar as imagens de teste do conjunto de dados ou novas imagens de diferentes fontes.
Utilizaremos o seguinte trecho de código para executar o modelo numa imagem do conjunto de dados de teste. Importa os módulos necessários da biblioteca Ultralytics. Em seguida, define o caminho para o ficheiro de pesos do melhor modelo ("best.pt") armazenado no diretório de resultados. O modelo YOLO11 treinado à medida é carregado utilizando estes pesos.
Depois disso, é definido o caminho para uma imagem do conjunto de dados de teste da Vida Selvagem Africana. O modelo é aplicado a esta imagem para deteção de objectos, os resultados são gerados e o resultado (como objectos detectados ou anotações) é guardado.
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á guardada na pasta "predict" localizada no diretório runs/detect. Para testes subsequentes, serão criadas novas pastas, como "predict2", "predict3", etc., para armazenar as imagens.
Fig. 4. Execução de uma inferência utilizando o modelo YOLO11 ajustado numa imagem de teste.
Para testar imagens de diferentes fontes, pode utilizar o código abaixo. Utilizámos uma imagem do Pexels. Pode utilizar a mesma imagem ou qualquer outra imagem relevante.
A imagem de saída mostrada abaixo será guardada na pasta adequada.
Fig. 5. Deteção de vida selvagem utilizando o modelo YOLO11 ajustado numa imagem não vista.
IA para a conservação da vida selvagem: Aplicações no mundo real
Modelos como o YOLO11 podem detetar e seguir automaticamente os animais, o que permite uma variedade de aplicações práticas. Eis um vislumbre de algumas das principais áreas em que a IA de visão pode ser utilizada para apoiar os esforços de conservação da vida selvagem:
Monitorização de espécies: A IA de visão pode ser utilizada para processar dados visuais, como imagens e vídeos, para identificar com precisão espécies, contar populações e acompanhar os seus movimentos ao longo do tempo.
Alertas de câmaras inteligentes: Em áreas remotas, a visão por computador pode ser utilizada para classificar continuamente os animais e enviar alertas em tempo real, permitindo que as autoridades responsáveis pela vida selvagem respondam rapidamente a ameaças como comportamentos anormais dos animais ou conflitos entre humanos e animais selvagens.
Análise do comportamento: Ao monitorizar a migração, os hábitos de alimentação e as interações sociais, os sistemas de IA de visão podem fornecer informações abrangentes sobre a dinâmica interespécies.
Prevenção da caça furtiva: A IA de visão pode ser utilizada para detetar a presença humana não autorizada e sinais de caça furtiva, ao mesmo tempo que utiliza a aprendizagem automática e os dados históricos para identificar os pontos de risco.
Principais conclusões
Os modelos de visão por computador, como o YOLO11, podem desempenhar um papel fundamental na conservação da vida selvagem, automatizando a deteção e o seguimento de animais. Com a IA de visão, podemos processar grandes volumes de imagens e vídeos de várias fontes, tornando possível efetuar avaliações precisas da vida selvagem.
O Ultralytics YOLO11, em particular, é uma excelente escolha para a deteção de objectos em tempo real, o que o torna perfeito para tarefas como a vigilância anti-caça furtiva, a análise comportamental e a monitorização de ecossistemas. Ao incorporar modelos orientados por IA nos esforços de conservação, podemos proteger melhor as espécies, melhorar o rastreio da biodiversidade e tomar decisões mais informadas para salvaguardar a vida selvagem ameaçada.