Машинное зрение: установка, настройка и использование Google Cloud Vision на PHP

  • Tutorial
Машинное зрение

На сегодняшний день компания Google значительно продвинулась в области машинного обучения и искусственного интеллекта. Накопленные ресурсы, как информационные, так и финансовые, позволяют ей это сделать. Все остальные компании или просто энтузиасты имеют прекрасную возможность воспользоваться собранными знаниями, не имея в распоряжении подобных ресурсов. Благо, поисковик даёт такую возможность за определённую плату. Один из инструментов, которые предоставляет Google — машинное зрение, или Cloud Vision. Инструмент очень мощный, способный подробно анализировать цифровое изображение на предмет присутствующих на нём образов, вплоть до настроения героев фотографии. Ниже будет подробно описан процесс установки, настройки и использования Vision.

Про оплату


Google предоставляет Cloud Vision в аренду, взимая определенную сумму за каждую из доступных опций. Например, опция определения образов на изображении стоит $1.50 за 1000 фотографий. Примерно эту же сумму поисковик берёт за остальные возможности. Ознакомиться с полным прейскурантом можно по ссылке. Хорошая новость в том, что каждому новому аккаунту Google даёт $300 на счет. Это позволяет бесплатно попробовать машинное зрение от поисковика практически без ограничений.

Регистрация


Идем по ссылке, нажимаем Try It Free и заполняем регистрационную форму. Отдельно стоит упомянуть только то, что для работы потребуется ввести свои платежные данные, даже несмотря на 300 долларов кредита. В пределах этого лимита с вашей карты ничего списываться не будет. Данные карты необходимо дать реальные (как и контактный номер телефона), а вот название компании можно выдумать любое — это никто не проверяет. Если дать неверные контактные или платежные данные, придётся заново создавать платежный аккаунт, поэтому сразу давайте реальные данные.

Установка


Установка фреймворка через Composer:

composer require google/cloud-vision

Здесь отмечу, что при установке библиотеки Композеру может не хватить памяти, если у вас слабенький сервер. У меня, например, 1ГБ RAM, чего оказалось недостаточно. Из ситуации два выхода — либо расширить ресурсы сервера, либо установить на локальной машине (на большинстве современных PC больше 2ГБ, чего хватит с лихвой). После установки файлы библиотеки можно вручную перебросить на сервер и работать с фреймворком. Установить можно через WSL (Windows Subsystem for Linux), если вы на Windows, или через консоль Linux командой выше.

Второе замечание — версия PHP. Vision требует не ниже 7-ой. Обновитесь, если у вас старше.

Аутентификация


После установки нужно как-то идентифицировать свою установку, связав с аккаунтом Google. Это делается посредством ключа сервисного аккаунта, который сохраняется внутри файла на вашем сервере/локальной машине. Для создания ключа пройдите по ссылке:

https://console.cloud.google.com/apis/credentials/serviceaccountkey?_ga=2.81515287.-1059122667.1452437442

В единственном выпадающем списке выберите «Новый сервисный аккаунт», затем введите имя на латинице (любое, понятное вам). Никакую роль не выбирайте (не в этом случае). Нажмите «Создать» и смело пропустите предупреждение об отсутствии роли. Одновременно с этим произойдет загрузка файла ключа к вам на компьютер. Поместите файл в одну папку с установленным фреймворком (папку проекта). Это необязательно, но так проще. Фреймворк требует, чтобы путь к файлу был конкретно обозначен в системе. Для этого создадим переменную окружения следующим образом:

export GOOGLE_APPLICATION_CREDENTIALS="/var/www/myproject/myproject_service.json"

Путь к файлу у вас будет отличаться — не забудьте изменить.

Использование


Все настроено, самое время попробовать Cloud Vision в деле. Создайте php-файл со следующим содержанием:

# включаем в наш код автозагрузчик установленного фреймворка
require __DIR__ . '/vendor/autoload.php';

# задаем использование конкретно библиотеки для анализа свойств изображений
use Google\Cloud\Vision\V1\ImageAnnotatorClient;

# создаем экземпляр библиотеки
$imageAnnotator = new ImageAnnotatorClient();

# путь к файлу, который мы будем "показывать" машинному зрению
$fileName = 'test/data/cat.jpg';

# загружаем файл
$image = file_get_contents($fileName);

# "рассматриваем" загруженное изображение и выводим его атрибуты, или "лейблы"
$response = $imageAnnotator->labelDetection($image);
$labels = $response->getLabelAnnotations();

if ($labels) {
    echo("Атрибуты изображения:" . PHP_EOL);
    foreach ($labels as $label) {
        echo($label->getDescription() . PHP_EOL);
    }
} else {
    echo('Атрибутов не найдено' . PHP_EOL);
}

Весь процесс описан в комментариях к коду. Сначала включаем в код фреймворк, создаем его экземпляр, загружаем в код картинку для парсинга. Ее нужно будет предварительно положить в ту папку, путь к которой вы обозначите. Далее код выведет по очереди все атрибуты, что определит у данного изображения. К примеру, это может быть «cat», «white fur», «green grass» и другое — всё, что увидит на картинке машинное зрение Google Cloud Vision. И на этом, в общем-то, всё. Данную информацию вы можете сохранить и использовать по своему усмотрению. Более изощренные варианты работы с Vision я опишу в других статьях.
Поделиться публикацией

Комментарии 3

    0
    Тобиш Google Cloud Vision позволяет обойти гугл капчу :)?
      0
      Теоретически — да. Но, думаю что на практике они это продумали.
      0
      Ох как )) Как раз на одном из проектов сейчас работаю с GCV. Написал код, который распознаёт чеки (без QR-кодов) и извлекает из них нужные мне данные для дальнейшей обработки. Собственно фунционал уже готов, но русский хоть и поддерживается, местами — коряво. Хотя, может быть это и в самих чеках дело… Но в целом тема интересная, есть уже задумки для будущих проектов

      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

      Самое читаемое