Документация
Как устроено Цифровое ОКО: что нужно компьютеру, какие регистраторы подходят, какие порты открыть, где лежат данные, что уходит в интернет, как работают лицензия, пробный период и обновления.
Как устроено
ОКО — программа для Windows. Она ставится на компьютер с видеокартой NVIDIA в локальной сети заведения: свой компьютер заведения или купленный по нашему списку. Программа сама берёт видео с камер через видеорегистратор, распознаёт людей на видеокарте и показывает результат в веб-панели. Смотреть панель можно с телефона или ноутбука в той же сети.
- Видео не уходит из заведения. ОКО не пишет видеоархив — архив остаётся на регистраторе, как и был.
- Распознавание — одна модель YOLOv8 на все камеры, кадры идут пачками, в половинной точности.
- Частота анализа: вход — 5 кадров в секунду, бары и зоны — 2. Меняется в «Настройки → Анализ — для монтажника»: вход от 1 до 15, бары и зоны от 0,5 до 10.
- Круглосуточно. Программа запускается вместе с Windows, без входа пользователя. Упала — сторож процесса поднимает её сам, анализ после сбоя перезапускается до 5 раз в час.
- Сторож здоровья раз в 30 секунд проверяет: идёт ли анализ, есть ли кадры с каждой камеры, хватает ли места на диске, видна ли видеокарта, действует ли лицензия. Проблема появляется в панели и приходит в Telegram.
- Панель — вход по паролю, две роли: администратор меняет всё, просмотр — только смотрит.
Системные требования
| Минимум | Рекомендуем | |
|---|---|---|
| Процессор | 4 ядра (Intel Core i3 12-го поколения, Ryzen 3) | 6–8 ядер |
| Память | 16 ГБ | 16–32 ГБ |
| Видеокарта | NVIDIA с 6 ГБ (RTX 2060, 3050) | RTX 3060 12 ГБ или 4060 |
| Диск | SSD 256 ГБ | SSD 512 ГБ |
| Система | Windows 10 или 11, 64-разрядная | Windows 11 Pro |
| Сеть | Проводная, в одной сети с регистратором | То же |
- Python 3.11, 64-разрядный — ставится до установки ОКО, установщик его проверяет.
- Драйвер NVIDIA — свежий, Game Ready или Studio.
- Интернет нужен только на время установки: пакеты Python скачиваются 10–20 минут. Без интернета — установка из заранее скачанных пакетов.
- Без видеокарты NVIDIA программа запускается на процессоре, но на ноутбуке с Intel Iris Xe анализ даже одной камеры шёл в 1,9 раза медленнее реального времени. Для работы нужна NVIDIA.
Сколько камер потянет компьютер
Нагрузка складывается из двух частей:
- Декодирование видео — процессор. Каждый поток с камеры приходит в H.264 или H.265, и его нужно распаковать целиком, даже если анализируется 5 кадров в секунду из 25. На объектах с большим числом камер это самая частая причина «не успевает».
- Распознавание — видеокарта. Одна модель на все камеры, кадры пачками.
| Заведение | Камеры | Компьютер |
|---|---|---|
| Бар, кофейня | 1 вход и 1–2 бара | RTX 3050 или 2060, 4 ядра |
| Ресторан | 1–2 входа и 2–4 бара или зоны | RTX 3060 12 ГБ, 6 ядер |
| Клуб | 2 входа и 6–10 баров или зон | RTX 3060 или 4060, 8 ядер, дополнительные потоки на барах |
| Большой клуб, от 16 камер | Два компьютера с ОКО или RTX 4070 и 8–12 ядер; только после замера |
Что измерено
| Где | Что | Результат |
|---|---|---|
| RTX 2060 6 ГБ, ночной клуб, 31.08.2026 | Разбор записи ночи длиной 8,9 часа: вход, 5 кадров/с, модель yolov8m и модуль лиц | 54–96 минут на смену, около 30–50 кадров/с на весь конвейер |
| RTX 2060, 01.09.2026 | Один кадр yolov8m, 640 точек, по зоне входа | 15,6 мс |
| Ноутбук с Intel Iris Xe, без NVIDIA, 07.07.2026 | Режим без модуля лиц | В 1,9 раза медленнее реального времени на одной камере |
Как снизить нагрузку
- Бары и зоны — дополнительный поток регистратора (704×576): декодировать его в 4–6 раз легче.
- Вход — основной поток: мелкие силуэты и лица в проёме на нём видны лучше.
- H.264 вместо H.265 на камерах, где это можно переключить.
- Декодирование видеокартой — параметр
detection.hw_decode: trueвconfig.yaml. Выигрыш проверяйте замером: на части драйверов его нет.
Замер на месте
В комплекте программы есть утилита замера. Она запускает настоящий анализ на записи с регистратора, как на живых камерах:
C:\OKO\venv\Scripts\python.exe C:\OKO\tools\bench_box.py --video <запись входа>.mp4 --entrance 2 --other 8 --seconds 120
Здесь --entrance — сколько камер входа изобразить, --other — сколько баров и зон. Раз в 10 секунд утилита печатает загрузку процессора и видеокарты, задержку и фактическую частоту анализа по камерам, в конце — «успевает» или «НЕ успевает». Запись для замера — любой экспорт с регистратора этого же заведения.
Регистраторы и камеры
ОКО читает камеры напрямую с регистратора по RTSP, по локальной сети, без промежуточных программ. В панели выбирается марка регистратора — адрес потока программа собирает сама.
| Марка | Основной поток, канал 1 | Дополнительный |
|---|---|---|
| Hikvision, HiWatch | /Streaming/Channels/101 | 102 |
| Dahua, RVi-IP, Imou | /cam/realmonitor?channel=1&subtype=0 | subtype=1 |
| XMeye, Polyvision, H264DVR | /user=…&password=…&channel=1&stream=0.sdp?real_stream | stream=1 |
| Uniview | /unicast/c1/s0/live | s1 |
| Tiandy, Trassir | Формат не проверен на реальных устройствах | — |
| Другая марка, камера напрямую | Готовый адрес RTSP вручную: «Камеры → Добавить камеру → По адресу потока» | — |
- XMeye. На реальном объекте проверен формат регистраторов XM и RVi с прошивкой Xiongmai (H264DVR, NETSurveillance). Логин и пароль у них идут внутри адреса, а не как обычно. Если выбрать для такого регистратора марку Dahua, он ответит 401 «неверный логин», хотя пароль верный.
- Tiandy и Trassir. Программа предложит вариант адреса, но перед работой его надо проверить кнопкой «Проверить каналы» или сверить с веб-панелью регистратора. Надёжнее ввести адрес вручную.
- Поиск. Кнопка «Найти в сети» перебирает адреса в локальных подсетях компьютера и смотрит, на каких открыты порты видео. Поиска по ONVIF нет — только по портам и ручной ввод.
- Кодек. Чёрный или серый кадр чаще всего означает H.265 на потоке. Переключите канал регистратора на H.264 или возьмите дополнительный поток, если он в H.264.
Сеть и порты
Компьютер с ОКО стоит в локальной сети заведения. Входящих соединений из интернета не нужно — ни одного порта, никакого проброса на роутере.
| Порт | Кто слушает | Направление | Зачем |
|---|---|---|---|
| 8080/tcp | Компьютер с ОКО | Входящий, только из сети заведения | Веб-панель. Другой порт задаётся при установке |
| 554/tcp | Регистратор | Исходящий с компьютера | Видео по RTSP — обязательно |
| 80, 443/tcp | Регистратор | Исходящий с компьютера | Веб-интерфейс регистратора, определение марки при поиске |
| 8000/tcp | Hikvision | Исходящий с компьютера | Только поиск и определение марки |
| 37777/tcp | Dahua, RVi | Исходящий с компьютера | Только поиск |
| 34567/tcp | XMeye, Polyvision | Исходящий с компьютера | Только поиск |
| 8899, 5000/tcp | Часть регистраторов | Исходящий с компьютера | Только поиск |
| 443/tcp | api.telegram.org | Исходящий, в интернет | Сводки, тревоги и команды Telegram — по желанию |
Порты для поиска нужны только на время кнопки «Найти в сети». Если регистратор один и его адрес известен, их можно не открывать.
Проверить, достаёт ли компьютер до регистратора, — в PowerShell, подставив адрес регистратора:
Test-NetConnection 192.168.1.64 -Port 554
TcpTestSucceeded : True — порт открыт. False — неверный адрес, компьютер и регистратор в разных подсетях (VLAN, гостевой Wi-Fi) или порт закрыт на регистраторе.
Где лежат данные
Всё хранится в папке программы — по умолчанию C:\OKO. Установщик закрывает её от обычных пользователей Windows: доступ есть только у администраторов и системы.
| Файл или папка | Что в нём |
|---|---|
config.yaml | Настройки: заведение, регистраторы с паролями, камеры и разметка, токен бота Telegram |
data\auth.json | Пароли панели в виде хэшей и ключ сессий |
data\license.key | Ключ лицензии |
data\trial.json | Дата первого запуска — от неё считается пробный период |
data\shifts\ | Закрытые смены: цифры, почасовая разбивка, сверка с кассой |
data\shift_state.json | Счётчики текущей смены — переживают перезапуск программы |
data\events.jsonl | Лента событий, последние 5000 записей |
data\zone_snaps\ | Фото тревог. Старше 30 дней удаляются сами |
data\personas.db, data\thumbs\ | Данные модуля лиц: отпечатки лиц и фото гостей |
reports\ | Excel-отчёты смен |
logs\box.log | Журнал программы, файлы по 5 МБ по кругу |
logs\service.log | Журнал сторожа процесса |
logs\events.csv | Журнал проходов; больше 50 МБ — переносится в events.csv.1 |
Пароли регистраторов и токен бота панель никогда не показывает — только отметку, что они заданы. Править config.yaml вручную можно только при остановленной задаче OKO Box.
Что уходит в интернет
- Во время работы — только Telegram, и только если он включён. Уходят текстовые сообщения: сводка смены, тревоги, ответы на
/nowи/last. К тревоге запретной зоны прикладывается кадр с камеры. Команды программа сама забирает у Telegram — это исходящее соединение, снаружи к компьютеру ничего не открывается. - Кадры в Telegram можно не отправлять: параметр
alerts.send_photo: falseвconfig.yaml(править при остановленной задаче). Переключателя в панели для этого нет. - Во время установки скачиваются пакеты Python. Без интернета — установка из заранее скачанных пакетов.
- Чего нет. В коде ОКО других обращений в интернет нет: видео, Excel-отчёты и данные лиц наружу не отправляются, сервера обновлений нет.
Telegram — сторонний сервис: сообщения проходят через его серверы. Бот и его токен принадлежат заведению.
Лицензия и пробный период
- Пробный период — 14 дней с первого запуска, без ключа. До 4 камер, все виды анализа (вход, бар, зона), без модуля лиц.
- Ключ лицензии начинается с
OKO1.и привязан к компьютеру. В ключе записаны владелец, заведение, срок (или бессрочно), сколько камер можно, входит ли модуль лиц. Подделать или поправить ключ нельзя: он подписан, проверка идёт без интернета. - ID компьютера — 16 символов, считается из идентификатора установки Windows. После переустановки Windows или переноса на другой компьютер ID меняется — нужен новый ключ.
- Как получить ключ. «Система → Лицензия» → «ID компьютера» → «Скопировать». Пришлите ID через форму заявки. Полученный ключ вставьте в поле «Ключ лицензии» там же и нажмите «Установить ключ». Анализ перезапустится сам.
- Сколько осталось — в «Система → Лицензия». За 7 дней до конца в «Системе» появится предупреждение и придёт сообщение в Telegram.
- Когда срок вышел. Ещё 3 дня анализ работает, панель предупреждает, через сколько он остановится. Потом анализ останавливается. Отчёты, настройки и камеры остаются, панель открывается. После установки ключа анализ запускается снова.
- Лимит камер. Добавить камеру сверх лимита панель не даст. Камеры сверх лимита не анализируются.
Обновления
Автообновления нет: новая версия ставится вручную из архива.
- Остановите задачу
OKO Boxв Планировщике заданий Windows. - Распакуйте содержимое папки
OKOиз архива новой версии поверх папки программы, по умолчаниюC:\OKO. Папкиdata,reportsи файлconfig.yamlв архив не входят и сохраняются. - Запустите задачу
OKO Box.
Текущая версия — в разделе «Система», строка «Версия».
Удалить программу: powershell -ExecutionPolicy Bypass -File C:\OKO\service\uninstall_box.ps1 от имени администратора. Задача, правило брандмауэра и процессы убираются, данные, отчёты и настройки остаются. С параметром -Purge удаляется всё.
Безопасность панели
- Панель доступна только из локальной сети заведения: правило брандмауэра открывает порт для частной и доменной сети. Работает по HTTP, без шифрования, поэтому наружу её выставлять нельзя.
- Пароли панели хранятся в виде хэшей. После 5 неверных попыток за 5 минут с одного адреса вход временно блокируется. Сессия живёт 30 дней; смена пароля выкидывает старые сессии этой роли.
- Две роли: администратор и просмотр. Пароль просмотра задаётся в «Настройки → Пароли» — его удобно дать владельцу на телефон.
- Пока пароль администратора не задан, мастер первого запуска открыт любому в сети.
- Забыли пароль администратора: остановите задачу
OKO Box, удалите файлC:\OKO\data\auth.json, запустите задачу. Мастер спросит новый пароль; камеры и отчёты останутся.
Приватность и 152-ФЗ
- Без модуля лиц ОКО считает силуэты и не хранит биометрических данных. Хранятся цифры проходов по часам, события и фото тревог. На фото тревог — люди, поэтому они удаляются сами через 30 дней.
- Кадр тревоги запретной зоны уходит в Telegram, если Telegram включён и отправка фото не выключена.
- Модуль лиц по умолчанию выключен и включается, только если входит в лицензию и администратор подтвердил согласие гостей. С ним на компьютере хранятся отпечатки лиц (512 чисел на человека), фото гостей и оценка возраста и пола. Наружу эти данные не уходят.