13.1.16. O model zoo e a conversão para NPU

O IDE inclui uma biblioteca de modelos de machine learning pré-treinados – deteção de faces, deteção de pessoas, deteção de objetos, estimativa de pose, entre outros – mantida atualizada através das atualizações de recursos do IDE. Tools → Machine Vision → Open Model Zoo permite navegar nessa biblioteca: selecione um modelo para ver a sua página de descrição ao lado da árvore de ficheiros, e use o filtro para restringir a lista aos modelos compatíveis com a sua placa.

The Model Zoo browser: the model tree on the left with a model selected, its description page on the right, and the filter-by-board-type checkbox at the bottom

O browser do Model Zoo com um modelo selecionado e a sua página de descrição aberta.

Escolha um modelo e o IDE copia-o pronto a executar: converte o modelo para o acelerador NPU da placa de destino quando esta o tiver, copia o ficheiro de etiquetas correspondente ao seu lado, e define como destino predefinido a unidade da câmara ligada. A partir daí, basta uma chamada ao construtor ml.Model do lado do script. O mesmo browser está acessível a partir do editor ROMFS, que é o destino mais indicado para modelos em placas que suportam ROMFS – os modelos em ROMFS são executados diretamente a partir da flash sem necessitar de uma cópia em RAM.

13.1.16.1. Converter outros modelos

Tools → Machine Vision → Convert Model for NPU executa a mesma conversão num modelo proveniente de qualquer outra fonte – treinado com Edge Impulse ou Roboflow, exportado de um framework de treino, ou descarregado. As placas equipadas com NPU têm cada uma um compilador do fornecedor incluído e gerido pelo IDE: os NPUs Ethos-U utilizam o Vela, e os NPUs ST Neural-ART utilizam o ST Edge AI. A ferramenta obtém a placa de destino a partir da câmara ligada (ou pergunta quando nenhuma está ligada) e recebe o ficheiro do modelo. Um modelo já convertido é reconhecido e apenas copiado; quando a placa selecionada não tem NPU, a ferramenta informa disso e salta a conversão – um modelo não convertido continua a funcionar nessas placas, no CPU.

Nas placas com NPU, a conversão não é opcional: na melhor das hipóteses, um modelo não convertido recorre ao CPU e executa muito mais lentamente; nalgumas placas não executa de todo. O editor ROMFS e o model zoo aplicam a conversão automaticamente; esta entrada de menu existe para modelos que chegam por outras vias.

Veja também

O capítulo de machine learning para executar modelos com o módulo ml e treinar modelos personalizados.