Pular para o conteúdo principal

Treinar modelo de reconhecimento de dígitos de hidrômetro com SenseCAP A1101

Visão geral

Neste wiki, vamos ensinar como treinar seu próprio modelo de medidor para a sua aplicação específica e depois implantá‑lo facilmente no SenseCAP A1101. Vamos começar!

Preparação de hardware

Preparação de software

Usaremos as seguintes tecnologias de software neste wiki

Agora vamos configurar o software. A configuração de software para Windows, Linux e Intel Mac será a mesma, enquanto para Mac M1/M2 será diferente.

dica

**What is SenseCraft Model Assistant?**Seeed Studio SenseCraft Model Assistant é um projeto de código aberto focado em IA embarcada. Otimizamos excelentes algoritmos do OpenMMLab para cenários do mundo real e tornamos a implementação mais amigável, alcançando inferência mais rápida e precisa em dispositivos embarcados.

Windows, Linux, Intel Mac

  • Passo 1. Certifique‑se de que o Python já está instalado no computador. Caso não esteja, visite esta página para baixar e instalar a versão mais recente do Python

  • Passo 2. Instale a seguinte dependência

pip3 install libusb1

Mac M1/ M2

  • Passo 1. Instale o Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • Passo 2. Instale o conda
brew install conda
  • Passo 3. Baixe o libusb
wget https://conda.anaconda.org/conda-forge/osx-arm64/libusb-1.0.26-h1c322ee_100.tar.bz2
  • Passo 4. Instale o libusb
conda install libusb-1.0.26-h1c322ee_100.tar.bz2
cuidado

Você precisa se certificar de que a versão do seu BootLoader é maior que 2.0.0 antes de poder alterar o firmware para fazer o seguinte. Se não tiver certeza, verifique a versão do BootLoader seguindo as etapas mencionadas nesta seção, e se a versão for menor que 2.0.0, atualize o BootLoader seguindo as etapas mencionadas nesta seção

1. Coletar dados de imagem

  • Passo 1. Conecte o SenseCAP A1101 ao PC usando o cabo USB Type‑C
  • Passo 2. Clique duas vezes no botão de boot para entrar no modo boot

Depois disso, você verá um novo drive de armazenamento exibido no explorador de arquivos como SENSECAP

Assim que o uf2 terminar de ser copiado para o drive, o drive desaparecerá. Isso significa que o uf2 foi carregado com sucesso no módulo.

  • Passo 4. Copie e cole este script em Python dentro de um arquivo recém‑criado chamado capture_images_script.py no seu PC

  • Passo 5. Execute o script em Python para começar a capturar imagens

python3 capture_images_script.py

Por padrão, ele capturará uma imagem a cada 300ms. Se você quiser mudar isso, pode executar o script neste formato

python3 capture_images_script.py --interval <time_in_ms>

Por exemplo, para capturar uma imagem a cada segundo

python3 capture_images_script.py --interval 1000

Depois que o script acima for executado, o SenseCAP A1101 começará a capturar imagens continuamente das câmeras integradas e salvará todas elas em uma pasta chamada save_img

Além disso, ele abrirá uma janela de pré‑visualização enquanto estiver gravando.

Depois que você tiver capturado imagens suficientes, clique na janela do terminal e pressione as seguintes combinações de teclas para parar o processo de captura

  • Windows: Ctrl + Break
  • Linux: Ctrl + Shift + \
  • Mac: CMD + Shift + \

Alterar o firmware do dispositivo após a coleta de imagens

Depois de terminar de gravar imagens para o conjunto de dados, você precisa garantir que o firmware dentro do SenseCAP A1101 seja alterado de volta para o original, para que você possa novamente carregar modelos de detecção de objetos para detecção. Vamos ver agora as etapas.

  • Passo 1. Entre no modo Boot no SenseCAP A1101 conforme explicado anteriormente

  • Passo 2. Arraste e solte este arquivo .uf2 no drive SENSECAP de acordo com o seu dispositivo

Assim que o uf2 terminar de ser copiado para o drive, o drive desaparecerá. Isso significa que o uf2 foi carregado com sucesso no módulo.

2. Gerar dataset com o RoboFlow

Roboflow é uma ferramenta de anotação baseada na web. Aqui podemos importar diretamente as gravações de vídeo que fizemos para o Roboflow e elas serão exportadas em uma série de imagens. Esta ferramenta é muito conveniente porque nos ajudará a distribuir o conjunto de dados em "treinamento, validação e teste". Além disso, essa ferramenta nos permitirá adicionar processamento adicional a essas imagens após rotulá‑las. Além disso, ela pode exportar facilmente o conjunto de dados rotulado no formato COCO, que é exatamente o que precisamos!

  • Passo 1. Clique aqui para se inscrever em uma conta Roboflow

  • Passo 2. Clique em Create New Project para iniciar nosso projeto

  • Passo 3. Preencha o Project Name, mantenha o License (CC BY 4.0) e Project type (Object Detection (Bounding Box)) como padrão. Em What will your model predict?, preencha um nome de grupo de anotação.
  • Passo 4. Arraste e solte as imagens que você capturou usando o SenseCAP A1101
  • Passo 5. Depois que as imagens forem processadas, clique em Finish Uploading. Aguarde pacientemente até que as imagens sejam enviadas.
  • Passo 6. Depois que as imagens forem enviadas, clique em Assign Images
  • Passo 7. Selecione uma imagem, desenhe uma caixa retangular ao redor dos dígitos, escolha o rótulo como digits e pressione ENTER
  • Passo 8. Repita o mesmo para as imagens restantes
  • Passo 9. Continue a anotar todas as imagens no conjunto de dados

  • Passo 10. Quando a rotulagem terminar, clique em Add images to Dataset

  • Passo 11. Em seguida, dividiremos as imagens entre "Train, Valid e Test". Se houver mais dados, pode ser 80/20. Se houver menos dados, pode ser 85/15. Observe que o 'Train' não deve ser menor que 80.
  • Passo 12. Clique em Generate New Version
  • Passo 13. Agora você pode adicionar Preprocessing e Augmentation se preferir. Aqui nós alteraremos a opção Resize para 192x192

Aqui alteramos o tamanho da imagem para 192x192 porque usaremos esse tamanho para o treinamento e o treinamento será mais rápido. Caso contrário, seria necessário converter todas as imagens para 192x192 durante o processo de treinamento, o que consome mais recursos de CPU e torna o treinamento mais lento.

  • Passo 14. Em seguida, prossiga com os demais padrões e clique em Generate
  • Passo 15. Clique em Export, selecione Format como COCO, selecione show download code e clique em Continue

Isso gerará um trecho de código que usaremos posteriormente no treinamento no Google Colab. Portanto, mantenha esta janela aberta em segundo plano.

Treinar usando o SenseCraft Model Assistant no Google Colab

Depois de termos escolhido um conjunto de dados público, precisamos treinar o conjunto de dados. Aqui usamos um ambiente Google Colaboratory para realizar o treinamento na nuvem. Além disso, usamos a API do Roboflow dentro do Colab para baixar facilmente nosso conjunto de dados.

Clique aqui para abrir um workspace do Google Colab já preparado, siga as etapas mencionadas no workspace e execute as células de código uma a uma.

Nota: No Google Colab, na célula de código em Step 4, você pode copiar diretamente o trecho de código do Roboflow conforme mencionado acima

Ele irá guiá-lo através do seguinte:

  • Configurar um ambiente para treinamento
  • Fazer download de um dataset
  • Executar o treinamento
  • Fazer download do modelo treinado

3. Implantar o modelo treinado e realizar inferência

Agora vamos mover o model-1.uf2 que obtivemos ao final do treinamento para o SenseCAP A1101.

  • Step 3. Dê um clique duplo no botão de boot no SenseCAP A1101 para entrar no modo de armazenamento em massa

Depois disso, você verá um novo dispositivo de armazenamento exibido no explorador de arquivos como SENSECAP

  • Step 4. Arraste e solte o arquivo model-1.uf2 na unidade SENSECAP

Assim que o uf2 terminar de copiar para a unidade, a unidade desaparecerá. Isso significa que o uf2 foi enviado com sucesso para o módulo.

Nota: Se você tiver 4 arquivos de modelo prontos, pode arrastar e soltar cada modelo um por um. Solte o primeiro modelo, aguarde até que termine a cópia, entre novamente no modo de boot, solte o segundo modelo e assim por diante. Se você tiver carregado apenas um modelo (com índice 1) no SenseCAP A1101, ele carregará esse modelo.

  • Step 5. Clique aqui para abrir uma janela de pré-visualização do stream da câmera
  • Step 6. Clique no botão Connect. Em seguida, você verá um pop-up no navegador. Selecione SenseCAP Vision AI - Paired e clique em Connect
  • Step 7. Veja os resultados de inferência em tempo real usando a janela de pré-visualização!

Como você pode ver acima, os números estão sendo detectados com caixas delimitadoras ao redor deles.

4. Realizar inferência com o SenseCAP A1101 no SenseCAP Mate

Além de realizar inferência no navegador, também podemos usar o SenseCAP Mate para implementar a inferência do modelo, o que faremos passo a passo.

  • Step 1. Primeiro, precisamos apagar o firmware do A1101, o que pode ser feito usando o erase_model.uf2. Em seguida, atualize o firmware do A1101 para a versão mais recente e solte o modelo de reconhecimento de dígitos do hidrômetro no A1101

    Firmware: erase_model.uf2SenseCAP-A1101_v02-00.uf2

    Model: water_meter.uf2pfld_meter.uf2digital_meter.uf2

    Nota: water_meter e digital_meter identificam ambos o nome do modelo como user-define6 no desktop e exibem digital_meter no lado do APP. O nome de modelo identificado por pfld_meter é user-define5, e Point_meter é exibido no lado do APP. Os usuários precisam enviar os modelos de acordo com seus requisitos reais de uso durante o processo de implantação

  • Step 2.  Clique aqui para abrir uma janela de pré-visualização do stream da câmera

  • Step 3.  Clique no botão Connect. Em seguida, você verá um pop-up no navegador. Selecione SenseCAP A1101 - Paired e clique em Connect

  • Step 4(Optional). Selecione Digital Meter em Model e Digital Meter em Algorithm, clique em Save e depois clique em Invoke. E agora podemos ver os resultados de inferência em tempo real usando a janela de pré-visualização.
  • Step 5. Abra o SenseCAP Mate e faça o pareamento com o seu próprio A1101, selecione o mesmo Model e Algorithm de antes. Em seguida, clique em General e clique em Detect na parte inferior.
  • Step 6. Como você pode ver abaixo, o AI Preview mostra os resultados de reconhecimento do medidor digital.

Após concluir as etapas acima, tentaremos adicionar nosso próprio A1101 ao dispositivo. Através das 4 etapas a seguir, podemos visualizar os dados de resultado da identificação do dispositivo a qualquer hora e em qualquer lugar por meio de uma plataforma em nuvem como o SenseCAP Mate.

Recursos

Suporte Técnico e Discussão de Produto


Obrigado por escolher nossos produtos! Estamos aqui para fornecer diferentes tipos de suporte para garantir que sua experiência com nossos produtos seja a mais tranquila possível. Oferecemos vários canais de comunicação para atender a diferentes preferências e necessidades.

Loading Comments...