Este repositório é a biblioteca de backend do nosso aplicativo baseado em GUI - MOTHe-GUI
Mothe é uma biblioteca PYPI para detectar e rastrear vários animais em um ambiente heterogêneo. MOTHe é um repositório baseado em python e usa arquitetura de Rede Neural Convolucional (CNN) para a tarefa de detecção de objetos. Ele pega uma imagem digital como entrada e lê seus recursos para atribuir uma categoria. Esses algoritmos são algoritmos de aprendizagem, o que significa que extraem recursos das imagens usando grandes quantidades de dados de treinamento rotulados. Uma vez treinados os modelos CNN, esses modelos podem ser usados para classificar novos dados (imagens). O MOTHe foi projetado para ser genérico, o que permite ao usuário rastrear objetos de interesse mesmo em um ambiente natural.
O MOTHe pode automatizar todas as tarefas associadas à classificação de objetos e está dividido em 5 métodos dedicados às seguintes tarefas:
Configuração do sistema : A configuração do sistema é usada para configurar o MOTHe no sistema do usuário. Detalhes básicos, como o caminho para o repositório local, o caminho para o vídeo a ser processado, o tamanho do indivíduo a ser cortado, o número de quadros a serem ignorados durante a execução da detecção ou rastreamento (para reduzir o tempo de computação/para executar um caso de teste) e o tamanho da caixa delimitadora a ser desenhada durante a fase de detecção.
Geração de conjunto de dados : A geração de conjunto de dados é uma etapa crucial para a detecção e rastreamento de objetos. O esforço manual necessário para gerar a quantidade necessária de dados de treinamento é enorme. A classe de geração de dados e o executável automatizam altamente o processo, permitindo ao usuário cortar a região de interesse com simples cliques em uma GUI e salva automaticamente as imagens nas pastas apropriadas.
Treinando a rede neural convolucionaltrain_model : Depois de gerar um número suficiente de exemplos de treinamento, os dados são usados para treinar a rede neural. A rede neural produz um classificador como saída. A precisão do classificador depende de quão bem a rede é treinada, o que por sua vez depende da qualidade e quantidade dos dados de treinamento (consulte a seção Quantos dados de treinamento eu preciso? ). Os vários parâmetros de ajuste da rede são fixos para facilitar o processo para os usuários. Esta rede funciona bem para classificação binária – objeto de interesse (animais) e antecedentes. A classificação multiclasse não é suportada neste pipeline.
Detecção de objetos : Este método executa duas tarefas principais - primeiro identifica as regiões da imagem que podem potencialmente conter animais, isto é chamado de localização; em seguida realiza a classificação nas regiões cultivadas. Esta classificação é feita utilizando uma pequena CNN (6 camadas convolucionais). A saída está na forma de arquivos .csv que contém as localizações dos animais identificados em cada quadro.
Rastreamento de objetos : O rastreamento de objetos é o objetivo final do MOTHe. Este módulo atribui IDs exclusivos aos indivíduos detectados e gera suas trajetórias. Separamos módulos de detecção e rastreamento, para que também possa ser utilizado por alguém interessado apenas nos dados de contagem (ex. pesquisas). Essa modularização também oferece flexibilidade no uso de algoritmos de rastreamento mais sofisticados para programadores experientes. Usamos um código existente para a tarefa de rastreamento (da página ref do Github). Este algoritmo usa filtros de Kalman e algoritmo húngaro. Este script pode ser executado assim que as detecções forem geradas na etapa anterior. A saída é um arquivo text{.csv} que contém IDs e localizações individuais para cada quadro. Uma saída de vídeo com os IDs exclusivos de cada indivíduo também é gerada.
MOTHe é um pacote python que usa várias outras bibliotecas python que podem ter sido atualizadas. Portanto, é importante estar atento às versões que baixamos/instalamos. As versões python recomendadas são as versões estáveis de python3.6 a python3.7 (as versões LTS mais recentes do linux (ex: Ubuntu 20.04 Focal Fossa) são instaladas com um python3.8 padrão que não é compatível com MOTHe). Python3.8 não oferece suporte a versões do Tensorflow abaixo das versões 2.2 que são exigidas pelo MOTHe para funcionar. Observe as versões de algumas bibliotecas que são modificadas rapidamente e usadas para testar o MOTHe muito recentemente: