- PVSM.RU - https://www.pvsm.ru -

Бот в Telegram использует IBM Watson для определения котиков

Привет!

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

image


Еще в апреле, узнав про конкурс BotPrize [1] я решил попробовать написать несколько ботов.
Языком программирования я выбрал C# и замечательную библиотеку от MrRoundRobin [2]
В качестве БД использовал PostgreSql.

Мой первый бот был на тему загрузки файлов на известный файлообменник mega.nz.

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

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

После недолгих поисков я узнал, что это умеет делать IBM Watson и его Visual Recognition API.

image

Оказалось все довольно просто — отправляете картинку на обработку и в ответ вам приходит JSON массив того, что IBM Watson нашел на этой картинке.

Пример Json

[
{
«classes»: [
{
«class»: «animal»,
«score»: 0.997762,
«type_hierarchy»: "/animals"
},
{
«class»: «mammal»,
«score»: 0.995504,
«type_hierarchy»: "/animals/mammal"
},
{
«class»: «cat»,
«score»: 0.990987,
«type_hierarchy»: "/animals/pets/cat"
},
{
«class»: «kitten»,
«score»: 0.668188,
«type_hierarchy»: "/animals/pets/kitten"
}
],
«classifier_id»: «default»,
«name»: «default»
}
]

Соответственно, если в JSON есть котик с вероятностью более 0.75 то эта картинка автоматически проходит модерацию. Если нет, то она отправляется в топку на ручную модерацию. Начальное заполнение базы я делал с помощью сайта thecatapi [3] и обработка около 400 котиков заняла не больше 5 минут.

Вы можете сами попробовать отправить IBM Watson разные картинки по ссылке. [4]

Единственная сложность возникла у меня с регистрацией в Bluemix-консоли, она все время зависала.

Получилось зарегистрироваться через сайт developerworks [5], поставив галочку «I want to use IBM Bluemix».

Далее я получил ключ от Visual Recognition API и потренировался делать запросы в API Explorer [6]

Месяц использования Visual Recognition API дается бесплатно, а дальше включается дневной лимит в 250 картинок в день. Однако, цена оплаты в 2$ за 1000 картинок внушает большой оптимизм.

Мне очень понравилась идея заставить суперкомпьютер Watson определять котиков на картинке вместо меня.

У IBM есть еще большое количество других API и сервисов [7] и тут заложен огромный простор для интеграции с Telegram.

Автор: wildboar47

Источник [8]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/c-2/182957

Ссылки в тексте:

[1] BotPrize: https://telegram.org/blog/botprize

[2] MrRoundRobin: https://github.com/MrRoundRobin/telegram.bot

[3] thecatapi: http://thecatapi.com/docs.html

[4] по ссылке.: https://visual-recognition-demo.mybluemix.net/

[5] developerworks: http://www.ibm.com/developerworks/ru/

[6] API Explorer: https://watson-api-explorer.mybluemix.net/apis/visual-recognition-v3

[7] других API и сервисов: http://www.ibm.com/watson/developercloud/services-catalog.html

[8] Источник: https://geektimes.ru/post/280044/