Sommario:

API di Google Vision con Raspberry Pi e Node: 11 passaggi
API di Google Vision con Raspberry Pi e Node: 11 passaggi

Video: API di Google Vision con Raspberry Pi e Node: 11 passaggi

Video: API di Google Vision con Raspberry Pi e Node: 11 passaggi
Video: I Ran ChatGPT on a Raspberry Pi Locally! 2024, Novembre
Anonim
API di Google Vision con Raspberry Pi e Node
API di Google Vision con Raspberry Pi e Node

Questa è una guida introduttiva all'utilizzo dell'API di Google Vision. Utilizza quanto segue

  • Raspberry Pi Zero W
  • Arch Linux
  • NodoJS
  • connessione internet

Non conosci Arch Linux? O come configurare un Raspberry Pi? Nessun problema, ho scritto una serie di articoli che lo trattano abbastanza rapidamente. È molto più facile da configurare di quanto pensi. Quindi non lasciarti dissuadere.

  • Installazione di Arch Linux su Raspberry Pi con accesso WiFi immediato
  • Configura i2c su Raspberry Pi Zero W usando Arch Linux
  • Imposta lo spazio del progetto NodeJS su Raspberry Pi Zero W
  • Porting del codice driver motore I2C DRV8830 su NodeJS
  • Modifica del codice Raspberry Pi in remoto dal codice di Visual Studio
  • 1B1 Robot

Foto di copertina di Andy Kelly su Unsplash

Passaggio 1: ottieni un account API di Google

Purtroppo, Google Vision API non è un servizio completamente gratuito. Al momento della scrittura, un account API fornisce 1000 chiamate API di Google Vision gratuite al mese. Quindi, è $ 1,00 per ogni 1000 chiamate.

Lo so, lo so, non troppo male. Ma questo non è un progetto commerciale. Voglio usarlo per un piccolo bot casalingo. Se mia moglie riceve una fattura di $ 40 perché ho deciso di trasmettere immagini in streaming all'API, beh, sarà un bot morto. Ad ogni modo, ho pensato di esplorare ancora il servizio per la cacca e le risatine.

Per ottenere un account visita

Google Console

E accedi con un account Google esistente o creane uno.

Passaggio 2: inserisci i dati di fatturazione

Inserisci i dati di fatturazione
Inserisci i dati di fatturazione

Ora, ecco la parte spaventosa, devi inserire i tuoi dati di fatturazione prima di iniziare. Ricorda, ti verrà addebitato l'importo se superi le 1000 chiamate. Anche in questo caso, se superi le 1.000 chiamate gratuite ti verrà addebitato. (Cosa? L'ho già detto? Oh.)

Passaggio 3: aprire la libreria API

Apri la libreria API
Apri la libreria API

Dopo aver impostato le informazioni di fatturazione, dobbiamo ancora abilitare l'API Cloud Vision. Questa è una funzione di sicurezza, in sostanza, tutte le API di Google sono disabilitate per impostazione predefinita, quindi se qualcuno accede accidentalmente non scatena l'inferno ovunque.

Passaggio 4: cerca l'API di Google Vision

Cerca l'API di Google Vision
Cerca l'API di Google Vision

Ora cerca Vision e fai clic sul pulsante. Qui dovrebbe esserci un vistoso pulsante Abilita. Premilo.

Passaggio 5: passare a Credenziali

Vai a Credenziali
Vai a Credenziali

L'ultima cosa che dobbiamo fare è ottenere la chiave API. Questo deve essere incluso nelle intestazioni delle chiamate API per l'autenticazione.

Non permettere a nessuno di ottenere la tua chiave API. E non codificarlo nel tuo codice. Credimi, questo ti morderà. Se questo viene accidentalmente inserito nel Web, un web crawler lo troverà rapidamente e pagherai miliardi di dollari.

Lascia che questo articolo ti spaventi un po'.

Lo sviluppatore mette le chiavi AWS su Github

Ok! Andiamo a prendere la tua chiave API. Trova la sezione Credenziali

Passaggio 6: crea la chiave API di Google Vision

Crea chiave API di Google Vision
Crea chiave API di Google Vision
Crea chiave API di Google Vision
Crea chiave API di Google Vision

Probabilmente non vedrai le credenziali create, poiché probabilmente non ne hai ancora create.

Creiamo una nuova chiave API. Definirei la chiave qualcosa di significativo e la limiterei solo all'API di Google Cloud. Vai avanti e copia la tua chiave API, poiché ne avremo bisogno nel passaggio successivo.

Passaggio 7: installazione laterale Raspberry Pi

