Inhoudsopgave:

Google Vision API met Raspberry Pi en Node: 11 stappen
Google Vision API met Raspberry Pi en Node: 11 stappen

Video: Google Vision API met Raspberry Pi en Node: 11 stappen

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

Dit is een startgids voor het gebruik van de Google Vision API. Het gebruikt het volgende:

  • Raspberry Pi Zero W
  • Arch Linux
  • NodeJS
  • internetverbinding

Kent u Arch Linux niet? Of hoe stel je een Raspberry Pi in? Geen zorgen, ik heb een reeks artikelen geschreven die het vrij snel behandelen. Het is veel gemakkelijker in te stellen dan je denkt. Laat je er dus niet door weerhouden.

  • Arch Linux installeren op Raspberry Pi met onmiddellijke wifi-toegang
  • Stel i2c in op Raspberry Pi Zero W met Arch Linux
  • NodeJS-projectruimte instellen op Raspberry Pi Zero W
  • DRV8830 I2C-motorstuurprogrammacode overzetten naar NodeJS
  • Raspberry Pi-code op afstand bewerken vanuit Visual Studio Code
  • 1B1 Robot

Omslagfoto door Andy Kelly op Unsplash

Stap 1: Maak een Google API-account aan

Helaas is Google Vision API geen volledig gratis service. Op het moment van schrijven biedt een API-account 1000 gratis Google Vision API-aanroepen per maand. Dan is het $ 1,00 voor elke 1000 oproepen.

Ik weet het, ik weet het, niet zo erg. Maar dit is geen commercieel project. Ik wil het gebruiken voor een prutsende kleine huisrobot. Als mijn vrouw een rekening krijgt van $40 omdat ik heb besloten om afbeeldingen naar de API te streamen, dan is het een dode bot. Hoe dan ook, ik dacht dat ik nog steeds de dienst voor poep-en-giechelen zou verkennen.

Bezoek voor een account

Google-console

En log in met een bestaand Google-account of maak er een aan.

Stap 2: Voer factuurgegevens in

Factuurgegevens invoeren
Factuurgegevens invoeren

Nu, hier is het enge deel, je moet je factuurgegevens invoeren voordat je aan de slag gaat. Houd er rekening mee dat er kosten in rekening worden gebracht als u meer dan 1000 gesprekken voert. Nogmaals, als u uw 1.000 gratis oproepen overschrijdt, worden er kosten in rekening gebracht. (Wat? Dat zei ik al? Oh.)

Stap 3: Open de API-bibliotheek

Open de API-bibliotheek
Open de API-bibliotheek

Na het instellen van factureringsgegevens moeten we nog steeds de Cloud Vision API inschakelen. Dit is een beveiligingsfunctie, in wezen zijn alle Google API's standaard uitgeschakeld, dus als iemand per ongeluk toegang krijgt, ontketenen ze niet overal de hel.

Stap 4: Zoek naar Google Vision API

Zoeken naar Google Vision API
Zoeken naar Google Vision API

Zoek nu naar Vision en klik op de knop. Hier zou een opvallende knop Inschakelen moeten zijn. Druk erop.

Stap 5: Navigeer naar Inloggegevens

Navigeer naar Inloggegevens
Navigeer naar Inloggegevens

Het laatste wat we moeten doen is de API-sleutel ophalen. Dit moet worden opgenomen in de API-aanroepheaders voor authenticatie.

Laat niemand uw API-sleutel krijgen. En niet hardcoderen in uw code. Geloof me, dit zal je bijten. Als dit per ongeluk op het web wordt gepusht, zal een webcrawler het snel vinden en betaalt u miljarden dollars.

Laat je door dit artikel een beetje schrikken.

Ontwikkelaar zet AWS-sleutels op Github

OK! Laten we uw API-sleutel gaan halen. Zoek het gedeelte Inloggegevens

Stap 6: Google Vision API-sleutel maken

Google Vision API-sleutel maken
Google Vision API-sleutel maken
Google Vision API-sleutel maken
Google Vision API-sleutel maken

U zult waarschijnlijk geen inloggegevens zien die zijn gemaakt, omdat u er waarschijnlijk nog geen hebt gemaakt.

Laten we een nieuwe API-sleutel maken. Ik zou de sleutel een betekenisvolle naam geven en deze beperken tot alleen de Google Cloud API. Ga je gang en kopieer je API-sleutel, want die hebben we nodig in de volgende stap.

Stap 7: Raspberry Pi Side Setup

De artikelen die bovenaan deze pagina worden vermeld, helpen u bij het instellen van de Raspberry Pi voor deze stap. Maar als u de dingen anders doet, zou het meeste hiervan nog steeds voor u moeten werken. Wanneer we echter bij het gedeelte over omgevingsvariabelen komen, zal dat voor andere Linux-smaken anders zijn.

Begin met SSH'en in je Pi.

En update alle pakketten

sudo pacman -Syu

We gaan een omgevingsvariabele maken voor de Google Cloud Vision API. Dit is om te voorkomen dat u uw API-sleutel hardcodeert in de code verderop. Dat zal werken, maar ik raad je ten zeerste aan om bij mij te blijven en een omgevingsvariabelenbeheer in te stellen om de API af te handelen.

Schakel over naar de rootgebruiker door te typen

zo

Voer uw wachtwoord in.

Het volgende dat we doen, is uw Google Vision API-sleutel als omgevingsvariabele toevoegen aan de

/etc/profiel

bestand, dit zou ervoor moeten zorgen dat het bij het opstarten wordt geïnitialiseerd.

Type, vervangen

UW_API_KEY

met uw werkelijke API-sleutel.

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

Start nu de Pi opnieuw op, zodat dat van kracht wordt.

sudo reboot

Log opnieuw in. Laten we controleren of de API-sleutel wordt geladen.

echo $GOOGLE_CLOUD_VISION_API_KEY

Als uw API-sleutel wordt teruggestuurd, zou u klaar moeten zijn om te gaan.

Stap 8: Projectconfiguratie

Projectconfiguratie
Projectconfiguratie

Laten we een projectmap maken.

mkdir google-vis

cd google-vis

Laten we nu een nieuw Node-project initialiseren.

npm init

Voel je vrij om de pakketdetails aan te passen als je wilt. Als je lui bent zoals ik, druk dan op enter totdat je terug bent bij de opdrachtprompt.

Laten we de benodigde Node-bibliotheken toevoegen. Het is een. De axios-bibliotheek, die asynchrone webverzoeken mogelijk maakt.

npm axios

Afbeelding
Afbeelding

Laten we ook een bronnenmap maken en onze mooie testafbeelding downloaden. Ach, juffrouw Hepburn!

Zorg dat je in de

google-vis/resources

projectmap bij het downloaden van de afbeelding.

mkdir-bronnen

cd-bronnen wget

Stap 9:

Maak een bestand in de

go-vis

map genaamd

app.js

nano app.js

Plak vervolgens de onderstaande code en sla het bestand op door CTRL+O te typen en af te sluiten met CTRL+X.

//

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

const API_KEY = process.env. GOOGLE_CLOUD_VISION_API_KEY

als (!API_KEY) {

console.log('Geen API-sleutel opgegeven') }

functie base64_encode(bestand) {

// lees binaire gegevens var bitmap = fs.readFileSync (bestand); // converteer binaire gegevens naar base64-gecodeerde string retourneer nieuwe 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 = {

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

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

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

Deze code pakt de omgevingsvariabele van de API-sleutel en maakt er een programmaconstante van.

const API_KEY = process.env. GOOGLE_CLOUD_VISION_API_KEY

Op deze manier vermijden we het hardcoderen van de API-sleutel.

Stap 10:

Laten we het programma uitvoeren.

node app.js

Als alles goed is gegaan, zou je een vergelijkbare output moeten krijgen als hieronder:

data: { reacties:

Stap 11: En nog veel meer…

Dit artikel is kort - een vliegende start. Er is hier echter veel potentieel. U kunt bijvoorbeeld uw eigen afbeeldingen verzenden met de Raspberry Pi-camera

  • raspicam
  • pi-camera

Stel gerust vragen over het gebruik van de output.

Er zijn andere verzoeken om functiedetectie.

Google Vision API -- Andere functies

Ik ga het artikel echter beëindigen en ga verder met het rollen van mijn visuele detectiesystemen. Zodra ik de stochastische gradiëntafdaling weet.

Aanbevolen: