Innholdsfortegnelse:

Google Vision API ved hjelp av Raspberry Pi og Node: 11 trinn
Google Vision API ved hjelp av Raspberry Pi og Node: 11 trinn

Video: Google Vision API ved hjelp av Raspberry Pi og Node: 11 trinn

Video: Google Vision API ved hjelp av Raspberry Pi og Node: 11 trinn
Video: ComfyUI Tutorial - How to Install ComfyUI on Windows, RunPod & Google Colab | Stable Diffusion SDXL 2024, November
Anonim
Google Vision API ved hjelp av Raspberry Pi og Node
Google Vision API ved hjelp av Raspberry Pi og Node

Dette er en startguide for bruk av Google Vision API. Den bruker følgende

  • Raspberry Pi Zero W
  • Arch Linux
  • NodeJS
  • Internett-tilkobling

Kjenner du ikke Arch Linux? Eller hvordan sette opp en Raspberry Pi? Ingen bekymringer, jeg har skrevet en serie artikler som dekker det ganske raskt. Det er mye lettere å sette opp enn du tror. Så ikke la det fraråde deg.

  • Installere Arch Linux på Raspberry Pi med umiddelbar WiFi -tilgang
  • Sett opp i2c på Raspberry Pi Zero W ved hjelp av Arch Linux
  • Sett opp NodeJS Project Space på Raspberry Pi Zero W
  • Porterer DRV8830 I2C motordriverkode til NodeJS
  • Redigere Raspberry Pi -koden eksternt fra Visual Studio Code
  • 1B1 Robot

Forsidebilde av Andy Kelly på Unsplash

Trinn 1: Få en Google API -konto

Dessverre er ikke Google Vision API en helt gratis tjeneste. I skrivende stund gir en API -konto 1000 gratis Google Vision API -samtaler i måneden. Deretter er det $ 1,00 for hver 1000 samtaler.

Jeg vet, jeg vet, ikke så ille. Men dette er ikke et kommersielt prosjekt. Jeg har lyst til å bruke den til en putrende liten husbot. Hvis min kone får en regning på $ 40 fordi jeg bestemte meg for å streame bilder til API, vel, det blir en død bot. Uansett, jeg trodde jeg fortsatt ville utforske tjenesten for poo-og-fnis.

For å få et kontobesøk

Google -konsoll

Logg deg på med en eksisterende Google-konto eller opprett en.

Trinn 2: Skriv inn faktureringsinformasjon

Skriv inn faktureringsinformasjon
Skriv inn faktureringsinformasjon

Nå, her er den skumle delen, du må skrive inn faktureringsinformasjonen din før du går. Husk at du blir belastet hvis du går over 1000 samtaler. Igjen, hvis du overskrider 1 000 gratis samtaler, blir du belastet. (Hva? Jeg sa det allerede? Oh.)

Trinn 3: Åpne API -biblioteket

Åpne API -biblioteket
Åpne API -biblioteket

Etter at vi har konfigurert faktureringsinformasjon, trenger vi fortsatt å aktivere Cloud Vision API. Dette er en sikkerhetsfunksjon, i hovedsak er alle Google API -er deaktivert som standard, så hvis noen ved et uhell får tilgang, slipper de ikke løs helvete overalt.

Trinn 4: Søk etter Google Vision API

Søk etter Google Vision API
Søk etter Google Vision API

Søk nå etter Vision og klikk på knappen. Her bør det være en tydelig Aktiver -knapp. Press den.

Trinn 5: Naviger til legitimasjon

Naviger til legitimasjon
Naviger til legitimasjon

Det siste vi må gjøre er å få API -nøkkelen. Dette må inkluderes i API -overskriftene for godkjenning.

Ikke la noen få API -nøkkelen din. Og ikke hardkod det i koden din. Stol på meg, dette vil bite deg. Hvis dette ved et uhell blir presset inn på nettet, vil en webcrawler finne det raskt, og du vil betale bajillions dollar.

La denne artikkelen skremme deg litt.

Utvikler setter AWS -nøkler på Github

Ok! La oss hente API -nøkkelen din. Finn delen Legitimasjon

Trinn 6: Lag Google Vision API Key

Lag Google Vision API Key
Lag Google Vision API Key
Lag Google Vision API Key
Lag Google Vision API Key

