Привет!
В этой статье я расскажу, как у меня получилось написать бота, использующего всю мощь нейросетей IBM Watson для определения присутствия котиков на картинке.
Еще в апреле, узнав про конкурс BotPrize я решил попробовать написать несколько ботов.
Языком программирования я выбрал C# и замечательную библиотеку от MrRoundRobin
В качестве БД использовал PostgreSql.
Мой первый бот был на тему загрузки файлов на известный файлообменник mega.nz.
А вот в качестве следующей темы я выбрал котиков. С помощью бота можно ставить лайк\дизлайк уже имеющимся в базе котикам а также отправлять свои фото котиков на модерацию. Также в Inline режиме можно отправить друзьям самых отлайканных котиков.
И вот, после того, как я реализовал модерацию вручную, я подумал, что это скучно, и можно использовать нейросеть, которая сама будет определять, есть котик на картинке или нет.
После недолгих поисков я узнал, что это умеет делать IBM Watson и его Visual Recognition API.
Оказалось все довольно просто — отправляете картинку на обработку и в ответ вам приходит JSON массив того, что IBM Watson нашел на этой картинке.
Соответственно, если в JSON есть котик с вероятностью более 0.75 то эта картинка автоматически проходит модерацию. Если нет, то она отправляетсяв топку на ручную модерацию. Начальное заполнение базы я делал с помощью сайта thecatapi и обработка около 400 котиков заняла не больше 5 минут.
Вы можете сами попробовать отправить IBM Watson разные картинки по ссылке.
Единственная сложность возникла у меня с регистрацией в Bluemix-консоли, она все время зависала.
Получилось зарегистрироваться через сайт developerworks, поставив галочку «I want to use IBM Bluemix».
Далее я получил ключ от Visual Recognition API и потренировался делать запросы в API Explorer
Месяц использования Visual Recognition API дается бесплатно, а дальше включается дневной лимит в 250 картинок в день. Однако, цена оплаты в 2$ за 1000 картинок внушает большой оптимизм.
Мне очень понравилась идея заставить суперкомпьютер Watson определять котиков на картинке вместо меня.
У IBM есть еще большое количество других API и сервисов и тут заложен огромный простор для интеграции с Telegram.
В этой статье я расскажу, как у меня получилось написать бота, использующего всю мощь нейросетей IBM Watson для определения присутствия котиков на картинке.
Еще в апреле, узнав про конкурс BotPrize я решил попробовать написать несколько ботов.
Языком программирования я выбрал C# и замечательную библиотеку от MrRoundRobin
В качестве БД использовал PostgreSql.
Мой первый бот был на тему загрузки файлов на известный файлообменник mega.nz.
А вот в качестве следующей темы я выбрал котиков. С помощью бота можно ставить лайк\дизлайк уже имеющимся в базе котикам а также отправлять свои фото котиков на модерацию. Также в Inline режиме можно отправить друзьям самых отлайканных котиков.
И вот, после того, как я реализовал модерацию вручную, я подумал, что это скучно, и можно использовать нейросеть, которая сама будет определять, есть котик на картинке или нет.
После недолгих поисков я узнал, что это умеет делать IBM Watson и его Visual Recognition API.
Оказалось все довольно просто — отправляете картинку на обработку и в ответ вам приходит 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»
}
]
{
«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 то эта картинка автоматически проходит модерацию. Если нет, то она отправляется
Вы можете сами попробовать отправить IBM Watson разные картинки по ссылке.
Единственная сложность возникла у меня с регистрацией в Bluemix-консоли, она все время зависала.
Получилось зарегистрироваться через сайт developerworks, поставив галочку «I want to use IBM Bluemix».
Далее я получил ключ от Visual Recognition API и потренировался делать запросы в API Explorer
Месяц использования Visual Recognition API дается бесплатно, а дальше включается дневной лимит в 250 картинок в день. Однако, цена оплаты в 2$ за 1000 картинок внушает большой оптимизм.
Мне очень понравилась идея заставить суперкомпьютер Watson определять котиков на картинке вместо меня.
У IBM есть еще большое количество других API и сервисов и тут заложен огромный простор для интеграции с Telegram.
Поделиться с друзьями
Комментарии (8)
Disasm
03.09.2016 15:50-1Теперь надо сделать сервис, который будет добавлять котиков на картинку для обхода модерации.
Greendq
03.09.2016 17:35+2Я как-то переписывался с ребятами, которые делали Алхимию (Alchemy). Да-да, именно их купил IBM и они влились в команду Ватсона. И в шутку (в постскриптуме) попросил передать взрослеющему Скайнету просьбу не убивать лягушек. Мол, они едят, размножаются и вообще хорошие, а также не убивать котиков. Так вот, они обещали передать ИИ просьбу насчёт лягушек. Причём _только_ лягушек. Видимо, котики уже всем надоели.
Так что когда ИИ вырастет, маловероятно, что он будет люьить котиков :)
aik
Интересно, а можно написать плагин для файрфокса, который будет автоматически скрывать картинки, на которых есть кошки?
Nepherhotep
Новость через год — Facebook борется с плагином catblock, по их заявлениям это не то, что нужно пользователям.
old_bear
Я бы не отказался от плагина, который бы скрывал на новостных агрегаторах всякую желтизну и политические новости…
vetash
И заменял бы их на картинки с котиками. Its gonna be purrrfect :D