Tudo sobre o Acelerador USB Google Coral
Num dos nossos vídeos do YouTube sobre inteligência artificial, um comentador escreveu que não estava muito interessado numa caixa misteriosa de IA. Isso inspirou-me a escrever um artigo para desvendar o mistério. Por isso, aqui está tudo o que precisa de saber sobre o acelerador USB Google Coral.
O acelerador Coral USB foi concebido principalmente para aplicações de IA de baixo consumo e de ponta.
É adequado para tarefas como análise de imagem e vídeo, deteção de objectos e reconhecimento de voz em dispositivos como o Raspberry Pi ou computadores portáteis.
Visão geral
Em suma, o Google Coral USB Accelerator é um processador que utiliza uma Unidade de Processamento Tensorial (TPU), que é um circuito integrado que é realmente bom a fazer multiplicação e adição de matrizes.
A multiplicação de matrizes é o material necessário para construir redes neuronais.
E, definitivamente, não irá muito longe se tentar construir redes neuronais apenas com o seu Raspberry Pi.
Como tal, o acelerador adiciona outro processador que é dedicado especificamente a fazer a álgebra linear necessária para a aprendizagem automática.
Como provavelmente sabe, a ideia subjacente à aprendizagem automática consiste em desenvolver modelos que analisam e aprendem padrões a partir de um conjunto de dados. Este conjunto de dados tem vários inputs e outputs correspondentes. Depois de treinados, estes modelos podem receber novos dados, sintetizar os padrões aprendidos e gerar resultados ou previsões adequadas.
As TPUs funcionam muito mais rapidamente e com muito menos energia do que as CPUs para a aprendizagem automática, porque não executam outros programas e não precisam de aceder à memória partilhada.
A TPU no Acelerador Coral USB utiliza o TensorFlow Lite, que é uma versão modificada para dispositivos mais pequenos.
Utilizar o acelerador USB Coral
O que é especialmente fantástico é o facto de tornar acessível o desenvolvimento da IA.
Começar é muito fácil.
Na verdade, tudo o que precisas é de um Google Coral USB Accelerator (obviamente) e um computador com uma porta USB livre e Python 3.5 ou superior.
E vale a pena mencionar que funciona com Mac, Windows e Linux (especificamente, sistemas operativos baseados em Debian, como o Ubuntu ou o Raspberry Pi OS). Por isso, de certeza que vai conseguir pô-lo a funcionar.
Quando o configurar, tem de decidir se quer que funcione com a frequência de relógio máxima ou com a frequência de relógio reduzida. Obviamente, a frequência de relógio máxima é mais potente, mas também vai consumir mais energia. E pode ficar incrivelmente quente.
Executar um modelo de reconhecimento de imagem
No Sítio Web do Google CoralNo site da Coral, eles oferecem um teste maravilhoso para mostrar como o acelerador Coral USB funciona. No seu exemplo, é capaz de reconhecer diferentes aves com uma precisão notável.
Então aqui está como executar o modelo de reconhecimento de imagem no seu Raspberry Pi. Isto funcionará perfeitamente bem com a frequência de relógio reduzida.
Não carregue já no acelerador.
Em primeiro lugar, é necessário ir ao terminal e digitar o seguinte código para adicionar o repositório Edge TPU:
echo "deb https://packages.cloud.google.com/apt coral-edgetpu-stable main" | sudo tee /etc/apt/sources.list.d/coral-edgetpu.list
curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
sudo apt-get update
Em seguida, instale o tempo de execução:
sudo apt-get install libedgetpu1-std
Agora podes ligar o acelerador para que tudo esteja sincronizado. Depois de o ter ligado, precisa de instalar o PyCoral:
sudo apt-get install python3-pycoral
E agora pode pôr o modelo a funcionar. Primeiro, descarrega-se o código:
mkdir coral && cd coral
git clone https://github.com/google-coral/pycoral.git
cd pycoral
Em seguida, execute o seguinte:
bash examples/install_requirements.sh classify_image.py
E, finalmente, executa-se o modelo:
python3 examples/classify_image.py \
--model test_data/mobilenet_v2_1.0_224_inat_bird_quant_edgetpu.tflite \
--labels test_data/inat_bird_labels.txt \
--input test_data/parrot.jpg
O resultado é mais ou menos assim:
Pode ver que a entrada era "parrot.jpg" e o modelo leu-a corretamente como uma arara-vermelha, com 0,75 de confiança na precisão.
Encontrei uma fotografia de um cardeal do Norte e analisei-a através do modelo e eis o resultado.
Como pode ver, deu uma leitura super precisa com 0,91 de confiança.
Então, quis ver o que aconteceria se lhe desse uma fotografia de um gato.
Embora eu compreenda perfeitamente porque é que ele pensou que o gato era uma coruja de chifres grandes, fiquei surpreendido com o seu nível de confiança.
Tentei que reconhecesse fotografias de pessoas e determinasse de que aves se tratava, mas infelizmente não colaborou.
Mas sinta-se à vontade para experimentar e ver o que consegue tirar daí. Comente abaixo os resultados!
Conclusão
Aqui está. Embora o seu exterior ultra-elegante possa dar uma certa sensação de misticismo, o Google Coral USB Accelerator não é uma caixa misteriosa.
É um processador potente que pode levar a IA aos dispositivos periféricos.
Portanto, quer se dedique à IoT, à robótica ou tenha uma ideia para integrar a IA nos dispositivos do dia a dia, o acelerador Coral USB é o seu bilhete de entrada. Embora eu tenha dado o exemplo de um modelo de reconhecimento de imagem, o acelerador pode ir muito mais longe - reconhecimento de vídeo, deteção de objectos, aprendizagem por transferência no dispositivo, etc.
Também temos um AIY Maker Kit que torna tudo isto possível - veja este vídeo:
Se estiver interessado em IA, pode consultar a nossa Introdução à Inteligência Artificial.
E se estiver interessado em criar alguns projectos de IA, pode consultar alguns projectos que utilizam a IA em a nossa série de Projectos Paragon.
O que está a planear fazer com o acelerador?
lubie jak w artykule są przykłady z życia wzięte. dobry fachowy artykuł 🙂
Dzięki!
hola, tens ideia se esta placa USB serve para acelerar um PC que tenha instalado algum GenAI como ollama ? com algum modelo libre como llama 3.1 ou Gemma? usando ollama ? gracias
"O comentador escreveu que não estava assim tão interessado numa caixa de IA misteriosa" - suponho que o comentador expressou quaisquer razões específicas.
As razões mais preocupantes são a falta de proveniência dos resultados do ML e a incapacidade de os fornecer para possíveis regulamentos.
O local onde se executa um ML não fornece nada para este efeito.
correção:
"O autor do comentário escreveu que não estava muito interessado numa caixa de IA misteriosa" - suponho que o autor do comentário não expressou quaisquer razões específicas.
As razões mais preocupantes são a falta de proveniência dos resultados do ML e a incapacidade de os fornecer para possíveis regulamentos.
O local onde se executa um ML não fornece nada para este efeito.
Ponto de vista interessante, David.
а что быстреее: GPU ou TPU???
Для искусственного интеллекта, TPU. Безусловно, быстрее.
Seria ótimo se não se desligasse ao fim de uma hora e fosse necessário reiniciar ou desligar e ligar a ficha para voltar a funcionar.
Посмотрите опенсорсный fragata NVR, особенно последнюю beta3