Innehållsförteckning:

Google Vision API med Raspberry Pi och Node: 11 steg
Google Vision API med Raspberry Pi och Node: 11 steg

Video: Google Vision API med Raspberry Pi och Node: 11 steg

Video: Google Vision API med Raspberry Pi och Node: 11 steg
Video: Real-time License Plate Recognition with YOLOv7 + OCR in Google Colab GPU | ANPR/ALPR Tutorial 2023 2024, November
Anonim
Google Vision API med Raspberry Pi och Node
Google Vision API med Raspberry Pi och Node

Detta är en startguide för att använda Google Vision API. Det använder följande

  • Raspberry Pi Zero W
  • Arch Linux
  • NodeJS
  • Internet anslutning

Känner du inte Arch Linux? Eller hur installerar jag en Raspberry Pi? Oroa dig inte, jag har skrivit en serie artiklar som täcker det ganska snabbt. Det är mycket lättare att installera än du tror. Så låt det inte avskräcka dig.

  • Installera Arch Linux på Raspberry Pi med omedelbar WiFi -åtkomst
  • Installera i2c på Raspberry Pi Zero W med Arch Linux
  • Konfigurera NodeJS Project Space på Raspberry Pi Zero W
  • Portar DRV8830 I2C -motordrivrutinkod till NodeJS
  • Redigera Raspberry Pi -koden på distans från Visual Studio Code
  • 1B1 Robot

Omslagsfoto av Andy Kelly på Unsplash

Steg 1: Skaffa ett Google API -konto

Tyvärr är Google Vision API inte en helt gratis tjänst. I skrivande stund ger ett API -konto 1000 gratis Google Vision API -samtal i månaden. Sedan är det 1,00 dollar för varje 1000 samtal.

Jag vet, jag vet, inte så illa. Men det här är inte ett kommersiellt projekt. Jag vill använda den för en puttering liten husbot. Om min fru får en räkning för $ 40 eftersom jag bestämde mig för att strömma bilder till API: t, blir det en död bot. Hur som helst, jag trodde att jag fortfarande skulle utforska tjänsten för poo-och-fniss.

För att få ett konto besök

Google Console

Och logga in med ett befintligt Google-konto eller skapa ett.

Steg 2: Ange faktureringsinformation

Ange faktureringsinformation
Ange faktureringsinformation

Nu, här är den skrämmande delen, du måste ange din faktureringsinformation innan du sätter igång. Kom ihåg att du debiteras om du går över 1000 samtal. Återigen, om du överskrider dina 1 000 gratis samtal debiteras du. (Vad? Jag sa det redan? Åh.)

Steg 3: Öppna API -biblioteket

Öppna API -biblioteket
Öppna API -biblioteket

Efter att ha konfigurerat faktureringsinformation behöver vi fortfarande aktivera Cloud Vision API. Detta är en säkerhetsfunktion, i huvudsak är alla Googles API: er inaktiverade som standard, så om någon av misstag får åtkomst släpper de inte loss helvetet överallt.

Steg 4: Sök efter Google Vision API

Sök efter Google Vision API
Sök efter Google Vision API

Sök nu efter Vision och klicka på knappen. Här borde det finnas en bländande Aktiveringsknapp. Tryck på den.

Steg 5: Navigera till Credentials

Navigera till referenser
Navigera till referenser

Det sista vi behöver göra är att skaffa API -nyckeln. Detta måste inkluderas i API -samtalsrubrikerna för autentisering.

Låt inte någon få din API -nyckel. Och inte hårdkoda det i din kod. Lita på mig, det här kommer att bita dig. Om detta av misstag skjuts upp på webben hittar en webcrawler det snabbt och du kommer att betala miljarder dollar.

Låt den här artikeln skrämma dig lite.

Utvecklare lägger AWS -nycklar på Github

Ok! Låt oss hämta din API -nyckel. Hitta avsnittet referenser

Steg 6: Skapa Google Vision API -nyckel

Skapa Google Vision API -nyckel
Skapa Google Vision API -nyckel
Skapa Google Vision API -nyckel
Skapa Google Vision API -nyckel

Du kommer förmodligen inte att se några inloggningsuppgifter skapade, eftersom du förmodligen inte har skapat några än.

Låt oss skapa en ny API -nyckel. Jag skulle döpa nyckeln till något meningsfullt och begränsa den till endast Google Cloud API. Fortsätt och kopiera din API -nyckel, eftersom vi kommer att behöva den i nästa steg.

Steg 7: Raspberry Pi Side Setup

Artiklarna som listas högst upp i den här hjälper dig att konfigurera Raspberry Pi för detta steg. Men om du gör saker annorlunda borde det mesta av detta fortfarande fungera för dig. Men när vi kommer till delen om miljövariabler kommer det att vara annorlunda för andra Linux -smaker.

Börja med att SSH'a in i din Pi.

Och uppdatera alla paket

sudo pacman -Syu

Vi ska skapa en miljövariabel för Google Cloud Vision API. Detta för att undvika hårdkodning av din API -nyckel i koden längre ner. Det kommer att fungera, men jag rekommenderar starkt att du håller dig till mig och konfigurerar en miljövariabelhanterare för att hantera API: et.

Byt till rotanvändaren genom att skriva

su

Ange ditt lösenord.

Nästa sak vi gör är att lägga till din Google Vision API -nyckel som en miljövariabel till

/etc/profile

fil, bör detta orsaka att den initialiseras vid start.

Typ, byt ut

YOUR_API_KEY

med din faktiska API -nyckel.

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

Starta om Pi nu så att det träder i kraft.

sudo starta om

Logga in igen. Låt oss kontrollera att API -nyckeln laddas.

eko $ GOOGLE_CLOUD_VISION_API_KEY

Om din API -nyckel ekas tillbaka, bör du vara bra att gå.

Steg 8: Projektinställning

Projektuppsättning
Projektuppsättning

Låt oss skapa en projektkatalog.

mkdir google-vis

cd google-vis

Låt oss nu initiera ett nytt Node -projekt.

npm init

Anpassa gärna paketet om du vill. Om du är lat som jag, tryck på enter tills du är tillbaka till kommandotolken.

Låt oss lägga till de nodbibliotek som behövs. Det är en. Axios -biblioteket, som möjliggör asynkroniserade webbförfrågningar.

npm axios

Bild
Bild

Låt oss också skapa en resurskatalog och ladda ner vår härliga testbild. Åh, fröken Hepburn!

Se till att du är i

google-vis/resurser

projektkatalog när du laddar ner bilden.

mkdir -resurser

cd -resurser wget

Steg 9:

Skapa en fil i

go-vis

katalogen kallas

app.js

nano app.js

Klistra sedan in koden nedan och spara filen genom att skriva CTRL+O och avsluta med CTRL+X.

//

const const axios = require ('axios'); const fs = kräver ('fs');

const API_KEY = process.env. GOOGLE_CLOUD_VISION_API_KEY

om (! API_KEY) {

console.log ('Ingen API -nyckel tillhandahålls')}

function base64_encode (fil) {

// läs binär data var bitmap = fs.readFileSync (fil); // konvertera binär data till base64 kodad sträng returnera ny buffert (bitmapp).toString ('base64'); } var base64str = base64_encode ('./ resources/audrey.jpg');

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

const reqObj = {

förfrågningar: [{"image": {"content": base64str}, "features": [{"type": "LABEL_DETECTION", "maxResults": 5}, {"type": "FACE_DETECTION", "maxResults": 5}, {"type": "IMAGE_PROPERTIES", "maxResults": 5}]}]}}

axios.post (apiCall, reqObj). sedan ((svar) => {

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

Den här koden tar tag i API -nyckelns miljövariabel och skapar en programkonstant från den.

const API_KEY = process.env. GOOGLE_CLOUD_VISION_API_KEY

Så här undviker vi hårdkodning av API -nyckeln.

Steg 10:

Låt oss köra programmet.

nod app.js

Om allt gick bra borde du få liknande utdata som nedan

data: {response:

Steg 11: Och så mycket mer …

Denna artikel är kort-en start. Det finns dock mycket potential här. Skicka till exempel dina egna bilder med Raspberry Pi -kameran

  • raspicam
  • pi-kamera

Ställ gärna frågor om hur du använder utdata.

Det finns andra begäranden om funktionsdetektering.

Google Vision API - Andra funktioner

Men jag kommer att avsluta artikeln och fortsätta att rulla mina system för syndetektering. Så fort jag räknar ut stokastisk nedgång.

Rekommenderad: