Scegliere la scheda Computer Vision nel 2022

Nov 30 2022
La scelta di una piattaforma per lavorare con Computer Vision on the Edge è difficile. Ci sono dozzine di schede sul mercato.

La scelta di una piattaforma per lavorare con Computer Vision on the Edge è difficile. Ci sono dozzine di schede sul mercato. Se leggi di uno di loro, vuoi usarlo. Ma quando ci provi, non è così buono.

Immagine dell'Autore

Ho provato a confrontare molte schede economiche sul mercato . E non solo in termini di velocità. Ho provato a confrontare le piattaforme in base alla loro "usabilità". Quanto sarebbe facile esportare le reti, quanto è buono il supporto. E quanto è facile lavorare.

Questo articolo è il risultato del confronto. Ma se vuoi vedere di più sulle schede, c'è un video diverso che ho realizzato su ciascuna scheda (con un confronto completo):

  1. Google Corallo
  2. Khadas Vim3
  3. ESP32 — (Il video è stato girato prima che realizzassi questa guida. Ma ci si avvicina, quindi lo incollerò qui. E un altro —https://youtu.be/ms6uoZr-4dc)
  4. Lampone Pi
  5. Myriad X (NCS 2, profondità Ai (OAK, OAK-1, OAK-D, ecc.))
  6. Rock Pi 3A (RK3568, ecc.) (e uno aggiuntivo —https://youtu.be/NHVPxPlY2lIsullo sviluppo)
  7. Jetson Nano
  8. Hailo-8
  1. Scheda K210 ( circa )
  2. scheda MAIX-II ( circa )

E ora ho ordinato un m5stack (con processore Sigmstar SSD202D) per testarlo (già testato, il video verrà rilasciato presto).

Inoltre, ho una lista che ho intenzione di ordinare e testare prima o poi e aggiungere a questo articolo o al prossimo:

  1. DEBIX Modello A — Dovrebbe essere molto simile a Vim3 ma con un sistema diverso
  2. K510 Dual RSIC-V64 — La nuova versione di k210 rappresenta un aumento significativo della velocità rispetto alla vecchia piattaforma. Sistema più conveniente
  3. Horizon X3 Pi AI Board — Una scheda con una vasta community rivolta maggiormente al ROS. Ma c'è qualche controparte NPU a bordo, il che rende la piattaforma interessante da testare.
  4. VisionFive RISC-V — Una scheda con due moduli di accelerazione (NVDLA Engine e NPU). Quando ho pensato di ordinarlo tre mesi fa, sono stato fermato perché alcuni thread sul forum ufficiale hanno chiarito che nessuno dei due poteva ancora essere eseguito ( NNE non funziona , NVDLA non funziona ). Non credo sia ancora cambiato nulla.
  5. Orange Pi 5 — Questo è un Rockchip RK3588S. Ma Orange Pi ha la sua infrastruttura piuttosto avanzata; sarebbe interessante un confronto con Rock Pi. Ma molto probabilmente sarà simile. Sarebbe interessante anche testare l'Orange 4B, che è simile.
  6. A proposito di RockChip, sarebbe interessante testare qualcosa basato sull'RK1808 . Ci sono un sacco di schede economiche là fuori (come questa ). E ce ne sono anche alcuni con le macchine fotografiche.
  7. KNEO STEM — Modulo NPU per il quale non ci sono recensioni.
  8. Sophon BM1880 — anch'essa una scheda entusiasmante senza molte recensioni.
  9. Xilinx Kria — è una scheda FPGA. Continuo a voler mettere insieme il mio atto e provarlo. L'ultima volta che ho provato a portare la matematica su un FPGA

Andiamo!

Ecco il tavolo finale con tutti i board:

https://docs.google.com/spreadsheets/d/1BMj8WImysOSuiT-6O3g15gqHnYF-pUGUhi8VmhhAat4/edit?usp=sharing

Ma lascia che ti spieghi prima tutti i criteri.

Com'è facile lavorare

Quanto è facile lampeggiare? Ci è voluta mezza giornata per eseguire il flashing di Jetson TK1. Per RPi — mezz'ora. Il firmware è il punto in cui inizia la comunicazione con la scheda dopo l'unboxing.

Facile da lavorare. Quando lavoravo con DaVinci, il debugging richiedeva anni. Oggi tutti i processi sono generalmente molto semplici. Parliamo di loro.

Linux convenzionale . Mi piace quando puoi lavorare con Ubuntu normale. E mi rende triste quando non c'è un normale Linux sulla scheda. Controlliamo questo.

Supporto comunitario. Grande comunità: pochi problemi e molte soluzioni. Controlliamo.

Immagine dell'Autore

A mio parere, la scheda migliore è RPi e NCS. Ma non sono completamente schede di Computer Vision. Coral e Jetsons sono buoni ma non eccellenti.

Supporto modelli

Di solito, le NPU non sono molto user-friendly in termini di conversione del modello. Parliamo di modelli.

Zoo ufficiale dei modelli . Quali modelli sono supportati?

Zoo di modelli non ufficiale . Quale comunità dà a questa bacheca?

Quanto è facile convertire il modello casuale? Perché ho bisogno dei primi due punti se posso esportare qualcosa?!

Facile eseguire il debug dei problemi con la conversione. Se l'esportazione non va come previsto.

Immagine dell'Autore

Come puoi vedere, tre tavole buone e una quasi buona.

Prontezza alla produzione / Prontezza per progetti di hobby / Costruzione di schede

Alcune informazioni aggiuntive possono permetterti di decidere se scegliere la tavola.

Velocità del processore ? Molti sistemi di visione artificiale richiedono buoni processori. Controlliamoli. Per testarlo, userò lo strumento stress-ng (Sudo apt-get install stress-ng) su PC Linux per fare un confronto.

Parti meccaniche , costruzione, stabilità alla temperatura.

Facile da acquistare. Devo premere il pulsante “Contatto per richiedere il prezzo”?… O aspettare in fila per qualche mese?

Pin per collegamento esterno . Riuscirò a manipolare la realtà?

Immagine dell'Autore

Come puoi vedere, tutte le schede sembrano quasi uguali ad eccezione delle schede senza Linux.

Test di velocità

È difficile fare una comprensione complice di "quanto è veloce la tavola" di 2-3 punti nel confronto delle prestazioni. È meglio guardare le parti dei video "Test di velocità" e controllare le informazioni qui . Schede diverse hanno framework di inferenza diversi, parametri diversi e quantizzazione diversa.

Uso la dimensione del batch = 1 ovunque. E questa non è la migliore strategia. Ad esempio, per Jetson, aumenterà le prestazioni.

Immagine dell'Autore

Ma secondo me, questi test possono rispondere ad alcune domande:

  1. Quanto è veloce la scheda per piccole reti neurali?
  2. Quanto è veloce la scheda per le grandi reti neurali?
  3. Qual è il framework ottimale per eseguire una rete neurale?

Prezzo

Per i grandi progetti, il prezzo è fondamentale. Ma difficilmente puoi stimare il costo effettivo. Per esempio:

  1. Il costo di Jetson era di circa 99 $, ma con l'attuale carenza di chip, puoi a malapena comprarlo con 250
  2. Una grande partita di tavole costa meno di una piccola.
  3. Puoi prototipare la tua scheda per alcuni chip, che costeranno meno.
  4. La periferia aggiuntiva aumenterà il costo. E sarà diverso per le diverse schede.
Immagine dell'Autore

Consumo di energia

Inoltre, ho provato a misurare il consumo di energia.
Poche note importanti:

  1. Non riesco a misurare il consumo di energia per ogni scheda in considerazione (alcune schede le do ad amici, alcune schede non hanno USB, ecc.)
  2. Cerco di misurare solo due regimi: "idle" e "running NN". Ma: alcune schede hanno una fotocamera interna, alcune schede usano il wifi, alcune schede hanno periferiche aggiuntive, ecc. Non collego parti aggiuntive, ma
  3. È un consumo di energia "medio". Non ho cercato di misurare un consumo massimo
Immagine dell'Autore

Sommario

Così. Spero che questo ti aiuti a scegliere la tua tavola. Ma è un articolo piuttosto piccolo. E permettetemi di consigliarne altri.

  1. Un buon articolo su cosa sono NPU e TPU, come differiscono e come la matematica è ottimizzata:https://blog.inten.to/hardware-for-deep-learning-part-4-asic-96a542fe6a81
  2. Buon articolo sul confronto tra piattaforme. Ci sono alcune piattaforme che non ho esaminato + esempi di reti che non ho —https://qengineering.eu/deep-learning-with-raspberry-pi-and-alternatives.html
  3. Non è un confronto molto dettagliato, ma alcune piattaforme entusiasmanti che non ho ancora recensito —https://jfrog.com/connect/post/comparison-of-the-top-5-single-board-computers/
  4. Un articolo eccellente e dettagliato, ma non molte bacheche —https://arxiv.org/pdf/2108.09457.pdf
  5. test delle prestazioni ncnn per un gruppo di schede —https://github.com/nihui/ncnn-small-board