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!
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:
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.
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.
Eis algumas das principais caraterísticas do Conjunto de Dados sobre a Vida Selvagem em África:
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.
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
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)
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:
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.
Além disso, vê mais de perto algumas das métricas que podes utilizar para avaliar o desempenho do modelo:
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.
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.
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.
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:
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.
Começa a tua viagem com o futuro da aprendizagem automática