Демонстрация работы подсчета пассажиров в автобусе
Первая итерация
Мы установили камеру перед дверью и обучили систему распознавать контуры людей.
Система определяла количество пассажиров с точностью 80%.
Низкое качество определения объектов в автобусах. Плотное скопления людей не позволяет корректно выделять отдельно людей. Решения хорошо работают на низкой скученности людей. В случае высокой скученности фигуры сливаются в одну либо просто теряются.
Низкое качество извлечения признаков для присвоения уникальности объекта. Система не учитывает уникальности людей.
Вторая итерация
Тогда мы изменили подход и установили камеры над головами пассажиров. В результате точность увеличилась до 90%.
Также мы смогли присваивать пассажирам уникальные ID и считать не только вошедших и вышедших людей, но и определять их маршрут проезда пассажиров.
В процессе разработки мы опробовали и поменяли несколько подходов
Ошибки и решения
10% ошибок возникало из-за роста пассажиров. Для подсчета мы применяли виртуальный порог. Когда голова пассажира его пересекала, мы фиксировали вход или выход, но из-за разного роста подобрать идеально выверенный порог не получилось. Чтобы решить эту проблему, мы перенесли камеры над порогом автобуса. Это помогло увеличить точность подсчета до 99%.
Третья итерация
Мы подготовили решение для развертывания в автобусах. Основная задача - сформировать программно-аппаратный комплекс так, чтобы его можно было разместить прямо в автобусе и чтобы скорость обработки была в реальном времени.
Для этого переписали с языка Python на С++. Провели тесты программно- аппаратной архитектуры CUDA и NPU.
Проверили работу на различных одноплатных компьютерах.
В результате система размещенная в автобусе снимала видео, считала пассажиров и скидывала отчеты, когда появлялось соединение с WiFi.