Detecção e Rastreamento Robusto de UAVs via Visão Computacional Orientada por IA
Resumo
Com a inovação tecnológica, a segurança está se tornando a maior questão a ser tratada. A acessibilidade exponencialmente crescente de drones tem representado uma grande ameaça à segurança geral. O uso de VANTs aumentou nos últimos anos. Tendo em mente os problemas de segurança, uma solução é sugerida. Primeiro, detectar VANTs e depois rastrear seu caminho.
Para detecção de objetos, algoritmos de aprendizado profundo de visão computacional são muito eficazes. A entrada é processada pelo YOLO, que é uma rede neural usada para detecção e rastreamento de objetos em tempo real.
2.1 Entendendo o Conceito de VANT
Conforme o título "Detecção e rastreamento de VANT usando visão computacional", VANT (veículo aéreo não tripulado) é uma aeronave sem piloto, que pode ser controlada remotamente ou por computadores de bordo. 
VANTs podem ser usados para fins benéficos como agricultura, pesquisa científica, previsão do tempo, entrega e envio, operações de resgate e saúde. Podem ser usados para fins desastrosos como ataques, ataques com mísseis, assassinatos seletivos, etc.
2.2 O que é Visão Computacional?
Visão computacional é o campo da ciência que faz computadores verem, identificarem e processarem imagens da maneira que a visão do olho humano faz e fornecer saída adequada. A visão computacional é usada em quase todos os campos, por exemplo:
- Detecção de objetos, faces
- Cirurgia robótica e diagnóstico médico
- Processamento de imagens
- Agricultura
- Tecnologia espacial (o Rover de Marte da NASA inclui capacidades para modelar o terreno do planeta, detectar obstáculos em seu caminho e costurar imagens panorâmicas) Aplicações de visão computacional mostradas na figura 1.4
2.3 O que é a Técnica de Processamento de Imagens?
A técnica de Processamento de Imagens é usada pela visão computacional para realizar diferentes tarefas. A operação realizada e métodos aplicados para melhorar a qualidade de uma imagem ou obter um resultado específico após ser obtida como uma pilha de imagens é chamada de processamento de imagens.
O processamento de imagens é considerado uma das áreas de tecnologia da informação que evolui mais rapidamente hoje, com aplicações crescentes em todas as áreas de negócios. Aplicações de processamento de imagens são:
Casos de Uso do Processamento de Imagens
O processamento de imagens pode ser usado nestes campos:
- Robótica
- Médico
- Reconhecimento de padrões
- Processamento de vídeo
- Detecção facial
2.4 Requisitos de Software
- Anaconda
- Spyder
- Python
- Biblioteca Open-CV
3. Algoritmos para Detecção de Objetos
Muitos algoritmos estão presentes para detecção de objetos. Alguns deles são os seguintes:
- VIOLA E JONES
- Redes Neurais Convolucionais (CNN)
- You Only Look Once (YOLO)
- Single Shot Detector (SSD)
- Region Convolutional Neural Networks (R-CNN)
Tabela 3.1: Algoritmos para detecção
| Algoritmo | Descrição | Pontos Fortes | Pontos Fracos |
| VIOLA E JONES (O algoritmo Viola-Jones foi projetado por Paul Viola e Michael Jones em 2001) | O principal objetivo era detecção de rosto e objetos. Pode detectar objetos em tempo real. Quando damos imagem, o algoritmo olha para sub-regiões menores e tenta encontrar objetos olhando para características especiais em cada sub-região. O algoritmo Viola e Jones usa características semelhantes a Haar para detectar objetos |
|
|
| CNN (Redes Neurais Convolucionais) Introduzida por Kunihiko Fukushima em 1980 | Modelo hierárquico biologicamente inspirado que pode ser treinado para realizar variedade de detecção, reconhecimento e segmentação. É basicamente um algoritmo de aprendizado profundo, recebe imagens como entrada, atribui pesos e vieses aprendíveis aos objetos presentes na imagem e diferencia entre um e outro |
|
|
| YOLO (You Only Look Once) | É um algoritmo de detecção em tempo real. Aplica algoritmo de rede neural à imagem, e divide a imagem em grade S x S e faz limite ao redor das imagens e prevê possibilidades para cada um dos limites. Usa regressão. |
|
1. Detecta um objeto por célula da grade. 2. Favorece alto desempenho sobre precisão. |
| SSD (Single Shot Detector) | Este método só leva um tiro para detectar múltiplos objetos, este método é muito rápido. É projetado para implementação em tempo real. Contém dois componentes: backbone e SSD head. |
|
|
Aqui, o algoritmo de rede neural YOLO será usado. Este algoritmo é muito rápido para implementação em tempo real. Ele usa um algoritmo de rede neural e divide a imagem em grade S x S e faz um limite ao redor da imagem para prever possibilidades para cada limite. Algoritmos para detecção são mostrados na Tabela 4.4.
3.1 Algoritmo para Rastreamento
Após detectar um objeto, o próximo foco é no rastreamento. Se o objeto detectado for uma pipa ou pássaro, não há necessidade de rastreamento, mas se o objeto detectado for um drone, o alvo é rastreado.
Muitos algoritmos são usados para rastreamento de objetos. Mas novamente o YOLO é usado para rastreamento porque este algoritmo é rápido e preciso e pode detectar e rastrear até que o alvo saia do alcance da câmera.
4. Implementação do Design Proposto
Aqui está a implementação do design proposto. Em que todos os passos necessários para rodar o projeto no software são realizados.
4.1 Estágio Inicial
- Processamento de imagem precisa de uma boa CPU/GPU, escolha CPU. Instale o Anaconda do site. Instalação do Anaconda mostrada na figura 4.1

- Após a instalação do Anaconda Navigator, crie um ambiente com a ajuda da caixa de diálogo de ambiente e selecione a versão do python.
- Após criar o ambiente com sucesso, o próximo passo é instalar o Spyder, pois é fácil de usar. Então instale o open CV através do comando pip install cv2.

4.2 Preparando Conjunto de Dados
- Colete muitas imagens de diferentes objetos aéreos como drones, pássaros, aviões, helicópteros, pipas e balões.
Nota: Fazer um conjunto de dados é mais do que apenas coletar imagens. Dar nomes às imagens e também informar a posição desses objetos específicos em cada imagem. Para isso, um software chamado LabelImg é usado, que converte imagens em arquivos de texto. Como mostrado na figura 4.6
- Uma vez que arquivos Txt de todos os objetos são feitos. Coloque todas as imagens e arquivos de texto em um arquivo zip. Também, arquivo de nomes para as classes incluídas.

4.3 Configuração do YOLO
Para configuração, siga estes passos:
- Instale darknet com YOLO v3.
- Para configurar o YOLO, crie uma pasta em darknet/data incluindo todas as imagens e arquivos .txt do conjunto de dados feito anteriormente.
- Para fazer um arquivo de configuração personalizado, faça as modificações necessárias no YOLO v3 de cfg, ajustando batch, subdivisions e max batches com relação a classes e steps.
- Ao inserir o número de classes, altere a camada convolucional acima do YOLO. Também defina random como 1. Parâmetros cfg mostrados na Tabela 4.1
Tabela 4.1: Parâmetros CFG
| Nome | Descrição |
| Batch | Quantas imagens e rótulos são usados na passagem para frente para calcular um gradiente e atualizar os pesos via método de retropropagação. |
| Subdivisions | O batch é subdividido em muitos "blocos". As imagens de um bloco são executadas em paralelo. |
| Steps | 500,1000: Ajusta a taxa de aprendizado após 500 e 1000 batches. |
| Layers (Filters) | Quantos kernels convolucionais existem em uma camada. |
| Layers (Random) | Colocar nas camadas YOLO. Se definido como 1, faz aumento de dados redimensionando imagens para tamanhos diferentes a cada poucos batches, usado para generalizar sobre tamanhos de objetos. |
- Crie uma pasta de objeto personalizado através de data/obj.names no qual todos os nomes que queremos detectar como drones, VANTs, pássaros, pipas, etc são escritos.
- Em obj.data, número de classes, train.txt, valid, names e pasta de pesos são incluídos e salvos.

- Em train.txt, todos os dados e nomes das imagens são salvos.

4.4 Treinando YOLO no Seu Conjunto de Dados
Treinamento do YOLO para um conjunto de dados personalizado também é feito através do darknet. Clone e habilite darknet assim como habilite open CV. Pegando a pasta ZIP, arquivo .cfg, arquivo .names, arquivo obj.data e arquivo train.txt criados acima, então configure a rede darknet para o treinamento do YOLO v3, contando as execuções.
Após milhares de iterações, que podem levar cerca de 2 horas baseadas na potência da nossa CPU, um conjunto de dados treinado estará pronto para usar e integrar com nosso sistema, informando a perda média.
4.5 Testando Código em Entrada de Imagem e Vídeo
Após treinar o YOLO para o conjunto de dados personalizado, comece a testar o código no seu conjunto de dados treinado, que é chamado de pesos YOLO. Ele tem 4 classes neste caso.
Tente detecção YOLO em diferentes. Pesos grandes são bons em termos de precisão, mas o processamento é um pouco lento devido a baixos frames por segundo. Faça vídeo de VANT, pássaros e dê estes dados como entrada ao código. Todos os objetos serão detectados e rastreados com sucesso com os rótulos dados, fps e threshold.
Agora o código pode ser testado para cenários em tempo real através da entrada em tempo real de webcam, alterando o alcance da nossa câmera, voamos nosso VANT gravando o resultado, você verá a saída como requerida "Detecção e Rastreamento de VANT".

Tecnologia industrial
- Sensor de Movimento SmartThings com Visão Computacional no Raspberry Pi 3
- Integrando Microsoft Kinect com Raspberry Pi para Detecção Humana em Tempo Real no Robô Sonbi
- Como a Visão Robótica Aprimora a Automação: Principais Vantagens e Aplicações
- Top 4 Benefícios da Detecção Inteligente de Vazamentos para Segurança Predial e Economia de Custos
- Por que a Detecção de Vazamento de Água IoT da Biz4Intellia Impulsiona a Eficiência Industrial – 5 Vantagens Principais
- Sete Maneiras Comprovadas de a Visão Computacional Impulsionar Eficiência e Economizar Custos
- Revolucionando a Indústria 4.0: Como a Visão Computacional Impulsiona a Manufatura Inteligente
- UAV Avançado de Alta Altitude para Monitoramento Meteorológico Preciso
- Prevenção de Deformação de Imagem por Calor em Câmeras de Visão Artificial Line-Scan
- Mastercam Unidade 7: Gestão de Imagens e Criação de Trajetórias de Ferramenta