Inhaltsverzeichnis:

Google Vision API mit Raspberry Pi und Node - Gunook
Google Vision API mit Raspberry Pi und Node - Gunook

Video: Google Vision API mit Raspberry Pi und Node - Gunook

Video: Google Vision API mit Raspberry Pi und Node - Gunook
Video: Google Vision API with NodeJS | Step by Step Tutorial | Extract Text | Detect Landmark 2024, Juli
Anonim
Google Vision API mit Raspberry Pi und Node
Google Vision API mit Raspberry Pi und Node

Dies ist eine Einführung in die Verwendung der Google Vision API. Es verwendet Folgendes

  • Raspberry Pi Zero W
  • Arch Linux
  • KnotenJS
  • Internetverbindung

Sie kennen Arch-Linux nicht? Oder wie richte ich einen Raspberry Pi ein? Keine Sorge, ich habe eine Reihe von Artikeln geschrieben, die es ziemlich schnell abdecken. Es ist viel einfacher einzurichten, als Sie denken. Lassen Sie sich also nicht davon abbringen.

  • Installation von Arch Linux auf Raspberry Pi mit sofortigem WLAN-Zugang
  • i2c auf Raspberry Pi Zero W mit Arch Linux einrichten
  • NodeJS Project Space auf Raspberry Pi Zero einrichten W
  • Portierung des DRV8830 I2C-Motortreibercodes auf NodeJS
  • Bearbeiten von Raspberry Pi-Code aus der Ferne aus Visual Studio-Code
  • 1B1 Roboter

Titelbild von Andy Kelly auf Unsplash

Schritt 1: Holen Sie sich ein Google API-Konto

Leider ist die Google Vision API kein völlig kostenloser Dienst. Zum Zeitpunkt des Schreibens bietet ein API-Konto 1000 kostenlose Google Vision API-Aufrufe pro Monat. Dann sind es 1,00 USD für jeweils 1000 Anrufe.

Ich weiß, ich weiß, nicht schlecht. Aber das ist kein kommerzielles Projekt. Ich möchte es für einen rumpelnden kleinen Hausboten verwenden. Wenn meine Frau eine Rechnung über 40 US-Dollar bekommt, weil ich beschlossen habe, Bilder an die API zu streamen, ist es ein toter Bot. Wie auch immer, ich dachte, ich würde den Service immer noch für Kacke und Gekicher erkunden.

Um einen Kontobesuch zu erhalten

Google-Konsole

Und melden Sie sich mit einem bestehenden Google-Konto an oder erstellen Sie eines.

Schritt 2: Zahlungsinformationen eingeben

Zahlungsinformationen eingeben
Zahlungsinformationen eingeben

Nun, hier ist der beängstigende Teil, Sie müssen Ihre Zahlungsinformationen eingeben, bevor Sie loslegen können. Denken Sie daran, dass Ihnen bei mehr als 1000 Anrufen Gebühren berechnet werden. Auch hier werden Ihnen Gebühren berechnet, wenn Sie Ihre 1.000 kostenlosen Anrufe überschreiten. (Was? Das habe ich schon gesagt? Oh.)

Schritt 3: Öffnen Sie die API-Bibliothek

Öffnen Sie die API-Bibliothek
Öffnen Sie die API-Bibliothek

Nach dem Einrichten der Zahlungsinformationen müssen wir noch die Cloud Vision API aktivieren. Dies ist eine Sicherheitsfunktion, im Wesentlichen sind alle Google-APIs standardmäßig deaktiviert. Wenn also jemand versehentlich Zugriff erhält, wird nicht überall die Hölle losgelassen.

Schritt 4: Nach Google Vision API suchen

Nach Google Vision API suchen
Nach Google Vision API suchen

Suchen Sie nun nach Vision und klicken Sie auf die Schaltfläche. Hier sollte es einen grellen Enable-Button geben. Drück es.

Schritt 5: Navigieren Sie zu Anmeldeinformationen

Navigieren Sie zu Anmeldeinformationen
Navigieren Sie zu Anmeldeinformationen

Das letzte, was wir tun müssen, ist den API-Schlüssel zu erhalten. Dies muss in den API-Aufrufheadern für die Authentifizierung enthalten sein.

Lassen Sie niemanden Ihren API-Schlüssel erhalten. Und codieren Sie es nicht in Ihrem Code fest. Vertrauen Sie mir, das wird Sie beißen. Wenn dies versehentlich ins Web gepusht wird, wird ein Webcrawler es schnell finden und Sie zahlen Bajillionen von Dollar.

Lassen Sie sich von diesem Artikel ein wenig erschrecken.

Entwickler stellt AWS-Schlüssel auf Github

Okay! Holen wir uns Ihren API-Schlüssel. Suchen Sie den Abschnitt "Anmeldeinformationen"

Schritt 6: Google Vision API-Schlüssel erstellen

Google Vision API-Schlüssel erstellen
Google Vision API-Schlüssel erstellen
Google Vision API-Schlüssel erstellen
Google Vision API-Schlüssel erstellen

Sie werden wahrscheinlich keine erstellten Anmeldeinformationen sehen, da Sie wahrscheinlich noch keine erstellt haben.

Lassen Sie uns einen neuen API-Schlüssel erstellen. Ich würde den Schlüssel sinnvoll benennen und auf die Google Cloud API beschränken. Fahren Sie fort und kopieren Sie Ihren API-Schlüssel, da wir ihn im nächsten Schritt benötigen.

Schritt 7: Raspberry Pi Side Setup

Die oben aufgeführten Artikel helfen Ihnen bei der Einrichtung des Raspberry Pi für diesen Schritt. Aber wenn Sie die Dinge anders machen, sollte das meiste davon immer noch für Sie funktionieren. Wenn wir jedoch zu den Umgebungsvariablen kommen, wird das bei anderen Linux-Varianten anders sein.

Beginnen Sie mit SSH-Verbindung zu Ihrem Pi.

Und alle Pakete aktualisieren

sudo pacman -Syu

Wir erstellen eine Umgebungsvariable für die Google Cloud Vision API. Dies dient dazu, zu vermeiden, dass Ihr API-Schlüssel weiter unten in den Code hartcodiert wird. Das wird funktionieren, aber ich empfehle Ihnen dringend, bei mir zu bleiben und einen Umgebungsvariablen-Manager einzurichten, um die API zu handhaben.

Wechseln Sie zum Root-Benutzer, indem Sie eingeben

su

Geben Sie Ihr Passwort ein.

Als Nächstes fügen wir Ihren Google Vision API-Schlüssel als Umgebungsvariable zum

/etc/profil

Datei, dies sollte dazu führen, dass sie beim Booten initialisiert wird.

Typ, ersetzen

YOUR_API_KEY

mit Ihrem tatsächlichen API-Schlüssel.

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

Starten Sie nun den Pi neu, damit dies wirksam wird.

sudo neu starten

Melden Sie sich wieder an. Lassen Sie uns überprüfen, ob der API-Schlüssel geladen wird.

echo $GOOGLE_CLOUD_VISION_API_KEY

Wenn Ihr API-Schlüssel zurückgesendet wird, sollten Sie bereit sein.

Schritt 8: Projekteinrichtung

Projektaufbau
Projektaufbau

Lassen Sie uns ein Projektverzeichnis erstellen.

mkdir google-vis

cd google-vis

Lassen Sie uns nun ein neues Node-Projekt initialisieren.

npm init

Fühlen Sie sich frei, die Paketdetails anzupassen, wenn Sie möchten. Wenn Sie wie ich faul sind, drücken Sie die Eingabetaste, bis Sie wieder zur Eingabeaufforderung zurückkehren.

Fügen wir die benötigten Knotenbibliotheken hinzu. Es ist eins. Die Axios-Bibliothek, die asynchrone Webanforderungen ermöglicht.

npm axios

Bild
Bild

Lassen Sie uns außerdem ein Ressourcenverzeichnis erstellen und unser schönes Testbild herunterladen. Ah, Fräulein Hepburn!

Stellen Sie sicher, dass Sie im

Google-vis/Ressourcen

Projektverzeichnis beim Herunterladen des Bildes.

mkdir-Ressourcen

CD-Ressourcen wget

Schritt 9:

Erstellen Sie eine Datei im

gehen-vis

Verzeichnis namens

app.js

nano app.js

Fügen Sie dann den folgenden Code ein und speichern Sie die Datei, indem Sie STRG+O eingeben und mit STRG+X beenden.

//

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

const API_KEY = process.env. GOOGLE_CLOUD_VISION_API_KEY

if (!API_KEY) {

console.log('Kein API-Schlüssel bereitgestellt') }

Funktion base64_encode(Datei) {

// Binärdaten lesen var bitmap = fs.readFileSync(file); // Binärdaten in base64-codierte Zeichenfolge konvertieren 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 = {

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

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

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

Dieser Code greift die Umgebungsvariable des API-Schlüssels und erstellt daraus eine Programmkonstante.

const API_KEY = process.env. GOOGLE_CLOUD_VISION_API_KEY

Auf diese Weise vermeiden wir die Hartcodierung des API-Schlüssels.

Schritt 10:

Lassen Sie uns das Programm ausführen.

Knoten app.js

Wenn alles gut gelaufen ist, sollten Sie eine ähnliche Ausgabe wie unten erhalten

Daten: { Antworten:

Schritt 11: Und vieles mehr…

Dieser Artikel ist kurz - eine Starthilfe. Hier liegt jedoch viel Potenzial. Senden Sie beispielsweise Ihre eigenen Bilder mit der Raspberry Pi-Kamera

  • raspicam
  • Pi-Kamera

Bitte zögern Sie nicht, Fragen zur Verwendung der Ausgabe zu stellen.

Es gibt andere Anforderungen zur Funktionserkennung.

Google Vision API – Weitere Funktionen

Ich werde jedoch den Artikel beenden und dazu übergehen, meine Sichterkennungssysteme zu verwenden. Sobald ich den stochastischen Gradientenabstieg herausfinde.

Empfohlen: