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

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

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

В таком случае наверное лучше использовать не критерий, если точка внутри BB, то занято, а если IoU больше какого-нибудь числа, то оно занято, отчасти это должно решить проблему

У меня сейчас похожий пет-проект. Как раз используется алгоритм - если машина заняло площадь парковки больше определенного значения. Работает с любым количеством камер а так же имеет онлайн режим. https://github.com/powernic/parking-lot-occupancy

Супер! Спасибо)
Но как я понял парковочные места у вас тоже размечены заранее?

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

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

С ручной разметкой решается проще, нужно лишь правильно указать парковочное место(разметку положения автомобиля) и указать достаточно большой порог, чтобы соседнее место не считалось занятым

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

А есть какая-нибудь встроенная в torch функция, чтобы не писать свою?
Или вам это неизвестно?

Я не работал с питоном и в частности torch. Распознаванием машин занимался отдельный сервис deepstack. Ui разметки, API, бизнес-логика приложения писалась своя

Машина может быть просто большая и занять несколько мест сразу.

«А как же мне понять, где парковочное место?» Моё решение очень тривиальное! Просто его разметить!


А потом народ начинает парковаться вкривь и вкось.
Причем стоит только одному начать, чтобы процесс пошел по нарастающей.
Более того, он еще и наследуемый :)

Заголовок спойлера
image

Когда-то решал задачу аналогичную той, что предоставил автор. Для таких случаев у нас были "паттерны" расположения, т.е. мы собрали статистику за промежуток времени, а затем произвели разметку. Это позволяло учитывать случаи, когда люди криво паркуются. Итоговой алгоритм должен был выбрать лучший паттерн исходя из максимального числа свободных мест.
Остался даже репозиторий - https://github.com/Vanna-IVision/IVISION_HACK.

Когда-то решал задачу аналогичную той, что предоставил автор


«Передо мной появилась задача сделать отслеживание занятых парковочных мест» (с)

Т.е. конкретная цель у задачи автором не указана.
Могу поставить более точную — есть двор, с обширным паркингом, причем в виде аж пяти площадок, разнесенных в пространстве (по вертикали тоже :), так, что находясь на одной из них — нет никакой возможности узнать о наличии свободного месте на любой другой.

Как результат, водители катаются из одного места в другое, ища свободную парковку (а процесс этот сложен, так как мест для разворота мало, а движение довольно интенсивное, особенно в определенный час, когда почти все возвращаются с работы.
Получается и так, что после разворота и возврата — место уже оказывается занятым (есть практика бронирования путем оставления на месте супруги с сумками в качестве преграды :)
При всем этом весь двор просматривается камерами видеонаблюдения.

И тут у многих рождается идея для стартапа — системы, позволяющей находить автоматически свободные (или уже освобождающиеся места) и пересылающей эту инфу по запросу на мобильный водителя (например, через Телеграм).

Причем так, чтобы человек уже в дороге знал, есть ли во дворе свободные места и надо ли ему искать другое место парковки.
(загрузка парковок крайне нестабильная — может быть и днем все занято, а может быть — и в полночь есть свободные места).

Если у вас есть актуальные фотографи нужных площадок и территория хорошо знакома, то оценивать обстановку со свободными местами на них можно и глазками, с помощью естественного интеллекта.

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

то оценивать обстановку со свободными местами на них можно и глазками,


Вот, буквально пять минут назад я сделал круг почета по двору. Свободные места заметны только тогда, когда уже проезжаешь мимо (а сзади тебя уже подпирает пара других машин). И главное — все мы проскочили мимо и дружно пошли на второй круг :)
(местная особенность — маневрировать при заезде в парковочную щель удобно только на «Смарте». Всем остальным надо тщательно прицеливаться)

Эм... А откуда вы планируете брать картинку обстановки? Коптер запускать?) Не проще поставить несколько камер с высоким разрешением, разметить картинку и без всякого ИИ получать инфу о свободных местах?

Эм… А откуда вы планируете брать картинку обстановки? Коптер запускать?)


Выше: «При всем этом весь двор просматривается камерами видеонаблюдения»

Весь хард уже есть, нужен софт :)

и без всякого ИИ получать инфу о свободных местах?


А представьте этот процесс в реале — в плотном дорожном потоке вы всматриваетесь в экранчик смарта, пытаясь разглядеть свободное место (особенно сейчас, когда темнеет чуть ли не в три часа так называемого дня :)

И да, внутри двора в дорожный прайм-тайм плотность движения не ниже, чем на магистрали.

Для меня просто странно из пушки стрелять по воробьям. В разработке, я всегда за принцип KISS. Самое первое что приходит на ум - давайте обучим ИИ решать задачу. Другие подходы рассматривали? Решение любой задачи начинается - с поиска аналогичных решений... Я бы для начала поигрался с тем, что есть. Если территория просматривается камерами, различные условия - день\вечер\ночь времена года... Можно перевести в черно-белое и посмотреть что из этого будет, разметить места, выделить признаки, сделать простейший классификатор...

Для меня просто странно из пушки стрелять по воробьям.


Я так понимаю, программное решение будет универсальным и его можно будет продать (хотя бы один раз :) практически каждому дому, имеющему проблемы с парковкой. А это уже хлеб :)

Кстати, на общественных паркингах, особенно «подземно/подвальных» эта проблема тоже актуальна.

Народ пытается решить ее при помощи лампочек (как на кассах в супермаркетах): красная — место занято, зеленая — свободно.

Но там есть существенная проблема — датчики плохо реагируют на маленькие автомобили :)
(ИИ им в помощь :)

Только есть нюанс - проблемы дома с парковками это не решит. Дело не в ИИ, а в мудаках.

Универсальное? Ни одного универсального решения я в своей жизни не видел. Всегда нужно что-то допиливать... И считать. Берем подземный паркинг - в отличае от уличного его сложно покрыть камерами, нужно будет велосипедить с разметкой мест. Сервер с ИИ понадобиться достаточно мощный. Когда в том же подземном паркинге достаточно поставить ультразвуковые датчики приближения (300р датчик + 200 рублей модуль управления arduino, esp32, esp8266). ИИ ни какой не требуется, разметку делать просто. В паркинге поставить WiFi, либо хардкорно пробросить по проводам. Стоимость подключения машино\места 500рублей, точность не хуже ИИ, вычислительные мощности в разы меньше, ПО писать тоже особо не нужно, если нужен прототип - HomeAssistant, Esphome, немного навыка рисования, ТГ бот практически из коробки. С уличным решением достаточно интереснее и сложнее, тут больше различных вариантов действий)

В этой статье разговор как раз скорее всего об уличном варианте и идет. Очевидно, чтобы сделать что-то такое на подземном паркинге это для начала надо покрыть камерами, а высота там совсем маленькая, в общем это крайне нерентабельно.
А вот в ситуации с уличной парковкой это уже решение отличное, потому что грубо говоря на одну парковку требуется одна камера и не сказать, чтобы совсем сильное железо)

Согласен, я просто ответил на комментарий выше), где сказали про универсальное решение, которое можно тиражировать на крытый паркинг. С уличным решением тоже есть вопросы... Когда вы в Москве и дом этаже в 25, то да - камера высокой четкости на крыше дома и задача решаема. У меня двор вытянут, дом не высокий (10 этажей), во дворе много деревьев, которые летом закрывают видимость парковочных мест сверху... Остается вариант - установки камер на высоте 2 этажа, но тогда много камер + разметка территории + обучение ИИ.

Да, это уже проблемно и практически как у меня)

Только я на пятом)))

это для начала надо покрыть камерами,


Покрывают без проблем — и стол дежурного охранника выглядит как та гирлянда мониторов из Матрицы :)

Кстати, и огромный гаражный кооператив, где отдельных гаражей буквально сотни (от 600 и более) — тоже полностью покрыт системой видеонаблюдения. Хотя там площадь как у десяти подземных паркингов, если не больше.
И считать. Берем подземный паркинг — в отличае от уличного его сложно покрыть камерами,


Не знаю, насколько это сложно, но в двух подземных паркингах, которыми я пользуюсь — эту проблему давно решили.
(год назад оставил свое авто на парковочном месте с открытой дверью, по рассеянности — так мне через пять минут позвонили и предупредили об этой проблеме).
(как-то и без ИИ справляются :)

Спасибо)
Интересно почитать ;)

Если у вас зафиксированная навечно камера, не проще ли просто разметить в этом ракурсе полигоны парковочных мест и тупо сверять текущую картинку с, грубо говоря, пустой парковкой? Без всяких нейросетей. Полигон похож на пустой асфальт\снег - место свободно, не похож более чем на какой-то процент (найти опытным путем) - место занято. Работать будет на любом железе.

когда коту нечего делать, он яйца ест :).

Лужи, сугробы, мусор, люди, тени... и еще миллион "предметов"

Если крытая с обычным освещением, то норм. Если улица-фонарь-снег-дождь-кучка мусора-дети рисуют мелом-ветер колышит дерево и тень под ним, то нифига — картинка пустой парковки будет зависеть от времени года и освещения. Отчасти решается средне-взвешенной картинки парковки за последний месяц, где любые различия проигрывают тому, что постоянно, но тогда постоянно стоящие машины начинают считаться за пустое место.

Не так давно была похожая статья, там еще много полезных комментариев, на всякий случай оставлю ссылку: https://habr.com/ru/post/685108/

Тоже хотел как-то заняться чем-то подобным, но столкнулся с тем, что не нашел простого способа захватить видеопоток с камеры (Xiaomi Mi Home Security Camera 360 1080p, пишется просто на флешку, не на сервер). Отсюда два вопроса: 1. Кто-то знает, как подключиться к этой камере? Максимум, что нашел: https://github.com/rytilahti/python-miio, но вроде бы там нет этого функционала. 2. Какие камеры лучше подойдут для таких домашних задач?

TP-link TAPO C200 - стоит недорого, картинка приличная, умеет RTSP. Вытащил поток и делай с ним, что хочешь.

Покупал TP-link TAPO C100 в качестве видеоняни, сейчас используется в качестве камеры для слежения за парковой, решал ту-же задачу что и ТС только с интеграцией с яндекс навигатором

Это все одна модель, я так понимаю, фактически разница только в маркетинге.

Докину ещё вот + любой сервер захвата RTSP потока, но у меня этой камеры нет и сам я это не пробовал и на простой путь тоже наверное не совсем тянет.

А подсчитать площадь транспортного средства возможно? И потом подсчитать какую то усредненную свободную площадь и т.д.

Можно, но тут уже нужно использовать семантическую сегментацию)
Опять же стоит придумать к этому какую-то конкретную метрику. То есть к чему мы будем примерять площадь автомобиля?

Не в укор вам (нормально для 2 курса), но это классический пример решения задачи ради задачи. Пока не попробуете выполнить задачу для заказчика. Важно же что? Чтобы клиент удовлетворился. Ваш заказчик будет удовлетворен когда? В жизни реального заказчика интересуют только некоторые моменты (зачастую удовлетворение одного из пунктов - это все что надо для счастья). 1. Знание о количестве автомобилей внутри парковочной области. 2. Знание какие именно места заняты, какие свободны (возможно это требование не по всей парковке). 3. Факт нарушения разметки парковки. В основном пункт 1 покрывает большинство потребностей.

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

Спасибо большое)
Как по мне с первыми двумя пунктами мой проект неплохо справляется, но это лишь по мне и очевидно, что там есть ряд проблем)
А вот по по поводу 3го пункта я немного не понял. То есть знать, правильно ли припаркована машина?

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

Понял вас, спасибо!

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

Публикации