Вот видишь ты на улице пёсика. Ты всегда видишь на улице пёсиков. Вот кто-то вообще их не замечает и не имеет хлопот, вот нет этих душевных терзаний, и вообще можно считать, что им на улице норм. Но ты же! И заметил, и глаза у тебя на мокром месте, такой думаешь: «пёсик. уаа, такой миленький, взял бы но не могу. Но вот прям точно, но никак». И пошёл такой дальше. Но пофотал его, погладил.
Вот таким добрым малым нужно кидать нам в систему геопозицию животинки на данный момент и пару фото.
Есть и те, кто очень хочет найти своего убежавшего спариться или ещё чего пёсечка. Вот этим прям точно сильно хочется найти питомца. Они сами размещают объявления, ходят по подворотням, подвалам и по разным сайтам.
2019 год располагает к более технологичным решениям. И наш проект с рабочим названием PetSI (PetSearchInstrument) именно такой.
Концепция
В рамках направления Machine Learning for Social Good сообщества Open Data Science мы вместе с 9851754 и нашей командой делаем сервис для поиска пропавших животных, в котором владелец может указать фото животного, адрес пропажи и другие характеристики, а в ответ получить наиболее релевантные с точки зрения нашего алгоритма сообщения о найденных или увиденных животных.
Краткий алгоритм работы нашего сервиса: мы агрегируем данные(фото, место находки, порода итд) с нескольких сайтов, преобразуем изображения нейронной сетью в вектор, обучаем knn и показываем ближайших соседей введённой фотографии. Ты находишь потерянное животное, животное возвращается домой. Все довольны)
Кроме поиска пропавших домашних питомцев мы развиваем рекомендательную систему для ускорения пристройства приютских животных новым хозяевам. Пока у нас нет статистики поведения пользователей на сайте, поэтому мы используем content-based рекомендации основанные на визуальной схожести.
Что уже есть
Отличная команда начинающих и опытных специалистов;
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:
Сбор данных многоступенчатый. Сначала пауки собирают информацию и в необработанном виде отправляют ее в очередь. С другой стороны очереди специальные обработчики преобразовывают данные в нужный вид(например, преобразуют текст в адрес) и складывают в СУБД.
Собранные данные валидируются и отправляются на обучение моделям. Для сайта написан специальный сервис, который загружает новые данные и модели, а также инициирует пересчет поисковой выдачи для каждого пользователя. Весь цикл занимает примерно 8 часов.
Как мы используем машинное обучение и анализ данных:
Определение пола по тексту;
Определение породы по тексту;
Выделение адресов из сообщений;
Сегментация изображений;
Перевод изображения в вектор и ANN.
Ближайшие планы
Подтвердить работоспособность проекта и соединить первую пару «хозяин-потерянный питомец»;
Развить сотрудничество с приютами и упростить мэтчинг пары «хозяин-питомец»;
Сотрудничать с другими ресурсами и сделать максимально удобный для пользователя сервис.
Приходи к нам!
Для дальнейшего развития нам нужны:
Бойцы фронт- и бэкенд- армий;
ML-специалисты;
Data-engineer-ы и сисадмины для поддержки работоспособности пайплайна;
DevOps для развертки приложений на k8s и помощи в его администрировании;
Умельцы работы с пауками(scrapy);
Журналисты для популяризации проекта;
Программисты на python.
Зачем это может быть нужно тебе:
Cоциальная ответственность, если она тебя интересует. Вдруг, тебе нравится приносить пользу?
Реальный проект, где можно реализовать свои крутые навыки или прокачать их;
Ты странный и идёшь всюду куда приглашают. Это тоже хороший вариант;
Ты сам искал питомца, знаешь каково это;
Или ты тот, кто не может просто пройти мимо собы на улице, но не знаешь что с этим делать.