Gli articoli elencati nella parte superiore di questo ti aiuteranno a configurare il Raspberry Pi per questo passaggio. Ma se stai facendo le cose in modo diverso, la maggior parte di questo dovrebbe comunque funzionare per te. Tuttavia, quando arriviamo alla parte delle variabili d'ambiente, sarà diverso per altre versioni di Linux.

Inizia con SSH nel tuo Pi.

E aggiorna tutti i pacchetti

sudo pacman -Syu

Creeremo una variabile di ambiente per l'API Google Cloud Vision. Questo per evitare l'hardcoding della tua chiave API nel codice più in basso. Funzionerà, ma ti consiglio vivamente di restare con me e configurare un gestore di variabili d'ambiente per gestire l'API.

Passa all'utente root digitando

su

Inserisci la tua password.

La prossima cosa che facciamo è aggiungere la tua chiave API di Google Vision come variabile di ambiente al

/etc/profilo

file, questo dovrebbe causare l'inizializzazione all'avvio.

Tipo, sostituzione

LA TUA_API_KEY

con la tua chiave API effettiva.

echo 'esporta GOOGLE_CLOUD_VISION_API_KEY=YOUR_API_KEY' >> /etc/profile

Ora riavvia il Pi in modo che abbia effetto.

sudo reboot

Accedi di nuovo. Controlliamo che stia caricando la chiave API.

echo $GOOGLE_CLOUD_VISION_API_KEY

Se la tua chiave API viene restituita, dovresti essere a posto.

Passaggio 8: configurazione del progetto

Configurazione del progetto
Configurazione del progetto

Creiamo una directory di progetto.

mkdir google-vis

cd google-vis

Ora inizializziamo un nuovo progetto Node.

npm init

Sentiti libero di personalizzare i dettagli del pacchetto, se lo desideri. Se sei pigro come me, premi invio finché non torni al prompt dei comandi.

Aggiungiamo le librerie Node necessarie. È uno. La libreria axios, che abilita le richieste web asincrone.

npm assio

Immagine
Immagine

Inoltre, creiamo una directory di risorse e scarichiamo la nostra adorabile immagine di prova. Ah, signorina Hepburn!

Assicurati di essere nel

google-vis/risorse

directory del progetto durante il download dell'immagine.

risorse mkdir

risorse cd wget

Passaggio 9:

Crea un file nel

andare a vedere

directory chiamata

app.js

nano app.js

Quindi incolla il codice qui sotto e salva il file digitando CTRL+O ed uscendo usando CTRL+X.

//

const const axios = require('axios'); const fs = require('fs');

const API_KEY = process.env. GOOGLE_CLOUD_VISION_API_KEY

if (!API_KEY) {

console.log('Nessuna chiave API fornita') }

funzione base64_encode(file) {

// legge i dati binari var bitmap = fs.readFileSync(file); // converte i dati binari in una stringa codificata in base64 return new Buffer(bitmap).toString('base64'); } var base64str = base64_encode('./resources/audrey.jpg');

const apiCall = `https://vision.googleapis.com/v1/images:annotate?key=${API_KEY}`;

const reqObj = {

richieste:[{ "image":{ "content": base64str }, "features":[{ "type":"LABEL_DETECTION", "maxResults":5 }, { "type":"FACE_DETECTION", "maxResults": 5 }, { "type": "IMAGE_PROPERTIES", "maxResults":5 }] }] }

axios.post(apiCall, reqObj).then((risposta) => {

console.log(risposta); console.log(JSON.stringify(response.data.responses, undefined, 4)); }).catch((e) => { console.log(e.response); });

Questo codice acquisisce la variabile di ambiente della chiave API e crea una costante di programma da essa.

const API_KEY = process.env. GOOGLE_CLOUD_VISION_API_KEY

Questo è il modo in cui evitiamo l'hardcoding della chiave API.

Passaggio 10:

Eseguiamo il programma.

nodo app.js

Se tutto è andato bene dovresti ottenere un output simile a quello sotto

data: { responses:

Passaggio 11: e molto altro ancora…

Questo articolo è breve: un inizio di salto. Tuttavia, c'è un sacco di potenziale qui. Ad esempio, inviando le tue immagini utilizzando la fotocamera Raspberry Pi

  • raspicam
  • pi-camera

Non esitate a porre qualsiasi domanda su come utilizzare l'output.

Ci sono altre richieste di rilevamento delle funzionalità.

API di Google Vision -- Altre funzioni

Tuttavia, finirò l'articolo e passerò al mio passaggio ai sistemi di rilevamento della vista. Non appena capisco la discesa del gradiente stocastico.

Consigliato: