4093

Видеонаблюдение, наблюдения

Видеонаблюдение, наблюдения.

Здарова народ. Решил немного поделиться мыслями про видеонаблюдение. Не являюсь профи и вообще специалистом. Просто 7 лет живу в частном доме

и ради интереса балуюсь установкой камер наблюдения на участке. Не то чтобы они нужны, но очень интересно :)

Перепробовал огромное количество NVR систем, разные камеры, от дешевых до дорогих, в итоге пришел к тому что оставил камеры только одного бренда.

В моем случае это Hikvision. Удобно когда все настройки устроены по одной схеме.

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

Или это снег, или это тень от деревьев или пауки плетут паутину под теплыми лучами IR подсветки. Всего этого хотелось избежать. Вариант один - детекция объектов на основе нейронок.

В очередной приступ перфекционизма, когда увидел что за сутки записано несколько лишних гигабайт - лезу в интернет в поисках решения проблем.

Оказывается уже давно существует классный проект Codeproject AI, то что доктор прописал. Поиск на изображении объектов/номеров авто/даже face detection присутствует.

Дело за малым, прикрутить это всё к своим камерам. Первый, и самый логичный способ - это найти уже готовую систему работающую с этим API. И такие находятся

1)Agent DVR, бывший iSpy написанный на .NET одна из самых мощных и бесплатных систем видеонаблюдения, с одним маленьким но сука жирным минусом. Она жрет столько ресурсов, сколько ещё не придумали. Проц (6900hx)

полностью забит под 100% и с трудом справляется даже с 3-4 камерами, а у меня их 8.. Нафиг, выкидывам

2) Blue Stack, очень популярная на западе система , стоит не дорого. Готов был купить, но нам чуркам не продают. Поэтому были посланы. Хотя потестировал крякнутую. 8 Камер с детекцией тоже не вытягивают.

Были ещё варианты разной степени готовности и сырости, например Fregate , но хотелось чего то лёгкого воздушного особенного (как в анекдоте про водку.)

Ну что же, вызов брошен, решил сделать что-то своеё. Расчехлил вижуал студио. Забрёл на github в поисках отдельных компонент того что мне нужно.

Первое - это считать RTSP потоки с камер.

Находим замечательную либу https://github.com/BogdanovKirill/RtspClientSharp

От, возможно нашего соотечественника Богданова Кирилла, если ты тут - респект и уважуха :)

Эта библиотека позволяет вытащить потоки и получить отдельные кадры из видео.

Дальше мы эти кадры засылаем на ранее упомянутый Codeproject AI.

https://www.codeproject.com/Articles/5322557/CodeProject-AI-...

Он нам присылает данные о том что на изображении имеется. Люди, котики, лисы, авто итд.

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

Пример:

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

Не то чтобы котик, больше Лиса, но тоже сойдет :)

Не то чтобы котик, больше Лиса, но тоже сойдет :)

Цепляем ещё одну замечательную либу с телеграм ботом и получаем сразу оповещения в телефоне.

Получилось не совсем то что я хотел. Мой NVR продолжает писать видео по любому чиху параллельно. Но в основном всё что мне интересно я получаю в телегу. Где могу и видео последнее посмотреть и быстро получить изображение с камеры. Система у меня крутится на винде, на небольшом миниPC minisforum 6900hx, общая наргузка на систему (NVR плюс моя утилита) не первышает 20% Если кому интересен такой вариант - готов поделиться.

Далее, тем кто дочитал конкретика:

Софтина:

https://eruditoffline.ru/nvrminitelebot.zip

Писана для себя, поэтому с вероятностью 50% заработает у вас, но готов допилить дострогать.

Что нужно установить дополнительно:

Codeproject AI:

https://www.codeproject.com/Articles/5322557/CodeProject-AI-...

Download windows installer.

Можете ставитьна любую машиниу, хоть на винду хоть на линукс,докер итд.. Главное чтобы был включен Object Detection (YOLOv5 .NET)

Далее качаете FFMPEG

https://ffmpeg.org/download.html

должна стоять на той же машине. В конфиге надо прописать путь к bin папке

Затем телега..

Идете в телегу к @botfather регестрируете своего бота, получаете ключ и вписываете его в конфиг

Затем гуглите как узнать свой ID в телеге , и вписываете его тоже в конфиг приложения. В конфиге есть два списка

- один это кому присылать постоянно уведомления, второй это кто просто может запрашивать видео и изображения с камер.

Далее заполняете конфиг, вбиваете данные RTSP каналов (вбивайте каналы в высоком качестве, прога сама жмет при запросе к AI)

Всё должно заработать, ну с вероятностью 50% :)

ЗЫ: За стиль изложения прошу простить, пишу в пьяном угаре, 2 месяца сидел в бане в пикабу, да и лето кончается, шашлык сам себя не выпьет :)

