Запустит ли Shutterstock автоматическое ключевание?


У Shutterstock есть API, через который фотосток предоставляет доступ к своей базе контента и к некоторым сервисам. В него входит Shutterstock Computer Vision API, эта часть API связана с распознаванием изображений с помощью машинного обучения (искусственного интеллекта), на его основе, например, работает обратный поиск по изображениям, когда вы загружаете одно изображение, а Шаттерсток подбирает похожие из своей базы. Не так давно фотосток запустил еще и поиск похожих видео.

Еще у Shutterstock в Computer Vision API есть сервис подбора ключевых слов по изображению, то есть вы загружаете какое-то изображение, сервис распознает, что на нем изображено и подбирает соответствующие ключевые слова.

Теоретически на этом можно сделать сервис для авторов, которые не хотят заморачиваться с ключевыми словами, по автоматическому добавлению ключевых слов.

Я решил взять несколько изображений и проверить насколько хорошо искусственный интеллект Шаттерстока подбирает ключи.

Возьмем, например, горячую тему коронавируса

Вот такие ключи выдал алгоритм к этой фотографии:

«medicine»,»doctor»,»woman»,»health»,»medical»,»people»,»equipment» ,»professional»,»technology»,»hospital»,»care»,»white»,»person»,»clinic» ,»female»,»science»,»hand»,»mask»,»young»,»uniform»,»work»,»scientist» ,»laboratory»,»girl»,»research»,»treatment»,»blue»,»experiment»,»nurse», «occupation»

Алгоритм неплохо определил, что изображено на фотографии и подобрал хорошие общие слова, даже mask добавил и понял, что тема изображения относится к медицине, но нет важных частных ключевых слов таких как: virus, coronavirus, blood, test, tube, sample, epidemic и так далее. Если бы он научился читать тексты на фотографии, то работал бы четче.

Давайте попробуем вектор

https://www.shutterstock.com/image-vector/online-delivery-service-concept-order-trackingdelivery-1505134388

Вот такие слова выдал алгоритм:

«business»,»vector»,»illustration»,»flat»,»concept»,»design»,»background», «banner»,»isometric»,»online»,»icon»,»graphic»,»technology»,»web», «internet»,»set»,»website»,»marketing»,»symbol»,»smartphone»,»3d»,»app», «service»,»mobile»,»template»,»transportation»,»advertising»,»phone», «travel»,»computer»

Как видим опять есть попадание по общим словам и даже есть слова transportation, но много слов на мой взгляд лишних, а некоторых важных слов, типа delivery или augmented reality нет. Опять же, если бы алгоритм умел читать, то слова подбирал бы точнее.

Давайте попробуем еще один вектор

https://www.shutterstock.com/image-vector/nurse-cartoon-characters-decorative-icons-set-701029258

Вот такие ключевые слова получились:

«illustration»,»vector»,»people»,»design»,»cartoon»,»set»,»collection»,»person», «character»,»flat»,»man»,»woman»,»work»,»isolated»,»concept»,»male»,»adult», «business»,»girl»,»icon»,»computer»,»female»,»symbol»,»professional»,»icons», «team»,»decorative»,»office»,»object»,»job»

Здесь уже получилось хуже, он конечно определил, что это flat cartoon people characters, но тему персонажей совсем не смог определить.

Я попробовал еще несколько векторов и фотографий и результаты были разные, но в целом показалось, что фотографии он ключует лучше, чем вектора. Так же он неплохо подбирает общие ключевые слова, но вот уточняющие всегда приходится дополнять руками.

 

Как попробовать подбор слов от Shutterstock

Ключевые слова, которые выдает API отличаются от тех, что предлагает Шаттерсток, при загрузке новой работы в админке автора и через API получается больше слов.

Вы можете сами попробовать Shutterstock API по подбору ключевых слов.

Для начала нужно зарегистрироваться на https://developers.shutterstock.com/ и создать приложение. Это бесплатно. Если нужны более подробные инструкции как это сделать, напишите в комментариях, я распишу.

Дальше нужно создать php файл с таким кодом

$imageData = file_get_contents("myImage.jpg");
 $encodedImageData = base64_encode($imageData);
 $uploadBody = [
   "base64_image" => $encodedImageData
 ];
 $uploadEncodedBody = json_encode($uploadBody);
 $uploadOptions = [
   CURLOPT_URL => "https://api.shutterstock.com/v2/cv/images",
   CURLOPT_CUSTOMREQUEST => "POST",
   CURLOPT_POSTFIELDS => $uploadEncodedBody,
   CURLOPT_USERAGENT => "php/curl",
   CURLOPT_HTTPHEADER => [
     "Authorization: Bearer $SHUTTERSTOCK_API_TOKEN",
     "Content-Type: application/json"
   ],
   CURLOPT_RETURNTRANSFER => 1
 ];
 $handle = curl_init();
 curl_setopt_array($handle, $uploadOptions);
 $uploadResponse = curl_exec($handle);
 curl_close($handle);
 $uploadDecodedResponse = json_decode($uploadResponse);
 print_r($uploadDecodedResponse->upload_id);
 $keywordsQuery = [
   "asset_id" => $uploadDecodedResponse->upload_id,
 ];
 $keywordsOptions = [
   CURLOPT_URL => "https://api.shutterstock.com/v2/cv/keywords?" . http_build_query($keywordsQuery),
   CURLOPT_USERAGENT => "php/curl",
   CURLOPT_HTTPHEADER => [
     "Authorization: Bearer $SHUTTERSTOCK_API_TOKEN"
   ],
   CURLOPT_RETURNTRANSFER => 1
 ];
 $handle = curl_init();
 curl_setopt_array($handle, $keywordsOptions);
 $keywordsResponse = curl_exec($handle);
 curl_close($handle);
 print_r($keywordsResponse);

 

Вместо $SHUTTERSTOCK_API_TOKEN нужно добавить ваш токен для авторизации в API, который можно получить после создания приложения. А myImage.jpg — это файл, к которому вы будете подбирать ключевые слова.

Мысли

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

Похожие записи:

Один ответ to “Запустит ли Shutterstock автоматическое ключевание?”

  1. Елена #

    На Create new app и всё у меня заканчивается. Не понимаю что куда писать. Нужны подробные инструкции, если можно.

Оставить комментарий