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

На сьогоднішній день компанія 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 командою вище.

Читайте також  Генератор коду для Laravel — на введення RAML, на висновок JSON-API

Друге зауваження — версія 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 GoogleCloudVisionV1ImageAnnotatorClient;

# створюємо екземпляр бібліотеки
$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 я опишу в інших статтях.

Читайте також  Глава Apple заявив, що китайські шпигунські чіпи в серверах Supermicro — вигадка

Степан Лютий

Обожнюю технології в сучасному світі. Хоча частенько і замислююся над тим, як далеко вони нас заведуть. Не те, щоб я прям і знаюся на ядрах, пікселях, коллайдерах і інших парсеках. Просто приходжу в захват від того, що може в творчому пориві вигадати людський розум.

You may also like...

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *