Comments 43
Как мне кажется из водительского опыта, основная проблема состоит в том, что неправильно поставленная машина может занимать два и более парковочных мест.
В таком случае наверное лучше использовать не критерий, если точка внутри BB, то занято, а если IoU больше какого-нибудь числа, то оно занято, отчасти это должно решить проблему
У меня сейчас похожий пет-проект. Как раз используется алгоритм - если машина заняло площадь парковки больше определенного значения. Работает с любым количеством камер а так же имеет онлайн режим. https://github.com/powernic/parking-lot-occupancy
Супер! Спасибо)
Но как я понял парковочные места у вас тоже размечены заранее?
Да, разметка происходит вручную, т.к. у меня стояла задача знать конкретные номера парковок. т.к. некоторые были в приоритете. Делал интеграцию с яндекс алисой для яндекс навигатора, чтобы было удобно узнавать номера свободных мест с помощью голосового помощника
Но в моем случае получается как-то не очень будто бы с IoU если подумать
Потому что машины мне видно сбоку и одна машина может перейти за порог IoU для соседнего места, а оно будет свободным
Может можно эту проблему как-то решить...
С ручной разметкой решается проще, нужно лишь правильно указать парковочное место(разметку положения автомобиля) и указать достаточно большой порог, чтобы соседнее место не считалось занятым
Но бывают очень большие машины - например грузовики, которые полностью перекрывают парковочное место, в таких случаях даже человек не определит есть ли там свободное место
А есть какая-нибудь встроенная в torch функция, чтобы не писать свою?
Или вам это неизвестно?
Машина может быть просто большая и занять несколько мест сразу.
«А как же мне понять, где парковочное место?» Моё решение очень тривиальное! Просто его разметить!
А потом народ начинает парковаться вкривь и вкось.
Причем стоит только одному начать, чтобы процесс пошел по нарастающей.
Более того, он еще и наследуемый :)
Когда-то решал задачу аналогичную той, что предоставил автор. Для таких случаев у нас были "паттерны" расположения, т.е. мы собрали статистику за промежуток времени, а затем произвели разметку. Это позволяло учитывать случаи, когда люди криво паркуются. Итоговой алгоритм должен был выбрать лучший паттерн исходя из максимального числа свободных мест.
Остался даже репозиторий - 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. Какие камеры лучше подойдут для таких домашних задач?
А подсчитать площадь транспортного средства возможно? И потом подсчитать какую то усредненную свободную площадь и т.д.
Не в укор вам (нормально для 2 курса), но это классический пример решения задачи ради задачи. Пока не попробуете выполнить задачу для заказчика. Важно же что? Чтобы клиент удовлетворился. Ваш заказчик будет удовлетворен когда? В жизни реального заказчика интересуют только некоторые моменты (зачастую удовлетворение одного из пунктов - это все что надо для счастья). 1. Знание о количестве автомобилей внутри парковочной области. 2. Знание какие именно места заняты, какие свободны (возможно это требование не по всей парковке). 3. Факт нарушения разметки парковки. В основном пункт 1 покрывает большинство потребностей.
Просто сейчас определитесь, для чего будет использоваться ваш продукт. Тогда он грамотно обрастет функционалом и вам будет над чем продуктивно работать.
Спасибо большое)
Как по мне с первыми двумя пунктами мой проект неплохо справляется, но это лишь по мне и очевидно, что там есть ряд проблем)
А вот по по поводу 3го пункта я немного не понял. То есть знать, правильно ли припаркована машина?
У нас вряд-ли особо штрафуют за нарушение границ парковочных мест. А вот задача определить заезд на газон, тротуар, перекрытие занижения бордюра для пешеходов, елочка где нельзя и наоборот, блокировка помойки, ворот, подъезда - такой контроль на своей или прилегающей терртитории в автомате бывает полезно вести.
Как я писал трекинг парковочных мест