Машинное обучение. Глубокое обучение Обработка естественного языка. Компьютерное зрение. Автоматизация. Распознавание голоса. Вы, наверное, недавно слышали все эти и многие другие термины под эгидой искусственного интеллекта. На самом деле, поле растет так быстро, что становится все труднее найти точное определение. ИИ становится частью почти каждого аспекта нашей жизни, от веб-сайтов электронной коммерции и поисковых систем до разблокировки вашего телефона.
Ваши веб-сайты и приложения могут использовать API-интерфейсы для непосредственного использования возможностей ИИ. Без «обучения» агентов ИИ, вы можете воспользоваться огромным количеством уже проанализированных данных. Google, Amazon, IBM и многие другие создали конечные точки, которые разработчики могли сразу подключить и начать использовать ИИ.
Во внешнем интерфейсе вы можете подключать голосовые команды, интерфейсы чат-ботов или реактивные творческие элементы WebGL. С другой стороны, базы данных используют интеллектуальные алгоритмы для максимизации скорости и анализа. API-интерфейсы могут обеспечить уровень абстракции от широкого спектра функций ИИ, от предсказаний до коллективного обучения.
Содержание статьи
- 0.1 Что такое компьютерное зрение?
- 0.2 Компьютерное зрение с Google Cloud Vision API
- 0.3 01. Настройте облачный проект
- 0.4 02. Включите API Cloud Vision
- 0.5 03. Создайте учетную запись службы
- 0.6 04. Загрузите закрытый ключ
- 0.7 05. Установите переменную среды
- 0.8 06. Сделайте вызов API
- 0.9 07. Установите клиентскую библиотеку
- 0.10 08. Создать новый файл
- 1 ] Выберите изображение
Что такое компьютерное зрение?
Компьютерное зрение — это изучение и создание искусственных систем, которые извлекать информацию из изображений. Он также может включать в себя механическую систему зрения. С точки зрения распознавания, это процесс анализа и определения содержания изображения или серии изображений (включая видео). Это может включать в себя медицинские сканы, фотографии, 360-градусное видео и практически любые виды изображений, которые вы можете себе представить.
Компьютерное зрение на базе AI может:
- Идентифицировать, маркировать и классифицировать контент
- Обнаружение лиц и эмоций
- Распознавание головных уборов, таких как очки и головные уборы
- Идентификация ориентиров, зданий и сооружений
- Оценка информации на уровне пикселей, например цветовых данных , качество и разрешение
- Распознавание популярных логотипов
- Идентификация и чтение текста
- Определение потенциально неприемлемых изображений
Компьютерное зрение с Google Cloud Vision API
Существует множество вариантов API Vision, но мы будем использовать Google Cloud Vision API. Google предоставляет множество API-интерфейсов AI, включая обработку естественного языка, распознавание голоса, глубокое обучение и зрение.
API Cloud Vision позволяет вашим сайтам и приложениям понимать, что находится на изображении. Он будет классифицировать контент по категориям, помечая все, что он видит. Он также обеспечивает показатель достоверности, поэтому вы знаете, насколько вероятно, что то, что он считает изображением, действительно появляется там. Вы можете использовать это, чтобы разумно взаимодействовать с входом камеры в AR или видео приложениях. Вы могли бы создать инструменты, чтобы помочь тем, кто с нарушениями зрения. Вы можете создать помощников, которые помогут идентифицировать здания или достопримечательности для туристов. Возможности бесконечны.
01. Настройте облачный проект
Если вы ранее использовали API Google, некоторые из этих первых шагов будут знакомы. Как и в случае с другими службами Google, вам необходимо настроить облачный проект. Перейдите в консоль Google Cloud Platform и создайте новый проект или выберите существующий. Как и большинство сервисов Google, API Cloud Vision можно использовать бесплатно, пока вы не начнете выполнять множество запросов API. Вам может потребоваться ввести платежную информацию, когда вы активируете API, но это не оплачивается при небольшом объеме запросов, и вы можете удалить службы после завершения тестирования.
02. Включите API Cloud Vision
Просмотрите библиотеку API и выберите Cloud Vision API для вашего проекта.
После включения вы должны увидеть небольшую зеленую галочку и сообщение «API Enabled» рядом с ней.
03. Создайте учетную запись службы
Далее вам необходимо настроить учетную запись службы. Думайте об API как о веб-службе, которую вы создаете. Поскольку мы собираемся настроить использование как типичный сервис, это лучшая практика. Это также лучше всего работает с потоком аутентификации.
04. Загрузите закрытый ключ
Как только у вас будет проект с включенным API и служебную учетную запись, вы можете загрузить свой закрытый ключ в виде файла JSON. Запомните расположение файла, чтобы вы могли использовать его на следующих шагах.
Если у вас возникли проблемы с первыми несколькими шагами, есть краткое руководство, которое помогает и заканчивается загрузкой Ключ JSON.
05. Установите переменную среды
Вам необходимо установить переменную среды GOOGLE_APPLICATION_CREDENTIALS чтобы к ней могли обращаться наши вызовы API. Это указывает на файл JSON, который вы только что скачали, и избавляет вас от необходимости каждый раз вводить путь. Откройте новое окно терминала и используйте команду export следующим образом:
export GOOGLE_APPLICATION_CREDENTIALS = "/ Users / [username] / Downloads / [file name] .json"
Замените [username] на ваше имя пользователя. Убедитесь, что путь к месту, в котором вы сохранили файл закрытого ключа, правильный. Замените [file name] своим файлом закрытого ключа и используйте путь к файлу.
В Windows вы можете сделать то же самое через командную строку, например:
$ env: GOOGLE_APPLICATION_CREDENTIALS = "C: Users [username] Downloads [FILE_NAME] .json"
Примечание. Если вы закроете окно терминала или консоли, вы может потребоваться запустить это снова, чтобы установить переменную снова. Вскоре мы добавим это и в наш PHP-код, так что вам не нужно больше об этом беспокоиться.
06. Сделайте вызов API
Теперь вы готовы углубиться в API Cloud Vision. Вы будете использовать curl для быстрого тестирования API. Вы также можете использовать этот метод из своего кода.
Запросы curl могут быть сделаны на большинстве языков, будь то PHP, Python или Node. Таким образом, вы можете делать вызовы непосредственно в командной строке или присваивать результат переменной на выбранном вами языке. Найдите здесь несколько быстрых советов по использованию curl.
Создайте простой файл JSON для хранения деталей запроса. Назовите его google_vision.json . Храните его там, где вы хотите запускать команды терминала.
{"запросы": [ { "image":{ "source":{ "imageUri": "https://upload.wikimedia.org/wikipedia/commons/9/93/Golden_Retriever_Carlos_%2810581910556%29.jpg" } }, "features": [{ "type": "TYPE_UNSPECIFIED", "maxResults": 50 }, { "type": "LANDMARK_DETECTION", "maxResults": 50 }, { "type": "FACE_DETECTION", "maxResults": 50 } { "type": "LABEL_DETECTION", "maxResults": 50 }, { "type": "TEXT_DETECTION", "maxResults": 50 }, { "type": "SAFE_SEARCH_DETECTION", "maxResults": 50 }, { "type": "IMAGE_PROPERTIES", "maxResults": 50 } ]}]}
В приведенном выше коде вы ' Мы указали изображение для анализа, а также конкретные функции API для использования, в том числе обнаружение лиц и обнаружение ориентиров. SAFE_SEARCH_DETECTION отлично подходит для того, чтобы узнать, является ли изображение безопасным и к какой категории оно относится, например, контент для взрослых или насилие. IMAGE_PROPERTIES рассказывает о цветах и деталях на уровне пикселей.
Чтобы выполнить команду curl, в своем терминале или интерфейсе командной строки введите следующее.
curl -X POST -H "Authorization: Bearer" $ (gcloud auth application- токен доступа к печати по умолчанию) -H "Тип контента: application / json; charset = utf-8" --data-binary @ google_vision.json "https://vision.googleapis.com/v1/images:annotate" > results
С помощью синтаксиса > results результаты будут храниться в новом файле с именем results для вас. Вы указали URL-адрес API ( «https://vision.googleapis.com/v1/images:annotate» ) и включили свои данные JSON в POST .
При первом использовании вы можете получить запрос на активацию API или предоставление доступа. Ответьте yes или Y на это приглашение, и оно должно вернуть JSON.
Если вы откроете файл результатов, вы получите результаты данных JSON из запроса Vision API. Вот фрагмент:
{"response": [{"labelAnnotations":[{"mid":"/m/0bt9lr""description":"dog""score":0982986"topicality":0982986}{"mid":"/m/01t032""description":"goldenretriever""Score":0952482"topicality":0952482}{…
Вы видите очень полезные результаты сразу. Под узлом labelAnnotations вы можете увидеть 98-процентное совпадение, что изображение содержит «собаку», и 95-процентное совпадение, что оно содержит «золотой ретривер»! ИИ уже определил содержание изображения и другие детали, включая «рыло» и тот факт, что это, скорее всего, «спортивная собака».
Это не требовало обучения с вашей стороны из-за уже обученной системы Google Vision AI. Просматривая результаты, вы увидите все: от рекомендуемых областей кадрирования — для автоматической обрезки изображений до объектов — до невероятных деталей того, что находится на изображениях, включая цвета и контент. Попробуйте другие изображения, чтобы увидеть, насколько мощным является API.
Вы можете продолжить использовать этот метод для проверки вызовов, которые мы будем использовать. Вы также можете установить локальный SDK на предпочитаемом вами языке и интегрировать его в свое приложение.
07. Установите клиентскую библиотеку
Далее вы создадите простое веб-приложение, которое покажет, как интегрировать API в ваши проекты.
Существует несколько SDK, доступных на разных языках, чтобы упростить интеграцию. Вы будете использовать PHP SDK для следующего раздела. Если вы хотите настроить код, который следует на другом языке, здесь есть большой ресурс SDK.
Начните с того, что у вас есть настроенная папка проекта на локальном или удаленном сервере. Если у вас его еще нет, установите Composer и установите его в папку вашего проекта. При желании у вас может быть Composer, уже установленный глобально, и это тоже хорошо.
Запустите следующую команду Composer, чтобы установить файлы поставщика для Cloud Vision SDK.
php -r " copy ('https://getcomposer.org/installer', 'composer-setup.php'); " php -r "if (hash_file ('sha384', 'composer-setup.php') === '93b54496392c0627746 70ac18b134c3b3a95e5a5e5c8 f1a9f115f203b75bf9a129d5daa89;'хо' echo () -setup.php ');} echo PHP_EOL; " php composer-setup.php php -r "unlink ('composer-setup.php');" php composer.phar требует google / cloud-vision
Composer создает папку вендора в папке вашего проекта и устанавливает все зависимости для вас. Если вы застряли в настройке и хотите использовать PHP, вы можете проверить этот установочный ресурс Composer.
08. Создать новый файл
Создайте новый файл PHP в папке вашего проекта. Установите его так, как вам нравится, но включите простую HTML-форму для загрузки изображений для быстрого тестирования. Вот пример PHP-файла с включенной формой:
net - Учебное пособие по компьютерному видению
Код
включает в себя основной файл HTML с формой и заполнителем для кода PHP. Код начинает проверять наличие изображения, отправленного из формы. Если он еще не отправлен, он ничего не делает.
09. Сохраните изображение
Если вы предпочитаете указывать изображения в Интернете или в своей системе, пропустите этот шаг. Если вы хотите обрабатывать выбранные изображения, добавьте этот код для сохранения выбранного изображения.
// save image $ filepath = $ _FILES ["file"] ["name"]; if (move_uploaded_file ($ _ FILES ["file"] ["tmp_name"]$ filepath)) {echo "
"; } else {echo "Ошибка !!"; }
10. Добавить переменную среды
Вам необходимо установить переменную GOOGLE_APPLICATION_CREDENTIALS для ее аутентификации. В PHP мы используем команду putenv для установки переменной окружения. Добавьте этот код в свой код PHP:
putenv ('GOOGLE_APPLICATION_CREDENTIALS = / Users / richardmattka / Downloads / Vision Tutorial 1-0f464a9a0f7b.json');
[19459] путь и имя файла вашего файла закрытого ключа JSON.
11. Включите библиотеку
Добавьте библиотеку и инициализируйте класс LanguageClient в своем коде. Добавьте этот код следующим образом:
требуется __DIR__. '/Vendor/autoload.php'; использовать Google Cloud Vision V1 ImageAnnotatorClient; $ projectId = 'vision-tutorial-1'; $ imageAnnotator = new ImageAnnotatorClient ([ 'projectId' => $projectId ]);
Начните с требования автозагрузки поставщика. Это похоже на Python или Node, когда вам нужны ваши зависимости. Затем импортируйте ImageAnnotatorClient чтобы использовать класс. Определите свой projectId . Если вы не уверены, что это такое, посмотрите в консоли Google Cloud Project. Наконец, создайте новый объект ImageAnnotatorClient используя свой projectId, и назначьте его переменной $ imageAnnotator .
12. Анализ содержимого изображения
Начните отправку изображения в API для анализа. Вы покажете результат в виде JSON на экране, но на практике вы можете оценить результаты и использовать их по своему усмотрению.
Добавьте следующее, чтобы передать изображение в API.
$ image = file_get_contents ($ filepath); $ response = $ imageAnnotator-> labelDetection ($ image); $ tags = $ response-> getLabelAnnotations (); foreach ($ label как $ label) {echo ""; $ result = $ label-> getDescription (); Эхо $ результат. "(". $ label-> getScore (). ")"; echo ""; }
Отправляет содержимое из отправленной формы в конечную точку imageAnnotator и сохраняет результат в переменной $ response . Он определяет функцию labelDetection . Вы также можете использовать faceDetection logoDetection textDetection и многие другие функции. Для полного списка, проверьте здесь.
Далее выполните итерацию по списку меток. Это всего лишь пример, показывающий, как его использовать: вы можете обрабатывать его и реагировать на результаты так, как вам нужно.
13. Обнаружение лиц
]
Еще один быстрый пример того, насколько мощным является API, — функция faceDetection . Это вернет эмоциональные данные, а также информацию о местоположении того, где на изображении находятся лица. Попробуйте этот код, чтобы увидеть, как он работает.
$ response = $ imageAnnotator-> faceDetection ($ image); $face = $ response-> getFaceAnnotations (); $ likelihoodName = ['UNKNOWN', 'VERY_UNLIKELY', 'UNLIKELY', 'POSSIBLE','LIKELY', 'VERY_LIKELY']; // var_dump ($ этикетки); foreach ($ лица как $ лицо) {echo ""; $ anger = $ face-> getAngerLikelihood (); printf ("Гнев:% s". PHP_EOL, $ likelihoodName [$anger]); $ joy = $ face-> getJoyLikelihood (); printf ("Радость:% s". PHP_EOL, $ likelihoodName [$joy]); $ vertices = $ face-> getBoundingPoly () -> getVertices (); $ bounds = []; foreach ($ vertices as $ vertex) {$ bounds [] = sprintf ('(% d,% d)', $ vertex-> getX (), $ vertex-> getY ()); } print ('Bounds:'. join (',', $ bounds). PHP_EOL); echo ""; }
Вы начинаете, используя функцию Annotator faceDetection и передаете изображение, как в предыдущем примере. Затем вы получаете Аннотации к лицу . Вы используете массив весов ответа на более общем языке, чтобы вы могли увидеть вероятность определенных эмоций. После этого вы повторяете ответ, как и раньше. Вы проверяете две из нескольких возможных эмоций, гнев и радость, возвращая результаты тех. Это также даст вам углы ограничивающих рамок, которые определяют каждое найденное лицо.
Эта статья была первоначально опубликована в выпуске 316 net самый продаваемый в мире журнал для веб-дизайнеров и разработчиков. Купите выпуск 316 здесь или подпишитесь здесь .
Статьи по теме: