Как стать автором
Обновить

Комментарии 29

приличные камеры Hikvision умеют сами следить за движением в сегменте кадра и выкладывать/слать фотофиксацию, не обязательно заморачиваться с zoneminder

Фотофиксацию же, а не видео? И слать по ftp или email, а не в телегу.

И фото, и видео. Для видео можно указать время пред записи (например 5 сек) и время записи после движения в кадре (зоне). Отправка на ftp, email, nfc шару. И у хика есть богатейшее api (протокол isapi) которое может до 99% функций камеры интегрировать куда угодно. p.s., это так, небольшой ликбез. В телегу, конечно, не умеет.

можно чуть больше лткбеза? Где есть описание этого апи, чтобы научить бота слать внутренние события в телегу?

А еще лучше где-нибудь может есть информация по камерам, чтобы понять какая их них умеет детектировать отдельно лица, отдельно котиков и отдельно номера машин?

Ну там не всё просто. Серия AcuSense умеет отличать людей и транспорт, умеет отыскивать в кадре лица, делать их кроп. Но либо лица, либо люди и транспорт, все сразу не может.
Номера авто это серия ANPR, но это не совсем классические камеры, это камеры заточенные только под распознавание номеров. Там и матрица чувствительная, и WDR аппаратный мощный, чтоб избегать засветки от фар, и оптика не совсем классическая, встроенная мощная ИК подсветка.
Сейчас на рынке нет универсальных ip камер для распознавания или обнаружения всего подряд. Какие-то могут одно, какие-то другое. Встроенная в камеры аналитика по большей части создана для экономии места на дисках, чтоб не писать всё подряд, а не для всесторонних функций. Но встроенная аналитика может здорово помочь и для умных фишек. Например моя камера от xm на матрице imx307 умеет определять людей в кадре и отдавать это событие по onvif. Когда я получаю алярм, что человек в кадре, я делаю скриптом снапшот и отправляю его в DeepStack, который в докере на Synology. Дохлый старый Synology на атоме и 2Гб ОЗУ с помощью DeepStack может распознать лицо примерно за 12-15сек. Таким образои из старинного железа сделана распознавалка лиц, а без камеры которая дает кадр с готовым фейсом этого сделать не получилось бы. Вот такой профит от аналитики на дешовой камере за 30$.

НЛО прилетело и опубликовало эту надпись здесь
Делал похожую кормушку на даче в МО. Сперва похожую на описанную. Потом у меня был механизм принудительной подачи с дозатором. Задача была, как полагается по рекомендациям орнитологов, только подкармливать птиц с утра и перед закатом. Остальное время кормушка стояла пустая, чтобы они не теряли навыков самостоятельного поиска еды. Сделал из электромясорубки с присоединённым к валу проволочным спиральным шнеком. Бункер для семок из 19литровой бутылки, чтоб надолго хватало. Запускалось раз в сутки по реле времени и с компа через вебинтерфейс кормушки. А видеотрансляция была организована связкой ffserver+ffmpeg. По желанию можно было включить трансляцию на youtube. Вот уже четвертую зиму отработало. По ощущениям, птиц до весны заметно больше дотягивает.

Распознание птиц (как минимум породы) можно делать через tensorflow (https://www.tensorflow.org/)


Правда я делал в браузере, но мне кажется что можно адаптировать и под другие платформы. Вот пример: https://codepen.io/vmkazakoff/full/pmXbGy (осторожно, запросит разрешение на доступ к камере, но ничего никуда не отправляет, все работает только на клиенте) — надо сначала "научить" наведя камеру на три любых предмета по очереди и нажимая "это А" / "это В" и "это С". Потом можно навести на любой из предметов и "сфотать" уже кнопкой на картинке с камеры. Оно найдет максимально похожее и скажет что это.


На Андроиде работает? У меня что-то ничего не сработало, обучил на пачке таблеток, телефоне и собаке, софт на потом выдавал рандомный результат с уверенностью 33% или 66%.

Да. Я на Андроиде и проверял. Тут вопрос не платформы, а обучающей выборки — надо или много фоток делать, или делать их достаточно "однотипно". Возможно у вас менялся фон — по ощущениям, надо на каждый объект по 5-10 фоток на одном фоне. К счастью в данном кейсе и фон однороден и с выборкой проблем нет.

Аа, я думал, он по одной фотке на класс обучается. Тогда понятно

Спасибо! Надо попробовать.

К zoneminder есть Event Notification Server, через который интегрируются готовые image recognition пакеты (например, yolo). Только на голом RPi оно крутится довольно уныло. Однако, думаю, если прикрутить туда что-нибудь типа Coral Google USB Accelerator — будет вполне рабочее решение.
А вот и та самая белка которую долго ждали.
У меня противоположная проблема — защитить кормушку от белок, а то они сжирают весь корм.

Посмотрим что будет дальше, но пока они едят значительно меньше птиц.

Даа, я читал, когда гуглил как делать. Несколько важных мыслей оттуда вынес, спасибо!

Если у вас главным сюрпризом была белка, то у нас белки — обычное явление.

Но в какой-то момент мы поняли, что за шум иногда по ночам возле дома. Оказалось, приходит семейство енотов, топая по карнизам

Ого! Ну еноты к счастью нам в Ленобласти не грозят. А вот ежи ночью меня несколько раз пугали.
Белки конечно очень наглые создания. Зачем-то сгрызли мне веревки качелей. Пришлось на цепи переделывать

Привет, мы уже несколько лет разрабатываем продукт схожий с тем что сделали вы, только для массового пользователя, достаточно поставить нашу камеру перед кормушкой и система сама пишет видео когда кто-то прилетает и определяет кто это. Могу сказать что, что бы сделать приличную нейросеть для классификации нужно огромное кол-во материала для обучения. Из технологий я бы советовал смотреть в сторону Darknet + YOLO
Действительно, те же Hik и Dahua умеют работать без стороннего железа и отправлять фото/видео на любой удаленный сервер. К тому же полно моделей внешних камер с ИК подсветкой. Это решит проблему с бликами.
Для решения задачи с компьютерным зрением процессор не очень. Нужен либо GPU (любая старая видеокарта, которую сможете найти), либо TPU (Google Coral/ Nvidia Jetson… ). Их, кстати, можно по USB цепануть к той же Piшке и прямо на ней делать детекцию.
У меня давно есть делание сделать определение в кадре котов с последующим включением лая на динамики. Бо задолбали они все углы обсцыкать. ))))

Ну так есть готовое оффлайн решение — DeepStack. Он более двухсот объектов детектит из коробки. Там и предметы и животные, люди. Просто пуляете в него фото/видео, он выдает ответ в json. Правда железо надо какое-нибудь из того, что вы перечислили, GPU, TPU… На CPU тоже работает, но несколько сек на кадр уходит, видео не обработать.
P.S. А если начать считать деньги, то выгоднее покупать не умную ip камеру с какой-то там аналитикой, а простенькую ip камеру, которая может дать качественное изображение, пусть даже 720p, главное, чтоб стопкадр давала не смазанный, и к ней покупать Nvidia Jetson. Тогда можем вообще любую аналитику мутить, а не ждать, пока производитель поправит баги в прошивках.

Та эту задачу и в лоб достаточно не сложно можно решить при помощи того же yolo v4/5.
У меня на 1080ti получилась, по моему, около 14 кадров в сек с детекцией и трассировкой движения. Какой-то Coral или jetson спокойно даст на пишке несколько кадров в сек, чего более чем достаточно. Далее уже просто собрать базу птиц, разметить картинки, я думаю их будет макс 10-15 групп, переобучить модель. И можно детектить. Я так с авто делал, мне интересно было, можно ли заставить скрипт различать проезжающие машины не по номерам, а по внешнему виду. Эксперимент можно назвать скорее неудачным, чем удачным, что было в общем предсказуемо, ибо отличить один черный ниссан, от другого нереально. А вот разные марки и, особенно, с каким-то отличительными особенностями (машины служб, нестандартные цвета и марки) детектило четко.

Лучшее что я видел за сегодня
Пара "но"
1) на малине лучше отказаться от microsd в пользу ssd, микруха быстро сдохнет от такого использования, а hdd от холода
2) вместо крона лучше сделать бесконечно работающего демона (ботапи это умеет из коробки по крайней мере для питона)
3) присоска не лучший способ крепить кормушку


На канал подписался, крутая штука)

Хорошая статья, как раз, то над чем работаю сейчас. У меня на ютубе канал про аистов-трансляции из гнезда - это летом, а зимой мы переключаемся на кормушки.
Кормушка из сантехтруб не пошла. Прилетают воробьи и разбрасывают все семечки. Их заметает снегом и семечек уходит слишком много.

Сделал большой бункер с удаленной подачей на ESP и с сервоприводом. Добавил возможность включать кормушку зрителям канала. Надо просто перевести донат на Youmoney.
Трансляции веду через VPS. Можно круглосуточно , можно включать ежедневно. Те комп на месте вообще не нужен.
На VPS настроил FTP и на него камера по тревоге сбрасывает фото птичек. Получаются очень интересные кадры. Только их очень много.
Вот хотел подключить ИИ для отбора качественных фото и заодно распознать вид птички.

И тоже хотел это постить в канал в тлг. Уже сделал опрос подписчиков (10 тыс) - многим это интересно. Тут ваш скрипт очень кстати. Совсем не программист и много изучаю с нуля.


Пока только в самом начале пути, Ваша статья и еще одна, которая уже упоминалась в комментах будут отправной точкой.
Еще у меня в закладках большой гайд - https://towardsdatascience.com/smart-bird-watcher-customizing-pre-trained-ai-models-to-detect-birds-of-interest-dca1202bfbdf

Сделал чат в телеграмм для всех кому эта тема интересна. https://t.me/+hduzYdKvcj5kYTRi

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации