Обновить

Комментарии 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 групп, переобучить модель. И можно детектить. Я так с авто делал, мне интересно было, можно ли заставить скрипт различать проезжающие машины не по номерам, а по внешнему виду. Эксперимент можно назвать скорее неудачным, чем удачным, что было в общем предсказуемо, ибо отличить один черный ниссан, от другого нереально. А вот разные марки и, особенно, с каким-то отличительными особенностями (машины служб, нестандартные цвета и марки) детектило четко.
НЛО прилетело и опубликовало эту надпись здесь

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

Сделал большой бункер с удаленной подачей на 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

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

Публикации