UPD:

Последние файлики поставить 03 и накатить сверху 04

https://eruditoffline.ru/nvrminitelebot_03.zip

https://eruditoffline.ru/nvrm_04.zip

Вы смотрите срез комментариев. Показать все
0
Автор поста оценил этот комментарий

@OXOTHuK76, добрый день\вечер. Подскажите пожалуйста где закралась ошибка, вроде бы все сделал, все добавил и запустил, правда поменял координаты (по дефолту вобще никого не видел -"x": 300,"y": 500,"w": 1920,"h": 1080 все еще не хнаю за что отвечают у Вас х и у) но при попытке получить автоматическое фото для бота выдает ошибку в консоли:

5:43 PM: Dom: Found person, person

person, 79.87% (1038,649,1222,915)

person, 42.45% (1354,472,1400,533)

Не удалось найти часть пути "E:\nvrminitelebot\out\Dom\log\2023_09_10_Dom.log".

в System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)

в System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)

в System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy, Boolean useLongPath, Boolean checkHost)

в System.IO.StreamWriter.CreateFile(String path, Boolean append, Boolean checkHost)

в System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize, Boolean checkHost)

в System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding)

в System.IO.File.InternalAppendAllText(String path, String contents, Encoding encoding)

в System.IO.File.AppendAllText(String path, String contents)

в SimpleRtspClient.FileLog.WriteLine(String path, String camname, String message) в G:\Work\Projects\RtspClient\Examples\SimpleRtspClient\FileLog.cs:строка 19

в SimpleRtspClient.RtspCamera.DetectObject() в G:\Work\Projects\RtspClient\Examples\SimpleRtspClient\RtspCamera.cs:строка 503

в SimpleRtspClient.RtspCamera.SaveFrame(IDecodedVideoFrame decodedVideoFrame) в G:\Work\Projects\RtspClient\Examples\SimpleRtspClient\RtspCamera.cs:строка 453

Detect Dom frame took 121ms

Detect Dom frame took 105ms

Detect Dom frame took 117ms


После этого, так ничего и не отправил бот... Папка out тоже пустая. Картинка на ручной запрос тоже была маленькой и я сделал фактор масштаба 0.85

Смотрел сам поток в VLC - с ним все ок, сразу в строке идет логин и пароль. Аналоговые камеры 1080p, берет поток с регика в основном канале.
Так же есть вопрос по добавлению других камер - необходимо весь блок прописывать с детектами, или же достаточно поток, авторизационные данные (тут тоже вопрос если они открытые так как авторизация в RTMP) и название?

раскрыть ветку (5)
0
Автор поста оценил этот комментарий

создайте папку по этому пути.   E:\nvrminitelebot\out\Dom\log\

Там лог папка не создавалась. Я где то в переписке свежую версию выкладывал, там уже создается. 

https://eruditoffline.ru/nvrminitelebot_03.zip



пиксели



несколько камер так же как и первую, через запятую. Со всеми параметрами относящимися к камере.

это json там структура такая

[

{},

{}

]


в скобочках перечисляется массив объектов.



про пиксели

это какого объекта параметры?

telebot_active_regions?


это пиксели в разрешении камеры, в бот отсылает картинку только когда объект попал в эту зону. Нужно чтобы не попадали в кадр обрезанные изображения. Когда человек например ещё не весь появился в кадре

раскрыть ветку (4)
0
Автор поста оценил этот комментарий

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

Правда с видео возникла проблема - бот написал его нету, а лог такой:
Dom: Recording ...

Dom: Save buffer took ...5

Rectabgles intersects person:{X=1052,Y=775,Width=325,Height=303} with poi: x=300,y=500,w=1920,h=1080

6:22 PM: message to 294743878: Dom, 2023_09_10_18_22_29_061

???♂? 87%, 294743878

Dom: Stop recording ...

Converting h264 to mp4 and move to out folder

"E:\nvrminitelebot" не является внутренней или внешней

командой, исполняемой программой или пакетным файлом.


По пикселям да,  пока тяжело понять какие лучше прописать значения для fHD камеры - буду тестировать.

раскрыть ветку (3)
0
Автор поста оценил этот комментарий

а ffmpeg путь прописан и buffer_storage?

раскрыть ветку (2)
0
Автор поста оценил этот комментарий

  "ffmpeg_path": "E:\\nvrminitelebot\ffmpeg-master-latest-win64-gpl\bin",

  "buffer_storage": "E:\\TEMPC",

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

попробуйте с обратным слешем и со слешем на конце


"ffmpeg_path": "E:/nvrminitelebot/ffmpeg-master-latest-win64-gpl/bin/",

"buffer_storage": "E:/TEMPC",


мог накосячить с путями

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества