Escolhendo a placa de Visão Computacional em 2022
Escolher uma plataforma para trabalhar com Visão Computacional no Edge é difícil. Existem dezenas de placas no mercado. Se você ler sobre um deles, você quer usá-lo. Mas quando você tenta - não é tão bom.

Tentei comparar várias pranchas baratas do mercado . E não apenas em termos de velocidade. Tentei comparar as plataformas por sua “usabilidade”. Como seria fácil exportar redes, como é bom o suporte. E como é fácil trabalhar.
Este artigo é o resultado da comparação. Mas se você quiser ver mais sobre as pranchas, tem um vídeo diferente que fiz sobre cada prancha (com comparação completa):
- Google Coral
- Khadas Vim3
- ESP32 — (O vídeo foi filmado antes de eu fazer este guia. Mas é próximo dele, então vou colar aqui. E um adicional —https://youtu.be/ms6uoZr-4dc)
- Raspberry Pi
- Myriad X (NCS 2, Profundidade Ai (OAK,OAK-1,OAK-D,etc))
- Rock Pi 3A (RK3568, etc)(e um adicional —https://youtu.be/NHVPxPlY2lIsobre desenvolvimento)
- Jetson Nano
- Hailo-8
- Placa K210 ( aproximadamente )
- Placa MAIX-II ( aproximadamente )
E agora encomendei um m5stack (com processador Sigmstar SSD202D) para testar (já testado, o vídeo será lançado em breve).
Além disso, tenho uma lista que pretendo encomendar e testar mais cedo ou mais tarde e adicionar a este artigo ou ao próximo:
- DEBIX Modelo A — Deve ser muito semelhante ao Vim3, mas com um sistema diferente
- K510 Dual RSIC-V64 — A nova versão do k210 é uma aceleração significativa em relação à plataforma antiga. Sistema mais conveniente
- Horizon X3 Pi AI Board — Uma placa com uma grande comunidade voltada mais para o ROS. Mas há alguma contrapartida NPU a bordo, o que torna a plataforma interessante para testar.
- VisionFive RISC-V — Uma placa com dois módulos de aceleração (NVDLA Engine e NPU). Quando pensei em encomendá-lo há três meses, fui interrompido porque alguns tópicos no fórum oficial deixaram claro que nenhum deles poderia ser executado ainda ( NNE não está funcionando , NVDLA não está funcionando ). Acho que ainda não mudou nada.
- Orange Pi 5 — Este é um Rockchip RK3588S. Mas a Orange Pi tem sua infraestrutura bastante avançada; seria interessante comparar com Rock Pi. Mas provavelmente será semelhante. Também seria interessante testar o Orange 4B, que é similar.
- Sobre o RockChip, seria interessante testar algo baseado no RK1808 . Existem muitas pranchas baratas por aí (como esta ). E há até alguns com câmeras.
- KNEO STEM — módulo NPU para o qual não há comentários.
- Sophon BM1880 — também, uma placa empolgante sem muitos comentários.
- Xilinx Kria — é uma placa FPGA. Eu continuo querendo me recompor e experimentar. A última vez que tentei portar matemática para um FPGA
Vamos!
Aqui está a mesa final com todos os tabuleiros:
https://docs.google.com/spreadsheets/d/1BMj8WImysOSuiT-6O3g15gqHnYF-pUGUhi8VmhhAat4/edit?usp=sharing
Mas deixe-me explicar todos os critérios primeiro.
Quão fácil de trabalhar
Quão fácil é piscar? Demorou meio dia para piscar o Jetson TK1. Para RPi — meia hora. Firmware é o ponto onde começa sua comunicação com a placa após o unboxing.
Fácil de trabalhar. Quando eu estava trabalhando com o DaVinci — a depuração demorava séculos. Hoje todos os processos são geralmente muito fáceis. Vamos falar sobre eles.
Linux convencional . Eu gosto quando você pode trabalhar com o Ubuntu normal. E fico triste quando não há Linux regular no quadro. Vamos verificar isso.
Suporte da comunidade. Grande comunidade — poucos problemas e muitas soluções. Vamos verificar.

Na minha opinião, a melhor placa é RPi e NCS. Mas eles não são totalmente placas de Visão Computacional. Coral e Jetsons são bons, mas não excelentes.
Modelos de suporte
Normalmente, os NPUs não são muito amigáveis em termos de conversão de modelo. Vamos falar sobre modelos.
Zoológico de Modelos Oficiais . Quais modelos são suportados?
Zoológico de modelos não oficiais . O que a comunidade dá a este conselho?
Quão fácil é converter o modelo aleatório? Por que preciso dos dois primeiros pontos se posso exportar alguma coisa?!
Fácil de depurar problemas com a conversão. Se a exportação não for conforme o planejado.

Como você pode ver, três boas pranchas e uma quase boa.
Prontidão de produção / Prontidão de projetos de hobby / Construção de placa
Algumas informações adicionais podem permitir que você decida se deve escolher a prancha.
Velocidade do processador ? Muitos sistemas de visão computacional requerem bons processadores. Vamos verificá-los. Para testá-lo, usarei a ferramenta stress-ng (Sudo apt-get install stress-ng) no Linux PC para fazer uma comparação.
Peças mecânicas , construção, estabilidade de temperatura.
Fácil de comprar. Devo apertar o botão “Contato para solicitar o preço”?… Ou esperar alguns meses na fila?
Pinos para conexão externa . Serei capaz de manipular a realidade?

Como você pode ver, todas as placas parecem quase iguais, exceto as placas sem Linux.
Teste rápido
É difícil fazer um entendimento cúmplice de “quão rápido o tabuleiro” por 2–3 pontos na comparação de desempenho. É melhor olhar as partes de “Teste de velocidade” dos vídeos e verificar as informações aqui . Diferentes placas têm diferentes estruturas de inferência, diferentes parâmetros e diferentes quantizações.
Eu uso o tamanho do lote = 1 em todos os lugares. E esta não é a melhor estratégia. Por exemplo, para Jetson, aumentará o desempenho.

Mas, na minha opinião, esses testes podem responder a algumas perguntas:
- Qual é a velocidade da placa para pequenas redes neurais?
- Qual é a velocidade da placa para as grandes redes neurais?
- Qual é a estrutura ideal para executar uma rede neural?
Preço
Para grandes projetos, o preço é crítico. Mas você dificilmente pode estimar o custo real. Por exemplo:
- O Jetson custou cerca de 99$, mas com a atual escassez de chips, você mal consegue comprá-lo com 250
- Uma grande remessa de pranchas custa menos do que uma pequena.
- Você pode prototipar sua placa para alguns chips, que custarão menos.
- Periferia adicional aumentará o custo. E será diferente para as diferentes placas.

Consumo de energia
Além disso, tentei medir o consumo de energia.
Algumas notas importantes:
- Não consigo medir o consumo de energia para cada placa em consideração (algumas placas eu dou para amigos, algumas placas não têm USB, etc)
- Eu tento medir apenas dois regimes: “idle” e “running NN”. Mas: algumas placas têm uma câmera interna, algumas placas usam wi-fi, algumas placas têm periferia adicional, etc. Não conecto nenhuma peça adicional, mas
- É o consumo de energia “médio”. Eu não tentei medir um consumo máximo

Resumo
Então. Espero que isso ajude você a escolher sua prancha. Mas é um artigo bem pequeno. E deixe-me recomendar mais alguns.
- Um bom artigo sobre o que é NPU e TPU, como eles diferem e como a matemática é otimizada:https://blog.inten.to/hardware-for-deep-learning-part-4-asic-96a542fe6a81
- Bom artigo sobre comparação de plataformas. Existem algumas plataformas que não revisei + exemplos de redes que não tenho —https://qengineering.eu/deep-learning-with-raspberry-pi-and-alternatives.html
- Não é uma comparação muito detalhada, mas algumas plataformas interessantes que ainda não revisei -https://jfrog.com/connect/post/comparison-of-the-top-5-single-board-computers/
- Um artigo excelente e detalhado, mas não muitos conselhos —https://arxiv.org/pdf/2108.09457.pdf
- teste de desempenho ncnn para várias placas —https://github.com/nihui/ncnn-small-board