Choisir la carte Computer Vision en 2022
Choisir une plate-forme pour travailler avec Computer Vision on the Edge est difficile. Il existe des dizaines de planches sur le marché. Si vous en lisez un, vous voulez l'utiliser. Mais quand vous essayez - ce n'est pas si bon.

J'ai essayé de comparer beaucoup de planches bon marché sur le marché . Et pas seulement en termes de vitesse. J'ai essayé de comparer les plates-formes par leur "convivialité". Comme il serait facile d'exporter des réseaux, comme le support est bon. Et comme il est facile de travailler.
Cet article est le résultat de la comparaison. Mais si vous voulez en savoir plus sur les planches, il y a une vidéo différente que j'ai faite sur chaque planche (avec comparaison complète) :
- Google Corail
- Khadas Vim3
- ESP32 — (La vidéo a été filmée avant que je fasse ce guide. Mais elle s'en rapproche, je vais donc la coller ici. Et une autre —https://youtu.be/ms6uoZr-4dc)
- Tarte aux framboises
- Myriad X (NCS 2, Profondeur Ai (OAK, OAK-1, OAK-D, etc.))
- Rock Pi 3A (RK3568, etc.) (et un autre -https://youtu.be/NHVPxPlY2lIsur le développement)
- Jetson Nano
- Hailo-8
- Carte K210 ( environ )
- Carte MAIX-II ( à propos )
Et voilà que j'ai commandé un m5stack (avec processeur Sigmstar SSD202D) pour le tester (déjà testé, la vidéo sortira bientôt).
De plus, j'ai une liste que je compte commander et tester tôt ou tard et ajouter à cet article ou au suivant :
- DEBIX Model A - Il devrait être très similaire à Vim3 mais avec un système différent
- K510 Dual RSIC-V64 — La nouvelle version de k210 est une accélération significative par rapport à l'ancienne plate-forme. Système plus pratique
- Carte AI Horizon X3 Pi - Une carte avec une grande communauté destinée davantage à ROS. Mais il y a un homologue NPU à bord, ce qui rend la plate-forme intéressante à tester.
- VisionFive RISC-V — Une carte avec deux modules d'accélération (NVDLA Engine et NPU). Quand j'ai pensé à le commander il y a trois mois, j'ai été arrêté parce que quelques discussions sur le forum officiel indiquaient clairement qu'aucun d'entre eux ne pouvait encore être exécuté ( NNE ne fonctionnait pas , NVDLA ne fonctionnait pas ). Je pense que rien n'a encore changé.
- Orange Pi 5 — Il s'agit d'un Rockchip RK3588S. Mais Orange Pi a son infrastructure assez avancée ; il serait intéressant de comparer avec Rock Pi. Mais ce sera probablement similaire. Il serait également intéressant de tester l'Orange 4B, qui est similaire.
- A propos de RockChip, il serait intéressant de tester quelque chose basé sur le RK1808 . Il y a beaucoup de planches bon marché (comme celle-ci ). Et il y en a même avec des caméras.
- KNEO STEM — Module NPU pour lequel il n'y a pas d'avis.
- Sophon BM1880 — également, une carte passionnante sans beaucoup de critiques.
- Xilinx Kria — est une carte FPGA. J'ai toujours envie de me ressaisir et de l'essayer. La dernière fois que j'ai essayé de porter les maths sur un FPGA
Allons-y!
Voici la table finale avec tous les tableaux :
https://docs.google.com/spreadsheets/d/1BMj8WImysOSuiT-6O3g15gqHnYF-pUGUhi8VmhhAat4/edit?usp=sharing
Mais permettez-moi d'abord d'expliquer tous les critères.
Comme il est facile de travailler
Est-il facile de flasher ? Il a fallu une demi-journée pour flasher Jetson TK1. Pour RPi — une demi-heure. Le micrologiciel est le point où votre communication avec la carte commence après le déballage.
Facile à travailler. Quand je travaillais avec DaVinci, le débogage prenait du temps. Aujourd'hui, tous les processus sont généralement beaucoup plus faciles. Parlons d'eux.
Linux conventionnel . J'aime quand vous pouvez travailler avec Ubuntu ordinaire. Et cela me rend triste quand il n'y a pas de Linux standard sur la carte. Vérifions cela.
Soutien communautaire. Grande communauté - peu de problèmes et beaucoup de solutions. Vérifions.

À mon avis, la meilleure carte est RPi et NCS. Mais ce ne sont pas entièrement des cartes de vision par ordinateur. Coral et Jetsons sont bons mais pas excellents.
Prise en charge des modèles
Habituellement, les NPU ne sont pas très conviviaux en termes de conversion de modèle. Parlons des modèles.
Zoo de modèles officiels . Quels modèles sont pris en charge ?
Zoo de modèles non officiels . Quelle communauté donner à ce conseil?
Est-il facile de convertir le modèle aléatoire ? Pourquoi ai-je besoin des deux premiers points si je peux exporter quoi que ce soit ? !
Facile à déboguer les problèmes avec la conversion. Si l'exportation ne se déroule pas comme prévu.

Comme vous pouvez le voir, trois bonnes planches et une presque bonne.
Préparation à la production / Préparation aux projets de loisirs / Construction de cartes
Certaines informations complémentaires peuvent vous permettre de décider si vous devez choisir la planche.
Vitesse du processeur ? De nombreux systèmes de vision par ordinateur nécessitent de bons processeurs. Vérifions-les. Pour le tester, je vais utiliser l'outil stress-ng (Sudo apt-get install stress-ng) sur PC Linux pour faire une comparaison.
Pièces mécaniques , construction, stabilité en température.
Facile à acheter. Dois-je appuyer sur le bouton « Contacter pour demander le prix » ?… Ou faire la queue pendant quelques mois ?
Broches pour connexion externe . Serai-je capable de manipuler la réalité ?

Comme vous pouvez le constater, toutes les cartes se ressemblent presque, à l'exception des cartes sans Linux.
Test de rapidité
Il est difficile de faire une compréhension complice de "la vitesse de la planche" de 2 à 3 points en comparaison des performances. Il est préférable de regarder les parties "Test de vitesse" des vidéos et de vérifier les informations ici . Différentes cartes ont différents cadres d'inférence, différents paramètres et différentes quantifications.
J'utilise la taille du lot = 1 partout. Et ce n'est pas la meilleure stratégie. Par exemple, pour Jetson, cela augmentera les performances.

Mais à mon avis, ces tests peuvent répondre à quelques questions :
- Quelle est la vitesse de la carte pour les petits réseaux de neurones ?
- Quelle est la vitesse de la carte pour les grands réseaux de neurones ?
- Quel est le cadre optimal pour faire fonctionner un réseau de neurones ?
Prix
Pour les grands projets, le prix est critique. Mais vous pouvez difficilement estimer le coût réel. Par exemple:
- Le coût de Jetson était d'environ 99 $, mais avec la pénurie actuelle de puces, vous pouvez à peine l'acheter avec 250
- Un gros lot de planches coûte moins cher qu'un petit.
- Vous pouvez prototyper votre carte pour certaines puces, ce qui coûtera moins cher.
- Une périphérie supplémentaire augmentera le coût. Et ce sera différent pour les différents conseils.

Consommation d'énergie
Aussi, j'ai essayé de mesurer la consommation d'énergie.
Quelques notes importantes :
- Je ne peux pas mesurer la consommation d'énergie pour chaque carte en considération (certaines cartes que je donne à des amis, certaines cartes n'ont pas d'USB, etc.)
- J'essaie de mesurer seulement deux régimes : "inactif" et "en marche NN". Mais : certaines cartes ont une caméra interne, certaines cartes utilisent le wifi, certaines cartes ont une périphérie supplémentaire, etc. Je ne connecte aucune pièce supplémentaire, mais
- C'est la consommation électrique "moyenne". Je n'ai pas essayé de mesurer une consommation maximale

Résumé
Alors. J'espère que cela vous aidera à choisir votre planche. Mais c'est un tout petit article. Et permettez-moi d'en recommander quelques autres.
- Un bon article sur ce qu'est NPU et TPU, en quoi ils diffèrent et comment les calculs sont optimisés :https://blog.inten.to/hardware-for-deep-learning-part-4-asic-96a542fe6a81
- Bon article sur la comparaison des plateformes. Il y a certaines plates-formes que je n'ai pas examinées + des exemples de réseaux que je n'ai pas —https://qengineering.eu/deep-learning-with-raspberry-pi-and-alternatives.html
- Pas une comparaison très détaillée, mais certaines plates-formes passionnantes que je n'ai pas encore examinées -https://jfrog.com/connect/post/comparison-of-the-top-5-single-board-computers/
- Un article excellent et détaillé, mais pas beaucoup de planches —https://arxiv.org/pdf/2108.09457.pdf
- test de performance ncnn pour un tas de planches —https://github.com/nihui/ncnn-small-board