При работе с системами машинного зрения я всегда говорю заказчикам, что в первую очередь нужно сделать минимально рабочий прототип. Так и с кормушкой. Первичная моя цель – это не сделать как можно более хорошую систему, с максимальной точностью, а запустить чтобы работало. Более менее стабильно.
И уже после этого набирать статистику, лечить баги, и.т.д. Прототип готов, работает, висит на окне и шлёт мне сообщения про каждую птичку, которая прилетает в кормушку.
А теперь чуть подробнее что я докрутил:)
В первую очередь – я хотел чтобы система присылала мне фоточки птичек напрямую, прямо днём. А значит нужно прикрутить какую-то оповещалку. Выбрал банально – с самым удобным api + с самым подходящим функционалом.
Сначала хотел какой-нибудь Twitter использовать, благо API есть, но потом решил Telegram. API тоже есть и тоже понятный. При этом, как мне кажется, куда более гибкая возможность регулировать приватность, большая нацеленность на ботов и на управление ими (общение с ботом напрямую/подключение в каналы, и.т.д.).
Сначала ожидал долгой возни, что на это придётся потратить 1-2 дня выходных, что при текущем числе работ – тяжело. Но внезапно, когда сел на часок почитать доки и оценить объём работ, оказалось, что всё тривиально => написал вечером за 2 часа. На 80% слизал с примера.
Что умеет бот. Ссылка на бота будет ниже:
- Послать по запросу последний кадр с птицей. Я разделю это на 2 команды потом: просто кадр и хороший кадр. О обучении этого режима я рассказывал в прошлой статье. (/)
- Включать режим “переслать все новые кадры с птицами с кормушки”. Каждый раз когда прилетает птичка – рассылаю всем заинтересованным людям её фоточку. Так как это всё хозяйство крутиться на Raspberry Pi – я внёс ограничение на число людей которые могу подключиться к этому режиму, чтобы не перегружать его. При этом последних 10 человек периодически буду сбрасывать, чтобы кто-то ещё мог посмотреть. Вот в этом канале будет этот режим дублироваться – @win_feed .
- Сколько сегодня было птиц. Простой вопрос – простой ответ.
Если честно, то писать дотов для Telegram мне понравилось. Раньше писал пару раз различные http|e-mail|socet общения и синхронизации – было сильно дольше, а результат был хуже. Ссылка на бота вот. Звать его @ . Так как я что-то допиливаю периодически, иногда правлю баги -может не работать/может автоматом удалять из списка рассылки. Плюс не знаю, как отреагирует на приток народа, особенно когда на Хабре напишу статью.
Синички почему-то сейчас редко прилетают. В морозные дни февраля летали штук по 100 в день, сейчас дай бог десяток.
Исходники бота – в GitHub проекте. Совмещены с исходниками которые управляют RPi, распознают птиц.
Из исходников удалены токены, что-бы кто-то не перехватил бота + всякие отладочные команды которые могут его грохнуть:)
Что ещё происходит:
- Собираю базу ложных детекций и пропусков синичек. Сейчас было ложных всего два одновременных события где-то на 70-80 кадров настоящих синиц (2-3 тысячи срабатываний детектора движения). Пропусков много, порядка 15-20% синиц. Но, в теории, это всё улучшиться ещё после 1 переобучения. Учитывая 5-10 птиц в день – сейчас это долго.
- Ловлю режим и настраиваю параметры работы системы (например отключение распознавания в период с 6 часов вечера до 8 утра (ночь по Москве))
- Прибираю код/исходники на гитхабе, чтобы сделать в ближайшую неделю адекватную статью на Хабре.