OpenMV
Escudos
Lente
Robótica
Livro
Vídeo
Download
Documentos
Fórum
OpenMV.io
GitHubExistem duas tarefas muito comuns na área da visão para a inteligência artificial: classificação e deteção de objetos.
Categoria:Determinar a que categoria a imagem pertence, por exemplo, se é um gato ou um cão.
Detecção de Objetos:Utilizado para determinar a localização, o número e as dimensões de múltiplos objetos distintos numa imagem.
No tutorial em vídeo anterior, explicámos como treinar uma rede neuronal online com a OpenMV4 Plus para classificar diferentes objetos. Esta pode determinar em tempo real se a imagem no campo de visão da OpenMV corresponde a um determinado objeto, por exemplo, se uma face está ou não a utilizar uma máscara, mas não é capaz de fornecer as coordenadas da posição da face ou da máscara, nem o número de faces.
Dado que a detecção de objetos é significativamente mais complexa e exigente em termos de poder computacional do que a classificação, é muito rara no domínio dos microcontroladores. A unidade de controlo principal da OpenMV é o MCU STM32H7; actualmente, adicionámos à OpenMV uma nova funcionalidade que permite executar tarefas semelhantes à detecção de objetos directamente num microcontrolador, com um desempenho notavelmente impressionante.

Hoje explicaremosTreinar a deteção de sinais de trânsito em ambientes reais de estrada, detetando os sinais de trânsito presentes nas 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 laboratorial sem interferências.
Pode consultar todo o conteúdo do projeto no seguinte endereço, incluindo todo o código e os modelos: https://book.openmv.cc/project/traffic-sign.html
É sabido que o ambiente real é extremamente complexo, especialmente o ambiente rodoviário, com muitos fatores de interferência. Capturámos imagens de sinais de trânsito no ambiente real utilizando dispositivos como telemóveis e treinámos o modelo no sítio web online EdgeImpulse, parceiro da OpenMV, tendo rotulado aproximadamente 270 imagens. O tempo de treino foi de apenas 10 minutos, obtendo-se um modelo com uma precisão F1 score de 92 % e uma taxa de quadros de 10 fps na OpenMV, resultando num desempenho muito fluído e com elevada precisão.
Todos podem treinar qualquer objeto que desejem detetar, com base nos nossos tutoriais em vídeo; por exemplo, diferentes dígitos, diferentes frutas, diferentes marcadores, diferentes peças ou até mesmo quaisquer objetos específicos irregulares. É possível treinar o sistema para identificar a quantidade, as coordenadas e o nome da categoria do objeto específico.
Atenção:Este tutorial em vídeo aborda a funcionalidade de deteção de pontos-alvo com redes neurais, que não só é compatível com o OpenMV4 H7 Plus, mas também com o OpenMV4 H7, uma vez que os modelos treinados de deteção de pontos-alvo FOMO são reduzidos em tamanho, apresentam um excelente desempenho e ocupam apenas algumas dezenas de KB; mesmo tendo menos memória RAM disponível do que o modelo Plus, o OpenMV4 H7 pode executar modelos ligeiramente menores treinados especificamente para este dispositivo.
Apresentamos, de seguida, uma breve introdução ao princípio:
As principais decisões de conceção da deteção de pontos-alvo FOMO no OpenMV baseiam-se na ideia de que muitos problemas de deteção de objetos, na realidade, não exigem o conhecimento do tamanho dos objetos, mas apenas das suas posições na imagem. Assim que conhecemos a posição dos objetos, podemos executar operações subsequentes, tais como o controlo de um veículo por parte do OpenMV para que este se desloque em direção ao alvo detetado, o aterragem precisa de um drone ou o controlo de um braço robótico para agarrar um objeto-alvo específico.
O modelo FOMO é um modelo especialmente concebido pela EdgeImpulse para ambientes de microcontroladores; ao contrário da deteção de objetos convencional, este modelo apenas consegue detetar a localização e o número de múltiplos objetos, sem obter as suas dimensões específicas.
O princípio subjacente do modelo FOMO é extremamente simples e flexível. Primeiro, divide-se a imagem em blocos, cada um com 8×8 píxeis. Assim, uma imagem com resolução de 96×96 resulta numa grelha de 12×12 células; uma imagem com resolução de 360×360 resulta numa grelha de 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 um desempenho significativamente superior na deteção de um grande número de pequenos objetos. A deteção de pontos-alvo do FOMO é 30 vezes mais rápida do que a do MobileNet SSD.
Se os objetos a detetar tiverem dimensões semelhantes — por exemplo, se as dimensões dos marcadores a identificar forem aproximadamente iguais, em vez de incluírem simultaneamente um objeto muito grande e outro muito pequeno — o desempenho do FOMO será superior.
A OpenMV utiliza o EdgeImpulse para treinar online uma rede neural de deteção de pontos-alvo, dividido principalmente nas seguintes etapas: aquisição e envio do conjunto de dados de imagens, etiquetagem dos alvos, treino, teste do modelo e implementação.
* Aquisição de um conjunto de dados de imagens: captura de imagens de objetos específicos no ambiente real em que pretendemos efetuar a identificação. Realizamos a aquisição de imagens reais no mesmo ambiente em que será feita a identificação; assim, o ambiente real de treino e o ambiente real de deteção são, essencialmente, idênticos, o que resulta num desempenho melhor.
*Objetivo da anotação: delimitar cada objeto a detetar no nosso conjunto de dados e associá-lo ao respetivo nome, de modo a facilitar o treino subsequente, bem como a deteção da localização e do nome dos objetos.
* Modelo de treino: Após a conclusão da anotação, procede-se ao treino do modelo com os parâmetros da rede neural convolucional por nós concebidos.
* Modelo de teste: Realizamos testes com base no modelo treinado; caso os resultados não sejam satisfatórios, aumentamos correspondentemente o conjunto de dados de treino ou ajustamos os parâmetros de treino e prosseguimos com o treino até obtermos um modelo satisfatório.
*Implementação: Basta colocar os ficheiros do modelo treinado na unidade USB integrada no OpenMV para executá-los.
A seguir, demonstra-se o processo específico:
01. Recolha e envio do conjunto de dados de imagens
I. Em primeiro lugar, aceda ao website edgeimpulse.com, selecione «Iniciar sessão», introduza o nome do novo projeto e selecione «Imagens» — «Classificar múltiplos objetos»

Dois: selecione a imagem para carregar. Existem várias formas de obter o conjunto de dados da imagem:
1. Capturar imagens em tempo real através do IDE OpenMV. Utilizar a ferramenta «Editor de Conjunto de Dados» integrada no IDE OpenMV para criar um novo conjunto de dados e capturar imagens em tempo real; para obter instruções detalhadas, consultar o nosso tutorial em vídeo anterior sobre classificação de objetos e deteção de máscaras.

2. Imagens descarregadas da Internet ou fotografias tiradas diretamente com um telemóvel. Preferencialmente, devem corresponder ao ambiente real em que efetua a deteção. Preparámos cerca de quatrocentas a quinhentas imagens de sinais de trânsito, tais como «Estacionamento Proibido», «Avisar com Sinal Sonoro Proibido» e «Velocidade Máxima 80 km/h», todas capturadas em estradas reais; este conjunto de dados pode ser descarregado a partir do nosso GitHub e do nosso site de tutoriais.
02. Objetivo da Anotação
Carregue aproximadamente 100 imagens por categoria; após o carregamento das imagens, proceda à anotação destas, indicando a localização e a categoria dos objetos que pretende identificar.


03. Treinar o modelo
Defina os parâmetros do treino, altere a resolução para 128 × 128 e selecione todos os parâmetros predefinidos; em seguida, clique em Guardar.

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

Definir os parâmetros de treino para deteção de objetos. O número predefinido de épocas de treino é 60, a taxa de aprendizagem é 0,001 e a proporção do conjunto de validação é 20 %. Selecione a opção «Ativar aumento de dados». Para o modelo de transferência de aprendizagem, podemos escolher o MobileNetV2 0,35 ou o MobileNetV2 0,1 predefinidos. (Nota: não é possível utilizar o SSD, pois este não é suportado pela OpenMV.)
Selecione Iniciar Treino. Após a conclusão do treino, o modelo de rede neuronal obtido apresenta uma pontuação F1 de 91,2 %, podendo guardar-se a versão atual.

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

04. Implementação do modelo
Exportar o ficheiro do modelo treinado. Basta exportar a biblioteca; selecione OpenMV e clique em Build para iniciar a implementação e exportação do modelo.

Ele descarrega automaticamente o modelo que exportámos; aqui está o modelo treinado com as 300 imagens, concluindo assim todo o processo de treino.

05. Executar o modelo
Executar o modelo no OpenMV:
Ligue a OpenMV Plus, guarde os três ficheiros treinados na unidade USB incorporada da OpenMV e abra o ficheiro ei_object_detection.py no IDE da OpenMV. Clique em Executar; os resultados da execução serão apresentados no terminal em série.


Esta funcionalidade também pode ser executada no OpenMV4. Uma vez que o OpenMV4 não possui SDRAM externa, a sua memória é ligeiramente menor; por conseguinte, podemos reduzir o tamanho do modelo para permitir a sua execução no OpenMV4.
Existem dois métodos para reduzir o tamanho do modelo:
I. Reduzir a resolução de treino, alterando-a de 128 × 128 para 96 × 96.
Dois. Modificar o modelo de transferência de aprendizagem utilizado, substituindo o MobileNetV2 0.35 pelo MobileNetV2 0.1.
Por fim, coloque o novo ficheiro treinado no OpenMV4 para executá-lo.
Acima apresentamos o nosso tutorial de deteção de pontos-alvo. Aguardamos com expectativa os seus resultados!

Sentinela de IA baseada em OpenMV: Alerta automático para locais críticos não fechados
Detecção automática de portas de locais críticos que permaneçam abertas durante um período prolongado, com alerta imediato.

Alerta de intrusão de pessoal; a OpenMV interpreta o «sentido de fronteira de segurança»
Detecção de comportamentos de intrusão de pessoas ou equipamentos através de linhas virtuais de vigilância.

O «AI Gestor Municipal» chegou: sistema automático de deteção de ocupação ilegal de vias públicas baseado em OpenMV
Identificação automática de atividades comerciais que ocupam indevidamente vias públicas, apoiando a gestão quotidiana das cidades.

Cilindros de gás colocados de forma inadequada? Utilize a OpenMV para acionar automaticamente alertas de perigo
Identificação automática de posições inadequadas de botijões de gás, permitindo a deteção antecipada de riscos de segurança relacionados com o gás.

Trabalho em equipamento energizado sem luvas isolantes? A OpenMV emite imediatamente um alerta!
Identificação automática de se os trabalhadores estão a utilizar luvas isolantes, para apoio à execução segura das tarefas.

Utilização da câmara inteligente OpenMV para deteção em tempo real de defeitos na superfície de placas de alumínio
Detecção online de defeitos na superfície de chapas de alumínio, tais como riscos e depressões, para apoio ao controlo de qualidade.