Собаку съел на нейронных сетях

Вот видишь ты на улице пёсика. Ты всегда видишь на улице пёсиков. Вот кто-то вообще их не замечает и не имеет хлопот, вот нет этих душевных терзаний, и вообще можно считать, что им на улице норм. Но ты же! И заметил, и глаза у тебя на мокром месте, такой думаешь: «пёсик. уаа, такой миленький, взял бы, но не могу. Но вот прям точно, но никак». И пошёл такой дальше. Но пофотал его, погладил.

hncrnq4kc3yw84j_jcvvkqsiojo.png


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

2019 год располагает к более технологичным решениям. И наш проект с рабочим названием PetSI (PetSearchInstrument) именно такой.

Концепция


В рамках направления Machine Learning for Social Good сообщества Open Data Science мы вместе с 9851754 и нашей командой делаем сервис для поиска пропавших животных, в котором владелец может указать фото животного, адрес пропажи и другие характеристики, а в ответ получить наиболее релевантные с точки зрения нашего алгоритма сообщения о найденных или увиденных животных.

Краткий алгоритм работы нашего сервиса: мы агрегируем данные (фото, место находки, порода итд) с нескольких сайтов, преобразуем изображения нейронной сетью в вектор, обучаем knn и показываем ближайших соседей введённой фотографии. Ты находишь потерянное животное, животное возвращается домой. Все довольны)

pqxmzu52jwaepl_glbt34aym4wo.png

Кроме поиска пропавших домашних питомцев мы развиваем рекомендательную систему для ускорения пристройства приютских животных новым хозяевам. Пока у нас нет статистики поведения пользователей на сайте, поэтому мы используем content-based рекомендации основанные на визуальной схожести.

znipljfna7cb-pju6jzdbsnjc10.png

Что уже есть


  • Отличная команда начинающих и опытных специалистов;
  • http://petsiai.ru — рабочий прототип с веб-интерфейсом для ввода фото животного и вывода похожих (прототип будет доступен в течение нескольких дней после публикации);
  • Автоматизированный pipeline по сбору и обработке информации;
  • Обновляемая база животных (порядка 11 000 собак и 6 000 кошек.).


Под капотом


Разработка ведется на python. Мы используем следующий технологический стек:

  • Docker, Gitlab CI/CD для развертывания приложений;
  • Google Kubernetes Engine для хостинга наших сервисов и приложений;
  • Scrapy, RabbitMQ для сбора данных;
  • Sklearn, keras для ML;
  • Django, Flask, Bootstrap для сайта;
  • Elasticsearch для текстового поиска.


Для синхронизации всех стадий нашего рабочего процесса мы используем Airflow:
5gabpamtwwyxp3sryll7vvjwoqk.jpeg
Сбор данных многоступенчатый. Сначала пауки собирают информацию и в необработанном виде отправляют ее в очередь. С другой стороны очереди специальные обработчики преобразовывают данные в нужный вид (например, преобразуют текст в адрес) и складывают в СУБД.

ynjuwshpm4gbkysnuruna-ihkyo.png

Собранные данные валидируются и отправляются на обучение моделям. Для сайта написан специальный сервис, который загружает новые данные и модели, а также инициирует пересчет поисковой выдачи для каждого пользователя. Весь цикл занимает примерно 8 часов.

Как мы используем машинное обучение и анализ данных:

  • Определение пола по тексту;
  • Определение породы по тексту;
  • Выделение адресов из сообщений;
  • Сегментация изображений;
  • Перевод изображения в вектор и ANN.


Ближайшие планы


  • Подтвердить работоспособность проекта и соединить первую пару «хозяин-потерянный питомец»;
  • Развить сотрудничество с приютами и упростить мэтчинг пары «хозяин-питомец»;
  • Сотрудничать с другими ресурсами и сделать максимально удобный для пользователя сервис.


Приходи к нам!


emqcfhqqjzfigfun2im-h_tbpza.png

Для дальнейшего развития нам нужны:

  • Бойцы фронт- и бэкенд- армий;
  • ML-специалисты;
  • Data-engineer-ы и сисадмины для поддержки работоспособности пайплайна;
  • DevOps для развертки приложений на k8s и помощи в его администрировании;
  • Умельцы работы с пауками (scrapy);
  • Журналисты для популяризации проекта;
  • Программисты на python.


Зачем это может быть нужно тебе:

  • Cоциальная ответственность, если она тебя интересует. Вдруг, тебе нравится приносить пользу?
  • Реальный проект, где можно реализовать свои крутые навыки или прокачать их;
  • Ты странный и идёшь всюду куда приглашают. Это тоже хороший вариант;
  • Ты сам искал питомца, знаешь каково это;
  • Или ты тот, кто не может просто пройти мимо собы на улице, но не знаешь что с этим делать.


Есть план. Нужны люди в команду.

Пиши в личку или заполни форму и присоединяйся!

Вместо заключения


Напоследок мы подготовили подборку собак-мемов и похожих на них собак из приютов, которых мы нашли с помощью наших алгоритмов

© Habrahabr.ru