Оглавление:

API Google Vision с использованием Raspberry Pi и Node: 11 шагов
API Google Vision с использованием Raspberry Pi и Node: 11 шагов

Видео: API Google Vision с использованием Raspberry Pi и Node: 11 шагов

Видео: API Google Vision с использованием Raspberry Pi и Node: 11 шагов
Видео: Google Cloud Vision API in Android Apps 2024, Июль
Anonim
API Google Vision с использованием Raspberry Pi и Node
API Google Vision с использованием Raspberry Pi и Node

Это начальное руководство по использованию Google Vision API. Он использует следующие

  • Малина Pi Zero W
  • Arch Linux
  • NodeJS
  • интернет-соединение

Не знаете Arch Linux? Или как настроить Raspberry Pi? Не беспокойтесь, я написал серию статей, в которых довольно быстро рассказывается об этом. Настроить намного проще, чем вы думаете. Так что не позволяйте этому вас отговаривать.

  • Установка Arch Linux на Raspberry Pi с немедленным доступом к Wi-Fi
  • Настройка i2c на Raspberry Pi Zero W с использованием Arch Linux
  • Настройка пространства проекта NodeJS на Raspberry Pi Zero W
  • Перенос кода драйвера двигателя DRV8830 I2C на NodeJS
  • Редактирование кода Raspberry Pi удаленно из кода Visual Studio
  • 1B1 Робот

Фотография на обложке Энди Келли на Unsplash

Шаг 1. Получите учетную запись Google API

К сожалению, Google Vision API не является полностью бесплатным сервисом. На момент написания в аккаунте API предусмотрено 1000 бесплатных вызовов API Google Vision в месяц. Тогда это 1 доллар США за каждые 1000 звонков.

Знаю, знаю, неплохо. Но это не коммерческий проект. Я хочу использовать его для маленького домашнего бота. Если моя жена получит счет на 40 долларов за то, что я решил передавать изображения в API, что ж, это будет мертвый бот. Во всяком случае, я подумал, что все равно изучу сервис для хихиканья.

Чтобы получить аккаунт, посетите

Консоль Google

И войдите в систему с существующей учетной записью Google или создайте ее.

Шаг 2. Введите платежную информацию

Введите платежную информацию
Введите платежную информацию

А теперь самое страшное: вы должны ввести свою платежную информацию, прежде чем начать. Помните, что с вас будет взиматься плата, если вы сделаете более 1000 звонков. Опять же, если вы превысите 1000 бесплатных звонков, с вас будет взиматься плата. (Что? Я это уже сказал? О.)

Шаг 3. Откройте библиотеку API

Откройте библиотеку API
Откройте библиотеку API

После настройки платежной информации нам все еще нужно включить Cloud Vision API. Это функция безопасности, по сути, все API Google отключены по умолчанию, поэтому, если кто-то случайно получит доступ, он не повсюду устроит ад.

Шаг 4. Найдите Google Vision API

Найдите Google Vision API
Найдите Google Vision API

Теперь найдите Vision и нажмите кнопку. Здесь должна быть яркая кнопка Enable. Нажми.

Шаг 5: перейдите к учетным данным

Перейти к учетным данным
Перейти к учетным данным

Последнее, что нам нужно сделать, это получить ключ API. Это необходимо включить в заголовки вызовов API для аутентификации.

Не позволяйте никому получить ваш ключ API. И не закодируйте это жестко в своем коде. Поверьте, это вас укусит. Если это случайно окажется в сети, поисковый робот быстро найдет его, и вы заплатите миллионы долларов.

Пусть эта статья вас немного напугает.

Разработчик размещает ключи AWS на Github

Ok! Пойдем, получим ваш API-ключ. Найдите раздел "Учетные данные"

Шаг 6. Создайте ключ API Google Vision

Создать ключ API Google Vision
Создать ключ API Google Vision
Создать ключ API Google Vision
Создать ключ API Google Vision

Вы, вероятно, не увидите никаких созданных учетных данных, так как вы, вероятно, еще не создали их.

Создадим новый ключ API. Я бы назвал ключ чем-нибудь значимым и ограничил его только API Google Cloud. Идите вперед и скопируйте свой ключ API, так как он нам понадобится на следующем шаге.

Шаг 7: боковая настройка Raspberry Pi

Статьи, перечисленные в верхней части этой статьи, помогут вам настроить Raspberry Pi для этого шага. Но если вы делаете что-то по-другому, большая часть этого все равно должна работать на вас. Однако, когда мы перейдем к части, касающейся переменных среды, для других разновидностей Linux все будет по-другому.

Начните с SSH-подключения к вашему Pi.

И обновите все пакеты

sudo pacman -Syu

Мы собираемся создать переменную среды для Google Cloud Vision API. Это сделано для того, чтобы избежать жесткого кодирования вашего ключа API в коде ниже. Это сработает, но я настоятельно рекомендую вам придерживаться меня и настроить диспетчер переменных среды для обработки API.

Переключитесь на пользователя root, набрав

вс

Введите ваш пароль.

Следующее, что мы делаем, это добавляем ваш ключ API Google Vision в качестве переменной среды в

/ etc / profile

файл, это должно привести к его инициализации при загрузке.

Типа, замена

ВАШ_API_KEY

с вашим фактическим ключом API.

echo 'экспорт GOOGLE_CLOUD_VISION_API_KEY = YOUR_API_KEY' >> / etc / profile

Теперь перезагрузите Pi, чтобы все вступило в силу.

перезагрузка sudo

Войдите снова. Давайте проверим, загружает ли он ключ API.

echo $ GOOGLE_CLOUD_VISION_API_KEY

Если ваш ключ API возвращается эхом, все готово.

Шаг 8: Настройка проекта

Настройка проекта
Настройка проекта

Создадим каталог проекта.

mkdir google-vis

cd google-vis

Теперь давайте инициализируем новый проект Node.

npm init

Не стесняйтесь настраивать детали пакета, если хотите. Если вы ленивы, как я, нажимайте Enter, пока не вернетесь в командную строку.

Добавим необходимые библиотеки узлов. Это один. Библиотека axios, которая позволяет выполнять асинхронные веб-запросы.

npm axios

Изображение
Изображение

Кроме того, давайте создадим каталог ресурсов и загрузим наш прекрасный тестовый образ. Ах, мисс Хепберн!

Убедитесь, что вы в

google-vis / resources

каталог проекта при загрузке изображения.

ресурсы mkdir

cd-ресурсы wget

Шаг 9:

Создайте файл в

гость

каталог называется

app.js

нано app.js

Затем вставьте приведенный ниже код и сохраните файл, набрав CTRL + O и выйдя с помощью CTRL + X.

//

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

const API_KEY = process.env. GOOGLE_CLOUD_VISION_API_KEY

if (! API_KEY) {

console.log ('Ключ API не предоставлен')}

function base64_encode (файл) {

// считываем двоичные данные var bitmap = fs.readFileSync (file); // преобразование двоичных данных в строку с кодировкой 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 = {

запросы: [{"image": {"content": base64str}, "features": [{"type": "LABEL_DETECTION", "maxResults": 5}, {"type»: "FACE_DETECTION", "maxResults": 5}, {"тип": "IMAGE_PROPERTIES", "maxResults": 5}]}]}

axios.post (apiCall, reqObj).then ((ответ) => {

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

Этот код получает ключевую переменную среды API и создает из нее программную константу.

const API_KEY = process.env. GOOGLE_CLOUD_VISION_API_KEY

Таким образом мы избегаем жесткого программирования ключа API.

Шаг 10:

Запустим программу.

узел app.js

Если все прошло хорошо, вы должны получить результат, аналогичный приведенному ниже.

data: {ответы:

Шаг 11: и многое другое …

Эта статья короткая - начало скачку. Однако здесь есть большой потенциал. Например, отправка собственных изображений с помощью камеры Raspberry Pi.

  • распикам
  • пи-камера

Не стесняйтесь задавать любые вопросы о том, как использовать вывод.

Есть и другие запросы на обнаружение функций.

Google Vision API - другие функции

Однако я собираюсь закончить статью и перейду к рассмотрению систем обнаружения зрения. Как только разберусь со стохастическим градиентным спуском.

Рекомендуемые: