Продукт компьютерного зрения с AI на устройстве
Детекция и OCR быстрее 100 мс — на плате, которой ещё не существовало.
Продукту нужны были детекция объектов и распознавание текста прямо на устройстве, достаточно быстро, чтобы это ощущалось мгновенным, и на железе достаточно дешёвом для серийного выпуска. Без похода в облако.
И ещё одно ограничение: один и тот же бинарник C++ должен был работать и на компьютере разработчика, и на embedded-плате, иначе скорость итераций рухнула бы.
Один пайплайн, три движка инференса.
Пайплайн зрения написан один раз — против интерфейса инференса с тремя реализациями: ONNX Runtime для десктопа, RKNN для NPU на устройстве, OpenCV DNN как запасной вариант. Смена движка — правка конфига, а не переписывание.
Кадры не покидают память GPU между захватом и инференсом: GStreamer перемещает их zero-copy, и именно там выигралась большая часть бюджета задержки.
Софт и плата, на которой он работает.
C++17, YOLO для детекции, PP-OCRv4 (DBNet ищет текст, CRNN его читает). Устройство представляется как USB HID, поэтому хосту не нужен драйвер. За ним следит systemd.
Плата тоже наша: 8-слойный PCB вокруг RK3576 с LPDDR4X, разведён в KiCad.
30 fps, на устройстве, без облака.
Детекция и OCR работают целиком на плате. Тот же бинарник отлаживается на ноутбуке — поэтому продукт вообще дошёл до выпуска.
Нужно что-то похожее?
Начать проект