Treinar o Maix Bit para reconhecimento de objetos pode parecer uma tarefa que envolva um bom conhecimento em miniconda, porém o método de treinamento a seguir é exclusivo aqui no Brasil e é muito mais simples que o convencional.
Observações Iniciais
Antes de tudo, é necessário que você atenda duas regras para que seja realizado os passos a posteriores, essas regras são:
- Tenha uma placa Maix Bit ou equivalente, pois servirá também como chave de acesso para o treinamento;
- O modelo de treinamento apenas servirá para chip K210;
- Baixar os arquivos de apoio no Github para o treinamento.
Preparar Dados para Treinamento
Todo o processo a seguir é uma verdadeira receita de bolo e negligenciar qualquer passo causará erros no treinamento, por isso cada passo deve ser seguido a risca.
Dimensionamento e Resolução das Imagens
Todas as imagens que serão submetidas para o treinamento deverão está no dimensionamento de ‘224×224’ com resolução de ‘3’, ou seja, ‘224x224x3’ e em formato .jpeg como na imagem abaixo:

Selecionar Objetos nas imagens
Abra o labelImg na pasta “labelImg” dos arquivos baixados para o treinamento, selecione as imagens da sua base de dados e comece a marcar os objetos desejados como no vídeo abaixo:
Estrutura de Dados para Treinamento
Todo modelo a ser submetido ao treinamento do Maix bit no site do maixhub devem seguir um padrão de organização de pastas que devem ter a correspondência exata das classes em imagens e em xml. Sendo organizadas da seguinte forma:
__datasets.zip
|
|___datasets
|
|____images
| |
| |___classes
|
|
|____xml
| |
| |___classes
|
|
|____labels.txt
Classes
As “classes” são objetos que serão usados para serem treinados e devem ser separados em pastas dentro de “images” e “xml“, sendo que os arquivos “xml” devem ter a mesma numeração e correspondência exata das imagens como na estrutura abaixo:
__datasets.zip
|
|___datasets
|
|____images
| |
| |___car
| | |
| | |__0.jpg
| | |
| | |__1.jpg
| |
| |___motorcycle
| |
| |__0.jpg
| |
| |__1.jpg
|
|____xml
| |
| |___car
| | |
| | |__0.xml
| | |
| | |__1.xml
| |
| |___motorcycle
| |
| |__0.xml
| |
| |__1.xml
|
|____labels.txt
Labels
No caso das labels é exatamente o nome dos objetos que serão usados para serem reconhecidos e devem ser formatado em arquivo de texto e separados por quebra de linha como o exemplo abaixo:
car
motorcycle
Obter Código de Maquina do Maix Bit
Para obter a chave de máquina para conseguir treinar o Maix Bit é necessário baixar um arquivo binário chamado key_gen_v1.2.bin e instalar na placa usando o kflash como na imagem abaixo:

Após ter feito os passos anteriores, é só abrir a serial com baudrate de 115200, clicar no botão reset e visualizar o retorno na serial como na imagem abaixo:

Treinar Modelo para Maix Bit
Antes de enviar o modelo para treinamento, o ideal é verificar se todos os arquivos estão formatados como na estrutura do tópico “X”. Após a verificação, compile o “datasets” para .zip.
A Sipeed fornece um conjunto de plataformas que facilitam o uso de seus produtos e uma dessas plataformas é a MaixHub que é um conjunto de ferramentas destinadas ao “Maixpy“, uma dessas ferramentas é o treinamento de modelos.
Tradução do MaixHub
Ao acessar o site encontrará um monte de caracteres chineses, mas caso não consiga entender, você pode traduzir através do navegador ou pela própria opção “Language” do site.

Treinamento de Modelo
Após ter criado uma conta, logado e também ter feito o processo de captura da chave de máquina do Maix Bit. Selecione todas essas opções abaixo, insira a chave em “código de máquina” e clique em próximo.

Modelo em Treinamento
Após ter enviando o arquivo “datasets.zip” para o MaixHub, o modelo entrará inicialmente em uma fila para o treinamento e quando for “Fila: 1” o modelo começará o treinamento.

Erro no Treinamento do Maix Bit
Assim que o modelo estiver sendo treinado, fique atento no primeiros minutos pois o primeiro processo do MaixHub é a verificação dos arquivos, caso haja um erro será retornado o tipo de rro como na imagem abaixo:

Treinamento do Maix Bit Concluído
Após a conclusão do treinamento, faça o download do seu modelo treinado e em seguida extraia o arquivo compactado em uma pasta desejada. Caso não tenha nenhum software para extrair, sugerimos o uso do Winrar.

Os arquivos que serão usados são apenas o “boot.py”, “m.kmodel” e “label,txt”. Ambos correspondem, respectivamente o código que será enviado para o Maix bit, o modelo treinado que deve ser colocado em um cartão microSD ou gravado na EEPROM pelo Kflash e os objetos das classes.
Pontos Negativo do Treinamento no MaixHub
Infelizmente nem todo recurso é 100% vantajoso e embora o MaixHub seja uma plataforma que democratiza o treinamento, alguns pontos
Fila de treinamento
O MaixHub engloba todo o mundo mas é especialmente mais forte na china e por isso é melhor por o modelo para treinar durante a manhã devido ao fuso horário.
Resolução da Tela
O treinamento do Maix Bit no MaixHub aceita apenas 224x224x3 ou 240x240x3 e por isso o código resultante do treinamento só trabalhará com a resolução no qual foi treinado, limitando o aproveitamento total do display 320×240.
Enviar Modelo para Maix Bit
Por fim, para usar o Maix Bit e o modelo treino é necessário reinstalar o binário maixpy_v0.6.2_41_g02d12688e pelo Kflahs e enviar o código do arquivo “boot.py” para a IDE e compilar.

Exemplo de Funcionamento de Modelo Treinado
Os arquivos de referência que foi disponibilizados no GitHub não são, em hipótese alguma, bons modelos treinados e por isso há muita dificuldade de reconhecimento dos objetos treinados. No entanto, a depender da iluminação e ângulo da câmera é possível reconhecer algum carro como na imagem abaixo:

As imagens capturadas do Maix bit como na imagem acima, são retiradas da IDE e sempre perdem um pouco da qualidade se comparado com o display usado na placa.
Você precisa fazer log in para comentar.