Обо мне

Дорогие все, я читал такие замечательные статьи на Medium, поэтому наконец решил, почему бы не опубликовать одну. Я работаю в IBM, Watson Group, в качестве академического технического наставника ... причудливый способ сказать, что я сначала изучаю технологию (и всегда науку, стоящую за ней), создаю документ с соответствующим кодом, загружаю его в Github, а затем путешествую по всему миру, сходите в университеты и проведите этот и многие другие семинары, в которых используются API IBM Watson. Вы знаете старую поговорку: Пусть твое призвание станет твоим блаженством, на это потребовалось время, но я верю, что я там. Так что, если у вас есть час, наслаждайтесь лабораторной работой ниже.

Обзор

Вы спросите, что такое Bluemix? Bluemix - это реализация открытой облачной архитектуры IBM, в которой используется Cloud Foundry, позволяющая разработчикам быстро создавать, развертывать и управлять своими облачными приложениями, используя при этом растущую экосистему доступных сервисов и сред выполнения. Вы можете просмотреть короткое вводное видео здесь: http://www.ibm.com/developerworks/cloud/library/cl-bluemix-dbarnes-ny/index.html

Цель этого руководства не в том, чтобы познакомить вас с Bluemix, это фундаментальные знания, необходимые для изучения с вашей стороны, и вы можете получить их по ссылкам, указанным выше.

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

Эта лабораторная работа покажет вам, как создать приложение Bluemix, использующее службу распознавания лиц, анализирующую содержимое изображения и извлекающую из него функции. Служба распознавания лиц способна идентифицировать несколько лиц на изображении, определять их пол и возраст по шкале достоверности, а также идентифицировать знаменитостей. Приложение будет создано с использованием инструмента с открытым исходным кодом под названием Node-RED.

Вы можете найти дополнительные лабораторные работы, обратившись к Github: https://github.com/watson-developer-cloud/node-red-labs

О Node-RED

Node-RED - это визуальный инструмент для подключения Интернета вещей. Подключить устройства, данные и API (сервисы) легко. Его также можно использовать для других типов приложений, чтобы быстро собрать потоки сервисов. Node-RED доступен как открытый исходный код и был реализован организацией IBM Emerging Technology. Node-RED предоставляет редактор потоков на основе браузера, который упрощает объединение потоков, используя широкий диапазон узлов в палитре. Затем потоки можно развернуть во время выполнения одним щелчком мыши. Хотя Node-Red основан на Node.js, функции JavaScript можно создавать в редакторе с помощью редактора форматированного текста. Встроенная библиотека позволяет сохранять полезные функции, шаблоны или потоки для повторного использования.

Node-RED включен в стартовое приложение Node-RED в Bluemix, но вы также можете развернуть его как отдельное приложение Node.js. Node-RED используется не только для приложений IoT, но и является универсальным механизмом обработки событий. Например, вы можете использовать его для прослушивания событий из http, веб-сокетов, TCP, Twitter и др. И хранить эти данные в базах данных без необходимости программировать вообще. Вы также можете использовать его, например, для реализации простых REST API.

О вашем приложении

В этом упражнении мы покажем, как просто сгенерировать данные распознавания лиц из URL-адреса изображения. В потоке будет представлена ​​простая веб-страница с текстовым полем, куда вы вставляете URL-адрес изображения, затем отправляете его в службу анализа изображений и выводите лица, найденные на веб-странице ответа.

Щелкните эту ссылку, чтобы просмотреть уже созданное приложение, точно такое же, которое вы будете разрабатывать:

Http://multiface.mybluemix.net/people

Вы будете создавать многоплановое приложение с нуля, используя Node-RED, как показано на изображении ниже:

Создайте стартовый шаблон Node-RED

Начнем с первого шага - создания стандартного приложения в Bluemix. Вы можете зарегистрироваться в Bluemix, нажав кнопку ПОДПИСАТЬСЯ в правом верхнем углу страницы на console.ng.bluemix.net. После регистрации вы получите электронное письмо с просьбой подтвердить регистрацию. Пробный запуск предоставляется бесплатно в течение 30 дней.

  1. В консоли Bluemix перейдите на вкладку Каталог и в разделе Шаблоны нажмите Node-RED Starter.

2. Укажите уникальное имя для своего приложения (в данном примере multiface) и нажмите Создать. Выделите достаточно времени, чтобы приложение подготовилось и запустилось. Это может занять до 5 минут. Если кажется, что он работает более 5 минут, нажмите другую ссылку, вернитесь в Личный кабинет и нажмите ПЕРЕЗАГРУЗИТЬ.

3. После запуска приложения нажмите ссылку Маршруты.

4. На открывшейся странице нажмите Перейти в редактор Node-RED. Это открывает холст, на котором вы начинаете перетаскивать узлы и вводить код в соответствии с инструкциями.

Заполните холст Node-RED

Остальные шаги, относящиеся к созданию холста node-RED, описаны ниже.

5. Перетащите узел http in. Следите за завершенным потоком на предыдущей странице, когда вы добавляете узлы. Это может помочь вам легко и приблизительно определить узлы, где их разместить на холсте.

6. В качестве метода выберите ПОЛУЧИТЬ, а в качестве URL-адреса укажите любое контекстное имя, в данном примере / people (включая косую черту).

