Spisu treści:

Interfejs API Google Vision przy użyciu Raspberry Pi i Node: 11 kroków
Interfejs API Google Vision przy użyciu Raspberry Pi i Node: 11 kroków

Wideo: Interfejs API Google Vision przy użyciu Raspberry Pi i Node: 11 kroków

Wideo: Interfejs API Google Vision przy użyciu Raspberry Pi i Node: 11 kroków
Wideo: Node-RED na Raspberry Pi 2024, Listopad
Anonim
Interfejs API Google Vision przy użyciu Raspberry Pi i Node
Interfejs API Google Vision przy użyciu Raspberry Pi i Node

To jest przewodnik początkowy dotyczący korzystania z interfejsu Google Vision API. Wykorzystuje następujące

  • Raspberry Pi Zero W
  • Arch Linux
  • NodeJS
  • połączenie internetowe

Nie znasz Arch Linuksa? Lub jak skonfigurować Raspberry Pi? Bez obaw, napisałem serię artykułów, które dość szybko to opisują. Konfiguracja jest o wiele łatwiejsza niż myślisz. Więc niech cię to nie zniechęci.

  • Instalowanie Arch Linux na Raspberry Pi z natychmiastowym dostępem do WiFi
  • Skonfiguruj i2c na Raspberry Pi Zero W przy użyciu Arch Linux
  • Konfiguracja przestrzeni projektowej NodeJS na Raspberry Pi Zero W
  • Przenoszenie kodu sterownika silnika DRV8830 I2C do NodeJS
  • Zdalna edycja kodu Raspberry Pi z Visual Studio Code
  • 1B1 Robot

Zdjęcie na okładce autorstwa Andy'ego Kelly'ego na Unsplash

Krok 1: Załóż konto Google API

Niestety Google Vision API nie jest usługą całkowicie bezpłatną. W momencie pisania konta API zapewnia 1000 bezpłatnych wywołań Google Vision API miesięcznie. Następnie jest to 1,00 USD za każde 1000 połączeń.

Wiem, wiem, nie tak źle. Ale to nie jest projekt komercyjny. Chcę go użyć jako miotającego małego robota domowego. Jeśli moja żona dostanie rachunek za 40 USD, ponieważ zdecydowałem się przesyłać obrazy do API, cóż, będzie to martwy bot. W każdym razie, pomyślałem, że nadal zbadam usługę kupa i chichotu.

Aby uzyskać wizytę na koncie

Konsola Google

I zaloguj się na istniejące konto Google lub utwórz je.

Krok 2: Wprowadź informacje rozliczeniowe

Wprowadź informacje rozliczeniowe
Wprowadź informacje rozliczeniowe

A teraz przerażająca część, musisz wprowadzić informacje rozliczeniowe, zanim zaczniesz. Pamiętaj, że zostaniesz obciążony kosztami, jeśli wykonasz ponad 1000 połączeń. Ponownie, jeśli przekroczysz 1000 bezpłatnych połączeń, zostaniesz obciążony opłatą. (Co? Już to powiedziałem? Och.)

Krok 3: Otwórz bibliotekę API

Otwórz bibliotekę API
Otwórz bibliotekę API

Po skonfigurowaniu informacji rozliczeniowych nadal musimy włączyć Cloud Vision API. Jest to funkcja bezpieczeństwa, zasadniczo wszystkie interfejsy API Google są domyślnie wyłączone, więc jeśli ktoś przypadkowo uzyska dostęp, nie rozpęta wszędzie piekła.

Krok 4: Wyszukaj Google Vision API

Wyszukaj Google Vision API
Wyszukaj Google Vision API

Teraz wyszukaj Vision i kliknij przycisk. Tutaj powinien być rażący przycisk Włącz. Naciśnij.

Krok 5: Przejdź do poświadczeń

Przejdź do poświadczeń
Przejdź do poświadczeń

Ostatnią rzeczą, którą musimy zrobić, to zdobyć klucz API. Musi to być zawarte w nagłówkach wywołań interfejsu API w celu uwierzytelnienia.

Nie pozwól nikomu zdobyć Twojego klucza API. I nie koduj tego na stałe w swoim kodzie. Zaufaj mi, to cię ugryzie. Jeśli przypadkowo zostanie on wprowadzony do sieci, robot internetowy szybko go znajdzie, a Ty zapłacisz bajilliony dolarów.

Niech ten artykuł Cię trochę przestraszy.

Deweloper umieszcza klucze AWS na Github

Ok! Chodźmy po twój klucz API. Znajdź sekcję Poświadczenia

Krok 6: Utwórz klucz Google Vision API

Utwórz klucz Google Vision API
Utwórz klucz Google Vision API
Utwórz klucz Google Vision API
Utwórz klucz Google Vision API

Prawdopodobnie nie zobaczysz żadnych utworzonych poświadczeń, ponieważ prawdopodobnie jeszcze ich nie utworzyłeś.

Utwórzmy nowy klucz API. Nazwałbym klucz coś znaczącego i ograniczyłbym go tylko do Google Cloud API. Śmiało skopiuj swój klucz API, ponieważ będziemy go potrzebować w następnym kroku.

Krok 7: Konfiguracja po stronie Raspberry Pi

Artykuły wymienione na górze tego pomogą Ci skonfigurować Raspberry Pi na tym etapie. Ale jeśli robisz coś inaczej, większość z tego powinna nadal działać dla ciebie. Jednak kiedy przejdziemy do części o zmiennych środowiskowych, będzie to wyglądać inaczej dla innych smaków Linuksa.

Zacznij od SSH w swoim Pi.

I zaktualizuj wszystkie pakiety

sudo pacman -Syu

Zamierzamy utworzyć zmienną środowiskową dla interfejsu Google Cloud Vision API. Ma to na celu uniknięcie zakodowania klucza API w kodzie poniżej. To zadziała, ale gorąco polecam, abyś został ze mną i skonfigurował menedżera zmiennych środowiskowych do obsługi API.

Przełącz się na użytkownika root, wpisując

su

Wprowadź hasło.

Następną rzeczą, którą robimy, jest dodanie klucza interfejsu API Google Vision jako zmiennej środowiskowej do

/etc/profil

pliku, powinno to spowodować jego inicjalizację podczas rozruchu.

Wpisz, zastępując

TWÓJ_KLUCZ API

z Twoim rzeczywistym kluczem API.

echo 'eksportuj GOOGLE_CLOUD_VISION_API_KEY=TWÓJ_KLUCZ_API' >> /etc/profile

Teraz zrestartuj Pi, aby odniosło skutek.

ponowne uruchomienie sudo

Zaloguj się ponownie. Sprawdźmy, czy ładuje klucz API.

echo $GOOGLE_CLOUD_VISION_API_KEY

Jeśli twój klucz API zostanie powtórzony, powinieneś być gotowy.

Krok 8: Konfiguracja projektu

Konfiguracja projektu
Konfiguracja projektu

Stwórzmy katalog projektu.

mkdir google-vis

cd google-vis

Teraz zainicjujmy nowy projekt Node.

początek npm

Jeśli chcesz, możesz dostosować szczegóły pakietu. Jeśli jesteś leniwy jak ja, naciśnij Enter, aż wrócisz do wiersza poleceń.

Dodajmy potrzebne biblioteki Node. To jeden. Biblioteka axios, która umożliwia asynchroniczne żądania internetowe.

aksjos npm

Obraz
Obraz

Stwórzmy również katalog zasobów i pobierzmy nasz piękny obraz testowy. Ach, panno Hepburn!

Upewnij się, że jesteś w

google-vis/zasoby

katalog projektu podczas pobierania obrazu.

zasoby mkdir

zasoby cd wget

Krok 9:

Utwórz plik w

iść vis

katalog o nazwie

app.js

nano app.js

Następnie wklej poniższy kod i zapisz plik, wpisując CTRL+O i wychodząc za pomocą CTRL+X.

//

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

const API_KEY = process.env. GOOGLE_CLOUD_VISION_API_KEY

jeśli (!API_KEY) {

console.log('Nie podano klucza API') }

funkcja base64_encode (plik) {

// odczyt danych binarnych var bitmap = fs.readFileSync(file); // przekonwertuj dane binarne na łańcuch zakodowany w 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 = {

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

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

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

Ten kod pobiera zmienną środowiskową klucza API i tworzy z niej stałą programu.

const API_KEY = process.env. GOOGLE_CLOUD_VISION_API_KEY

W ten sposób unikamy zakodowania klucza API.

Krok 10:

Uruchommy program.

węzeł app.js

Jeśli wszystko poszło dobrze, powinieneś otrzymać podobny wynik jak poniżej

data: { responses:

Krok 11: I wiele więcej…

Ten artykuł jest krótki – początek. Jest tu jednak duży potencjał. Na przykład wysyłanie własnych obrazów za pomocą kamery Raspberry Pi

  • raspicam
  • pi-kamera

Zachęcamy do zadawania pytań dotyczących sposobu korzystania z danych wyjściowych.

Istnieją inne prośby o wykrycie funkcji.

Interfejs API Google Vision - inne funkcje

Jednak zamierzam zakończyć artykuł i przejdę do wprowadzenia moich systemów detekcji wizyjnej. Jak tylko wymyślę stochastyczne zejście gradientowe.

Zalecana: