Evac: детектор эвакуаторов
Собственноручно обученный YOLO-детектор эвакуаторов на RTSP-камерах с бессерверной сетью на libp2p.
Evac следит за потоками RTSP-камер в поисках эвакуаторов ('mos_evacuator') с помощью модели YOLO, обученной на собственном датасете автора.

Evac следит за потоками RTSP-камер в поисках эвакуаторов ('mos_evacuator') с помощью модели YOLO, обученной на собственном датасете автора.
Начинался как приложение на Python/Tkinter поверх ultralytics и был переписан на Rust: кадры с ffmpeg проходят через ONNX Runtime (usls) с трекингом ByteTrack, и каждое новое обнаружение публикуется как подписанное событие с JPEG-фрагментом через GossipSub-сеть libp2p, так что распределенные узлы делятся наблюдениями напрямую друг с другом: mDNS в локальной сети, обнаружение через Kademlia DHT в интернете и Circuit Relay v2 + DCUtR для пробития NAT.
Десктопный UI на egui показывает живое видео с рамками и панель обнаружений от пиров, а сборка научена работать на Windows Server 2012 через динамический загрузчик ORT и заглушку dxcore.dll.
Что умеет
- Собственная модель YOLO (yolo26n, экспорт end2end/без NMS), обученная на вручную собранном датасете эвакуаторов (~150 фото + негативы + видео)
- Захват RTSP через пайп ffmpeg, инференс на GPU через CUDA EP ONNX Runtime с откатом на CPU
- Обмен обнаружениями между пирами: топик GossipSub на группу, подписанный DetectionEvent с JPEG-фрагментом в base64
- Бессерверное обнаружение через NAT с помощью публичного Kademlia DHT сети IPFS (имя группы хэшируется и никогда не передается по сети), relay + пробитие NAT для соединений NAT-NAT
- UI на egui с живым видео, отслеживаемыми рамками, панелью пиров и редактором настроек сети; список relay/bootstrap в INI рядом с exe
- Упаковка для устаревших ОС: ort-load-dynamic, убран wgpu, заглушка dxcore.dll, чтобы запускалось на Server 2012
Продукт компьютерного зрения от начала до конца: сбор датасета, обучение модели и экспорт в ONNX, конвейер инференса на Rust с трекингом и децентрализованная сеть libp2p с обнаружением через DHT и пробитием NAT; работает на Windows Server 2012 года.
Нужно что-то похожее?
Делаю это вживую на звонке в Zoom / Яндекс Телемост, вы смотрите на экран, таймер останавливается по вашему слову. Первые 15 минут бесплатно.