OpenMV
Escudos
Lente
Robótica
Livro
Vídeo
Download
Documentos
Fórum
OpenMV.io
GitHubExistem duas tarefas muito comuns de inteligência artificial na área da visão: classificação e detecção de objetos.
Categoria:Determinar a qual categoria a imagem pertence, por exemplo, se é gato ou cachorro.
Detecção de Objetos:Utilizado para identificar a posição, a quantidade e as dimensões de múltiplos objetos distintos em uma imagem.
Nos vídeos tutoriais anteriores, explicamos como treinar online uma rede neural utilizando o OpenMV4 Plus para classificar diferentes objetos; esse sistema pode determinar em tempo real se uma imagem capturada pelo campo de visão do OpenMV corresponde a um determinado objeto — por exemplo, se uma face está usando máscara —, mas não é capaz de fornecer as coordenadas de posição da face ou da máscara, nem o número total de faces detectadas.
Como a detecção de objetos é significativamente mais complexa e exigente em termos de poder computacional do que a classificação, ela é bastante rara no campo dos microcontroladores. A MCU principal da OpenMV é a STM32H7; atualmente, adicionamos uma nova funcionalidade à OpenMV que permite executar tarefas semelhantes à detecção de objetos diretamente em microcontroladores, com desempenho notavelmente impressionante.

Hoje explicaremosTreinamento para demonstrar a detecção de sinais de trânsito em ambientes reais de vias públicas, detectando os sinais de trânsito presentes em nossas vias reaispor exemplo, proibição de buzinar, proibição de estacionamento e limite de velocidade de 80 km/h, em vez de um ambiente de laboratório sem interferências.
Você pode visualizar todo o conteúdo do projeto no seguinte endereço, onde estão incluídos todos os códigos e modelos: https://book.openmv.cc/project/traffic-sign.html
É sabido que o ambiente real é extremamente complexo, especialmente o ambiente viário, com muitos fatores de interferência. Capturamos imagens de sinais de trânsito no ambiente real utilizando dispositivos como smartphones e treinamos o modelo no site online EdgeImpulse, parceiro da OpenMV, com cerca de 270 imagens rotuladas. O tempo de treinamento foi de apenas 10 minutos, e a precisão do modelo treinado, medida pela métrica F1 score, atingiu 92%. A taxa de quadros de execução do modelo na OpenMV alcançou 10 quadros por segundo, resultando em um desempenho muito fluido e uma alta precisão.
Todos podem treinar qualquer objeto que desejam detectar, conforme nossos tutoriais em vídeo — por exemplo, diferentes dígitos, frutas diversas, marcas distintas, peças variadas ou até mesmo quaisquer objetos irregulares específicos — obtendo, ao final do treinamento, a contagem, as coordenadas e os nomes das categorias dos objetos detectados.
Atenção:Este tutorial em vídeo aborda a funcionalidade de detecção de pontos-alvo por redes neurais, que não só é compatível com o OpenMV4 H7 Plus, mas também suporta o OpenMV4 H7, pois os modelos treinados de detecção de pontos-alvo FOMO são compactos, apresentam excelente desempenho e possuem apenas algumas dezenas de KB; mesmo com memória de execução menor no OpenMV4 H7 comparada à versão Plus, podemos treinar um modelo ligeiramente menor para operar no OpenMV4.
A seguir, apresentamos brevemente o princípio:
As principais decisões de projeto da detecção de pontos-alvo FOMO no OpenMV baseiam-se na ideia de que muitos problemas de detecção de objetos, na verdade, não exigem o tamanho dos objetos, mas apenas suas posições na imagem. Uma vez conhecida a posição do objeto, é possível realizar operações subsequentes, como o controle do OpenMV sobre um veículo para movê-lo em direção ao alvo detectado, o pouso preciso de um drone ou o controle de um braço robótico para capturar um objeto-alvo específico.
O modelo FOMO é um modelo especialmente projetado pela EdgeImpulse para ambientes de microcontroladores; diferentemente da detecção de objetos convencional, ele consegue identificar apenas a posição e a quantidade de múltiplos objetos, sem obter suas dimensões específicas.
O princípio fundamental do modelo FOMO é extremamente simples e flexível. Primeiramente, divide-se a imagem em blocos, cada um com 8×8 pixels. Para uma imagem de resolução 96×96, resultam 12×12 células; para uma imagem de 360×360, resultam 40×40 células. Em seguida, executa-se, de forma independente, a classificação de imagens em cada célula.
Em comparação com o YOLO V5 ou o MobileNet SSD, o FOMO apresenta desempenho significativamente superior na detecção de um grande número de pequenos objetos. A detecção de pontos-alvo do FOMO é 30 vezes mais rápida que a do MobileNet SSD.
Se os objetos a serem detectados tiverem tamanhos semelhantes — por exemplo, se as dimensões dos marcadores que você deseja identificar forem aproximadamente iguais, em vez de haver um objeto extremamente grande e outro extremamente pequeno — o desempenho do FOMO será superior.
O OpenMV utiliza o EdgeImpulse para treinar online uma rede neural de detecção de pontos-alvo, dividido principalmente nas seguintes etapas: coleta e envio do conjunto de dados de imagens, rotulagem dos alvos, treinamento, teste do modelo e implantação.
* Coleta de conjunto de dados de imagens: captura de imagens de objetos específicos no ambiente real em que os identificaremos. Realizamos a coleta de imagens reais no mesmo ambiente em que realizaremos a identificação; assim, o ambiente real de treinamento e o ambiente real de detecção são praticamente idênticos, o que proporciona melhores resultados.
*Objetivo da anotação: delimitar cada objeto a ser detectado em nosso conjunto de dados e associá-lo ao respectivo nome, a fim de facilitar o treinamento subsequente, bem como a detecção da posição e do nome dos objetos.
* Modelo de treinamento: Após a conclusão da anotação, o modelo é treinado com base nos parâmetros da rede neural convolucional projetados por nós.
* Modelo de teste: Realizamos testes com base no modelo treinado; caso os resultados não sejam satisfatórios, aumentamos adequadamente o conjunto de dados de treinamento ou ajustamos os parâmetros de treinamento e prosseguimos com o treinamento até obtermos um modelo satisfatório.
*Implantação: Basta copiar os arquivos do modelo treinado para a unidade USB integrada ao OpenMV e executá-los.
A seguir, demonstramos o processo específico:
01. Coletar e enviar o conjunto de dados de imagens
I. Primeiramente, acesse o site edgeimpulse.com, selecione “Entrar”, insira o nome do novo projeto e escolha “Imagens” — “Classificar múltiplos objetos”

Dois. Selecione a imagem para upload. Há várias maneiras de obter o conjunto de dados da imagem:
1. Capturar imagens em tempo real por meio do IDE OpenMV. Utilize a ferramenta “Editor de Conjunto de Dados” integrada ao IDE OpenMV para criar um novo conjunto de dados e capturar imagens em tempo real; para obter instruções detalhadas, consulte nosso tutorial em vídeo anterior sobre classificação de objetos e reconhecimento de máscaras.

2. Imagens baixadas da internet ou fotografias reais tiradas com celular. Preferencialmente, devem corresponder ao ambiente real em que você realiza a detecção. Preparamos quatrocentas a quinhentas imagens de sinais de trânsito, tais como “proibido estacionar”, “proibido buzinar” e “velocidade máxima 80 km/h”; cada imagem foi capturada diretamente em vias reais. Esse conjunto de dados pode ser baixado do nosso GitHub e do site de tutoriais.
02. Objetivo da Anotação
Para cada categoria, são enviadas aproximadamente 100 imagens; após o envio das imagens, é necessário realizar a anotação dessas imagens, indicando a posição e a categoria dos objetos que desejamos identificar.


03. Treinar o modelo
Defina os parâmetros do treinamento, altere a resolução para 128 × 128 e selecione todos os parâmetros com os valores padrão; em seguida, clique em Salvar.

Gerar funcionalidades, em que três cores representam três marcas distintas.

Defina os parâmetros de treinamento para detecção de objetos. O número padrão de épocas de treinamento é 60, a taxa de aprendizado é 0,001 e a proporção do conjunto de validação é 20%. Selecione a opção de aumento de dados. Para o modelo de aprendizado por transferência, podemos escolher o MobileNetV2 0,35 ou o MobileNetV2 0,1, ambos configurados como padrão. (Observação: não é possível utilizar SSD, pois este não é compatível com OpenMV.)
Selecione Iniciar Treinamento. Após a conclusão do treinamento, o modelo de rede neural obtido apresenta um F1 Score de 91,2%, podendo-se salvar a versão atual.

Selecione o armazenamento, preencha sua descrição e selecione Salvar.

04. Implantação do modelo
Exporte o arquivo do modelo treinado. Basta exportar a biblioteca; selecione OpenMV e clique em Build para iniciar a implantação e exportação do modelo.

Ele fará o download automático do modelo que exportamos; aqui está o modelo treinado com nossas 300 imagens, concluindo assim todo o processo de treinamento.

05. Executar o modelo
Executar o modelo no OpenMV:
Conecte o OpenMV Plus, transfira os três arquivos treinados para a unidade USB embutida do OpenMV e abra o arquivo ei_object_detection.py no IDE do OpenMV. Clique em Executar; os resultados da execução serão exibidos no terminal serial.


Essa funcionalidade também pode ser executada no OpenMV4. Como o OpenMV4 não possui SDRAM externa, sua memória é menor; portanto, podemos reduzir o tamanho do modelo para permitir sua execução no OpenMV4.
Há dois métodos para reduzir o tamanho do modelo:
I. Reduzir a resolução do treinamento, alterando-a de 128 × 128 para 96 × 96.
Dois. Modificar o modelo de aprendizado por transferência utilizado, substituindo o MobileNetV2 0,35 pelo MobileNetV2 0,1.
Por fim, basta colocar o novo arquivo treinado no OpenMV4 para executá-lo.
Acima está nosso tutorial sobre detecção de pontos-alvo. Aguardamos ansiosamente seus resultados!

Sentinela de IA baseada em OpenMV: lembrete automático para locais críticos não fechados
Detecta automaticamente se a porta de locais críticos permanece aberta por tempo prolongado e emite alertas imediatos.

Alerta imediato ao ultrapassar o limite de pessoal; a OpenMV interpreta a “sensação de segurança nos limites”
Identifica comportamentos de ultrapassagem de limites por pessoas ou equipamentos por meio de linhas virtuais de vigilância.

O “Guarda Municipal de IA” chegou: sistema automático de reconhecimento de ocupação ilegal de vias baseado no OpenMV
Identificação automática de atividades comerciais que ocupam ilegalmente vias públicas, auxiliando a gestão urbana diária.

O botijão de gás está mal posicionado? Utilize o OpenMV para acionar automaticamente um alerta de perigo
Identificação automática de posições inadequadas de botijões de gás, permitindo a detecção antecipada de riscos à segurança do gás.

Trabalho em equipamentos energizados sem luvas isolantes? O OpenMV emite um alerta imediatamente!
Identifica automaticamente se os trabalhadores estão utilizando luvas isolantes, auxiliando na execução segura das tarefas.

Utilizar a câmera inteligente OpenMV para identificar em tempo real defeitos na superfície de chapas de alumínio
Identificação online de defeitos na superfície de chapas de alumínio, como arranhões e rebaixamentos, auxiliando no controle de qualidade.