AudionAudion

Audion Traffic Counter — руководство пользователя

USER_GUIDE_RU.md

Audion Traffic Counter — руководство пользователя

Содержание

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

Счёт идёт на вашей машине. Записи никуда не отправляются.

Что нужно

получасовая запись 640×480 на RTX 5070 считается около пяти минут. Видеокарта NVIDIA GTX считает через PyTorch, в несколько раз медленнее. Без NVIDIA программа считает через DirectML на любой видеокарте с DirectX 12 (Intel, AMD): на встроенной графике Intel получасовая запись считается около полутора часов.

RTX — около 15 ГБ (PyTorch и TensorRT скачиваются по 3 ГБ каждый).

Запуск и установка

Распакуйте папку программы куда угодно и запустите Start.exe. Программа переносная: всё своё она держит в этой папке. В Windows ставится одно: Microsoft Visual C++ Redistributable, который нужен PyTorch, — и только если его там нет. Список записей, линии и итоги счёта можно держать отдельно от программы — в рабочей папке, см. «НАСТРОЙКИ».

При первом запуске движка счёта ещё нет: окно само открывает раздел УСТАНОВКА и спрашивает, ставить ли его. В вопросе сказано, что без движка программа не считает, сколько придёт под эту машину (около 15 ГБ на диске с видеокартой RTX, около 5 ГБ без видеокарты NVIDIA) и что будет поставлено в Windows. Ничего не скачивается, пока вы не ответите СКАЧАТЬ И УСТАНОВИТЬ; после отказа тот же вопрос задаёт кнопка УСТАНОВИТЬ НУЖНОЕ:

  1. Карточка ЭТА МАШИНА показывает видеокарты и что из них следует.
  2. Нажмите УСТАНОВИТЬ НУЖНОЕ и подтвердите. Зелёным отмечено ровно то, чего не хватает

этой машине: свой Python, PyTorch под вашу видеокарту, TensorRT для видеокарты RTX, библиотека распознавания, FFmpeg. Перед ними программа смотрит, есть ли в Windows Microsoft Visual C++ Redistributable, и, если нет, ставит его через winget — Windows спросит разрешение администратора.

  1. Ход установки виден в журнале (кнопка ЖУРНАЛ внизу справа). Установку можно

остановить кнопкой СТОП и запустить заново.

  1. Когда всё установлено, программа сама удаляет скачанные установочные файлы: на машине с

видеокартой RTX папка программы занимает после этого около 11,5 ГБ.

Установленную папку можно целиком перенести на другую машину с видеокартой NVIDIA: заново ставить ничего не нужно. На другой видеокарте первый счёт начнётся на полминуты позже — программа собирает ускоренный движок под эту карту. На машине без видеокарты NVIDIA откройте раздел УСТАНОВКА: он покажет зелёным, чего ей не хватает.

Остальные кнопки раздела — для починки одной части. TENSORRT — ускоренный счёт на видеокарте RTX: на машине с такой картой он ставится вместе с окружением. DIRECTML и OPENVINO — запасные пути счёта; OPENVINO ставить только в крайнем случае: он наименее надёжен для очереди из многих записей.

В разделе УСТАНОВКА — только то, что ставится для движка счёта. Как работает сама программа, выбирается в разделе НАСТРОЙКИ.

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

Файл проекта

Линии каждой записи программа хранит у себя и вторым экземпляром — в файле проекта audion-traffic-counter.json. По умолчанию он лежит в папке самих видео. Запись узнаётся в нём по отпечатку файла, а не по имени, поэтому расстановка возвращается сама: перенесли папку с записями на другую машину, переустановили программу, добавили запись заново — линии на месте.

Карточка ФАЙЛ ПРОЕКТА в разделе НАСТРОЙКИ выбирает место: РЯДОМ С ЗАПИСЯМИ или В ПАПКЕ ПОЛЬЗОВАТЕЛЯ — один файл на все записи в выбранной папке. Второе — для записей, которые лежат на диске только для чтения или в чужой папке.

Как устроено окно

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

СЧИТАТЬ, которая на время счёта становится кнопкой СТОП. УСТАНОВКА — то, что ставится для движка счёта (Python, PyTorch, модель, FFmpeg); НАСТРОЙКИ — то, как работает сама программа.

ЗАПИСИ

ДОБАВИТЬ ФАЙЛЫ… и ДОБАВИТЬ ПАПКУ… вносят видео в список. Сами файлы остаются там, где лежат: программа запоминает путь и ничего не копирует.

В список попадают файлы .avi, .mp4, .mov, .mkv, .mts, .m2ts, .mpg, .wmv, .ts, .webm; файлы с другими расширениями кнопка ДОБАВИТЬ ПАПКУ пропускает. Кодеки — обычные: H.264, H.265, AV1, MJPEG, MPEG-2, MPEG-4. Если запись редкого формата видна в разделе КАМЕРА, а счёт на ней «не удался», значит движок счёта её не прочитал: перекодируйте её в MP4 (H.264). Чересстрочную запись (DV 720×576) перед счётом переведите в прогрессивную.

В строке записи видно: размер кадра и длительность, расставлены ли линии, сколько раз она посчитана. Отметка слева берёт запись в очередь счёта. Щелчок по строке выбирает запись для разделов КАМЕРА и ИТОГИ.

Новая запись приходит без линий.

КАМЕРА: линии, ворота, зоны

Слева — видео выбранной записи, справа — её расстановка. У каждой записи расстановка своя: правка на одной записи не меняет другие.

Линия

Возьмите инструмент ЛИНИЯ, нажмите на кадре и протяните линию поперёк дороги.

линии. Её направление задаёт движение мыши: провели снизу вверх — считаются едущие вправо, сверху вниз — влево, справа налево — от камеры, слева направо — на камеру.

поток — отдельным числом.

линиями: например, весь поток до развилки, за которой стоят линии каждого съезда. Числа такой линии видны в итогах, но в строку ИТОГО не входят, иначе одни и те же машины посчитались бы дважды.

Ставьте линию там, где машины крупные и не закрывают друг друга: не на стоп-линии, не за столбом и не у самого края кадра. Машина считается один раз за проезд.

Ворота

Ворота нужны на перекрёстке и на кольце, когда важно, откуда и куда поехала машина. Инструментом ВОРОТА проведите линию поперёк каждой ветки — через её въездные и выездные полосы сразу — и назовите ветку. По воротам программа сводит въезд и выезд одной машины в манёвр «А → Б»: налево, прямо, направо, разворот.

На прямой дороге ворота не нужны — хватит линий.

Зона

Машины вдали занимают несколько пикселей, и программа их пропускает. Инструментом ЗОНА обведите дальнюю часть кадра и выберите увеличение ×2 или ×3: зона считается отдельно, в увеличенном виде. Линию, которая лежит в зоне, отнесите к ней (переключатель «Зона» в строке линии). Увеличение замедляет счёт.

Правка и переход по записям

за угол или край. Delete убирает выбранное.

соседней записи сам сохраняет правки; закрытие программы и запуск счёта — тоже.

записей одной съёмки с одной точки: скопировать и, если кадр сдвинулся, подвинуть концы.

Так проходятся все записи подряд: провели линии, перешли к следующей.

СЧЁТ

Вверху слева — ХОД СЧЁТА: сколько машин насчитано к этому моменту, скорость и сколько осталось. Когда записи считаются по нескольку разом, у каждой свой ряд чисел. Справа — ЭТА МАШИНА и КАК СЧИТАТЬ, ниже — ОЧЕРЕДЬ; длинная очередь прокручивается сама, остальное стоит на месте.

ЭТА МАШИНА — на чём идёт счёт: процессор, память, видеокарта, её драйвер, Windows. Плитка ДВИЖОК показывает, чем считает программа: пока счёт не идёт — выбранное в «Считать на» (АВТО), во время счёта — то, на чём запись считается на самом деле, например TensorRT.

Карточка КАК СЧИТАТЬ:

модель лучше видит дальние и частично закрытые машины. Веса скачиваются сами при первом счёте.

CUDA), иначе DirectML. Чего на машине нет, приглушено.

Сколько записей считать разом, потоки и приоритет счёта — в разделе НАСТРОЙКИ.

ПРОБНЫЙ ПРОГОН считает первую минуту выбранной записи и сохраняет кадры с рамками и линиями. Посмотрите их до счёта на часы: рамки должны стоять на машинах, линии — поперёк потоков.

СЧИТАТЬ считает по порядку все отмеченные записи — на видеокарте NVIDIA по нескольку разом, и тогда в карточке ХОД СЧЁТА у каждой записи свой ряд чисел. Очередь можно оставить на ночь:

ней «не удался», причина — в журнале. Если до конца не хватило не больше секунды (или одного процента записи), прогон остаётся и в ИТОГАХ помечен как прочитанный не до конца;

дошла, выйдет из неё или войдёт в неё;

ИТОГИ

Каждый счёт записи сохраняется отдельным прогоном и не затирает прежние.

ниже — манёвры через ворота. Последняя строка, ИТОГО, — общее число машин записи: сумма по всем манёврам для каждого класса и всех вместе, как столбец «Итого» в ведомости. Контрольные линии в неё не входят, у ворот считается только въезд.

или линий. Последняя строка — ИТОГО каждого прогона.

Во время счёта общее число машин видно в карточке ХОД СЧЁТА раздела СЧЁТ — плитка ВСЕГО перед плитками манёвров.

У прогона, посчитанного более ранней версией программы, строки ИТОГО нет: посчитайте запись заново.

класс, линия. ПАПКА ПРОГОНА открывает папку с файлами.

Отчёт: файлы Word и Excel

Карточка ОТЧЁТ вверху раздела выгружает результат в папку, которую вы назовёте:

Файлов два, оба написаны для инженера-транспортника. Документ Word начинается с главных чисел (сколько записей, автомобилей, легковых, автобусов, грузовых) и сводной таблицы с интенсивностью в авт/ч; дальше каждая запись на своей странице: число автомобилей, интенсивность и состав потока в процентах, кадр с сечениями учёта и номерами направлений, таблица по направлениям, итог. Ведомость Excel — те же числа таблицей: лист «Сводная» (по направлениям, с интенсивностью и составом потока), лист «По 15 минут» (интенсивность по интервалам от начала записи, с фильтром), лист «Записи» и лист «Служебное» — чем и когда обработана каждая запись, для того, кто обслуживает программу. Интенсивность — число за запись, приведённое к часу: запись в 15 минут умножается на четыре. Коэффициентов приведения к легковому автомобилю в отчёте нет. Имя файла содержит дату и время, поэтому новый отчёт не затирает прежний.

Запись, числам которой нельзя доверять без проверки, помечена словом «проверить», и причина написана рядом:

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

Если записи считали вручную (см. ниже), в отчёт попадает и сверка с ручным счётом.

Сверка с ручным счётом

Если запись когда-то считали вручную, программа покажет разницу в процентах рядом с каждым числом. Для этого положите файл reference\<имя записи>\<имя записи>.json, где имя записи — имя её файла без расширения (для DSCN0002.AVI это reference\DSCN0002\DSCN0002.json):

{
  "engine_classes": { "car": [0], "bus": [1], "truck": [2, 3] },
  "counts": {
    "N1": [120, 4, 9, 2],
    "N2": [87, 2, 5, 0]
  }
}

В counts — строка чисел на каждый манёвр, в порядке столбцов вашей ведомости. engine_classes говорит, какие столбцы складываются в классы программы: car, bus, truck.

ОБУЧЕНИЕ

Классы машин — легковые, грузовые, автобусы — детектор путает: маршрутку называет то автобусом, то грузовой, длинный грузовик — автобусом. Раздел ОБУЧЕНИЕ уточняет их.

Карточка МОДЕЛЬ КЛАССОВ — чем называть классы при счёте:

программой (system_core\kinds): ставить и обучать для неё ничего не нужно. Какая модель считается моделью по умолчанию, записано в файле config\classes_default.json; если её файла вдруг нет, классы называет детектор, и подсказка на кнопке говорит об этом;

models\classes\*.pt) — при счёте программа сохраняет по три вырезки каждой посчитанной машины, и модель называет класс по ним. Что детектор назвал легковой, остаётся легковой, пока модель не уверена на 90 %, что это автобус; грузовой легковая детектора не становится никогда. То, что детектор назвал грузовой или автобусом, называет модель. Мотоцикл остаётся тем, чем его назвал детектор.

Выбор действует на следующий счёт. Вырезки занимают около 50 МБ на получасовую запись и лежат в папке прогона.

Карточка МАШИНЫ ПРОГОНА — вырезки машин выбранного прогона:

уверена; на получасовую запись их обычно несколько десятков — пара сотен;

Кнопка под машиной — ЛЕГКОВАЯ, ГРУЗОВАЯ, АВТОБУС, НЕ МАШИНА — ставит её класс. Отметка сразу исправляет итоги прогона в разделе ИТОГИ; класс детектора и класс модели остаются рядом с ней в таблице событий (events.csv: detector_class, classifier_class, classifier_share, mark), отметки лежат в review.csv папки прогона. НЕ МАШИНА убирает машину из итогов: две машины в одной рамке, не машина трёх классов.

Как размечать: маршрутка — микроавтобус с окнами по всему борту — это автобус, как в ведомостях учётчиков; «Газель» без окон по борту, фургон, бортовая — грузовая; минивэн, «буханка», скорая, пикап — легковая.

Отметки — это и примеры для обучения модели классов под ваши камеры. Модель учится командами движка (проще всего — руками агента, см. «Работа с Claude и Codex») и появляется новым файлом в models\classes, в карточке МОДЕЛЬ КЛАССОВ рядом с прежними. Кнопки обучения в окне нет.

Работа с Claude и Codex

Программа сделана так, чтобы с ней можно было работать вместе с ИИ-агентом — Claude Code или Codex, — как работали её авторы. Руководство для агента — Docs\AI_AGENT_GUIDE_RU.md (английское — AI_AGENT_GUIDE_EN.md): команды движка, форматы файлов, порядок работы и то, что уже измерено.

Как начать. Установите программу (УСТАНОВКА, УСТАНОВИТЬ НУЖНОЕ), откройте её папку в Claude Code или Codex и первым сообщением попросите прочитать Docs\AI_AGENT_GUIDE_RU.md. Дальше говорите обычными словами:

кадру из середины каждой записи, проводит линии и ворота и показывает их на кадре;

агент покажет вырезки, и спор решается глазами;

Обучение классов с агентом идёт так:

  1. агент нарезает вырезки всех машин части записи (команда harvest) или берёт их из

прогона, посчитанного с моделью классов;

  1. раскладывает их на листы по 48 (sheets) — сначала всё, что детектор назвал автобусом

или грузовой, потом выборку легковых;

  1. смотрит листы и ставит каждой машине букву класса (labels) — покажите ему, как у вас

считают маршрутки и «Газели», и посмотрите пару его листов;

  1. учит модель (teach) — полчаса на процессоре ноутбука, минуты на видеокарте NVIDIA;
  2. проверяет её на машинах, которых она не видела (check-classes), и говорит, на сколько

процентов по каждому классу расходится счёт;

  1. вы выбираете модель в разделе ОБУЧЕНИЕ, и следующий счёт идёт с ней.

Главное, что мы узнали: решает не длина обучения, а примеры с камер того же вида и правильная граница классов. Двести размеченных машин своей камеры дают больше, чем тысячи чужих. Подробно — в руководстве для агента, раздел «Обучение классов под камеры пользователя».

О записях. Агент работает на вашей машине, и сами записи никуда не уходят. Но то, что агент рассматривает — кадр для расстановки линий, листы вырезок для разметки, — уходит в сервис, на котором он работает (Anthropic у Claude, OpenAI у Codex). Если записи нельзя показывать посторонним, размечайте сами: кнопками раздела ОБУЧЕНИЕ или буквами в файлах рядом с листами — агенту хватит команд, на картинки ему смотреть не нужно.

Счёт очереди записей агент сам не запускает: это кнопка СЧИТАТЬ.

НАСТРОЙКИ

Как работает сама программа (кнопка внизу слева, между УСТАНОВКОЙ и О ПРОГРАММЕ).

Карточка СКОРОСТЬ СЧЁТА — на числа счёта эти настройки не влияют, только на время:

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

сама.

В НАСТРОЙКАХ есть поле для каждого рода данных: записи, рабочая папка, отчёты, файл проекта, данные обучения. Записи и отчёты воспроизводимы — записи можно скопировать заново, отчёт выгрузить ещё раз; то, чему программа обучена (модель классов), лежит в самой программе.

Карточка ЗАПИСИ — папка, в которой лежат видеозаписи. Программа их только читает. С этой папки открывается выбор файлов в разделе ЗАПИСИ. Если записи перенесли на другой диск или скопировали заново, выберите здесь новую папку: записи списка, которых нет на прежнем месте, программа найдёт в ней и в её подпапках по имени и отпечатку файла, и линии с итогами останутся при них. То же она делает при каждом запуске.

Карточка ОТЧЁТЫ — папка, в которую выгружаются отчёты Word и Excel; кнопки отчёта в разделе ИТОГИ открывают выбор папки на этом месте.

Карточка РАБОЧАЯ ПАПКА — где лежит то, что программа пишет о ваших записях: список записей, линии и ворота, итоги счёта, ведомости ручного счёта для сверки, журнал. В ПАПКЕ ПРОГРАММЫ (по умолчанию) — всё это в папке самой программы. В ПАПКЕ ПОЛЬЗОВАТЕЛЯ — в выбранной папке, а в папке программы остаётся только программа и её настройки: её можно копировать на другую машину, чистить и передавать, не унося с собой списки, линии и итоги. Раскладка в рабочей папке та же, что в программе: config\recordings.json, config\cameras\, output\, reference\, logs\. Выбор папки ничего не переносит: чтобы взять прежнюю работу с собой, закройте программу и перенесите эти папки и файл списка в новую рабочую папку. Папка меняется без перезапуска; во время счёта сменить её нельзя.

Карточка ФАЙЛ ПРОЕКТА — где хранится вторая копия линий записей (см. «Файл проекта»).

Карточка ДАННЫЕ ОБУЧЕНИЯ — где лежат вырезки машин, листы, метки и наборы для обучения модели классов: РЯДОМ С ЗАПИСЯМИ (папка classes рядом с видео — по умолчанию, данные переезжают вместе с записями) или В ПАПКЕ ПОЛЬЗОВАТЕЛЯ. Программа их не стирает, и в публикацию программы они не попадают.

Клавиши

КлавишиЧто делают
Ctrl+1 … Ctrl+8разделы по порядку
Ctrl+Jжурнал
F1это руководство
Escиз УСТАНОВКИ, НАСТРОЕК и О ПРОГРАММЕ — назад; в КАМЕРЕ — вернуть указатель
ПробелКАМЕРА: пустить или остановить видео
← →КАМЕРА: кадр назад и вперёд
Page Up, Page DownКАМЕРА: предыдущая и следующая запись
DeleteКАМЕРА: убрать выбранную линию или зону

Чего ждать от точности

(на проверочной записи — +0,8 % и −0,1 % на двух линиях у камеры).

и модель крупнее; совсем мелкие съезды на записи низкого разрешения программа не видит.

грузовые одним детектором — приблизительно (на проверочной записи у одной линии автобусов −53 %, грузовых +39 %); с моделью классов, обученной на камере того же типа, — в пределах нескольких процентов (там же +6 % и +4 %; см. раздел ОБУЧЕНИЕ). Грузовые по числу осей не делятся.

Сравнивайте прогоны, сделанные на одном и том же.

Где что лежит

ПапкаЧто в ней
App\, Start.exeокно программы
runtime\, models\, Tools\Python с библиотеками, веса моделей, FFmpeg — ставятся разделом УСТАНОВКА
models\classes\ваши собственные модели классов для раздела ОБУЧЕНИЕ
system_core\kinds\модель классов, которая идёт с программой
classes\ рядом с видеоданные обучения: вырезки, листы, метки, наборы и копии моделей (или папка, выбранная в НАСТРОЙКАХ)
config\settings.jsonнастройки программы — всегда в её папке
рабочая папкасписок записей, линии, итоги, ручные счёты и журнал — четыре строки ниже. Это папка программы, пока в НАСТРОЙКАХ не выбрана другая
config\recordings.json, config\cameras\список записей и расстановки линий, по файлу на запись
output\<запись>\<дата-время>_<модель>\прогон: events.csv, summary.json, линии, с которыми считали; с моделью классов — crops\ (вырезки машин) и review.csv (отметки)
reference\ручные счёты для сверки
audion-traffic-counter.json в папке видеофайл проекта: вторая копия линий, рядом с записями
logs\журнал, по файлу на день

Что программа делает в сети и на машине

Ничего не собирает и не отправляет. В сеть выходит только при установке и при первом счёте новой моделью — скачать Python (python.org), библиотеки (PyPI, pytorch.org), веса модели (GitHub), FFmpeg (gyan.dev, GitHub) и 7-Zip для его распаковки (7-zip.org).

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

Если что-то не так

Что видноЧто делать
«Движок счёта не установлен»раздел УСТАНОВКА, кнопка УСТАНОВИТЬ НУЖНОЕ
«FFmpeg не найден», в КАМЕРЕ нет видеораздел УСТАНОВКА, кнопка FFMPEG
раздел УСТАНОВКА просит обновить драйвер NVIDIAобновите драйвер и нажмите ПРОВЕРИТЬ СНОВА
у записи «линий нет», в очереди «будет пропущена»проведите линии в разделе КАМЕРА
линия ничего не считаетстрелка смотрит не в ту сторону: разверните её кнопкой-стрелкой в строке линии
дальняя линия считает намного меньше, чем естьобведите зону с увеличением, возьмите модель крупнее
«правки линий не сохранены … — запись не посчитана»у записи есть линия без имени манёвра или не осталось ни одной линии: поправьте в разделе КАМЕРА и посчитайте её снова
«счёт не удался» у одной записифайл не читается как видео, обрывается раньше конца или кадр другого размера, чем у её линий; подробности в журнале
«движок молчал … — остановлен»движок завис; очередь пошла дальше. Посчитайте эту запись ещё раз; если повторяется — выберите в разделе СЧЁТ другой путь счёта
счёт идёт медленносчёт на DirectML или на процессоре: посмотрите строку «Считать на» в разделе СЧЁТ
All projects