Verificação verde
Link copiado para a área de transferência

Como treinar modelos Ultralytics YOLO para detetar animais na natureza

Aprende a treinar modelos YOLO para detetar animais na natureza utilizando o African Wildlife Dataset e a utilizar o modelo para fazer 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, 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 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, suportadas pelo YOLO11, são muito úteis neste caso. 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 YOLO11 para detetar animais. Começa a trabalhar!

Começar a utilizar o Ultralytics YOLO11

Antes de mergulhar no tutorial, vamos dar uma vista de olhos às diferentes opções de configuração e ferramentas de que vais precisar para treinar e utilizar YOLO11. 

A principal ferramenta de que vais precisar é o pacoteUltralytics 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ás de configurar um ambiente para executar o teu código, e existem várias opções que podes escolher.

Aqui estão algumas das opções mais populares para configurar o teu ambiente de desenvolvimento:

  • Interface de linha de comandos (CLI): A CLI, também conhecida como terminal, é uma ferramenta baseada em texto que te permite interagir com o computador escrevendo comandos. Ao contrário das interfaces gráficas (GUIs), em que clicas em botões e utilizas um rato, a CLI requer que escrevas instruções de texto para executar programas ou tarefas.
  • Cadernos de notas Jupyter: Estes blocos de notas permitem-te escrever e executar código em pequenos blocos chamados células. É interativo, o que significa que podes ver o resultado do teu código imediatamente, facilitando o teste e a depuração.
  • Google Colab: Google Colab é uma plataforma baseada na nuvem que funciona como os Jupyter Notebooks, mas oferece acesso gratuito a GPUs potentes. É fácil de configurar e não precisas de instalar nada no teu computador.

Embora existam outras opções para configurar o teu ambiente que podes explorar na documentação oficial 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-te como configurar e treinar YOLO11 utilizando Google Colab, os 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 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. Vê o conjunto de dados sobre a fauna selvagem africana.

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 eficazmente e é avaliado exaustivamente.

  • Integração perfeita: 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 a 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. Dependendo da tua preferência, podes utilizar Google Colab, os Jupyter Notebooks ou um simples ficheiro Python . Cria um novo bloco de notas Google Colab, um bloco de notas Jupyter ou um ficheiro Python em conformidade.

Se estiveres a utilizar 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, podes mudar o tempo de execução para utilizar uma GPU. No Google Colab, podes 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 estiveres a utilizar, tens de instalar o pacotePython Ultralytics . Se estiveres a utilizar um ambiente baseado num notebookGoogle Colab ou Jupyter), executa o seguinte comando com um ponto de exclamação (!) no início

pip install ultralytics

Passo 2: Carregamento do YOLO11 e preparação do 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 usando um arquivo YAML, que contém informações sobre as imagens e rótulos. Este ficheiro indica ao modelo onde encontrar o conjunto de dados e quais os objectos que deve aprender a reconhecer. 

O African Wildlife Dataset é suportado pelo pacote Ultralytics , pelo que será automaticamente descarregado 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 passa pelo conjunto de dados várias vezes, um processo chamado de treinamento em várias é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 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)

Etapa 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 configurações que lhe demos. Através do código, dissemos ao modelo para percorrer as imagens de treino 30 vezes. Significa, portanto, que o modelo vai olhar para todas as imagens do conjunto de dados 30 vezes, aprendendo um pouco mais de cada vez.

Imagina que estás a tentar aprender a desenhar um animal. A primeira vez que desenhas, pode não ficar bem, mas depois de praticares vezes sem conta, começas a melhorar. Cada vez que tentas de novo, aprendes com o que correu mal e corriges o erro. É 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 sucesso, verás 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 usadoCPU neste caso), juntamente com a configuração de treino, incluindo o modelo (yolo11n.pt), tamanho do lote, epochs, e tamanho da imagem.
  • Resumo do modelo: Fornece informações sobre a complexidade do modelo, 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, verás 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óriaGPU : Se estiveres 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ás 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, podes rever e validar as métricas de desempenho do modelo. No Google Colab, podes navegar para a pasta "runs" (execuções), depois para a pasta "detect" (detetar) e, por fim, para a pasta "train" (treinar), onde encontrarás 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/" dentro do seu diretório de trabalho atual. Cada execução de treino cria uma nova subdiretoria (por exemplo, runs/train/exp, runs/train/exp2, etc.), onde pode encontrar os registos e outros resultados relacionados com o treino.

Se estiveres a utilizar o CLI, podes aceder facilmente a estes resultados e definições utilizando o comando "yolo settings", que te permite ver ou modificar os caminhos e outras configurações relacionadas com os registos de treino e os detalhes da experiência.

Entre os registos, também encontrarás alguns gráficos que podes consultar para veres 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-te 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 podes analisar para avaliar o teu modelo.

Principais métricas de avaliação do desempenho

Além disso, vê mais de perto algumas das métricas que podes utilizar para avaliar o desempenho do modelo:

  • Precisão média média (mAP): Esta métrica mede a precisão geral 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 recuperação.
  • 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.
  • Recorda: 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 teu modelo YOLO11 treinado à medida

Agora que treinámos e avaliámos YOLO11, está na altura de o utilizar para analisar imagens e fazer inferências. Podes utilizar 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. 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, define o caminho para uma imagem do conjunto de dados de teste African Wildlife. 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.

Figura 4. Executa uma inferência utilizando o modelo YOLO11 ajustado numa imagem de teste.

Para testar imagens de diferentes fontes, podes utilizar o código abaixo. Utilizámos uma imagem do Pexels. Podes utilizar a mesma imagem ou qualquer outra imagem relevante.

best_model_path = results.save_dir / "weights/best.pt"

model = YOLO(best_path)

img2_results = model("https://images.pexels.com/photos/18341011/pexels-photo-18341011/free-photo-of-elephant-and-zebras-in-savannah.png", save=True)

A imagem de saída mostrada abaixo será guardada na pasta apropriada.

Fig. 5. Detecta a 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 animais automaticamente, o que permite uma variedade de aplicações práticas. Aqui tens 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. 

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 em perigo.

Junta-te à nossa comunidade e explora o repositório GitHub para saberes mais sobre visão computacional. Descobre mais aplicações relacionadas com a IA nos cuidados de saúde e a visão computacional no fabrico nas nossas páginas de soluções. Consulta as opções de licenciamentoUltralytics para começares a utilizar a IA de visão.

Logótipo do LinkedInLogótipo do TwitterLogótipo do FacebookSímbolo de ligação de cópia

Ler mais nesta categoria

Vamos construir juntos o futuro
da IA!

Começa a tua viagem com o futuro da aprendizagem automática