7. Нажмите Готово.

8. Перетащите узел переключатель, который проверит наличие параметра запроса imageurl. Используйте поле поиска, чтобы легко найти эти узлы.

9. В качестве имени укажите любое значение, в данном примере Проверить URL-адрес изображения.

10. В поле свойств добавьте imageurl после полезной нагрузки.

11. Задайте два условия из раскрывающегося списка: первое равно нулю, а второе - иначе.

12. Перетащите узел шаблон, настроенный для вывода поля ввода HTML, и предложите несколько выбранных изображений, взятых из официальных источников.

13. Укажите имя, например: изображения подсказок.

14. Установите для свойства значение msg.payload (если оно не отображается как таковое по умолчанию).

15. Введите полезная нагрузка после сообщения. (без пробелов, опять же, если он не отображается как таковой по умолчанию)

Узел Function позволяет коду JavaScript работать с переданными сообщениями, а затем возвращать ноль или более сообщений для продолжения потока.

Сообщение передается как объект с именем msg. По соглашению у него будет свойство msg.payload, содержащее тело сообщения.

16. Скопируйте / вставьте этот код ниже, который выделен полужирным шрифтом в теле шаблона (кстати, вы можете изменить URL-адреса текста и изображений… настройте его позже). О, и следите за этими двойными кавычками. Введите его еще раз в шаблоне, чтобы он был без засечек… прямо вверх и вниз; не мог изменить шрифт здесь).

‹H1› Добро пожаловать в мое приложение для распознавания лиц ‹/h1›

‹H2› Кого-нибудь узнать? ‹/H2›

‹Form action =” {{req._parsedUrl.pathname}} ”›

‹Img src =” http://asbarez.com/wp-content/uploads/2016/02/ibmwatson.jpg height = ’200 '/›

‹Img src =” http://www.awaken.com/wp-content/uploads/2015/05/forbes.jpg height = ’200 '/›

‹Img src =” https://www.commerce.gov/sites/commerce.gov/files/styles/scale_250w/public/media/images/profile/elizabethholmes.jpg?itok=DHmvdC-1 height = '200' / ›

‹Br/› Щелкните правой кнопкой мыши одно из изображений выше и выберите «Копировать местоположение изображения» и вставьте URL-адрес в поле ниже. ‹Br› Выполните поиск лиц по изображениям, попробуйте несколько лиц. После того, как вы нажмете на изображение, справа обычно написано «Просмотреть изображение», нажмите на него, чтобы получить URL-адрес. ‹Br/›

‹Br› URL-адрес изображения: ‹input type =” text ”name =” imageurl ”/›

‹Input type =” submit ”value =” Analyze ”/›

17. Перетащите узел изменения, чтобы извлечь параметр запроса imageurl из веб-запроса и назначить его полезной нагрузке, которая будет предоставлена ​​в качестве входных данных для узла анализа изображений Alchemy.

18. Укажите имя.

19. Выберите Установить для правила; первое правило - msg.payload, а второе - msg.payload.imageurl (убедитесь, что оно выглядит в точности как изображение).

20. Перетащите узел Анализ изображений.

21. Чтобы получить ключ API, перейдите на вкладку браузера, открытую Bluemix. Щелкните вкладку КАТАЛОГ в левом верхнем углу веб-сайта Bluemix.

22. Прокрутите вниз и в разделе «Службы Watson» щелкните службу AlchemyAPI. Он может сказать "устаревший" и все такое ... Ничего страшного, нам просто нужен ключ API.

23. Примите все настройки по умолчанию и нажмите СОЗДАТЬ.

24. Нажмите Учетные данные службы на левой панели.

25. Скопируйте файл apikey.

26. Вернитесь на страницу Node-RED и вставьте ключ AlchemyAPI в поле API Key.

27. В разделе «Обнаружение аннотаторов» выберите Лица.

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

29. Скопируйте / вставьте этот код в рамку шаблона.

<h1>Alchemy Image Analysis</h1>
<p>Analyzed image: {{payload}}<br/><img id="alchemy_image" src="{{payload}}" height="200"/></p>
{{^result}}
<P>No Face detected</P>
{{/result}}
<table border='1'>
<thead><tr><th>Age Range</th><th>Confidence</th><th>Gender</th><th>Confidence</th><th>Name</th></tr></thead>
{{#result}}<tr>
<td><b>{{age.ageRange}}</b></td><td><i>{{age.score}}</i></td>
<td>{{gender.gender}}</td><td>{{gender.score}}</td>
{{#identity}}<td>{{identity.name}} ({{identity.score}})</td>{{/identity}}
</tr>{{/result}}
</table>
<form  action="{{req._parsedUrl.pathname}}">
<br><input type="submit" value="Try again or go back to the home page"/>
</form>

30. Завершите поток с помощью узла HTTP-ответа и подключите узлы, как показано ранее в этом документе.

31. Нажмите Развернуть.

32. Чтобы запустить веб-страницу, укажите в браузере http://multiface.mybluemix.net/people и введите URL-адрес какого-либо изображения. См. Шаг 2 для имени вашего хоста (в случае, если вы указали что-то другое, кроме многозначного).

33. Примечание. Нажмите Просмотреть изображение, чтобы получить точную ссылку на это изображение.

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