Blog

Presentazione del Pacchetto Python API (pyvar) di Variscite

Monday, 03 Jan 2022  |  Diego Dorta

1. Panoramica

Lo scopo di questo articolo è presentare il pacchetto Python pyvar di Variscite e mostrare come iniziare a utilizzare le API di Machine Learning (ML) di pyvar. Queste API sono state progettate per aiutare gli utenti alle prime armi ad esplorare il campo del ML e a sviluppare le proprie applicazioni utilizzando telecamere, display e interfacce utente, focalizzandosi sui System on Module (SoM) dalla famiglia i.MX8.

Se è la prima volta che esplorate questo ambito, per familiarizzare con AI/ML e i suoi esempi di applicazione, vi suggeriamo di leggere il seguente articolo:

Prima di esplorare il pacchetto pyvar e acquisire maggiori informazioni sulla sua struttura e mostrare alcuni esempi, ci soffermeremo brevemente su alcuni importanti aspetti: l’acceleratore hardware di Artificial Intelligence (AI), la formazione e quantizzazione del modello. La comprensione di questi argomenti aiuta a comprendere come funziona il machine learning su sistemi embedded e probabilmente consentirà di ottenere le migliori performance di inferenza per le vostre applicazioni di machine learning.

Per quanto riguarda la famiglia dei SOC i.MX8 di NXP, l’i.MX8M Plus è dotato di un acceleratore AI dedicato, che gestisce in modo efficiente il processo di inferenza ML: questo motore computazionale è chiamato Neural Processing Unit (NPU). Il pacchetto pyvar non è strettamente legato alla NPU: con le API ML è possibile usare qualsiasi altro SoM della famiglia i.MX8; la differenza è che il processo di inferenza utilizza la GPU o la CPU, anziché la NPU, e questo potrebbe, probabilmente, implicare un tempo di inferenza più lungo.

La NPU gestisce operazioni a virgola fissa a 8 bit, il che si traduce nella possibilità di disporre di un modello ML con unità aritmetiche semplici e piccole, evitando calcoli con virgola mobile più grandi. Per utilizzare le capacità di calcolo della NPU e ottenere le migliori prestazioni di inferenza possibili, i modelli di rete a virgola mobile a 32 bit devono essere convertiti in modelli di reti a virgola fissa a 8 bit.

Questa conversione è nota come quantizzazione e sono disponibili due possibili approcci per quantizzare un modello affinchè funzioni correttamente con la NPU. Il primo consiste nell’addestrare il modello tenendo in considerazione la quantizazione (QAT) già in fase di addestramento. Il secondo, che è più semplice, consiste nell’utilizzare un metodo post-addestramento che converta solo un modello addestrato nel formato richiesto dalla NPU. Il processo di conversione sarà discusso nei prossimi post del blog.

Il pacchetto pyvar è in licenza ai sensi dei termini BSD-3-Clause, il che significa che il suo utilizzo è gratuito e che l’utente può modificarlo a suo piacimento, fintanto che conserva l’avviso di copyright. È importante menzionare che questo pacchetto è ancora in fase di sviluppo e che noi vi invitiamo a contribuire al progetto.

 

Variscite’s Python pyvar
VAR-SOM-MX8M-PLUS System on Module

 

2. Primi passi con Pyvar

2.1 Configurazione BSP

  1. Configurare l’ultima Release Yocto usando la distro fsl-imx-xwayland (con funzioni Wayland + X11) e creare l’immagine fsl-image-qt5 che include già i pacchetti ML; in alternativa, se si preferisce un’immagine più piccola come quella fsl-image-gui, allora per aggiungere i pacchetti ML basterà seguire le seguenti istruzioni:
    a. aggiungere i pacchetti Machine Learning al file conf:
OPENCV_PKGS_imxgpu = "  
       opencv-apps  
       opencv-samples  
       python3-opencv  
" 
IMAGE_INSTALL_append = "  
    packagegroup-imx-ml  
    ${OPENCV_PKGS}  
" 
  1. Avviare la scheda usando l’immagine create (ad esempio, scrivendola su una scheda SD).

2.2 Installazione del Pacchetto Python di Variscite

Il pacchetto pyvar è ospitato e disponibile nel repository PyPi (https://pypi.org), la quale consente all’utente di installare facilmente il pacchetto seguendo le seguenti istruzioni:

  1. Nella scheda target, installare il pacchetto pyvar usando lo strumentopip3:
# pip3 install pyvar 
  1. Per assicurarsi che il pacchetto sia installato, eseguire il seguente commando per controllare la versione:
# pip3 list | grep pyvar 

Per maggiori informazioni, visitare la pagina “pyvar – primi passi”.

3. PyVar API

Il pacchetto pyvar implementa le più comuni funzionalità di ML abilitate da eIQ® ML Software Development Environment di NXP. Inoltre, fornisce utili classi multimediali per aiutare gli sviluppatori ad implementare applicazioni ML e a rendere la creazione dei loro codici il più semplice possibile.

Ecco un paio di esempi di moduli pyvar:

  • ml.engines gestisce gli engine di inferenza come as TensorFlow Lite Arm NN:
1 from pyvar.ml.engines.tflite import TFLiteInterpreter 
2 engine = TFLiteInterpreter(model_file_path=”path_to_your_model”) 

Per maggiori informazioni, si prega di visitare la pagina “pyvar Machine Learning API”.

  • multimedia gestisce casi multimediali come file video, fotocamere e dispositivi:
1 from pyvar.multimedia.helper import Multimedia 
2 multimedia = Multimedia(source=”path_to_video_file_or_camera_device”) 

Per maggiori informazioni, si prega di visitare la pagina “pyvar Multimedia API”.

3.1 Brevi esempi scritti con PyVar

Gli esempi descritti in questo articolo usano modelli quantizzati addestrati di TensorFlow Lite. Questi esempi sono stati inseriti per aiutare l’utente a comprendere come si scrive un semplice codice esplorando più casi di utilizzo con moduli PyVar. Gli esempi possono essere scaricati ed eseguiti sul target.

L’esempio sottostante usa un modulo starter di TensorFlow e esegue l’inferenza su un’immagine usando TensorFlow Lite come engine di inferenza:

# curl -LJO  
https://github.com/varigit/pyvar/raw/master/examples/ml/detection/image_detection_tflite.py 
# python3 image_detection_tflite.py 

Altri comuni esempi di ML scritti usando pyvar:

Per maggiori informazioni, si prega di consultare la documentazione complete di Python API di Variscite, disponibile su python.variscite.com.

Ultimi post
Software releases
July software updates
Rimani aggiornato con gli aggiornamenti software: mantieni i tuoi SoM Variscite sempre al massimo delle loro prestazioni con le nostre ultime versioni software.

Debian Bookworm 6.6.y_24.12-v1.1 per moduli i.MX 8M: DART-MX8M
21.07.2026
Newsroom
VAR+NRG. Built for MedTech. Ready for Compliance
Per immettere sul mercato un prodotto medico soggetto a regolamentazione non basta avere un ottimo hardware. I team di ingegneri devono gestire contemporaneamente il software embedded, la sicurezza informatica, la documentazione relativa al sistema di gestione della qualità e il collaudo, calibrando tutto su un unico prodotto che sia certificato e affidabile nel lungo periodo. È proprio questa la sfida che la nuova collaborazione tra Variscite e NRG si propone di affrontare.
Variscite, azienda leader nella produzione di System on Module con comprovata esperienza nel settore delle applicazioni mediche, ha avviato una collaborazione con NRG, società di ingegneria specializzata in sistemi medtech regolamentati, per fornire una soluzione integrata hardware-software alle aziende che realizzano prodotti medici embedded. La partnership offre ai team di sviluppo l’accesso a una piattaforma hardware collaudata e alle competenze software e ingegneristiche necessarie per centrare gli obiettivi di sviluppo e garantire l’adeguatezza dei prodotti soggetti a regolamentazione.
22.07.2026
Blog
supply-chain-resilience-website-size.png
La crisi globale dei componenti sta costringendo chi lavora nell’embedded a fare i conti con una realtà scomoda: non tutti i fornitori di SoM sono ugualmente preparati. Nell’ultima puntata del podcast “Embedded Executive”, Ohad Yaniv, amministratore delegato di Variscite, parla con Rich Nass di Embedded Computing Design di come garantire ai clienti il rispetto delle scadenze in un contesto in cui l’approvvigionamento è sottoposto a dure pressioni e ci spiega perché la risposta dipende innanzitutto dal controllo della produzione. A differenza dei fornitori che si avvalgono di subappaltatori, Variscite progetta e produce internamente l’intera gamma dei suoi System on Module, con una produzione certificata secondo gli standard ISO 9001, 13485 e 27001.