Du vil sannsynligvis ikke se noen legitimasjon opprettet, siden du sannsynligvis ikke har opprettet noen ennå.

La oss lage en ny API -nøkkel. Jeg vil nevne nøkkelen noe meningsfullt og begrense den til bare Google Cloud API. Fortsett og kopier API -nøkkelen din, da vi trenger den i neste trinn.

Trinn 7: Raspberry Pi Sideoppsett

Artiklene som er oppført øverst i denne vil hjelpe deg med å sette opp Raspberry Pi for dette trinnet. Men hvis du gjør ting annerledes, bør det meste av dette fortsatt fungere for deg. Når vi kommer til delen om miljøvariabler, vil det imidlertid være annerledes for andre Linux -smaker.

Start med å SSH'e inn i din Pi.

Og oppdater alle pakkene

sudo pacman -Syu

Vi skal lage en miljøvariabel for Google Cloud Vision API. Dette er for å unngå hardkoding av API -nøkkelen i koden lenger ned. Det vil fungere, men jeg anbefaler på det sterkeste at du holder deg til meg og setter opp en miljøvariabel manager for å håndtere API.

Bytt til rotbrukeren ved å skrive

su

Skriv inn passordet ditt.

Det neste vi gjør er å legge til Google Vision API -nøkkelen din som en miljøvariabel i

/etc/profile

fil, bør dette føre til at den blir intialisert ved oppstart.

Type, erstatte

YOUR_API_KEY

med din faktiske API -nøkkel.

ekko 'eksporter GOOGLE_CLOUD_VISION_API_KEY = YOUR_API_KEY' >> /etc /profile

Start Pi nå på nytt, så det trer i kraft.

sudo omstart

Logg deg på igjen. La oss sjekke om den laster API -nøkkelen.

ekko $ GOOGLE_CLOUD_VISION_API_KEY

Hvis API -nøkkelen din ekko tilbake, bør du være god til å gå.

Trinn 8: Prosjektoppsett

Prosjektoppsett
Prosjektoppsett

La oss lage en prosjektkatalog.

mkdir google-vis

cd google-vis

La oss nå initialisere et nytt Node -prosjekt.

npm init

Tilpass gjerne pakkedetaljene hvis du vil. Hvis du er lat som meg, trykker du på enter til du er tilbake til ledeteksten.

La oss legge til de nødvendige nodbibliotekene. Det er en. Axios -biblioteket, som muliggjør asynkroniserte webforespørsler.

npm axios

Bilde
Bilde

La oss også lage en ressurskatalog og laste ned vårt flotte testbilde. Ah, savner Hepburn!

Sørg for at du er i

google-vis/ressurser

prosjektkatalog når du laster ned bildet.

mkdir ressurser

cd -ressurser wget

Trinn 9:

Lag en fil i

gå-vis

katalogen heter

app.js

nano app.js

Lim deretter inn koden nedenfor og lagre filen ved å skrive CTRL+O og gå ut med CTRL+X.

//

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

const API_KEY = process.env. GOOGLE_CLOUD_VISION_API_KEY

hvis (! API_KEY) {

console.log ('Ingen API -nøkkel levert')}

function base64_encode (fil) {

// lese binære data var bitmap = fs.readFileSync (fil); // konvertere binære data til base64 -kodet streng returnere ny 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 = {

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

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

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

Denne koden griper API -nøkkelmiljøvariabelen og lager en programkonstant fra den.

const API_KEY = process.env. GOOGLE_CLOUD_VISION_API_KEY

Slik unngår vi hardkoding av API -nøkkelen.

Trinn 10:

La oss kjøre programmet.

node app.js

Hvis alt gikk bra, bør du få lignende utgang som nedenfor

data: {response:

Trinn 11: Og så mye mer …

Denne artikkelen er kort-en start. Imidlertid er det mye potensial her. For eksempel å sende dine egne bilder ved hjelp av Raspberry Pi -kameraet

  • raspicam
  • pi-kamera

Still gjerne spørsmål om hvordan du bruker utgangen.

Det er andre forespørsler om funksjonsdeteksjon.

Google Vision API - Andre funksjoner

Imidlertid kommer jeg til å avslutte artikkelen og gå videre til å rulle mine systemer for syndeteksjon. Så snart jeg finner ut av stokastisk nedstigning.

Anbefalt: