Cars Counter
github.com/Tensionix/cars-counter ↗
Набор из нескольких десятков снимков города — это сотни квадратных километров: пересчитать на них автомобили глазом нельзя. Программа проходит набор одной кнопкой и отдаёт число с границами, координаты каждой отметки и плотность по сетке квадратов; итог — документ Word, ведомость Excel и слои для MapInfo. Считает небольшая обученная сеть на PyTorch: с видеокартой NVIDIA снимок в 165 мегапикселей — около минуты, на процессоре — около двадцати. Снимки никуда не отправляются.
1 загрузка с GitHubAudion Cars Counter
Содержание
- Зачем
- Как устроено
- Что внутри
- Какие снимки берёт
- Запуск
- Что ставится и что дают гигабайты
- Чего стоит число
- Слои для MapInfo
- С Claude и Codex
- Из чего сделано
Считает легковые автомобили на спутниковых снимках с привязкой к местности: сколько их на каждом снимке и на всём наборе, где стоит каждый и какова плотность по районам. Набор считается одной кнопкой; итог — число с границами, документ Word, ведомость Excel и слои для MapInfo. Счёт идёт на вашей машине: снимки никуда не отправляются.
Зачем
Набор из нескольких десятков снимков города — это сотни квадратных километров: пересчитать на них автомобили глазом нельзя. Программа проходит набор сама — у автора 31 снимок, около 500 км², считался двадцать минут на RTX 5070 — и отдаёт число, координаты каждой отметки и плотность по сетке квадратов: где и как плотно стоят автомобили, по районам.
Как устроено
- Отметка программы — место, которое маленькая сеть сочла легковым автомобилем: для
каждого пикселя сеть отвечает, насколько вероятно, что здесь середина автомобиля.
- У каждой отметки есть координаты на местности — из файла привязки снимка
.tab. - Отметка — ещё не автомобиль: при таком разрешении многие тёмные пятна не разберёт и глаз.
Поэтому число всегда называется с границами: автомобилей от «отметки минус четверть» до «отметки плюс половина». Грузовые автомобили и автобусы в счёт не входят.
- Снимки только читаются. Всё, что из них сделано, лежит в рабочей папке — своей у
каждого набора снимков.
- Считает программа обученной сетью. С публичным выпуском идёт сеть
open-03: она обучена
только на свободных аэрофотоснимках трёх открытых государственных служб и на снимках, которых не видела, сошлась с разметкой глазом до нескольких процентов. Ваши снимки — другой источник: прежде чем верить счёту, проверьте сеть на нескольких участках, которые разметили сами. Свою сеть обучают на своих снимках вместе с ИИ-агентом или кладут в программу файл сети, который вам передали, — см. «Своя сеть под свои снимки». Когда сеть есть, набор считается одной кнопкой; сеть, которая лежит в самой программе, считает и каждый новый набор сразу.
Что внутри
| Раздел | Что делает |
|---|---|
| ИЗОБРАЖЕНИЯ | Карта набора: каждый снимок на своём месте, что на нём размечено и посчитано |
| ПРОСМОТР | Один снимок: кусок крупно, рядом он целиком, поверх — отметки программы; точки ставятся щелчком, чтобы проверить или обучить сеть |
| СЧЁТ | Счёт всех снимков набора: отметки программы, границы числа автомобилей, площадь, плотность; отчёт файлами Word и Excel и слои для MapInfo |
| УСТАНОВКА | Машина, что установлено, и кнопка, которая ставит ровно то, чего не хватает |
| НАСТРОЙКИ | Поле на каждый род данных: снимки, рабочая папка, отчёты |
| О ПРОГРАММЕ | Версия, клавиши, папки |
Какие снимки берёт
Папку файлов .jpg, у каждого рядом — файл привязки растра MapInfo .tab; имя файла кончается номером столбца и строки снимка в наборе (…_2-3.jpg). Сеть автора училась на снимках около 0,3 м в пикселе.
Запуск
Запустите Start.exe, откройте раздел УСТАНОВКА и нажмите УСТАНОВИТЬ НУЖНОЕ: программа скажет, что скачает под вашу машину, и спросит, потом поставит свой Python и PyTorch в свою папку — от 0,7 до 3,4 ГБ скачивания, около 7 ГБ в установленном виде на машине с видеокартой NVIDIA. В Windows ставится одно: Microsoft Visual C++ Redistributable, который нужен PyTorch, — если его там нет (через winget, с разрешения администратора). Дальше — по руководству.
Что ставится и что дают гигабайты
Кнопка ставит на любую машину одно и то же — свой Python, PyTorch и несколько библиотек. Но PyTorch бывает двух сборок, и от сборки зависят и размер, и скорость.
| Без видеокарты NVIDIA | С видеокартой NVIDIA, драйвер 570 или новее | |
|---|---|---|
| Сборка PyTorch | для процессора | с CUDA |
| Скачивается | около 0,7 ГБ | около 3,4 ГБ |
| Занимает в папке программы | около 3,5 ГБ | около 7 ГБ |
| Счёт снимка в 165 мегапикселей | около 20 минут | около минуты |
| Счёт набора из 31 снимка, около 500 км² | около 11 часов (расчёт) | 20 минут |
| Обучение одной сети, 8000 шагов | около 2 ч 40 мин (расчёт: 2000 шагов шли 40 минут) | 6 минут |
| Обучение четырёх сетей, которые склеиваются в одну для счёта | около 11 часов (расчёт) | 10 минут, все четыре рядом |
Времена — автора: слева процессор ноутбука в шесть потоков, справа RTX 5070. Видеокарта NVIDIA старше GTX 10-й серии считается как её отсутствие: эта сборка PyTorch на ней не считает.
Откуда размер. Почти весь он — PyTorch. Сборка с CUDA несёт в себе библиотеки NVIDIA для вычислений на видеокарте: около 7 ГБ, почти вся папка. Сборка для процессора — около 3 ГБ из 3,5. Остальное — сам Python, OpenCV (0,1 ГБ) и мелкие библиотеки. TensorRT в этой программе нет. Скачанные установочные файлы после установки удаляются.
Для чего. Счёт и обучение — одна и та же арифметика сети, и видеокарта делает её в 25–30 раз быстрее. Сам счёт от сборки не зависит: на проверке в несколько сотен автомобилей две сборки расходились на один-два автомобиля.
Windows 10 или 11, 64 бита.
Чего стоит число
Столько, сколько стоит сеть, которой оно посчитано. Числа здесь — числа сети автора, а её в публичном выпуске нет: это то, что сеть, обученная таким способом, дала в работе автора, — чего ждать от сети, которую обучите вы, а не свойство скачанной программы.
Сеть автора обучена и проверена на спутниковых снимках одного города из одного источника. На трёх снимках, которых она не видела, глазом уверенно отмечено 511 автомобилей, она поставила 509 отметок: −2 % на заводе с большой открытой стоянкой, +12 % на жилой застройке, 0 % в старом городе в длинных тенях — там четверть автомобилей пропущена и столько же отметок лишние, и они гасят друг друга. Снимок, который просто выглядит светлее или мягче, сдвигал счёт до 4 % на открытых стоянках и до 16 % в старом городе в тенях.
На другом источнике снимков того же города, с более низким фактическим разрешением, эта сеть нашла около трети автомобилей, а местность вида, какого сеть не видела, может дать ложные отметки сотнями. Новый источник или новый вид местности нужно сначала проверить и, как правило, доучить.
Слои для MapInfo
Отметки точками, сетка квадратов (100, 250, 500 или 1000 м) с числом отметок и плотностью и контуры снимков — в формате MIF/MID, в системе координат файлов .tab снимков, — и карта плотности: картинкой со своей привязкой растра .tab и, для отчётов, со шкалой и подписью, светлая и тёмная. Файлы проверены обратным чтением; в самом MapInfo они не открывались ни разу.
С Claude и Codex
С программой можно работать вместе с ИИ-агентом — Claude Code или Codex. Руководство для агента — Docs\AI_AGENT_GUIDE_RU.md (английское — AI_AGENT_GUIDE_EN.md). Откройте папку программы в агенте, попросите прочитать его — и он разметит участки на ваших снимках, обучит на них сеть, проверит её и посчитает; если сеть уже есть, сначала проверит на ваших снимках её. У обучения сети кнопки в окне нет: это команда движка. Как это устроено и что агент при этом видит — в руководстве.
Из чего сделано
Интерфейс следует языку системы (русский или английский; RU | EN справа вверху). Окно — C# на Avalonia 12 (.NET 10). Движок счёта — Python 3.12: PyTorch, NumPy, OpenCV, Pillow, openpyxl. Значки — Lucide, шрифт — JetBrains Mono. Сторонние библиотеки скачиваются по вашей кнопке и остаются под своими лицензиями.
На снимке окна — свободный аэрофотоснимок, а не рабочие снимки автора: Beeldmateriaal Nederland через PDOK, лицензия CC BY 4.0. Отметки на нём поставлены глазом.
Сеть, которая идёт с программой, open-03, обучена на аэрофотоснимках открытых государственных служб: Beeldmateriaal Nederland через PDOK (CC BY 4.0); ортофотоснимки Земельного департамента Эстонской Республики (Republic of Estonia Land and Spatial Development Board), взятые из службы 09.10.2026 (лицензия открытых данных, https://geoportaal.maaamet.ee/opendata-licence); Geobasis NRW (Datenlizenz Deutschland - Zero 2.0). Самих снимков в программе нет; на чём сеть обучена и как её проверяли — system_core\nets\README.md.
Программа портативная: распакованная папка и есть установленная программа. Реестр не трогается, удаление — удалить папку.
$name = "Audion_Cars_Counter_v1.0.0_Full.zip"
Invoke-WebRequest "https://audion.dev/get/cars-counter/1.0.0/Audion_Cars_Counter_v1.0.0_Full.zip" -OutFile $name
Invoke-WebRequest "https://audion.dev/get/cars-counter/1.0.0/Audion_Cars_Counter_v1.0.0_Full.zip.sha256" -OutFile "$name.sha256"
$want = (Get-Content "$name.sha256").Split(" ")[0]
$have = (Get-FileHash $name -Algorithm SHA256).Hash.ToLower()
if ($want -ne $have) { throw "сумма не сошлась: загрузка повреждена" }
Expand-Archive $name -DestinationPath ".\cars-counter"