Вот выходишь ты утром на работу, а на газоне перед домом окурки и прочие отходы жизнедеятельности. Бывает, что приходишь домой, а у тебя на балконе пепел или даже окурок. Как же хочется понять, кто это сделал! Я вот терпеть не могу таких людей. Моя история о том, как найти вредителей и, возможно, сделать свой дом немного чище и безопаснее.   Мой дом - классический человейник, без преуменьшения, с тысячей чертей человек внутри. Вы не подумайте, я люблю свой дом. В какой-то степени я даже знаком с парой десятков соседей. Хорошие люди. Но бывает, что приходишь домой и видишь на балконе такую картину. А может быть, что приезжаешь из отпуска, а у тебя такое. Начну с небольшой предыстории. В начале лета жара стояла несколько недель. Мне позвонил друг и попросил съездить проверить его квартиру, ему сообщили, что в доме пожар. Их с семьёй на тот момент не было в городе. Я быстро приехал, так как живу недалеко. Клубы дыма валили из всех окон на их этаже. Я обошел дом, чтобы увидеть картину со стороны балконов. К сожалению горела квартира моих друзей. Помимо их балкона, соседний также был в огне. Самое страшное, что в квартире была кошка за которой я присматривал. Я ходил внизу туда-сюда и ничего сделать не мог. Огромное количество пожарных машин. Дом расположен так, что пожарные не могут напрямую тушить очаг возгорания. Заблокирована дорога или ещё что-то - не было времени разбираться. Пожарные из соседних окон пытались залить квартиру водой. В такие моменты кажется, что всё происходит очень медленно. Я не эксперт пожаротушения, но выглядело это очень неэффективно, однако кто я такой чтобы их осуждать, я же не тушу пожары. Пожарные обязательно проверяют что в помещении никого нет. Никого не было. Видимость нулевая. В итоге когда очаг возгорания был потушен и дым развеялся, мне разрешили подняться. В основном сгорел балкон и прилегающая к нему комната. По всей квартире с потолка свисал навесной потолок словно сталактиты в пещере. Каждый пожарный говорил, что в таком пожаре выжить невозможно. Каким-то чудом кошка смогла, она забилась под диван, провела часы в полном аду. Страх смешанный с гневом ко всему окружающему, выжженные туманно-белые глаза… Котейка не заслужила всего этого. Есть две официальные версии пожара. Неосторожное обращение с огнём при курении и версия связанная с другим источником огня на улице. В обеих версиях что-то горящее задувает на балкон порывами ветра. Можно ли было это избежать? Конечно! Закрыть окна и всё. С другой стороны, уходя на работу, вы будете закрывать все окна, когда любимый питомец дома? Сомневаюсь. Москитные сетки могли бы спасти, но, честно говоря, не всегда есть возможность их установить. В этот момент я задумался, можно ли как-то понять по какой причине случился пожар? Можно ли как-то доказать, что это не ты забыл выключить утюг например? Вернемся к моему дому. Исходя из того, что окурки и прочий мусор появляется на газоне регулярно, мне бы хотелось понять, кто и как часто бросает мусор с фасада дома. Особенно меня интересовали курильщики. После того случая с пожаром, мои прогулки с детьми превратились в нечто подобное. После нескольких часов наблюдения за фасадом, я понял только то, что у меня заболела шея, а чтобы выявить тех кто мусорит, нужно это наблюдение как-то автоматизировать. Примерно так я представляю себе схему сервиса расследования “фасадных” инцидентов. Должна быть какая-то камера которая смотрит на фасад дома. Видео с этой камеры попадает в сервис который разбивает видео на зоны - балконы. После этого случается магия видеоанализа и в итоге мы должны получить отчёты, а в идеале ещё и по отчётам понять кто же в итоге папа свин. Начнём с камеры. Я бы хотел установить полноценную IP камеру и анализировать видео круглосуточно, но сделать это быстро невозможно. Нужны согласования с жильцами и УК и, наверно, ещё куча бюрократических штук, которые я не люблю. У меня есть экшен камера.  Поставил SD карту на 256 ГБ (чтобы влезло больше видео) и начал записывать в 4К фасад дома. Но в этом решении возник ряд проблем. Моя камера не поддерживает карты в 256ГБ. Иногда я бываю не очень умным и понимание приходит только после того как я купил карту на 256 ГБ. Жизненный урок № 256: нужно всегда читать инструкции. Пришлось использовать 128 и меньше, которые у меня уже были. Даже когда зафиксируешь камеру на держателе и ставишь её на одно и тоже место, видео всё равно записывается со смещением. Нужно либо переснимать либо менять настройки зон-балконов. Камеру могут украсть. За ней приходится следить. Пару дней выбирал положение камеры и производил тестовые записи. После этого в течении недели каждый вечер я выходил гулять с детьми и ставил камеру, на которую записывал 4К видео фасада дома. Фактически больше недели из-за погодных условий и прочего. Камера сама разбивает видео на файлы, поэтому предварительно их нужно “склеить” в один большой видеофайл. После этого разбить видео на зоны. Это довольно грубое разделение, к тому же оно показано схематично. Видео нужно разбить на фрагменты, то есть каждая зона это отдельный видеоролик. Так будет проще анализировать. Иначе нужно устанавливать большую чувствительность для аналитики, так как размеры движущихся объектов могут быть очень маленькими. Это в свою очередь даст большое количество ложных срабатываний. Разбить видео на небольшие куски можно с помощью ffmpeg, VLC или чего-то другого. ffmpeg -i in.mp4 -filter:v "crop=out_w:out_h:x:y" out.mp4 (https://ffmpeg.org/ffmpeg-filters.html#crop) Берёшь ffmpeg делаешь с ним 30 раз, как показано выше, и вот у тебя куча видео с разрешением от 360х240 до 704х280. Теперь каждую зону можно проанализировать отдельно и сформировать отчёт. Я вижу несколько вариантов анализа: Детекция объектов (людей) Детекция дыма и огня Детекция движения Данную аналитику можно сделать самому, например на основе YOLO или OpenCV (Делаем детектор движения, или OpenCV — это просто) или воспользоваться готовым сервисом. Мне попался под руки готовый сервер с видеоаналитикой от Macroscop, когда ты работаешь в этой компании, тебе часто попадаются под руки готовые сервера с видеоаналитикой. Я проверил некоторые куски фасадных видео, в которых явно были люди и факт курения. К сожалению, для детекции объектов и детекции дыма и огня условия получились неподходящие, люди на видео часто “обрезанные”, а дыма и огня слишком мало чтобы их можно было распознать. Пришлось от этой аналитики отказаться. Детектор движения же отработал отменно. После проверки нескольких видео получилось собрать большое количество информации об интервалах движения.  Предварительно было потрачено какое-то время на то, чтобы “подготовить” каждую зону. Разные тряпки, баннеры и прочие беспорядочно движущиеся штуки создают большое количество ложных срабатываний. Зоны можно просто обрезать, чтобы было меньше ложняков. В итоге, когда выбрана камера, аналитика и всё прочее, получилось что-то подобное. Как всё-таки определить нарушителей по детекции движения? Курильщиков, которые выбрасывают окурки - никак, но для начала можно определить сам факт курения. По моим наблюдениям, сигареты курят в среднем от 3 до 6 минут. Поэтому моя цель будет найти все интервалы с движением в этом диапазоне в каждой зоне. В идеале найти какие-нибудь закономерности. На протяжении 5 дней, примерно с 18 до 22 часов, я записывал видео фасада и анализировал его на движение. В первую очередь было интересно по графикам движения определить есть ли курильщик там или нет. Игра - “Найди курильщика”. Это первый график одного из балконов который я начал пристально анализировать. На графике отображены интервалы движения в начальные моменты в течение всех дней наблюдения. Грубо говоря, во вторник, где-то около 18-00, кто-то или что-то двигалось 2 минуты. При построении графиков были небольшие нюансы, например, график может содержать несколько зон, но это не особо важно. Вы видите какие-то закономерности? Как долго бы я на него не смотрел, ничего не нашёл. Единственное к чему я пришёл, это то, что после 21-00 никто на балкон не выходил.  В итоге я посмотрел видео фрагменты соответствующие пиковым значениям. Оказалось, что это играющий ребёнок, бегающий туда-сюда, и его мама, развешивающая белье на сушилке. Я продолжил анализировать и просматривать пиковые значения. Честно говоря, их было не так много, особенно тех, за которыми скрывались курильщики. Расскажу про некоторых из них. Больше всего, моё внимание привлёк один график. Он выходил курить ровно в 20-30 +- 10 минут, один раз каждый день. Мне показалось это очень необычным. Кажется вероятность встретить такой график утром намного выше. За период наблюдения только он явно выкидывал окурки из окна. Размещать человека без его согласия, на частной собственности не очень законно, поэтому с точностью 98% заменил реальное фото на сгенерированное с помощью современных технологий.  К нему мы вернёмся чуть позже. Выходит на общий балкон, стоит, курит и там же, где-то в углу, выбрасывает окурки, в банку из под кофе наверно. Вроде ничего необычного. Посмотрев на него можно сказать, что обычный дядька вышел покурил и, как порядочный человек, выкинул окурок в “специальную” мусорку. Точно ли всё нормально?  Есть закон запрещающий курить на общественном балконе, но моя цель не устраивать “охоту на ведьм”, поэтому этот пункт можно даже не учитывать. Вообще-то сейчас это нормально, ну скажем, как выкинуть фантик или жвачку мимо мусорки. Он кидает пепел вниз. Всё время пока он стоит и курит. Он попадает к людям на балконы. Интересно, а от пепла может произойти пожар? Банка, в которую он скидывает окурки, не зафиксирована, вот фото одного из сообщений в общедомовом чате. Их рассмотрим отдельно. То что на них выходят курить я писал выше, но ещё с них дети скидывают игрушки, шары с водой и банки с окурками. По этим зонам я просмотрел все движения которые длились более 1 минуты, так как обычно преодоление зоны балкона занимает секунды. За день, примерно три раза, происходит следующее. Они что-то кидают вниз, а потом делают в углу всякое. Дальше наступает социальная часть эксперимента. По балкону легко можно понять в какой квартире живет курильщик. Давайте познакомимся с моими соседями.  Он находится довольно высоко и по видео совершенно непонятно, выкидывает ли что-то из окна или нет. Доказательств у меня нет, но очень хочется увидеть его реакцию. Я подобрал на улице случайный окурок и пошёл знакомиться с соседом примерно в 20-50, убедившись что он докурил.  — Я ваш сосед снизу, мне на балкон прилетел вот этот окурок, а ещё пепел нахожу периодически. — Это не я. Закрывает дверь. На самом деле он быстро пробормотал что-то, но суть была именно такая. Реакция ожидаемая. Может быть мой визит отложится у него в сознании.  Периодически я поглядывал на его балкон. Мне интересно. В 20-30 я его уже не видел, Возможно у него отпуск или он изменил время / место курения. Представлю, что помог изменить его жизнь к лучшему. Вы не подумайте, я не против курильщиков как таковых. Если я что ненавижу так это когда мусорят. Терпеть не могу. Каждый раз когда он курил, он все окурки выкидывал на улицу. Я поднялся на этаж. Звоню в ту самую квартиру. Вышел нормальный адекватный, на первый взгляд, мужичок. Начал он говорить про каких-то рабочих у него в квартире, а закончил про своих детей балбесов. Это была какая-то бессвязная болтовня. Я вклинился в монолог, попросил больше не мусорить, еле как попрощался и ушёл.   Тут я не стал ни с кем знакомиться. Хотя у меня были разные идеи для экспериментов. Например, что будет если каждый раз забирать банку с окурками? Будет ли он выкидывать окурки с балкона или будет уносить пепельницу домой? Может в этом случае написать в общедомовой чат? Как только прочитаешь подобную штуку в чате, так сразу подумаешь про себя: что за душнила, - у меня по крайней мере почти всегда так. Он же просто курит и даже не мусорит подумает каждый второй! Всё нужно доказывать и объяснять. Вообщем я не решил что делать с ним.  Детям скучно, они лезут на балконы. Знаете какой вид с 25 этажа? Офигенный, честное слово, видно весь город! Как только я поселился и ко мне приходили друзья, я первым делом водил их на 25 этаж, без шуток. С детской площадки просматриваются балконы только первых 10 этажей. Выше никого не видно. Детей выгоняют с балконов в редких случаях, только если неравнодушные родители пожалуются охране. Вот бы было удобно если охранник получил уведомление о продолжительном движении на общественном балконе или даже просто увидел это в камеру и оперативно среагировал. Жаль что таких технологий ещё не придумали!  Если говорить серьёзно, то можно просто поставить камеру, которая смотрит на фасад и всё. Видео фасада не обязательно должно быть публичным, охране можно открыть доступ только до общих балконов. Всё это не какой-то сервис или готовое решение, а лишь моя исследовательская фантазия. Видеонаблюдение не сверху вниз, а снизу вверх. Многие не захотят чтобы в сторону их балконов была направлена камера, но если спросить, хочешь ли ты узнать, кто скинул пакет с водой на твою машину? Если случился пожар на балконе, тебя дома не было, а пожарные говорят, что это неосторожное обращение с огнём, хотелось бы увидеть, кто курил примерно в это время? Вот камеры в моём ЖК кажется установлены неплохо, но если подумать, полезность от них стремится к нулю. Можно увидеть силуэт преступника, который ворует велосипед или как сверху что-то падает и причиняет ущерб. Увы найти преступника по этим данным, как показывает практика, практически нереально. У себя в доме я бы заменил половину камер на одну, но которая смотрит на фасад. Как по мне, видеонаблюдение должно решать реальные проблемы, а не быть бесполезной записывалкой архива.  разработчик